15d74ef46c61f003600300d6c621c7f882487d53
[situare] / src / ui / mainwindow.cpp
1 /*
2    Situare - A location system for Facebook
3    Copyright (C) 2010  Ixonos Plc. Authors:
4
5       Henri Lampela - henri.lampela@ixonos.com
6       Kaj Wallin - kaj.wallin@ixonos.com
7
8    Situare is free software; you can redistribute it and/or
9    modify it under the terms of the GNU General Public License
10    version 2 as published by the Free Software Foundation.
11
12    Situare is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with Situare; if not, write to the Free Software
19    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
20    USA.
21 */
22
23 #include <QtGui>
24 #include "mainwindow.h"
25 #include "listviewtab.h"
26 #include "mapviewtab.h"
27
28 MainWindow::MainWindow(QWidget *parent)
29     : QMainWindow(parent)
30 {
31     QWidget *widget = new QWidget;
32     setCentralWidget(widget);
33     createViews();
34     QVBoxLayout *mainLayout = new QVBoxLayout;
35     infoLabel = new QLabel(tr("Click \"view\", to change between views"),this);
36     infoLabel->setAttribute(Qt::WA_TranslucentBackground, true);
37     mainLayout->addWidget(infoLabel);
38     mainLayout->addWidget(situareViews);
39     widget->setLayout(mainLayout);
40     createMenus();
41
42     this->setWindowTitle(tr("View"));
43 }
44
45 MainWindow::~MainWindow()
46 {
47     /**
48     *   Add delete's if you get memory leak warnings with cppcheck
49     */
50     delete toListViewAct;
51     delete toMapViewAct;
52     delete situareViews;
53     delete infoLabel;
54 }
55
56 void MainWindow::createMenus()
57 {
58     toListViewAct = new QAction(tr("List"), this);
59     connect(toListViewAct, SIGNAL(triggered()), this, SLOT(toListView()));
60     toMapViewAct = new QAction(tr("Map"), this);
61     connect(toMapViewAct, SIGNAL(triggered()), this, SLOT(toMapView()));
62     viewMenu = menuBar()->addMenu(tr("View"));
63     viewMenu->addAction(toListViewAct);
64     viewMenu->addAction(toMapViewAct);
65 }
66
67 void MainWindow::createViews()
68 {
69     situareViews = new QStackedWidget(this);
70     situareViews->addWidget(new SituareListView(this));
71     situareViews->addWidget(new SituareMapView(this));
72 }
73
74 void MainWindow::toListView()
75 {
76     this->situareViews->setCurrentIndex(0);
77     infoLabel->setText(tr("Current: %1").arg(situareViews->currentIndex()));
78     this->setWindowTitle("List");
79 }
80
81 void MainWindow::toMapView()
82 {
83     this->situareViews->setCurrentIndex(1);
84     infoLabel->setText(tr("Current: %1").arg(situareViews->currentIndex()));
85     this->setWindowTitle("Map");
86 }