value="qtrapids::ParamsMap_t"/>
</method>
+ <method name="terminateSession">
+ </method>
+
+ <signal name="terminate">
+ </signal>
+
</interface>
</node>
QAction *removeAction = tempMenu->addAction(tr("&Remove"));
removeAction->setEnabled(false);
QAction *quitAction = tempMenu->addAction(tr("&Quit"));
+ QAction *stopDaemonAction = tempMenu->addAction(tr("Stop &daemon"));
+
tempMenu = menuBar->addMenu(tr("&View"));
QAction *columnsAction = tempMenu->addAction(tr("&Columns"));
connect(removeAction, SIGNAL(triggered()), this, SLOT(on_removeAction_clicked()));
connect(this, SIGNAL(itemSelected(bool)), removeAction, SLOT(setEnabled(bool)));
connect(quitAction, SIGNAL(triggered()), this, SLOT(on_quitAction_clicked()));
+ connect(stopDaemonAction, SIGNAL(triggered()), this, SLOT(on_stopDaemonAction_clicked()));
connect(columnsAction, SIGNAL(triggered()), this, SLOT(on_columnsAction_clicked()));
connect(preferencesAction, SIGNAL(triggered()), this, SLOT(on_preferencesAction_clicked()));
connect(aboutAction, SIGNAL(triggered()), this, SLOT(on_aboutAction_clicked()));
}
+void MainWindow::on_stopDaemonAction_clicked()
+{
+ server_.terminateSession();
+}
+
+
void MainWindow::on_columnsAction_clicked()
{
ColumnSelectorDialog *dialog = new ColumnSelectorDialog(dlView_);
void on_openAction_clicked();
void on_removeAction_clicked();
void on_quitAction_clicked();
+ void on_stopDaemonAction_clicked();
void on_columnsAction_clicked();
void on_preferencesAction_clicked();
void on_aboutAction_clicked();
QDBusConnection dbus = QDBusConnection::sessionBus();
dbus.registerObject("/qtrapids", this);
dbus.registerService("com.ixonos.qtrapids");
-
+
alertWaiter_->allAlerts();
connect(alertWaiter_, SIGNAL(alert()), this, SLOT(on_alert()));
alertWaiter_->start();
}
+void TorrentSession::terminateSession()
+{
+ qDebug() << "Terminate called";
+ emit terminate();
+}
+
} // namespace qtrapids
Q_CLASSINFO("D-Bus Interface", "com.ixonos.qtrapids");
public:
-
TorrentSession(QObject *parent, QSettings *);
public slots:
-
void getState();
void addTorrent(const QString &path, const QString &save_path
, qtrapids::ParamsMap_t other_params);
void removeTorrent(const QString &hash);
void setOptions(qtrapids::ParamsMap_t options);
qtrapids::ParamsMap_t getOptions();
-
+ void terminateSession();
+
signals:
void alert(qtrapids::TorrentState info, qtrapids::ParamsMap_t other_info);
-
+ void terminate();
+
private slots:
void on_alert();
QCoreApplication app(argc, argv);
TorrentSession server(&app, &settings);
+ QObject::connect(&server, SIGNAL(terminate()), &app, SLOT(quit()));
return app.exec();
}