#include "mainwindow.h"
#include "listviewscreen.h"
#include "mapviewscreen.h"
+#include "settingsdialog.h"
+#include "facebookservice/facebookauthentication.h"
+#include "situareservice/situareservice.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
qDebug() << __PRETTY_FUNCTION__;
- QWidget *widget = new QWidget;
- setCentralWidget(widget);
+
createViews();
- QVBoxLayout *mainLayout = new QVBoxLayout;
- infoLabel = new QLabel(tr("Click \"view\", to change between views"),this);
- infoLabel->setAttribute(Qt::WA_TranslucentBackground, true);
- mainLayout->addWidget(infoLabel);
- mainLayout->addWidget(situareViews);
- widget->setLayout(mainLayout);
+ setCentralWidget(m_situareViews);
createMenus();
+ setWindowTitle(tr("List view"));
+ this->hide();
+
+ m_locationDialog = new UpdateLocationDialog(this);
+ connect(m_listViewScreen->m_personalInfo,SIGNAL(launchMessageUpdate()),
+ this,SLOT(openLocationUpdateDialog()));
- setWindowTitle(tr("View"));
+ connect(this, SIGNAL(reverseGeoReady(QString)), m_locationDialog, SLOT(setAddress(QString)));
+ connect(m_locationDialog, SIGNAL(statusUpdate(QString,bool)), this,
+ SIGNAL(statusUpdate(QString,bool)));
+ connect(this, SIGNAL(userLocationReady(User*)),
+ m_mapViewScreen, SLOT(userLocationReady(User*)));
+ connect(this, SIGNAL(friendsLocationsReady(QList<User*>&)),
+ m_mapViewScreen, SLOT(friendsLocationsReady(QList<User*>&)));
}
MainWindow::~MainWindow()
{
qDebug() << __PRETTY_FUNCTION__;
- delete toListViewAct;
- delete toMapViewAct;
- delete situareViews;
- delete infoLabel;
+ delete m_toListViewAct;
+ delete m_toMapViewAct;
+ delete m_toSettingsAct;
+ delete m_situareViews;
}
void MainWindow::createMenus()
{
qDebug() << __PRETTY_FUNCTION__;
- toListViewAct = new QAction(tr("List"), this);
- connect(toListViewAct, SIGNAL(triggered()), this, SLOT(toListView()));
- toMapViewAct = new QAction(tr("Map"), this);
- connect(toMapViewAct, SIGNAL(triggered()), this, SLOT(toMapView()));
- viewMenu = menuBar()->addMenu(tr("View"));
- viewMenu->addAction(toListViewAct);
- viewMenu->addAction(toMapViewAct);
+ m_toListViewAct = new QAction(tr("List"), this);
+ m_toListViewAct->setObjectName(tr("List"));
+ connect(m_toListViewAct, SIGNAL(triggered()), this, SLOT(toListView()));
+ m_toMapViewAct = new QAction(tr("Map"), this);
+ m_toMapViewAct->setObjectName(tr("Map"));
+ connect(m_toMapViewAct, SIGNAL(triggered()), this, SLOT(toMapView()));
+ m_toSettingsAct = new QAction(tr("Settings"), this);
+ m_toSettingsAct->setObjectName(tr("Settings"));
+ connect(m_toSettingsAct, SIGNAL(triggered()), this, SLOT(openSettingsDialog()));
+ m_viewMenu = menuBar()->addMenu(tr("View"));
+ m_viewMenu->addAction(m_toListViewAct);
+ m_viewMenu->addAction(m_toMapViewAct);
+ m_viewMenu->addAction(m_toSettingsAct);
+ m_viewMenu->setObjectName(tr("View Menu"));
}
void MainWindow::createViews()
{
qDebug() << __PRETTY_FUNCTION__;
- situareViews = new QStackedWidget;
- situareViews->addWidget(new ListViewScreen);
- situareViews->addWidget(new MapViewScreen);
+ m_listViewScreen = new ListViewScreen(this);
+ m_mapViewScreen = new MapViewScreen(this);
+
+ m_situareViews = new QStackedWidget;
+ m_situareViews->addWidget(m_listViewScreen);
+ m_situareViews->addWidget(m_mapViewScreen);
}
void MainWindow::toListView()
{
qDebug() << __PRETTY_FUNCTION__;
- situareViews->setCurrentIndex(0);
- infoLabel->setText(tr("Current: %1").arg(situareViews->currentIndex()));
- setWindowTitle("List");
+ switchView(0);
}
void MainWindow::toMapView()
{
qDebug() << __PRETTY_FUNCTION__;
- situareViews->setCurrentIndex(1);
- infoLabel->setText(tr("Current: %1").arg(situareViews->currentIndex()));
- setWindowTitle("Map");
+ switchView(1);
}
-int MainWindow::getViewIndex()
+void MainWindow::switchView(int nextIndex)
{
- return situareViews->currentIndex();
+ qDebug() << __PRETTY_FUNCTION__ << ":" << nextIndex;
+ if (nextIndex < 0 || nextIndex > 1) {
+ qDebug() << "Illegal parameter value in MainWindow::switchView";
+ return;
+ }
+ m_situareViews->setCurrentIndex(nextIndex);
+ switch (m_situareViews->currentIndex()) {
+ case 0:
+ setWindowTitle(tr("List view"));
+ break;
+ case 1:
+ setWindowTitle(tr("Map view"));
+ break;
+ default:
+ qDebug() << "Illegal switch value in MainWindow::switchView";
+ break;
+ }
}
+
+void MainWindow::openLocationUpdateDialog()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ emit requestReverseGeo();
+ m_locationDialog->exec();
+}
+
+void MainWindow::openSettingsDialog()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+ SettingsDialog *dialog = new SettingsDialog(this);
+ dialog->show();
+}
+