Preliminary merge. Integration is brancehd from fresh master.
[situare] / src / ui / mainwindow.cpp
index f1ac7da..e7137cc 100644 (file)
 #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();
+}
+