Mercurial > hg > octave-nkf
changeset 18758:6e81b59d657c gui-release
Add preference for terminal windows buffer size (bug #41474)
* QTerminal.cc (notice_settings): call new function SetScrollBufferSize with
the related value from the settings
* QTerminal.h: new purely virtual function SetScrollBufferSize
* QUnixTerminalImpl.cpp (initialize): corrections of coding style;
(setScrollBufferSize): implementation of new function;
* QUnixTerminalImpl.h: new function setScrollBufferSize;
* QWinTerminalImpl.cpp (class QConsolePrivate): new function
(QConsolePrivate::setScrollBufferSize): implementation of new function;
(QWinTerminalImpl::setScrollBufferSize): implementation of new function;
* QWinTerminalImpl.h: new function setScrollBufferSize;
* settings-dialog.cc (constructor): init spinbox with buffer size from settings;
(write_changed_settings): write value of spinbox into settings file
* settings-dialog.ui: new spinbox for terminals buffer size (terminal tab)
author | Ahsan Ali Shahid <ahsan.ali.shahid@gmail.com> |
---|---|
date | Thu, 06 Mar 2014 03:56:59 +0500 |
parents | 40dce9423baa |
children | 086093fbdc1a |
files | libgui/qterminal/libqterminal/QTerminal.cc libgui/qterminal/libqterminal/QTerminal.h libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h libgui/src/settings-dialog.cc libgui/src/settings-dialog.ui |
diffstat | 8 files changed, 96 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/QTerminal.cc +++ b/libgui/qterminal/libqterminal/QTerminal.cc @@ -118,4 +118,5 @@ (cursorUseForegroundColor, settings->value ("terminal/color_c", QVariant (colors.at (3))).value<QColor> ()); + setScrollBufferSize (settings->value ("terminal/history_buffer",1000).toInt() ); }
--- a/libgui/qterminal/libqterminal/QTerminal.h +++ b/libgui/qterminal/libqterminal/QTerminal.h @@ -81,6 +81,8 @@ virtual void setCursorColor (bool useForegroundColor, const QColor& color) = 0; + virtual void setScrollBufferSize(int value=1000) = 0; + signals: void report_status_message (const QString&);
--- a/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp +++ b/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp @@ -69,13 +69,23 @@ m_terminalModel = new TerminalModel(m_kpty); m_terminalModel->setAutoClose(true); m_terminalModel->setCodec(QTextCodec::codecForName("UTF-8")); - m_terminalModel->setHistoryType(HistoryTypeBuffer(1000)); + m_terminalModel->setHistoryType(HistoryTypeBuffer (1000)); m_terminalModel->setDarkBackground(true); m_terminalModel->setKeyBindings(""); m_terminalModel->run(); m_terminalModel->addView(m_terminalView); connectToPty(); } +void QUnixTerminalImpl::setScrollBufferSize(int value) +{ + if (value > 0) + { + m_terminalModel->clearHistory (); + m_terminalModel->setHistoryType (HistoryTypeBuffer ( value )); + } + else + m_terminalModel->setHistoryType (HistoryTypeNone ()); +} void QUnixTerminalImpl::connectToPty() {
--- a/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h +++ b/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h @@ -47,7 +47,7 @@ void setForegroundColor (const QColor& color); void setSelectionColor (const QColor& color); void setCursorColor (bool useForegroundColor, const QColor& color); - + void setScrollBufferSize(int value); QString selectedText(); public slots:
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp @@ -205,6 +205,7 @@ void setForegroundColor (const QColor& color); void setSelectionColor (const QColor& color); void setCursorColor (bool useForegroundColor, const QColor& color); + void setScrollBufferSize (int value); void drawTextBackground (QPainter& p, int cx1, int cy1, int cx2, int cy2, int cw, int ch); @@ -597,6 +598,14 @@ m_cursorColor = useForegroundColor ? QColor () : color; } +void QConsolePrivate::setScrollBufferSize (int value) +{ +// FIXME: not tested code follows +// CONSOLE_SCREEN_BUFFER_INFO sbi; +// GetConsoleScreenBufferInfo (m_stdOut, &sbi); +// m_bufferSize = QSize (sbi.dwSize.X, qMax (sbi.dwSize.Y, (SHORT)value)); +} + void QConsolePrivate::drawTextBackground (QPainter& p, int cx1, int cy1, int cx2, int cy2, int cw, int ch) { @@ -1512,6 +1521,13 @@ d->setCursorColor (useForegroundColor, color); } +void QWinTerminalImpl::setScrollBufferSize(int value) +{ +// FIXME: not tested code follows +// d->setScrollBufferSize (value); +} + + ////////////////////////////////////////////////////////////////////////////// void QWinTerminalImpl::setTerminalFont (const QFont& f)
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h @@ -60,6 +60,7 @@ void setForegroundColor (const QColor& color); void setSelectionColor (const QColor& color); void setCursorColor (bool useForegoundColor, const QColor& color); + void setScrollBufferSize(int value); QString selectedText ();
--- a/libgui/src/settings-dialog.cc +++ b/libgui/src/settings-dialog.cc @@ -191,6 +191,8 @@ settings->value ("terminal/fontName","Courier New").toString ()) ); ui->terminal_fontSize->setValue ( settings->value ("terminal/fontSize", 10).toInt ()); + ui->terminal_history_buffer->setValue ( + settings->value ("terminal/history_buffer",1000).toInt ()); // file browser ui->showFileSize->setChecked ( @@ -626,6 +628,8 @@ ui->terminal_cursorUseForegroundColor->isChecked ()); settings->setValue ("terminal/focus_after_command", ui->terminal_focus_command->isChecked ()); + settings->setValue ("terminal/history_buffer", + ui->terminal_history_buffer->value() ); // the cursor QString cursorType;
--- a/libgui/src/settings-dialog.ui +++ b/libgui/src/settings-dialog.ui @@ -32,7 +32,7 @@ </size> </property> <property name="currentIndex"> - <number>1</number> + <number>3</number> </property> <widget class="QWidget" name="tab_general"> <property name="enabled"> @@ -1255,6 +1255,62 @@ </item> </layout> </item> + <item row="2" column="2"> + <layout class="QHBoxLayout" name="horizontalLayout_5"> + <property name="topMargin"> + <number>0</number> + </property> + <item> + <widget class="QSpinBox" name="terminal_history_buffer"> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>5000</number> + </property> + <property name="singleStep"> + <number>20</number> + </property> + <property name="value"> + <number>1000</number> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_20"> + <property name="text"> + <string>(Changing buffer size clears history)</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_16"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_19"> + <property name="minimumSize"> + <size> + <width>100</width> + <height>20</height> + </size> + </property> + <property name="text"> + <string>History buffer Size</string> + </property> + </widget> + </item> <item row="0" column="1"> <spacer name="horizontalSpacer_28"> <property name="orientation"> @@ -1271,19 +1327,12 @@ </property> </spacer> </item> - <item row="1" column="3"> - <spacer name="horizontalSpacer_26"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> <property name="sizeHint" stdset="0"> <size> <width>40</width> <height>20</height> </size> </property> - </spacer> - </item> </layout> </item> <item> @@ -1340,6 +1389,9 @@ <property name="orientation"> <enum>Qt::Vertical</enum> </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> <property name="sizeHint" stdset="0"> <size> <width>20</width>