fa6210bbcf6b2ba95178342bf0cba329458d945e
[mdictionary] / trunk / src / base / gui / MenuWidget.cpp
1 /*******************************************************************************
2
3     This file is part of mDictionary.
4
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.
9
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.
14
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/>.
17
18     Copyright 2010 Comarch S.A.
19
20 *******************************************************************************/
21
22 //Created by Mateusz Półrola
23
24 #include "MenuWidget.h"
25 #include <QDebug>
26 #include <QtGui>
27
28 MenuWidget::MenuWidget(QWidget *parent) :
29     QWidgetAction(parent) {
30
31     //creating custom tab widget, and sets style sheet to have centered tabs
32     tabWidget = new MenuTabWidget();
33     tabWidget->setStyleSheet("QTabWidget::tab-bar {alignment: center;}");
34
35 }
36
37 MenuWidget::~MenuWidget() {
38     //because tabWidget have no parent we must destroy it
39    delete tabWidget;
40 }
41
42 void MenuWidget::addSubMenu(QString title, QWidget *widget) {
43     QScrollArea* sa = new QScrollArea(tabWidget);
44     sa->setWidget(widget);
45     sa->setWidgetResizable(true);
46     sa->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
47     tabWidget->addTab(sa, title);
48 }
49
50
51 void MenuWidget::removeSubMenu(QString title) {
52     for(int i = 0; i < tabWidget->count(); i++) {
53         if(tabWidget->tabText(i) == title) {
54             tabWidget->removeTab(i);
55             break;
56         }
57     }
58 }
59
60 QWidget* MenuWidget::createWidget(QWidget *) {
61     /*When we have request to create new widget we returns tabWidget.
62     When the menu is closing, tabWidget will receive hideEvent which will set
63     it parent to NULL and prevent it from delete, so we can still use this
64     widget*/
65     return tabWidget;
66
67 }
68
69 void MenuWidget::hideMenu() {
70     tabWidget->parentWidget()->hide();
71 }