From 59fa80ae571e4895c731ad1ce6db3cebad0ff131 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Mon, 6 Apr 2020 00:14:36 +1000 Subject: [PATCH] ui: on windows, use native menus Minor UI improvement for Windows users. --- app/ui/style/style.cpp | 9 +++++++++ app/ui/style/style.h | 2 ++ app/widget/footagecombobox/footagecombobox.cpp | 4 ++-- app/widget/menu/menu.cpp | 6 ++++++ app/widget/projectexplorer/projectexplorer.cpp | 4 ++-- app/widget/toolbar/toolbar.cpp | 2 +- app/widget/viewer/viewer.cpp | 2 +- app/window/mainwindow/mainmenu.cpp | 3 +++ 8 files changed, 26 insertions(+), 6 deletions(-) diff --git a/app/ui/style/style.cpp b/app/ui/style/style.cpp index 71a066ca3..2dfa15f23 100644 --- a/app/ui/style/style.cpp +++ b/app/ui/style/style.cpp @@ -40,6 +40,15 @@ QList StyleManager::ListInternal() return style_list; } +void StyleManager::UseNativeWindowsStyling(QWidget *widget) +{ +#ifdef Q_OS_WINDOWS + QStyle* s = QStyleFactory::create(QStringLiteral("windowsvista")); + widget->setStyle(s); + widget->setPalette(s->standardPalette()); +#endif +} + QPalette StyleManager::ParsePalette(const QString& ini_path) { QSettings ini(ini_path, QSettings::IniFormat); diff --git a/app/ui/style/style.h b/app/ui/style/style.h index b671572aa..2f4e35b98 100644 --- a/app/ui/style/style.h +++ b/app/ui/style/style.h @@ -48,6 +48,8 @@ public: static QList ListInternal(); + static void UseNativeWindowsStyling(QWidget* widget); + private: static QPalette ParsePalette(const QString& ini_path); diff --git a/app/widget/footagecombobox/footagecombobox.cpp b/app/widget/footagecombobox/footagecombobox.cpp index 1ad5d5a57..1cb280b14 100644 --- a/app/widget/footagecombobox/footagecombobox.cpp +++ b/app/widget/footagecombobox/footagecombobox.cpp @@ -2,9 +2,9 @@ #include #include -#include #include "ui/icons/icons.h" +#include "widget/menu/menu.h" FootageComboBox::FootageComboBox(QWidget *parent) : QComboBox(parent), @@ -20,7 +20,7 @@ void FootageComboBox::showPopup() return; } - QMenu menu; + Menu menu; menu.setMinimumWidth(width()); diff --git a/app/widget/menu/menu.cpp b/app/widget/menu/menu.cpp index 66883bbf4..e5d0d8b0d 100644 --- a/app/widget/menu/menu.cpp +++ b/app/widget/menu/menu.cpp @@ -25,6 +25,8 @@ Menu::Menu(QMenuBar *bar, const QObject* receiver, const char* member) : QMenu(bar) { + StyleManager::UseNativeWindowsStyling(this); + bar->addMenu(this); if (receiver != nullptr) { @@ -35,6 +37,8 @@ Menu::Menu(QMenuBar *bar, const QObject* receiver, const char* member) : Menu::Menu(Menu *menu, const QObject *receiver, const char *member) : QMenu(menu) { + StyleManager::UseNativeWindowsStyling(this); + menu->addMenu(this); if (receiver != nullptr) { @@ -45,11 +49,13 @@ Menu::Menu(Menu *menu, const QObject *receiver, const char *member) : Menu::Menu(QWidget *parent) : QMenu(parent) { + StyleManager::UseNativeWindowsStyling(this); } Menu::Menu(const QString &s, QWidget *parent) : QMenu(s, parent) { + StyleManager::UseNativeWindowsStyling(this); } QAction *Menu::AddItem(const QString &id, diff --git a/app/widget/projectexplorer/projectexplorer.cpp b/app/widget/projectexplorer/projectexplorer.cpp index b2a9694c8..d7af8c3e2 100644 --- a/app/widget/projectexplorer/projectexplorer.cpp +++ b/app/widget/projectexplorer/projectexplorer.cpp @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -32,6 +31,7 @@ #include "core.h" #include "dialog/footageproperties/footageproperties.h" #include "dialog/sequence/sequence.h" +#include "widget/menu/menu.h" ProjectExplorer::ProjectExplorer(QWidget *parent) : QWidget(parent), @@ -231,7 +231,7 @@ void ProjectExplorer::RenameTimerSlot() void ProjectExplorer::ShowContextMenu() { - QMenu menu; + Menu menu; // FIXME: Support for multiple items and items other than Footage QList selected_items = SelectedItems(); diff --git a/app/widget/toolbar/toolbar.cpp b/app/widget/toolbar/toolbar.cpp index 15641d6e4..8030c27c8 100644 --- a/app/widget/toolbar/toolbar.cpp +++ b/app/widget/toolbar/toolbar.cpp @@ -167,7 +167,7 @@ void Toolbar::SnappingButtonClicked(bool b) void Toolbar::AddButtonClicked() { - QMenu m(this); + Menu m(this); for (int i=0;i(i))); diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index 25248f95e..7bc8ef8c0 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -455,7 +455,7 @@ void ViewerWidget::UpdateRendererParameters() void ViewerWidget::ShowContextMenu(const QPoint &pos) { - QMenu menu(static_cast(sender())); + Menu menu(static_cast(sender())); context_menu_widget_ = static_cast(sender()); diff --git a/app/window/mainwindow/mainmenu.cpp b/app/window/mainwindow/mainmenu.cpp index 8e66bffe4..955c378c4 100644 --- a/app/window/mainwindow/mainmenu.cpp +++ b/app/window/mainwindow/mainmenu.cpp @@ -21,6 +21,7 @@ #include "mainmenu.h" #include +#include #include "common/timecodefunctions.h" #include "core.h" @@ -35,6 +36,8 @@ MainMenu::MainMenu(QMainWindow *parent) : QMenuBar(parent) { + StyleManager::UseNativeWindowsStyling(this); + // // FILE MENU //