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);