Mercurial > octave-antonio
changeset 19846:72fe9df87fe8
improve scalability of gui objects (as discussed in bug #41938)
* files-dock-widget.cc (files_dock_widget): adjust size policy of combo box
* history-dock-widget.cc (history_dock_widget): adjust size policy of combo box
* workspace-view.cc (workspace_view): adjust size policy of combo box
* file-editor-tab.cc (file_editor_tab): make size of eol, line and col indicator
depending on font size
* main-window.cc (construct_tool_bar): make size of combo box for worling dir
depending on font size and adjust size policy
* main-window.h: remove static variable for combo box width
* settings-dialog.cc (read_lexer_settings): make width of labels and font combo
boxes for editor styles depeding on font size
* settings-dialog.ui: adjusted size policies of several objects
author | Torsten <ttl@justmail.de> |
---|---|
date | Tue, 24 Feb 2015 07:12:13 +0100 |
parents | 29692bc97899 |
children | 597fc0fd8e54 |
files | libgui/src/files-dock-widget.cc libgui/src/history-dock-widget.cc libgui/src/m-editor/file-editor-tab.cc libgui/src/main-window.cc libgui/src/main-window.h libgui/src/settings-dialog.cc libgui/src/settings-dialog.ui libgui/src/workspace-view.cc |
diffstat | 8 files changed, 134 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/files-dock-widget.cc Tue Feb 24 13:53:02 2015 +0100 +++ b/libgui/src/files-dock-widget.cc Tue Feb 24 07:12:13 2015 +0100 @@ -90,7 +90,7 @@ _current_directory->setInsertPolicy (QComboBox::NoInsert); _current_directory->setSizeAdjustPolicy ( QComboBox::AdjustToMinimumContentsLengthWithIcon); - QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Maximum); + QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred); _current_directory->setSizePolicy (sizePol); QAction *directory_up_action = new QAction (QIcon (":/actions/icons/up.png"),
--- a/libgui/src/history-dock-widget.cc Tue Feb 24 13:53:02 2015 +0100 +++ b/libgui/src/history-dock-widget.cc Tue Feb 24 07:12:13 2015 +0100 @@ -82,7 +82,7 @@ _filter->setInsertPolicy (QComboBox::NoInsert); _filter->setSizeAdjustPolicy ( QComboBox::AdjustToMinimumContentsLengthWithIcon); - QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Maximum); + QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred); _filter->setSizePolicy (sizePol); _filter->completer ()->setCaseSensitivity (Qt::CaseSensitive);
--- a/libgui/src/m-editor/file-editor-tab.cc Tue Feb 24 13:53:02 2015 +0100 +++ b/libgui/src/m-editor/file-editor-tab.cc Tue Feb 24 07:12:13 2015 +0100 @@ -91,16 +91,17 @@ // eol mode QLabel *eol_label = new QLabel (tr ("eol:"), this); _eol_indicator = new QLabel ("",this); - _eol_indicator->setMinimumSize (35,0); + QFontMetrics fm = eol_label->fontMetrics (); + _eol_indicator->setMinimumSize (5*fm.averageCharWidth (),0); _status_bar->addPermanentWidget (eol_label, 0); _status_bar->addPermanentWidget (_eol_indicator, 0); // row- and col-indicator _row_indicator = new QLabel ("", this); - _row_indicator->setMinimumSize (30,0); + _row_indicator->setMinimumSize (5*fm.averageCharWidth (),0); QLabel *row_label = new QLabel (tr ("line:"), this); _col_indicator = new QLabel ("", this); - _col_indicator->setMinimumSize (25,0); + _col_indicator->setMinimumSize (4*fm.averageCharWidth (),0); QLabel *col_label = new QLabel (tr ("col:"), this); _status_bar->addPermanentWidget (row_label, 0); _status_bar->addPermanentWidget (_row_indicator, 0);
--- a/libgui/src/main-window.cc Tue Feb 24 13:53:02 2015 +0100 +++ b/libgui/src/main-window.cc Tue Feb 24 07:12:13 2015 +0100 @@ -1937,14 +1937,15 @@ _main_tool_bar->addSeparator (); _current_directory_combo_box = new QComboBox (this); - _current_directory_combo_box->setFixedWidth (current_directory_width); + QFontMetrics fm = _current_directory_combo_box->fontMetrics (); + _current_directory_combo_box->setFixedWidth (48*fm.averageCharWidth ()); _current_directory_combo_box->setEditable (true); _current_directory_combo_box->setInsertPolicy (QComboBox::NoInsert); _current_directory_combo_box->setToolTip (tr ("Enter directory name")); _current_directory_combo_box->setMaxVisibleItems ( current_directory_max_visible); _current_directory_combo_box->setMaxCount (current_directory_max_count); - QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred); + QSizePolicy sizePol (QSizePolicy::Preferred, QSizePolicy::Preferred); _current_directory_combo_box->setSizePolicy (sizePol); // addWidget takes ownership of the objects so there is no
--- a/libgui/src/main-window.h Tue Feb 24 13:53:02 2015 +0100 +++ b/libgui/src/main-window.h Tue Feb 24 07:12:13 2015 +0100 @@ -374,7 +374,6 @@ // Toolbars. QComboBox *_current_directory_combo_box; - static const int current_directory_width = 300; static const int current_directory_max_visible = 16; static const int current_directory_max_count = 16; QLineEdit *_current_directory_line_edit;
--- a/libgui/src/settings-dialog.cc Tue Feb 24 13:53:02 2015 +0100 +++ b/libgui/src/settings-dialog.cc Tue Feb 24 07:12:13 2015 +0100 @@ -450,6 +450,7 @@ QVector<color_picker*> bg_color (max_style); int default_size = 10; QFont default_font = QFont (); + int label_width; QColor default_color = QColor (); QColor dummy_color = QColor (255,0,255); @@ -459,12 +460,13 @@ QFont actual_font = lexer->font (styles[i]); description[i] = new QLabel (actual_name); description[i]->setWordWrap (true); - description[i]->setMaximumSize (160,QWIDGETSIZE_MAX); - description[i]->setMinimumSize (160,1); + label_width = 24*description[i]->fontMetrics ().averageCharWidth (); + description[i]->setMaximumSize (label_width,QWIDGETSIZE_MAX); + description[i]->setMinimumSize (label_width,1); select_font[i] = new QFontComboBox (); select_font[i]->setObjectName (actual_name+"_font"); - select_font[i]->setMaximumSize (180,QWIDGETSIZE_MAX); - select_font[i]->setMinimumSize (180,1); + select_font[i]->setMaximumSize (label_width,QWIDGETSIZE_MAX); + select_font[i]->setMinimumSize (label_width,1); font_size[i] = new QSpinBox (); font_size[i]->setObjectName (actual_name+"_size"); if (styles[i] == 0) // the default
--- a/libgui/src/settings-dialog.ui Tue Feb 24 13:53:02 2015 +0100 +++ b/libgui/src/settings-dialog.ui Tue Feb 24 07:12:13 2015 +0100 @@ -32,7 +32,7 @@ </size> </property> <property name="currentIndex"> - <number>3</number> + <number>1</number> </property> <widget class="QWidget" name="tab_general"> <property name="enabled"> @@ -454,7 +454,7 @@ <x>0</x> <y>0</y> <width>662</width> - <height>661</height> + <height>673</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_16"> @@ -462,9 +462,6 @@ <layout class="QVBoxLayout" name="verticalLayout_9"> <item> <layout class="QGridLayout" name="editor_common_settings_grid"> - <property name="horizontalSpacing"> - <number>6</number> - </property> <item row="6" column="2"> <layout class="QHBoxLayout" name="horizontalLayout_3"> <item> @@ -476,6 +473,12 @@ </item> <item> <widget class="QSpinBox" name="editor_long_line_column"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="minimum"> <number>2</number> </property> @@ -504,6 +507,12 @@ </item> <item row="3" column="0"> <widget class="QCheckBox" name="editor_ws_checkbox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Show whitespace</string> </property> @@ -514,6 +523,12 @@ <property name="enabled"> <bool>true</bool> </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Show line numbers</string> </property> @@ -547,6 +562,12 @@ <property name="enabled"> <bool>true</bool> </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Highlight current line</string> </property> @@ -625,6 +646,12 @@ </item> <item row="0" column="3"> <widget class="QSpinBox" name="editor_notebook_tab_width_min"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="minimum"> <number>80</number> </property> @@ -654,6 +681,12 @@ </item> <item row="0" column="5"> <widget class="QSpinBox" name="editor_notebook_tab_width_max"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="minimum"> <number>180</number> </property> @@ -695,6 +728,12 @@ </item> <item row="6" column="0"> <widget class="QCheckBox" name="editor_long_line_marker"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="toolTip"> <string>This works well for monospaced fonts. The line is drawn at a position based on the width of a space character in the default font. It may not work very well if styles use proportional fonts or if varied font sizes or bold, italic and normal texts are used.</string> </property> @@ -708,6 +747,12 @@ </item> <item row="7" column="0"> <widget class="QCheckBox" name="cb_code_folding"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Enable Code Folding</string> </property> @@ -718,6 +763,12 @@ </item> <item row="8" column="0"> <widget class="QCheckBox" name="cb_edit_status_bar"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Show status bar</string> </property> @@ -728,6 +779,12 @@ </item> <item row="4" column="0"> <widget class="QCheckBox" name="cb_show_eol"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Show EOL characters</string> </property> @@ -744,6 +801,12 @@ </item> <item> <widget class="QComboBox" name="combo_eol_mode"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="sizeAdjustPolicy"> <enum>QComboBox::AdjustToContents</enum> </property> @@ -787,6 +850,12 @@ <property name="enabled"> <bool>true</bool> </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Show horizontal scroll bar</string> </property> @@ -806,9 +875,6 @@ </item> <item> <layout class="QGridLayout" name="gridLayout_4"> - <property name="verticalSpacing"> - <number>0</number> - </property> <item row="0" column="0"> <widget class="QLabel" name="label_13"> <property name="text"> @@ -848,6 +914,12 @@ </item> <item row="0" column="2"> <widget class="QSpinBox" name="editor_ind_width_spinbox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="minimum"> <number>1</number> </property> @@ -875,6 +947,12 @@ </item> <item row="2" column="2"> <widget class="QSpinBox" name="editor_tab_width_spinbox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="minimum"> <number>1</number> </property> @@ -1406,6 +1484,12 @@ </item> <item> <widget class="QFontComboBox" name="terminal_fontName"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="editable"> <bool>false</bool> </property> @@ -1427,6 +1511,12 @@ </item> <item> <widget class="QSpinBox" name="terminal_fontSize"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="minimum"> <number>2</number> </property> @@ -1460,6 +1550,12 @@ </property> <item> <widget class="QSpinBox" name="terminal_history_buffer"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="minimum"> <number>0</number> </property> @@ -1554,12 +1650,6 @@ </item> <item> <widget class="QGroupBox" name="terminal_colors_box"> - <property name="minimumSize"> - <size> - <width>0</width> - <height>81</height> - </size> - </property> <property name="title"> <string>Terminal Colors</string> </property> @@ -1705,7 +1795,14 @@ </widget> </item> <item row="1" column="1"> - <widget class="QLineEdit" name="le_file_browser_dir"/> + <widget class="QLineEdit" name="le_file_browser_dir"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> </item> <item row="0" column="1"> <widget class="QCheckBox" name="cb_restore_file_browser_dir"> @@ -1716,6 +1813,12 @@ </item> <item row="1" column="2"> <widget class="QPushButton" name="pb_file_browser_dir"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Browse</string> </property> @@ -1809,12 +1912,6 @@ <verstretch>0</verstretch> </sizepolicy> </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>81</height> - </size> - </property> <property name="title"> <string>Colors for variable attributes </string> </property>
--- a/libgui/src/workspace-view.cc Tue Feb 24 13:53:02 2015 +0100 +++ b/libgui/src/workspace-view.cc Tue Feb 24 07:12:13 2015 +0100 @@ -57,7 +57,7 @@ _filter->setInsertPolicy (QComboBox::NoInsert); _filter->setSizeAdjustPolicy ( QComboBox::AdjustToMinimumContentsLengthWithIcon); - QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Maximum); + QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred); _filter->setSizePolicy (sizePol); _filter->completer ()->setCaseSensitivity (Qt::CaseSensitive);