Mercurial > octave
diff libgui/src/octave-dock-widget.cc @ 24014:bffd7d826887
style fixes for some GUI source files
* files-dock-widget.cc, files-dock-widget.h, octave-cmd.cc,
octave-cmd.h, octave-dock-widget.cc, octave-dock-widget.h,
resource-manager.cc, resource-manager.h, shortcut-manager.cc,
shortcut-manager.h, variable-editor-model.cc, variable-editor-model.h,
variable-editor.cc, variable-editor.h, welcome-wizard.cc,
welcome-wizard.h, workspace-model.cc, workspace-model.h,
workspace-view.cc, workspace-view.h: Use m_ prefix for member
variables, order functions consistently in header and source files,
and follow more Octave coding conventions.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 06 Sep 2017 12:53:28 -0400 |
parents | 336f89b6208b |
children | dc85329e6778 |
line wrap: on
line diff
--- a/libgui/src/octave-dock-widget.cc Wed Sep 06 09:10:27 2017 -0700 +++ b/libgui/src/octave-dock-widget.cc Wed Sep 06 12:53:28 2017 -0400 @@ -40,9 +40,9 @@ octave_dock_widget::octave_dock_widget (QWidget *p) : QDockWidget (p) { - _parent = static_cast<QMainWindow *> (p); // store main window - _floating = false; - _predecessor_widget = nullptr; + m_parent = static_cast<QMainWindow *> (p); // store main window + m_floating = false; + m_predecessor_widget = nullptr; connect (this, SIGNAL (visibilityChanged (bool)), this, SLOT (handle_visibility_changed (bool))); @@ -56,7 +56,7 @@ octave_dock_widget*))); QStyle *st = style (); - _icon_size = 0.75*st->pixelMetric (QStyle::PM_SmallIconSize); + m_icon_size = 0.75*st->pixelMetric (QStyle::PM_SmallIconSize); #if defined (Q_OS_WIN32) // windows: add an extra title bar that persists when floating @@ -64,39 +64,39 @@ setFeatures (QDockWidget::DockWidgetMovable); // not floatable or closeable // the custom (extra) title bar of the widget - _dock_action = new QAction + m_dock_action = new QAction (QIcon (":/actions/icons/widget-undock.png"), "", this); - _dock_action-> setToolTip (tr ("Undock widget")); - connect (_dock_action, SIGNAL (triggered (bool)), + m_dock_action-> setToolTip (tr ("Undock widget")); + connect (m_dock_action, SIGNAL (triggered (bool)), this, SLOT (change_floating (bool))); - _dock_button = new QToolButton (this); - _dock_button->setDefaultAction (_dock_action); - _dock_button->setFocusPolicy (Qt::NoFocus); - _dock_button->setIconSize (QSize (_icon_size,_icon_size)); + m_dock_button = new QToolButton (this); + m_dock_button->setDefaultAction (m_dock_action); + m_dock_button->setFocusPolicy (Qt::NoFocus); + m_dock_button->setIconSize (QSize (m_icon_size,m_icon_size)); - _close_action = new QAction + m_close_action = new QAction (QIcon (":/actions/icons/widget-close.png"), "", this); - _close_action-> setToolTip (tr ("Hide widget")); - connect (_close_action, SIGNAL (triggered (bool)), + m_close_action-> setToolTip (tr ("Hide widget")); + connect (m_close_action, SIGNAL (triggered (bool)), this, SLOT (change_visibility (bool))); - _close_button = new QToolButton (this); - _close_button->setDefaultAction (_close_action); - _close_button->setFocusPolicy (Qt::NoFocus); - _close_button->setIconSize (QSize (_icon_size,_icon_size)); + m_close_button = new QToolButton (this); + m_close_button->setDefaultAction (m_close_action); + m_close_button->setFocusPolicy (Qt::NoFocus); + m_close_button->setIconSize (QSize (m_icon_size,m_icon_size)); - _icon_color = ""; - _title_3d = 50; + m_icon_color = ""; + m_title_3d = 50; QHBoxLayout *h_layout = new QHBoxLayout (); h_layout->addStretch (100); - h_layout->addWidget (_dock_button); - h_layout->addWidget (_close_button); + h_layout->addWidget (m_dock_button); + h_layout->addWidget (m_close_button); h_layout->setSpacing (0); h_layout->setContentsMargins (5,2,2,2); - _title_widget = new QWidget (); - _title_widget->setLayout (h_layout); - setTitleBarWidget (_title_widget); + m_title_widget = new QWidget (); + m_title_widget->setLayout (h_layout); + setTitleBarWidget (m_title_widget); #else @@ -125,33 +125,6 @@ setFocusPolicy (Qt::StrongFocus); } -void -octave_dock_widget::save_settings (void) -{ - // save state of this dock-widget - QString name = objectName (); - QSettings *settings = resource_manager::get_settings (); - - if (! settings) - return; - - settings->beginGroup ("DockWidgets"); - -#if defined (Q_OS_WIN32) - if (_floating) // widget is floating (windows), save actual floating geometry - settings->setValue (name+"_floating_geometry", geometry ()); - else // not floating save docked (normal) geometry -#endif - settings->setValue (name, saveGeometry ()); - - settings->setValue (name+"Visible", isVisible ()); // store visibility - settings->setValue (name+"Floating", _floating); // store visibility - settings->setValue (name+"_minimized", isMinimized ()); // store minimized - - settings->endGroup (); - settings->sync (); -} - // connect signal visibility changed to related slot (called from main-window) void octave_dock_widget::connect_visibility_changed (void) @@ -161,40 +134,9 @@ emit active_changed (isVisible ()); // emit once for init of window menu } -// set the widget which previously had focus when tabified -void -octave_dock_widget::set_predecessor_widget (octave_dock_widget *prev_widget) -{ - _predecessor_widget = prev_widget; -} - -// set the title in the dockwidgets title bar -void -octave_dock_widget::set_title (const QString& title) -{ -#if defined (Q_OS_WIN32) - QHBoxLayout *h_layout - = static_cast<QHBoxLayout *> (titleBarWidget ()->layout ()); - QLabel *label = new QLabel (title); - label->setStyleSheet ("background: transparent;"); - h_layout->insertWidget (0,label); -#endif - setWindowTitle (title); -} - -// set focus to previously active widget in tabbed widget stack -void -octave_dock_widget::set_focus_predecessor () -{ - if (_predecessor_widget) // only != 0 if widget was tabbed - _predecessor_widget->focus (); - - _predecessor_widget = nullptr; -} - // make the widget floating void -octave_dock_widget::make_window () +octave_dock_widget::make_window (void) { #if defined (Q_OS_WIN32) @@ -205,15 +147,15 @@ // save the docking area and geometry for later redocking // FIXME: dockWidgetArea always returns 2 settings->setValue ("DockWidgets/" + objectName () + "_dock_area", - _parent->dockWidgetArea (this)); + m_parent->dockWidgetArea (this)); settings->setValue ("DockWidgets/" + objectName (), saveGeometry ()); settings->sync (); // remove parent and adjust the (un)dock icon setParent (0, Qt::Window); - _dock_action->setIcon (QIcon (":/actions/icons/widget-dock" - + _icon_color + ".png")); - _dock_action->setToolTip (tr ("Dock widget")); + m_dock_action->setIcon (QIcon (":/actions/icons/widget-dock" + + m_icon_color + ".png")); + m_dock_action->setToolTip (tr ("Dock widget")); // restore the last geometry when floating setGeometry (settings->value ("DockWidgets/" + objectName () @@ -231,7 +173,7 @@ #endif - _floating = true; + m_floating = true; set_focus_predecessor (); // set focus previously active widget if tabbed } @@ -247,7 +189,7 @@ QSettings *settings = resource_manager::get_settings (); // save last floating geometry if widget really was floating - if (_floating) + if (m_floating) settings->setValue ("DockWidgets/" + objectName () + "_floating_geometry", geometry ()); settings->sync (); @@ -258,7 +200,7 @@ int area = settings->value ("DockWidgets/" + objectName () + "_dock_area", Qt::TopDockWidgetArea).toInt (); - _parent->addDockWidget (static_cast<Qt::DockWidgetArea> (area), this); + m_parent->addDockWidget (static_cast<Qt::DockWidgetArea> (area), this); // FIXME: restoreGeometry is ignored for docked widgets // and its child widget @@ -266,12 +208,12 @@ ("DockWidgets/" + objectName ()).toByteArray ()); } else // only reparent, no docking - setParent (_parent); + setParent (m_parent); // adjust the (un)dock icon - _dock_action->setIcon (QIcon (":/actions/icons/widget-undock" - + _icon_color + ".png")); - _dock_action->setToolTip (tr ("Undock widget")); + m_dock_action->setIcon (QIcon (":/actions/icons/widget-undock" + + m_icon_color + ".png")); + m_dock_action->setToolTip (tr ("Undock widget")); #else @@ -287,14 +229,149 @@ #endif - _floating = false; + m_floating = false; +} + +// set the title in the dockwidgets title bar +void +octave_dock_widget::set_title (const QString& title) +{ +#if defined (Q_OS_WIN32) + QHBoxLayout *h_layout + = static_cast<QHBoxLayout *> (titleBarWidget ()->layout ()); + QLabel *label = new QLabel (title); + label->setStyleSheet ("background: transparent;"); + h_layout->insertWidget (0,label); +#endif + setWindowTitle (title); +} + +// set the widget which previously had focus when tabified +void +octave_dock_widget::set_predecessor_widget (octave_dock_widget *prev_widget) +{ + m_predecessor_widget = prev_widget; +} + +// close event +void +octave_dock_widget::closeEvent (QCloseEvent *e) +{ + emit active_changed (false); + set_focus_predecessor (); + QDockWidget::closeEvent (e); +} + +// get focus widget +QWidget * +octave_dock_widget::focusWidget (void) +{ + QWidget *w = QApplication::focusWidget (); + if (w && w->focusProxy ()) w = w->focusProxy (); + return w; +} + +void +octave_dock_widget::handle_settings (const QSettings *settings) +{ + m_custom_style + = settings->value ("DockWidgets/widget_title_custom_style",false).toBool (); + + m_title_3d + = settings->value ("DockWidgets/widget_title_3d",50).toInt (); + + QColor default_var = QColor (0,0,0); + m_fg_color = settings->value ("Dockwidgets/title_fg_color", + default_var).value<QColor> (); + default_var = QColor (0,0,0); + m_fg_color_active = settings->value ("Dockwidgets/title_fg_color_active", + default_var).value<QColor> (); + + default_var = QColor (255,255,255); + m_bg_color = settings->value ("Dockwidgets/title_bg_color", + default_var).value<QColor> (); + default_var = QColor (192,192,192); + m_bg_color_active = settings->value ("Dockwidgets/title_bg_color_active", + default_var).value<QColor> (); + + int r, g, b; + m_bg_color.getRgb (&r, &g, &b); + if (r+g+b < 400) + m_icon_color = "-light"; + else + m_icon_color = ""; + + m_bg_color_active.getRgb (&r, &g, &b); + if (r+g+b < 400) + m_icon_color_active = "-light"; + else + m_icon_color_active = ""; + + notice_settings (settings); // call individual handler + + set_style (false); +} + +void +octave_dock_widget::handle_active_dock_changed (octave_dock_widget *w_old, + octave_dock_widget *w_new) +{ + if (m_custom_style && this == w_old) + { + set_style (false); + update (); + } + + if (m_custom_style && this == w_new) + { + set_style (true); + update (); + } +} + +void +octave_dock_widget::save_settings (void) +{ + // save state of this dock-widget + QString name = objectName (); + QSettings *settings = resource_manager::get_settings (); + + if (! settings) + return; + + settings->beginGroup ("DockWidgets"); + +#if defined (Q_OS_WIN32) + if (m_floating) // widget is floating (windows), save actual floating geometry + settings->setValue (name+"_floating_geometry", geometry ()); + else // not floating save docked (normal) geometry +#endif + settings->setValue (name, saveGeometry ()); + + settings->setValue (name+"Visible", isVisible ()); // store visibility + settings->setValue (name+"Floating", m_floating); // store visibility + settings->setValue (name+"_minimized", isMinimized ()); // store minimized + + settings->endGroup (); + settings->sync (); +} + +bool octave_dock_widget::eventFilter (QObject *obj, QEvent *e) +{ + if (e->type () == QEvent::NonClientAreaMouseButtonDblClick) + { + e->ignore (); // ignore double clicks into window decoration elements + return true; + } + + return QDockWidget::eventFilter (obj,e); } // slot for (un)dock action void octave_dock_widget::change_floating (bool) { - if (_floating) + if (m_floating) make_widget (); else { @@ -311,15 +388,6 @@ emit active_changed (false); } -// get focus widget -QWidget * -octave_dock_widget::focusWidget () -{ - QWidget *w = QApplication::focusWidget (); - if (w && w->focusProxy ()) w = w->focusProxy (); - return w; -} - void octave_dock_widget::set_style (bool active) { @@ -327,9 +395,9 @@ QString css_button; QString dock_icon; - QString icon_col = _icon_color; + QString icon_col = m_icon_color; - if (_floating) + if (m_floating) dock_icon = "widget-dock"; else dock_icon = "widget-undock"; @@ -339,34 +407,34 @@ #else QString alignment = "center left"; #endif - if (_custom_style) + if (m_custom_style) { QColor bg_col, fg_col; if (active) { - bg_col = _bg_color_active; - fg_col = _fg_color_active; - icon_col = _icon_color_active; + bg_col = m_bg_color_active; + fg_col = m_fg_color_active; + icon_col = m_icon_color_active; } else { - bg_col = _bg_color; - fg_col = _fg_color; - icon_col = _icon_color; + bg_col = m_bg_color; + fg_col = m_fg_color; + icon_col = m_icon_color; } QColor bg_col_top, bg_col_bottom; - if (_title_3d > 0) + if (m_title_3d > 0) { - bg_col_top = bg_col.lighter (100 + _title_3d); - bg_col_bottom = bg_col.darker (100 + _title_3d); + bg_col_top = bg_col.lighter (100 + m_title_3d); + bg_col_bottom = bg_col.darker (100 + m_title_3d); } else { - bg_col_top = bg_col.darker (100 - _title_3d); - bg_col_bottom = bg_col.lighter (100 - _title_3d); + bg_col_top = bg_col.darker (100 - m_title_3d); + bg_col_bottom = bg_col.lighter (100 - m_title_3d); } QString background = @@ -388,7 +456,7 @@ "QDockWidget::close-button," "QDockWidget::float-button { border: 0px; icon-size: %3px; width: %3px}" ). - arg (fg_col.name ()).arg (icon_col).arg (_icon_size); + arg (fg_col.name ()).arg (icon_col).arg (m_icon_size); #endif } else @@ -403,98 +471,30 @@ " titlebar-normal-icon: url(:/actions/icons/"+dock_icon+"); }" "QDockWidget::close-button," "QDockWidget::float-button { border: 0px; icon-size: %1px; width: %1px}" - ).arg (_icon_size); + ).arg (m_icon_size); #endif } #if defined (Q_OS_WIN32) - _title_widget->setStyleSheet (css); + m_title_widget->setStyleSheet (css); css_button = QString ("background: transparent; border: 0px;"); - _dock_button->setStyleSheet (css_button); - _close_button->setStyleSheet (css_button); - _dock_action->setIcon (QIcon (":/actions/icons/" + dock_icon + icon_col + + m_dock_button->setStyleSheet (css_button); + m_close_button->setStyleSheet (css_button); + m_dock_action->setIcon (QIcon (":/actions/icons/" + dock_icon + icon_col + ".png")); - _close_action->setIcon (QIcon (":/actions/icons/widget-close" + icon_col + + m_close_action->setIcon (QIcon (":/actions/icons/widget-close" + icon_col + ".png")); #else setStyleSheet (css); #endif } +// set focus to previously active widget in tabbed widget stack void -octave_dock_widget::handle_settings (const QSettings *settings) +octave_dock_widget::set_focus_predecessor (void) { - _custom_style - = settings->value ("DockWidgets/widget_title_custom_style",false).toBool (); - - _title_3d - = settings->value ("DockWidgets/widget_title_3d",50).toInt (); - - QColor default_var = QColor (0,0,0); - _fg_color = settings->value ("Dockwidgets/title_fg_color", - default_var).value<QColor> (); - default_var = QColor (0,0,0); - _fg_color_active = settings->value ("Dockwidgets/title_fg_color_active", - default_var).value<QColor> (); - - default_var = QColor (255,255,255); - _bg_color = settings->value ("Dockwidgets/title_bg_color", - default_var).value<QColor> (); - default_var = QColor (192,192,192); - _bg_color_active = settings->value ("Dockwidgets/title_bg_color_active", - default_var).value<QColor> (); - - int r, g, b; - _bg_color.getRgb (&r, &g, &b); - if (r+g+b < 400) - _icon_color = "-light"; - else - _icon_color = ""; - - _bg_color_active.getRgb (&r, &g, &b); - if (r+g+b < 400) - _icon_color_active = "-light"; - else - _icon_color_active = ""; - - notice_settings (settings); // call individual handler + if (m_predecessor_widget) // only != 0 if widget was tabbed + m_predecessor_widget->focus (); - set_style (false); -} - -bool octave_dock_widget::eventFilter (QObject *obj, QEvent *e) -{ - if (e->type () == QEvent::NonClientAreaMouseButtonDblClick) - { - e->ignore (); // ignore double clicks into window decoration elements - return true; - } - - return QDockWidget::eventFilter (obj,e); + m_predecessor_widget = nullptr; } - -void -octave_dock_widget::handle_active_dock_changed (octave_dock_widget *w_old, - octave_dock_widget *w_new) -{ - if (_custom_style && this == w_old) - { - set_style (false); - update (); - } - - if (_custom_style && this == w_new) - { - set_style (true); - update (); - } -} - -// close event -void -octave_dock_widget::closeEvent (QCloseEvent *e) -{ - emit active_changed (false); - set_focus_predecessor (); - QDockWidget::closeEvent (e); -}