From facbefeeeaa55cbb83d5f74d6949ba71f401be13 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 21 Nov 2014 02:04:55 +0100 Subject: [PATCH] Fixed some minor GUI issues * resizing for floating widgets * vertical policies * menus for views * margins for keypad * using property mainwindowframeless in style sheet --- .../components/audiosetupcomponent.ui | 2 +- .../components/flightplancomponent.ui | 370 ++++++++------- .../components/mainkeypadareacomponent.ui | 4 +- src/blackgui/components/settingscomponent.ui | 2 +- src/blackgui/dockwidget.cpp | 18 +- src/blackgui/dockwidget.h | 1 + src/blackgui/dockwidgetinfoarea.cpp | 5 +- src/blackgui/qss/mainwindow.qss | 438 +++++++++--------- src/blackgui/views/atcstationview.cpp | 2 + src/blackgui/views/statusmessageview.cpp | 1 + src/blackgui/views/viewbase.cpp | 6 +- src/blackgui/views/viewbase.h | 2 + src/swiftgui_standard/mainwindow.ui | 2 +- 13 files changed, 451 insertions(+), 402 deletions(-) diff --git a/src/blackgui/components/audiosetupcomponent.ui b/src/blackgui/components/audiosetupcomponent.ui index e23c7d570..3b6a2e744 100644 --- a/src/blackgui/components/audiosetupcomponent.ui +++ b/src/blackgui/components/audiosetupcomponent.ui @@ -191,7 +191,7 @@ - + 0 0 diff --git a/src/blackgui/components/flightplancomponent.ui b/src/blackgui/components/flightplancomponent.ui index db54d003c..db2806d51 100644 --- a/src/blackgui/components/flightplancomponent.ui +++ b/src/blackgui/components/flightplancomponent.ui @@ -69,9 +69,9 @@ 0 - 0 + -77 373 - 431 + 447 @@ -113,70 +113,20 @@ 6 - - - - true - - - - - - - >AAAA - + + - ICAO - - - - - - - - - - - - - 40 - - - true - - - - - - - - - - 40 - - - - - - - Send plan - - - - - - - 10. Estimated time enroute + 6. Departure time true - - + + - Sent + Load plan @@ -190,40 +140,23 @@ - - - - 6. Departure time - - - true - - - - - - - Load plan - - - - - - - 9.Destination airport - - - true - - - - + Reset plan + + + + 10. Estimated time enroute + + + true + + + @@ -256,6 +189,13 @@ + + + + true + + + @@ -266,25 +206,22 @@ - - + + - 7. Cruising altitude - - - true + Send plan - - - - true + + + + 40 - - + + >AAAA @@ -293,18 +230,47 @@ - - - - 14. Pilots name / homebase + + + + + + + - + + + + + 40 + + true - - + + + + 1. Type + + + + + + + 99:99 + + + 00:00 + + + 5 + + + + + 0 @@ -317,48 +283,62 @@ 75 - - 1 + + + + + + 8. Route - - + + + + + - 99:99 + >AAAA - 00:00 + ICAO - 5 + 4 - - + + - 5. Departure airport + Validate + + + + + + + 0 kts + + + 40 + + + + + + + 12. Fuel on board true - - - - 99:99 - + + - 00:00 - - - - - - - 2. Callsign + 3. Aircraft type false @@ -368,13 +348,6 @@ - - - - Validate - - - @@ -419,46 +392,27 @@ - - - - >AAAA - + + - ICAO - - - 4 - - - - - - - 12. Fuel on board + 5. Departure airport true - - + + - 0 kts - - - 40 + Sent - - - - - + + - 3. Aircraft type + 2. Callsign false @@ -468,35 +422,65 @@ - - + + - 8. Route + 14. Pilots name / homebase + + + true - - + + + + 7. Cruising altitude + + + true + + + + + 99:99 00:00 - - 5 + + + + + + true - - + + + + >AAAA + - 1. Type + ICAO - - + + + + 9.Destination airport + + + true + + + + + 0 @@ -509,8 +493,40 @@ 75 + + 1 + + + + + 99:99 + + + 00:00 + + + 5 + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + @@ -555,8 +571,8 @@ 0 0 - 373 - 455 + 302 + 468 diff --git a/src/blackgui/components/mainkeypadareacomponent.ui b/src/blackgui/components/mainkeypadareacomponent.ui index 74b5b39b4..0d10d519f 100644 --- a/src/blackgui/components/mainkeypadareacomponent.ui +++ b/src/blackgui/components/mainkeypadareacomponent.ui @@ -48,13 +48,13 @@ QLayout::SetDefaultConstraint - 2 + 0 0 - 2 + 0 0 diff --git a/src/blackgui/components/settingscomponent.ui b/src/blackgui/components/settingscomponent.ui index 4801e46b4..e9c9a04ba 100644 --- a/src/blackgui/components/settingscomponent.ui +++ b/src/blackgui/components/settingscomponent.ui @@ -67,7 +67,7 @@ - + 0 0 diff --git a/src/blackgui/dockwidget.cpp b/src/blackgui/dockwidget.cpp index d709c3ead..41d7f2cbb 100644 --- a/src/blackgui/dockwidget.cpp +++ b/src/blackgui/dockwidget.cpp @@ -142,6 +142,7 @@ namespace BlackGui // for the first time resize if (!this->m_preferredSizeWhenFloating.isNull()) { + this->m_initialDockedMinimumSize = this->minimumSize(); this->resize(this->m_preferredSizeWhenFloating); } @@ -165,23 +166,22 @@ namespace BlackGui } this->setNullTitleBar(); this->setContentsMargins(this->m_marginsWhenFloating); - if (!this->m_wasAlreadyFloating) - { - this->initialFloating(); - } + if (!this->m_wasAlreadyFloating) { this->initialFloating(); } this->m_statusBar.show(); this->m_wasAlreadyFloating = true; } else { - if (!this->m_windowTitleWhenDocked) - { - QDockWidget::setWindowTitle(""); - } - + if (!this->m_windowTitleWhenDocked) { QDockWidget::setWindowTitle(""); } this->m_statusBar.hide(); this->setEmptyTitleBar(); this->setContentsMargins(this->m_marginsWhenDocked); + + // sometimes floating sets a new minimum size, here we reset it + if (this->minimumHeight() > this->m_initialDockedMinimumSize.height()) + { + this->setMinimumSize(this->m_initialDockedMinimumSize); + } } emit this->widgetTopLevelChanged(this, topLevel); } diff --git a/src/blackgui/dockwidget.h b/src/blackgui/dockwidget.h index 660642c92..ad8281d3c 100644 --- a/src/blackgui/dockwidget.h +++ b/src/blackgui/dockwidget.h @@ -148,6 +148,7 @@ namespace BlackGui CManagedStatusBar m_statusBar; //!< Status bar when floating QString m_windowTitleBackup; //!< original title, even if the widget title is deleted for layout purposes QSize m_preferredSizeWhenFloating; //!< preferred size when floating 1st time + QSize m_initialDockedMinimumSize; //!< minimum size before first floating QPoint m_offsetWhenFloating; //!< initial offset to main window when floating first time bool m_allowStatusBar = true; bool m_windowTitleWhenDocked = true; diff --git a/src/blackgui/dockwidgetinfoarea.cpp b/src/blackgui/dockwidgetinfoarea.cpp index ee3730d7b..4b8a2898a 100644 --- a/src/blackgui/dockwidgetinfoarea.cpp +++ b/src/blackgui/dockwidgetinfoarea.cpp @@ -96,8 +96,10 @@ namespace BlackGui QList infoAreaDockWidgets = this->findEmbeddedDockWidgetInfoAreaComponents(); foreach(CEnableForDockWidgetInfoArea * dwia, infoAreaDockWidgets) { + Q_ASSERT(dwia); + // KWB: potentially a risk when this object is deleted - // put under normal situations the child object will be deleted as well, and we have + // but under normal situations the child object will be deleted as well, and we have // no multi-threaded GUI dwia->setParentDockWidgetInfoArea(this); } @@ -109,6 +111,7 @@ namespace BlackGui QList widgetsWithDockWidgetInfoAreaComponent; foreach(QWidget * w, widgets) { + Q_ASSERT(w); CEnableForDockWidgetInfoArea *dwc = dynamic_cast(w); if (dwc) { diff --git a/src/blackgui/qss/mainwindow.qss b/src/blackgui/qss/mainwindow.qss index 998591bbf..c31e9520b 100644 --- a/src/blackgui/qss/mainwindow.qss +++ b/src/blackgui/qss/mainwindow.qss @@ -13,32 +13,32 @@ mainframeless (infobar.qss) /** putting background here works for framed, but not for frameless window **/ #MainWindow { - background-image: url(:/textures/icons/textures/texture-outer.jpg); - background-color: darkslategray; + background-image: url(:/textures/icons/textures/texture-outer.jpg); + background-color: darkslategray; } /** required when dock widget is floating **/ #sw_MainMiddle QDockWidget { - background-image: url(:/textures/icons/textures/texture-inner.jpg); - background-color: black; + background-image: url(:/textures/icons/textures/texture-inner.jpg); + background-color: black; } /** required when info area is floating **/ BlackGui--CInfoArea { - background-image: url(:/textures/icons/textures/texture-inner.jpg); - background-color: black; + background-image: url(:/textures/icons/textures/texture-inner.jpg); + background-color: black; } /** fix scroll areas **/ /** in flight plan **/ QAbstractScrollArea #qw_FlightPlanTabMain { - background-color: black; - background-image: url(:/textures/icons/textures/texture-inner.jpg); + background-color: black; + background-image: url(:/textures/icons/textures/texture-inner.jpg); } QAbstractScrollArea #qw_RemarksGenerator { - background-color: transparent; - background-image: url(:/textures/icons/textures/texture-inner.jpg); + background-color: transparent; + background-image: url(:/textures/icons/textures/texture-inner.jpg); } /** in log component **/ @@ -48,376 +48,400 @@ QAbstractScrollArea #pg_StatusPageConsole { background-color: black; } /** main GUI parts **/ #dw_InfoBarStatus { - background-image: url(:/textures/icons/textures/texture-outer.jpg); - background-color: darkslategray; - border: 0px; + background-image: url(:/textures/icons/textures/texture-outer.jpg); + background-color: darkslategray; + border: 0px; } -#wi_CentralWidgetOutside { - background-image: url(:/textures/icons/textures/texture-outer.jpg); - background-color: darkslategray; - margin: 0px; - padding: 5px; +#wi_CentralWidgetOutside[mainframeless="true"] { + background-image: url(:/textures/icons/textures/texture-outer.jpg); + background-color: darkslategray; + margin: 0px; + border: 2px solid green; + border-radius: 20px; } #fr_CentralFrameInside { - margin: 5px; + margin: 5px; } #gb_AtcStationsOnlineInfo { - border-style: none; + border-style: none; } #sw_MainMiddle { - padding: 3px; - border: 1px solid green; - border-radius: 10px; - background-image: url(:/textures/icons/textures/texture-inner.jpg); + padding: 3px; + border: 1px solid green; + border-radius: 10px; + background-image: url(:/textures/icons/textures/texture-inner.jpg); } #sw_MainMiddle QPushButton { - background-color: rgba(0, 0, 255, 128); - border-style: none; - border-radius:3px; - color: yellow; - padding: 3px; - margin-right: 5px; + background-color: rgba(0, 0, 255, 128); + border-style: none; + border-radius:3px; + color: yellow; + padding: 3px; + margin-right: 5px; +} + +/** close button with frameless windows **/ +#pb_FramelessCloseButton { + background: transparent; + padding: 0px 10px 0px 0px; + margin: 0px; +} + +/** for FontDialog etc. **/ +#comp_Settings QToolButton { + background-color: rgba(0, 0, 255, 128); + border-style: none; + border-radius:3px; + color: yellow; } #wi_MainKeypadArea QPushButton { - /** background-image: url(:/textures/icons/textures/texture-inner.jpg); **/ - /** need to fix pressed button first **/ - background: black; - border-style: solid; - border-width: 1px; - border-radius:6px; - border-color: green; - max-height:20px; - min-width:60px; - min-height:20px; + /** background-image: url(:/textures/icons/textures/texture-inner.jpg); **/ + /** need to fix pressed button first **/ + background: black; + border-style: solid; + border-width: 1px; + border-radius:6px; + border-color: green; + max-height:20px; + min-width:60px; + min-height:20px; } #wi_MainKeypadArea QPushButton::checked { - /** background-image: url(:/textures/icons/textures/texture-inner.jpg); **/ - /** need to fix pressed button first **/ - border-style: solid; - border-color: yellow; - font: bold; - color: yellow; + /** background-image: url(:/textures/icons/textures/texture-inner.jpg); **/ + /** need to fix pressed button first **/ + border-style: solid; + border-color: yellow; + font: bold; + color: yellow; } /** cockpit needs to come after sw_MainMiddle **/ #comp_CockpitComComponent QPushButton { - background-color: transparent; - border-style: solid; - border-radius:3px; - border-width: 0px; - border-color: blue; - color: yellow; - padding: 1px; - margin: 2px; + background-color: transparent; + border-style: solid; + border-radius:3px; + border-width: 0px; + border-color: blue; + color: yellow; + padding: 1px; + margin: 2px; } /** fixes scroll area for audio setup and inner background **/ #sa_AudioSetup { background-color: black; } #sa_AudioComponentInner { - background-image: url(:/textures/icons/textures/texture-inner.jpg); - background-color: black; + background-image: url(:/textures/icons/textures/texture-inner.jpg); + background-color: black; } /** volume buttons **/ #wi_AudioSoundButtons QPushButton { - background-color: transparent; + background-color: transparent; } /** COM panel **/ #wip_CockpitComPanelShowHideBar QPushButton { - background-color: transparent; - border-style: solid; - border-radius:3px; - border-width: 0px; - border-color: blue; + background-color: transparent; + border-style: solid; + border-radius:3px; + border-width: 0px; + border-color: blue; } #le_CommandLineInput { - background-image: url(:/textures/icons/textures/texture-inner.jpg); - margin-bottom: 5px; - padding: 3px; - border-radius: 5px; + background-image: url(:/textures/icons/textures/texture-inner.jpg); + margin-bottom: 5px; + padding: 3px; + border-radius: 5px; } QProgressBar { - border: 1px solid green; - border-radius: 5px; - background-color: black; - text-align: center; - padding: 0px; - height: 16px; + border: 1px solid green; + border-radius: 5px; + background-color: black; + text-align: center; + padding: 0px; + height: 16px; } QProgressBar::chunk { - background-color: darkblue; - width: 10px; - margin: 0.5px; + background-color: darkblue; + width: 10px; + margin: 0.5px; } QTabWidget::pane { /* The tab widget frame */ - border: none; + border: none; } QTabWidget::tab-bar { - left: 5px; /* move to the right by 5px */ + left: 5px; /* move to the right by 5px */ } QTabBar::tab { - border: 1px solid green; - border-top-left-radius: 6px; - border-top-right-radius: 6px; - min-width: 30px; - padding: 2px; - padding-left: 4px; - padding-right: 4px; - margin-right: 3px; + border: 1px solid green; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + min-width: 30px; + padding: 2px; + padding-left: 4px; + padding-right: 4px; + margin-right: 3px; } QTabBar::tab::selected { - background-color: rgba(0, 0, 255, 128); + background-color: rgba(0, 0, 255, 128); } QTabBar::tear { - image: url(:/own/icons/own/transparent1px.png); - max-width: 1px; + image: url(:/own/icons/own/transparent1px.png); + max-width: 1px; } QTabBar QToolButton { /* the scroll buttons are tool buttons */ - background-color: rgba(0, 0, 255, 200); - border: 1px solid green; + background-color: rgba(0, 0, 255, 200); + border: 1px solid green; } QLabel { - background: transparent; + background: transparent; } QLineEdit { - background: transparent; - border: 1px solid green; - border-radius: 5px; + background: transparent; + border: 1px solid green; + border-radius: 5px; } QLineEdit[readOnly="true"] { - background: transparent; + background: transparent; } QCheckBox { - border: 0px solid green; /** also borders label **/ - background: transparent; + border: 0px solid green; /** also borders label **/ + background: transparent; } QTextEdit { - border: 1px solid green; - background: transparent; - border-radius: 5px; + border: 1px solid green; + background: transparent; + border-radius: 5px; } QPlainTextEdit { - border: 1px solid green; - background: transparent; - border-radius: 5px; + border: 1px solid green; + background: transparent; + border-radius: 5px; } QGroupBox { - border: 1px solid green; - margin-top: 2ex; /* leave space at the top for the title */ + border: 1px solid green; + margin-top: 2ex; /* leave space at the top for the title */ } QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: middle center; /* position at the top center */ - padding: 0 3px; + subcontrol-origin: margin; + subcontrol-position: middle center; /* position at the top center */ + padding: 0 3px; } QToolBox::tab { - border: 1px solid green; - border-radius: 6px; - min-width: 30px; - padding: 2px; - padding-left: 4px; - padding-right: 4px; + border: 1px solid green; + border-radius: 6px; + min-width: 30px; + padding: 2px; + padding-left: 4px; + padding-right: 4px; } QToolBox::tab::selected { - background-color: rgba(0, 0, 255, 128); + background-color: rgba(0, 0, 255, 128); } /** no border on page */ QToolBox > QWidget { - border: 0px; + border: 0px; } QComboBox { - border: 1px solid green; - border-radius: 5px; - padding: 1px; - background: transparent; + border: 1px solid green; + border-radius: 5px; + padding: 1px; + background: transparent; } /** drop down list **/ QComboBox QAbstractItemView { - background-color: lightgray; - color: black; + background-color: lightgray; + color: black; } -QDoubleSpinBox { - border: 1px solid green; - border-radius: 5px; - padding: 1px; - background: transparent; +QDoubleSpinBox { + border: 1px solid green; + border-radius: 5px; + padding: 1px; + background: transparent; } -QSpinBox { - border: 1px solid green; - border-radius: 5px; - padding: 1px; - background: transparent; +QSpinBox { + border: 1px solid green; + border-radius: 5px; + padding: 1px; + background: transparent; +} + +QColorDialog { + background-image: url(:/textures/icons/textures/texture-outer.jpg); + background-color: darkslategray; } QMenuBar { - background-image: url(:/textures/icons/textures/texture-outer.jpg); - background-color: darkslategray; + background-image: url(:/textures/icons/textures/texture-outer.jpg); + background-color: darkslategray; + padding: 0px 0px 0px 10px; + margin: 0px 0px 20px 0px; /** removes overlapping bar in frameless mode, why bottom margin helps here, no idea, bug? **/ } QMenuBar::item { - spacing: 3px; /* spacing between menu bar items */ - padding: 1px 4px; - background: transparent; - border-radius: 4px; + spacing: 3px; /* spacing between menu bar items */ + padding: 1px 4px; + background: transparent; + border-radius: 4px; } QMenuBar::item:selected { /* when selected using mouse or keyboard */ - background: black; + background: black; } QMenuBar::item:pressed { - background: black; + background: black; } QMenu { - border: 2px solid darkslategray; /* reserve space for selection border */ - background: lightgray; - color: black; - padding: 2px; + border: 2px solid darkslategray; /* reserve space for selection border */ + background: lightgray; + color: black; + padding: 2px; } QScrollArea { - border: 1px solid green; - border-radius: 5px; + border: 1px solid green; + border-radius: 5px; } QScrollBar:horizontal { - border: 2px solid gray; - background: slategray; - height: 10px; - margin: 0px 5px 0 5px; + border: 2px solid gray; + background: slategray; + height: 10px; + margin: 0px 5px 0px 5px; } QScrollBar:vertical { - border: 2px solid gray; - background: slategray; - width: 10px; - margin: 5px 0 5px 0; + border: 2px solid gray; + background: slategray; + width: 10px; + margin: 5px 0px 5px 0; } QScrollBar::handle:horizontal { - background: black; - min-width: 15px; + background: black; + min-width: 15px; } QScrollBar::handle:vertical { - background: black; - min-height: 15px; + background: black; + min-height: 15px; } QScrollBar::add-line:horizontal { - border: 2px solid gray; - background: blue; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; + border: 2px solid gray; + background: blue; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; } QScrollBar::sub-line:horizontal { - border: 2px solid gray; - background: blue; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; + border: 2px solid gray; + background: blue; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; } QScrollBar::add-line:vertical { - border: 2px solid gray; - background: blue; - height: 5px; - subcontrol-position: bottom; - subcontrol-origin: margin; + border: 2px solid gray; + background: blue; + height: 5px; + subcontrol-position: bottom; + subcontrol-origin: margin; } QScrollBar::sub-line:vertical { - border: 2px solid gray; - background: blue; - height: 5px; - subcontrol-position: top; - subcontrol-origin: margin; + border: 2px solid gray; + background: blue; + height: 5px; + subcontrol-position: top; + subcontrol-origin: margin; } QHeaderView::section { - border: 1px solid black; - background-color: darkslategray; - color: white; /** font **/ - padding: 1px; - margin: 0px; + border: 1px solid black; + background-color: darkslategray; + color: white; /** font **/ + padding: 1px; + margin: 0px; } QTableView { - border: 1px solid green; - border-radius: 5px; - background-color: transparent; - alternate-background-color: darkslategray; - selection-background-color: blue; - margin-left: 2px; - margin-right: 2px; - margin-top: 2px; - margin-bottom: 2px; - padding:0px; + border: 1px solid green; + border-radius: 5px; + background-color: transparent; + alternate-background-color: darkslategray; + selection-background-color: blue; + margin-left: 2px; + margin-right: 2px; + margin-top: 2px; + margin-bottom: 2px; + padding:0px; } QSlider::groove:horizontal { - border: 1px solid gray; - height: 4px; /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */ - background: darkslategray; + border: 1px solid gray; + height: 4px; /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */ + background: darkslategray; } QSlider::handle:horizontal { - background: lightgray; - border: 1px solid darkslategray; - width: 18px; - margin: -2px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ - border-radius: 3px; + background: lightgray; + border: 1px solid darkslategray; + width: 18px; + margin: -2px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ + border-radius: 3px; } QSizeGrip { - image: url(:/diagona/icons/diagona/icons/arrow-in-out.png); - width: 16px; - height: 16px; + image: url(:/diagona/icons/diagona/icons/arrow-in-out.png); + padding: 0px 20px 0px 0px; + width: 16px; + height: 16px; } QStatusBar { - background: transparent; + background: transparent; } QStatusBar::item { - border: none; + border: none; } QStatusBar QLabel { - border: none; + border: none; } diff --git a/src/blackgui/views/atcstationview.cpp b/src/blackgui/views/atcstationview.cpp index 44d7705ac..d62040c02 100644 --- a/src/blackgui/views/atcstationview.cpp +++ b/src/blackgui/views/atcstationview.cpp @@ -27,6 +27,8 @@ namespace BlackGui { Q_ASSERT(this->m_model); this->m_model->setStationMode(stationMode); + this->m_withMenuItemClear = true; + this->m_withMenuItemRefresh = true; switch (stationMode) { diff --git a/src/blackgui/views/statusmessageview.cpp b/src/blackgui/views/statusmessageview.cpp index 6c5ccfe45..9721c01e6 100644 --- a/src/blackgui/views/statusmessageview.cpp +++ b/src/blackgui/views/statusmessageview.cpp @@ -23,6 +23,7 @@ namespace BlackGui */ CStatusMessageView::CStatusMessageView(QWidget *parent) : CViewBase(parent) { + m_withMenuItemClear = true; this->standardInit(new CStatusMessageListModel(this)); } diff --git a/src/blackgui/views/viewbase.cpp b/src/blackgui/views/viewbase.cpp index ce530e0ea..ce5a3be1e 100644 --- a/src/blackgui/views/viewbase.cpp +++ b/src/blackgui/views/viewbase.cpp @@ -49,9 +49,9 @@ namespace BlackGui void CViewBaseNonTemplate::customMenu(QMenu &menu) const { - menu.addAction(BlackMisc::CIcons::refresh16(), "Update", this, SIGNAL(requestUpdate())); - menu.addAction(BlackMisc::CIcons::delete16(), "Clear", this, SLOT(ps_clear())); - menu.addSeparator(); + if (this->m_withMenuItemRefresh) { menu.addAction(BlackMisc::CIcons::refresh16(), "Update", this, SIGNAL(requestUpdate())); } + if (this->m_withMenuItemClear) { menu.addAction(BlackMisc::CIcons::delete16(), "Clear", this, SLOT(ps_clear())); } + if (!menu.isEmpty()) { menu.addSeparator(); } menu.addAction(BlackMisc::CIcons::resize16(), "Full resize", this, SLOT(fullResizeToContents())); // resize to content might decrease performance, diff --git a/src/blackgui/views/viewbase.h b/src/blackgui/views/viewbase.h index 62a82d1b5..c012eb03c 100644 --- a/src/blackgui/views/viewbase.h +++ b/src/blackgui/views/viewbase.h @@ -117,6 +117,8 @@ namespace BlackGui int m_skipResizeThreshold = 40; //!< when to skip resize (rows count) int m_resizeAutoNthTime = 1; //!< with ResizeAuto, resize every n-th time bool m_forceStretchLastColumnWhenResized = false; //!< a small table might (few columns) might to fail stretching, force again + bool m_withMenuItemClear = false; + bool m_withMenuItemRefresh = false; protected slots: //! Helper method with template free signature serving as callback from threaded worker diff --git a/src/swiftgui_standard/mainwindow.ui b/src/swiftgui_standard/mainwindow.ui index dbd26924e..d3c1252b0 100644 --- a/src/swiftgui_standard/mainwindow.ui +++ b/src/swiftgui_standard/mainwindow.ui @@ -90,7 +90,7 @@ - + 0