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 <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-11-05 13:44:19 -08:00
parent 2b9316e16a
commit e7edaea4f8
3 changed files with 3 additions and 2 deletions

View file

@ -30,7 +30,6 @@
#ifndef QT_NO_DEBUG
#include <QTableView>
#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<DiveEventItem *>(sceneItem)) {
action = new QAction(&m);

View file

@ -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.

View file

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