From f746cb06c0126d36cfe17089134b4954b7e04883 Mon Sep 17 00:00:00 2001 From: "J.B. Langston" Date: Mon, 6 May 2019 18:46:02 -0500 Subject: [PATCH] Remove status bar Move qt_gettext declaration to i18n.h Refresh checked/radio menu items before displaying menus --- src/include/i18n.h | 13 +++++++++++- src/ui/ui-drv/qt/main.cpp | 2 -- src/ui/ui-drv/qt/mainwindow.cpp | 30 ++++++++++++++++++---------- src/ui/ui-drv/qt/mainwindow.h | 20 ++++++++++--------- src/ui/ui-drv/qt/qt.pri | 35 ++++++++++++++++----------------- src/ui/ui-drv/qt/qt_gettext.h | 6 ------ 6 files changed, 60 insertions(+), 46 deletions(-) delete mode 100644 src/ui/ui-drv/qt/qt_gettext.h diff --git a/src/include/i18n.h b/src/include/i18n.h index 039af400..09ef6d30 100644 --- a/src/include/i18n.h +++ b/src/include/i18n.h @@ -1,14 +1,25 @@ #ifndef I18N_H #define I18N_H #include "aconfig.h" + #if defined(HAVE_GETTEXT) +// Use gettext library #include #include + #elif defined (QT_GETTEXT) -#include "qt_gettext.h" +// Emulate gettext call using Qt's translation framework +#define bindtextdomain(x, y) (y) +#define textdomain(x) +const char *qt_gettext(const char *text); #define gettext(STRING) qt_gettext(STRING) + #else +// No I18N available, just pass original string #define gettext(STRING) STRING #endif + +// Define _ as alias for gettext #define _(STRING) gettext(STRING) + #endif diff --git a/src/ui/ui-drv/qt/main.cpp b/src/ui/ui-drv/qt/main.cpp index 040ea16f..20a78303 100644 --- a/src/ui/ui-drv/qt/main.cpp +++ b/src/ui/ui-drv/qt/main.cpp @@ -107,7 +107,6 @@ getMouse (int *x, int *y, int *b) static void printText(int x, int y, const char *text) { - window->showMessage(text); } static void @@ -148,7 +147,6 @@ showHelp (struct uih_context *c, const char *name) QFont getFont() { return QFont(QApplication::font().family(), 12); - //return QFont("Calibri", 12); } int imagePrint(struct image *image, int x, int y, diff --git a/src/ui/ui-drv/qt/mainwindow.cpp b/src/ui/ui-drv/qt/mainwindow.cpp index 259aef0e..e634a5ab 100644 --- a/src/ui/ui-drv/qt/mainwindow.cpp +++ b/src/ui/ui-drv/qt/mainwindow.cpp @@ -12,8 +12,6 @@ MainWindow::MainWindow(QWidget *parent) { setWindowTitle(QCoreApplication::applicationName()); - statusBar()->show(); - m_fractalWidget = new FractalWidget(); setCentralWidget(m_fractalWidget); @@ -51,11 +49,6 @@ void MainWindow::closeEvent(QCloseEvent *) ui_quit(); } -void MainWindow::showMessage(const QString &message) -{ - statusBar()->showMessage(message, 5000); -} - QKeySequence::StandardKey MainWindow::keyForItem(const QString &name) { if (name == "initstate") return QKeySequence::New; @@ -86,7 +79,9 @@ void MainWindow::buildMenu(struct uih_context *uih, const char *name) void MainWindow::buildMenu(struct uih_context *uih, const char *name, QMenu *parent) { - QActionGroup *group = new QActionGroup(parent); + QActionGroup *group = 0; + + connect(parent, SIGNAL(aboutToShow()), SLOT(updateMenuCheckmarks())); const menuitem *item; for (int i = 0; (item = menu_item(name, i)) != NULL; i++) { @@ -107,8 +102,11 @@ void MainWindow::buildMenu(struct uih_context *uih, const char *name, QMenu *par if (item->flags & (MENUFLAG_RADIO | MENUFLAG_CHECKBOX)) { action->setCheckable(true); action->setChecked(menu_enabled(item, uih)); - if (item->flags & MENUFLAG_RADIO) + if (item->flags & MENUFLAG_RADIO) { + if (!group) + group = new QActionGroup(parent); action->setActionGroup(group); + } } connect(action, SIGNAL(triggered()), this, SLOT(activateMenuItem())); parent->addAction(action); @@ -135,10 +133,22 @@ void MainWindow::toggleMenu(struct uih_context *uih, const char *name) void MainWindow::activateMenuItem() { QAction *action = qobject_cast(sender()); - const menuitem *item = menu_findcommand(action->objectName().toLatin1()); + const menuitem *item = menu_findcommand(action->objectName().toUtf8()); ui_menuactivate(item, NULL); } +void MainWindow::updateMenuCheckmarks() +{ + QMenu *menu = qobject_cast(sender()); + foreach(QAction *action, menu->actions()) { + if (action->isCheckable()) { + const menuitem *item = menu_findcommand(action->objectName().toUtf8()); + action->setChecked(menu_enabled(item, globaluih)); + } + } + +} + void MainWindow::showDialog(struct uih_context *uih, const char *name) { const menuitem *item = menu_findcommand(name); diff --git a/src/ui/ui-drv/qt/mainwindow.h b/src/ui/ui-drv/qt/mainwindow.h index c8952ba6..6f49a6c9 100644 --- a/src/ui/ui-drv/qt/mainwindow.h +++ b/src/ui/ui-drv/qt/mainwindow.h @@ -5,7 +5,9 @@ class QImage; class FractalWidget; class MainWindow:public QMainWindow { - Q_OBJECT private:FractalWidget * m_fractalWidget; + Q_OBJECT +private: + FractalWidget * m_fractalWidget; void readSettings (); void writeSettings (); static QKeySequence::StandardKey keyForItem (const QString & name); @@ -13,16 +15,16 @@ class MainWindow:public QMainWindow { void closeEvent (QCloseEvent *); private slots: void activateMenuItem (); + void updateMenuCheckmarks(); public: - MainWindow (QWidget * parent = 0); + MainWindow (QWidget *parent = 0); ~MainWindow (); - FractalWidget * fractalWidget (); - void showMessage (const QString & message); - void buildMenu (struct uih_context *uih, const char *name); - void buildMenu (struct uih_context *uih, const char *name, QMenu * parent); - void popupMenu (struct uih_context *uih, const char *name); - void toggleMenu (struct uih_context *uih, const char *name); - void showDialog (struct uih_context *uih, const char *name); + FractalWidget *fractalWidget(); + void buildMenu(struct uih_context *uih, const char *name); + void buildMenu(struct uih_context *uih, const char *name, QMenu *parent); + void popupMenu(struct uih_context *uih, const char *name); + void toggleMenu(struct uih_context *uih, const char *name); + void showDialog(struct uih_context *uih, const char *name); }; diff --git a/src/ui/ui-drv/qt/qt.pri b/src/ui/ui-drv/qt/qt.pri index ff48f25b..81f9839b 100644 --- a/src/ui/ui-drv/qt/qt.pri +++ b/src/ui/ui-drv/qt/qt.pri @@ -1,18 +1,17 @@ -INCLUDEPATH += $$PWD - -macx:ICON = $$PWD/XaoS.icns -win32:RC_FILE = $$PWD/xaos.rc - -SOURCES += \ - $$PWD/main.cpp \ - $$PWD/mainwindow.cpp \ - $$PWD/fractalwidget.cpp \ - $$PWD/customdialog.cpp - -HEADERS += \ - $$PWD/mainwindow.h \ - $$PWD/fractalwidget.h \ - $$PWD/customdialog.h \ - $$PWD/aconfig.h \ - $$PWD/qt_gettext.h \ - $$PWD/version.h +INCLUDEPATH += $$PWD + +macx:ICON = $$PWD/XaoS.icns +win32:RC_FILE = $$PWD/xaos.rc + +SOURCES += \ + $$PWD/main.cpp \ + $$PWD/mainwindow.cpp \ + $$PWD/fractalwidget.cpp \ + $$PWD/customdialog.cpp + +HEADERS += \ + $$PWD/mainwindow.h \ + $$PWD/fractalwidget.h \ + $$PWD/customdialog.h \ + $$PWD/aconfig.h \ + $$PWD/version.h diff --git a/src/ui/ui-drv/qt/qt_gettext.h b/src/ui/ui-drv/qt/qt_gettext.h deleted file mode 100644 index 6a76f7a3..00000000 --- a/src/ui/ui-drv/qt/qt_gettext.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef LIBINTL_H -#define LIBINTL_H -#define bindtextdomain(x, y) (y) -#define textdomain(x) -const char *qt_gettext(const char *text); -#endif