changes in xsl and css, 0 instead of NULL in code
[mdictionary] / src / mdictionary / 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 //! \file MenuWidget.cpp
23 //! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
24
25 #include "MenuWidget.h"
26 #include <QDebug>
27 #include <QtGui>
28
29 MenuWidget::MenuWidget(QWidget *parent) :
30     QWidgetAction(parent) {
31
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;}");
35
36 }
37
38 MenuWidget::~MenuWidget() {
39     //because tabWidget has no parent we must destroy it
40    delete tabWidget;
41 }
42
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);
49 }
50
51
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);
56             break;
57         }
58     }
59 }
60
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
65     widget*/
66     return tabWidget;
67
68 }
69
70 void MenuWidget::hideMenu() {
71     tabWidget->parentWidget()->hide();
72 }