1 /*******************************************************************************
3 This file is part of mDictionary.
5 mDictionary is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 mDictionary is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with mDictionary. If not, see <http://www.gnu.org/licenses/>.
18 Copyright 2010 Comarch S.A.
20 *******************************************************************************/
22 //! \file MenuWidget.cpp
23 //! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
25 #include "MenuWidget.h"
29 MenuWidget::MenuWidget(QWidget *parent) :
30 QWidgetAction(parent) {
32 //creates custom tab widget, and sets style sheet to have centered tabs
33 tabWidget = new MenuTabWidget();
34 tabWidget->setStyleSheet("QTabWidget::tab-bar {alignment: center;}");
40 MenuWidget::~MenuWidget() {
41 //because tabWidget has no parent we must destroy it
45 void MenuWidget::addSubMenu(QString title, QWidget *widget) {
46 QScrollArea* sa = new QScrollArea(tabWidget);
47 sa->setWidget(widget);
48 sa->setWidgetResizable(true);
49 sa->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
50 tabWidget->addTab(sa, title);
54 void MenuWidget::removeSubMenu(QString title) {
55 for(int i = 0; i < tabWidget->count(); i++) {
56 if(tabWidget->tabText(i) == title) {
57 tabWidget->removeTab(i);
63 QWidget* MenuWidget::createWidget(QWidget *parent) {
64 /*When we have request to create new widget we return tabWidget.
65 When the menu is closing, tabWidget will receive hideEvent which will set
66 its parent to 0 (NULL) and prevent it from delete, so we can still use this
68 if(applicationMenu==0) {
69 applicationMenu = parent;
70 Q_EMIT setApplicationMenu(applicationMenu);
76 void MenuWidget::hideMenu() {
77 tabWidget->parentWidget()->hide();
81 void MenuWidget::showMenu() {
82 tabWidget->parentWidget()->show();