Navigation stack refactorisation

simplifies the mainwindow ui stacked widget
removes the progamatic construction and replaces it
with the designer QML.
Also factorises the code of slidepage in Utils.h for
a consistent page switching at all levels of UI.

Change-Id: I75ee29b0b93de63978262db4da04dc6c96e0942e
Reviewed-by: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 2d90fe2..a93c4a2 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -34,12 +34,18 @@
 #include "settingskey.h"
 #include "winsparkle.h"
 #include "callmodel.h"
+#include "callwidget.h"
+#include "utils.h"
 
 MainWindow::MainWindow(QWidget* parent) :
     QMainWindow(parent),
     ui(new Ui::MainWindow)
 {
     ui->setupUi(this);
+    connect(ui->callwidget, CallWidget::NavigationRequested,
+            [this](ScreenEnum scr){Utils::slidePage(ui->navStack, ui->navStack->widget(scr));});
+    connect(ui->configurationwidget, ConfigurationWidget::NavigationRequested,
+            [this](ScreenEnum scr){Utils::slidePage(ui->navStack, ui->navStack->widget(scr));});
 
     QIcon icon(":images/ring.png");
 
@@ -68,11 +74,6 @@
     connect(&CallModel::instance(), SIGNAL(incomingCall(Call*)),
             this, SLOT(onIncomingCall(Call*)));
 
-    navStack_ = new NavStack(ui->stackedWidgetView, this);
-    connect(configAction, &QAction::triggered, [this]() {
-        navStack_->onNavigationRequested(ScreenEnum::ConfScreen);
-    });
-
 #ifdef Q_OS_WIN
     HMENU sysMenu = ::GetSystemMenu((HWND) winId(), FALSE);
     if (sysMenu != NULL) {
@@ -92,7 +93,7 @@
         if (pos.rx() < screenSize.width() && pos.ry() < screenSize.height())
             move(pos);
     } else
-        resize(1054, 600);
+        resize(800, 600);
 
     win_sparkle_set_appcast_url("http://dl.ring.cx/windows/winsparkle-ring.xml");
     win_sparkle_set_app_details(L"Savoir-faire Linux", L"Ring", QString(NIGHTLY_VERSION).toStdWString().c_str());
@@ -125,7 +126,6 @@
 MainWindow::~MainWindow()
 {
     delete ui;
-    delete navStack_;
 }
 
 void
@@ -197,7 +197,7 @@
     settings->setIcon(icon);
     settings->setDismissOnClick(true);
     connect(settings, &QWinThumbnailToolButton::clicked, [this]() {
-        navStack_->onNavigationRequested(ScreenEnum::ConfScreen);
+        Utils::slidePage(ui->navStack, ui->configurationwidget);
     });
 
     thumbbar->addButton(settings);