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;}");
38 MenuWidget::~MenuWidget() {
39 //because tabWidget has no parent we must destroy it
43 void MenuWidget::addSubMenu(QString title, QWidget *widget) {
44 QScrollArea* sa = new QScrollArea(tabWidget);
45 sa->setWidget(widget);
46 sa->setWidgetResizable(true);
47 sa->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
48 tabWidget->addTab(sa, title);
52 void MenuWidget::removeSubMenu(QString title) {
53 for(int i = 0; i < tabWidget->count(); i++) {
54 if(tabWidget->tabText(i) == title) {
55 tabWidget->removeTab(i);
61 QWidget* MenuWidget::createWidget(QWidget *) {
62 /*When we have request to create new widget we return tabWidget.
63 When the menu is closing, tabWidget will receive hideEvent which will set
64 its parent to 0 (NULL) and prevent it from delete, so we can still use this
70 void MenuWidget::hideMenu() {
71 tabWidget->parentWidget()->hide();