diff options
author | Teus Benschop <teusjannette@gmail.com> | 2017-10-06 12:24:31 +0200 |
---|---|---|
committer | Teus Benschop <teusjannette@gmail.com> | 2017-10-06 12:24:31 +0200 |
commit | 90d2181239761f8950b95768d3b037843e9e8b50 (patch) | |
tree | 6cc667ab420cc04029de2de7e361d2305e214595 /src/frontend/displaywindow/bttextwindowheaderwidget.cpp | |
parent | 1ea03c0fce8066c1e22188447b4a6ca4dcef1201 (diff) |
New upstream version 2.11.0
Diffstat (limited to 'src/frontend/displaywindow/bttextwindowheaderwidget.cpp')
-rw-r--r-- | src/frontend/displaywindow/bttextwindowheaderwidget.cpp | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/src/frontend/displaywindow/bttextwindowheaderwidget.cpp b/src/frontend/displaywindow/bttextwindowheaderwidget.cpp index a974c2c..b8201ad 100644 --- a/src/frontend/displaywindow/bttextwindowheaderwidget.cpp +++ b/src/frontend/displaywindow/bttextwindowheaderwidget.cpp @@ -2,27 +2,26 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2014 by the BibleTime developers. +* Copyright 1999-2016 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ #include "frontend/displaywindow/bttextwindowheaderwidget.h" +#include <QHBoxLayout> +#include <QLabel> #include <QMenu> -#include <QString> #include <QToolButton> #include <QToolTip> -#include <QHBoxLayout> #include <QSizePolicy> -#include <QLabel> - +#include <QString> #include "backend/config/btconfig.h" #include "backend/managers/cswordbackend.h" #include "bibletimeapp.h" #include "frontend/displaywindow/bttextwindowheader.h" +#include "util/btconnect.h" #include "util/cresmgr.h" -#include "util/geticon.h" namespace { @@ -30,11 +29,12 @@ const QString BookshelfShowHiddenKey = "GUI/bookshelfShowHidden"; } // anonymous namespace const char* ActionType = "ActionType"; +const char * ModuleName = "ModuleName"; BtTextWindowHeaderWidget::BtTextWindowHeaderWidget(BtTextWindowHeader *parent, CSwordModuleInfo::ModuleType mtype) : QWidget(parent), m_moduleType(mtype), - m_popup(0) { + m_popup(nullptr) { QHBoxLayout* layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); @@ -92,9 +92,11 @@ void BtTextWindowHeaderWidget::updateWidget(QStringList newModulesToUse, QString QListIterator<QMenu*> it(m_submenus); while (it.hasNext()) { QMenu* popup = it.next(); - foreach (QAction* a, popup->actions()) { - a->setChecked( (a->text() == thisModule) ? true : false ); - a->setDisabled( newModulesToUse.contains(a->text()) ? true : false ); + Q_FOREACH(QAction * const a, popup->actions()) { + a->setChecked(a->property(ModuleName).toString() == thisModule); + a->setDisabled( + newModulesToUse.contains( + a->property(ModuleName).toString())); } } @@ -113,7 +115,7 @@ void BtTextWindowHeaderWidget::updateWidget(QStringList newModulesToUse, QString if (typeText != QObject::tr("Replace")) continue; QMenu* menuType = actionType->menu(); - if (menuType == 0) + if (menuType == nullptr) continue; QList<QAction*> actions = menuType->actions(); for (int i=0; i<actions.count(); i++) { @@ -134,11 +136,11 @@ void BtTextWindowHeaderWidget::moduleChosen( QAction* action ) { return; } if (action->property(ActionType).toInt() == AddAction) { - emit sigModuleAdd(m_id + 1, action->text()); + emit sigModuleAdd(m_id + 1, action->property(ModuleName).toString()); return; } if (action->property(ActionType).toInt() == ReplaceAction) { - emit sigModuleReplace(m_id, action->text()); + emit sigModuleReplace(m_id, action->property(ModuleName).toString()); } } @@ -147,30 +149,31 @@ void BtTextWindowHeaderWidget::populateMenu() { delete m_popup; m_popup = new QMenu(m_button); - connect(m_popup, SIGNAL(triggered(QAction*)), this, SLOT(moduleChosen(QAction*))); + BT_CONNECT(m_popup, SIGNAL(triggered(QAction *)), + this, SLOT(moduleChosen(QAction *))); m_button->setMenu(m_popup); m_removeAction = new QAction(tr("Remove"), m_popup); m_removeAction->setProperty(ActionType, RemoveAction); - m_removeAction->setIcon(util::getIcon(CResMgr::displaywindows::general::removemoduleicon)); + m_removeAction->setIcon(CResMgr::displaywindows::general::icon_removeModule()); m_popup->addAction(m_removeAction); // Add Replace and Add menus, both have all modules in them QMenu* replaceItem = new QMenu(tr("Replace"), m_popup); - replaceItem->setIcon(util::getIcon(CResMgr::displaywindows::general::replacemoduleicon)); + replaceItem->setIcon(CResMgr::displaywindows::general::icon_replaceModule()); replaceItem->setProperty(ActionType, ReplaceAction); m_popup->addMenu(replaceItem); QMenu* addItem = new QMenu(tr("Add"), m_popup); addItem->setProperty(ActionType, AddAction); - addItem->setIcon(util::getIcon(CResMgr::displaywindows::general::addmoduleicon)); + addItem->setIcon(CResMgr::displaywindows::general::icon_addModule()); m_popup->addMenu(addItem); QList<QMenu*> toplevelMenus; toplevelMenus.append(replaceItem); toplevelMenus.append(addItem); - foreach(QMenu* menu, toplevelMenus) { + Q_FOREACH(QMenu * const menu, toplevelMenus) { // ******* Add categories, languages and modules ******** // Filters: add only non-hidden, non-locked and correct type BTModuleTreeItem::HiddenOff hiddenFilter; @@ -181,6 +184,8 @@ void BtTextWindowHeaderWidget::populateMenu() { TypeFilter typeFilter(m_moduleType); filters.append(&typeFilter); + TypeOfAction const typeOfAction = + static_cast<TypeOfAction>(menu->property(ActionType).toInt()); if (m_moduleType == CSwordModuleInfo::Bible) { BTModuleTreeItem root(filters, BTModuleTreeItem::CatLangMod); QList<BTModuleTreeItem::Filter*> filters2; @@ -192,18 +197,17 @@ void BtTextWindowHeaderWidget::populateMenu() { filters2.append(&typeFilter2); root.add_items(filters2); } - addItemToMenu(&root, menu, (TypeOfAction)menu->property(ActionType).toInt()); + addItemToMenu(&root, menu, typeOfAction); } else { BTModuleTreeItem root(filters, BTModuleTreeItem::LangMod); - addItemToMenu(&root, menu, (TypeOfAction)menu->property(ActionType).toInt()); + addItemToMenu(&root, menu, typeOfAction); } } } void BtTextWindowHeaderWidget::addItemToMenu(BTModuleTreeItem* item, QMenu* menu, TypeOfAction actionType) { - foreach (BTModuleTreeItem* i, item->children()) { - + Q_FOREACH(BTModuleTreeItem * const i, item->children()) { if (i->type() == BTModuleTreeItem::Language || i->type() == BTModuleTreeItem::Category) { // argument menu was m_popup, create and add a new lang menu to it @@ -219,6 +223,7 @@ void BtTextWindowHeaderWidget::addItemToMenu(BTModuleTreeItem* item, QMenu* menu QAction* modItem = new QAction(name, menu); modItem->setCheckable(true); modItem->setProperty(ActionType, actionType); + modItem->setProperty(ModuleName, name); menu->addAction(modItem); } } |