From e7edaea4f85fc998ed56e098d306b957fd0a24bc Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Thu, 5 Nov 2015 13:44:19 -0800 Subject: [PATCH] Untangle Profile from MainWindow: edit current profile And action can't not just trigger a slot, it can also send a signal. With this there is no reference to the MainWindow left in the profile. Signed-off-by: Dirk Hohndel --- profile-widget/profilewidget2.cpp | 3 +-- profile-widget/profilewidget2.h | 1 + subsurface-desktop-main.cpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp index c72f2e95b..275ae6cde 100644 --- a/profile-widget/profilewidget2.cpp +++ b/profile-widget/profilewidget2.cpp @@ -30,7 +30,6 @@ #ifndef QT_NO_DEBUG #include #endif -#include "mainwindow.h" #include "preferences/preferencesdialog.h" // a couple of helpers we need @@ -1272,7 +1271,7 @@ void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event) action->setData(event->globalPos()); if (same_string(current_dc->model, "manually added dive")) - QAction *editProfileAction = m.addAction(tr("Edit the profile"), MainWindow::instance(), SLOT(editCurrentDive())); + QAction *editProfileAction = m.addAction(tr("Edit the profile"), this, SIGNAL(editCurrentDive())); if (DiveEventItem *item = dynamic_cast(sceneItem)) { action = new QAction(&m); diff --git a/profile-widget/profilewidget2.h b/profile-widget/profilewidget2.h index f5977eb22..dcfc72c17 100644 --- a/profile-widget/profilewidget2.h +++ b/profile-widget/profilewidget2.h @@ -94,6 +94,7 @@ signals: void disableShortcuts(bool paste); void refreshDisplay(bool recreateDivelist); void updateDiveInfo(bool clear); + void editCurrentDive(); public slots: // Necessary to call from QAction's signals. diff --git a/subsurface-desktop-main.cpp b/subsurface-desktop-main.cpp index d5caf64d3..5e07a25e5 100644 --- a/subsurface-desktop-main.cpp +++ b/subsurface-desktop-main.cpp @@ -93,6 +93,7 @@ int main(int argc, char **argv) QObject::connect(m->graphics(), &ProfileWidget2::enableShortcuts, m, &MainWindow::enableShortcuts, Qt::AutoConnection); QObject::connect(m->graphics(), &ProfileWidget2::refreshDisplay, m, &MainWindow::refreshDisplay, Qt::AutoConnection); QObject::connect(m->graphics(), &ProfileWidget2::updateDiveInfo, m->information(), &MainTab::updateDiveInfo, Qt::AutoConnection); + QObject::connect(m->graphics(), &ProfileWidget2::editCurrentDive, m, &MainWindow::editCurrentDive, Qt::AutoConnection); if (verbose > 0) print_files(); if (!quit)