Changed repo structure
[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     //creating 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 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 }