changeset 1583:2e720fdcab0a

Factor out the menu titling code formerly in MainWindow
author Chris Cannam
date Thu, 26 Mar 2020 11:16:47 +0000
parents 01a41a37bd26
children e5464dc2f6cf
files files.pri widgets/MenuTitle.h
diffstat 2 files changed, 56 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/files.pri	Wed Mar 25 12:08:34 2020 +0000
+++ b/files.pri	Thu Mar 26 11:16:47 2020 +0000
@@ -68,6 +68,7 @@
            widgets/LevelPanToolButton.h \
            widgets/LevelPanWidget.h \
            widgets/ListInputDialog.h \
+           widgets/MenuTitle.h \
            widgets/MIDIFileImportDialog.h \
            widgets/ModelDataTableDialog.h \
            widgets/NotifyingCheckBox.h \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/MenuTitle.h	Thu Mar 26 11:16:47 2020 +0000
@@ -0,0 +1,55 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Sonic Visualiser
+    An audio file viewer and annotation editor.
+    Centre for Digital Music, Queen Mary, University of London.
+    
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License as
+    published by the Free Software Foundation; either version 2 of the
+    License, or (at your option) any later version.  See the file
+    COPYING included with this distribution for more information.
+*/
+
+#ifndef SV_MENU_TITLE_H
+#define SV_MENU_TITLE_H
+
+#include "view/ViewManager.h"
+
+#include <QStyle>
+#include <QWidgetAction>
+#include <QLabel>
+#include <QApplication>
+
+class MenuTitle
+{
+public:
+    static void addTitle(QMenu *m, QString text) {
+
+#ifdef Q_OS_LINUX
+        static int leftIndent = 
+            (ViewManager::scalePixelSize(5) + 
+             2 * qApp->style()->pixelMetric(QStyle::PM_SmallIconSize));
+#else
+#ifdef Q_OS_WIN
+        static int leftIndent =
+            (9 + qApp->style()->pixelMetric(QStyle::PM_SmallIconSize));
+#else
+        static int leftIndent = 16;
+#endif
+#endif
+        
+        QWidgetAction *wa = new QWidgetAction(m);
+        QLabel *title = new QLabel;
+        title->setText(QObject::tr("<b>%1</b>")
+                       .arg(XmlExportable::encodeEntities(text)));
+        title->setMargin(ViewManager::scalePixelSize(3));
+        title->setIndent(leftIndent);
+        wa->setDefaultWidget(title);
+        m->addAction(wa);
+        m->addSeparator();
+    }
+};
+
+#endif