view widgets/MenuTitle.h @ 1583:2e720fdcab0a

Factor out the menu titling code formerly in MainWindow
author Chris Cannam
date Thu, 26 Mar 2020 11:16:47 +0000
parents
children 2108af725460
line wrap: on
line source
/* -*- 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