dlView_(NULL),
seedView_(NULL),
searchWidget_(NULL),
+ startDaemonAction_(NULL),
+ stopDaemonAction_(NULL),
preferencesDialog_(NULL),
settings_(QCoreApplication::organizationName()
, QCoreApplication::applicationName()),
QAction *openAction = tempMenu->addAction(tr("&Open"));
QAction *removeAction = tempMenu->addAction(tr("&Remove"));
removeAction->setEnabled(false);
- QAction *quitAction = tempMenu->addAction(tr("&Quit"));
- QAction *stopDaemonAction = tempMenu->addAction(tr("Stop &daemon"));
+ startDaemonAction_ = tempMenu->addAction(tr("S&tart daemon"));
+ stopDaemonAction_ = tempMenu->addAction(tr("Sto&p daemon"));
+ startDaemonAction_->setEnabled(false);
+
+ QAction *quitAction = tempMenu->addAction(tr("&Quit"));
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(startDaemonAction_, SIGNAL(triggered()), this, SLOT(on_startDaemonAction_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()));
connect(&server_, SIGNAL(alert(qtrapids::TorrentState, qtrapids::ParamsMap_t)),
this, SLOT(on_alert(qtrapids::TorrentState, qtrapids::ParamsMap_t)));
-
+
+ connect(&server_, SIGNAL(sessionTerminated()), this, SLOT(on_serverTerminated()));
+
// connect(&btSession_, SIGNAL(alert(std::auto_ptr<Alert>)),
// this, SLOT(on_alert(std::auto_ptr<Alert>)));
}
+void MainWindow::on_startDaemonAction_clicked()
+{
+ server_.getState();
+ /// @todo create signal that signals server startup and
+ /// enable controls in the handler slot
+ stopDaemonAction_->setEnabled(true);
+ startDaemonAction_->setEnabled(false);
+}
+
+
void MainWindow::on_stopDaemonAction_clicked()
{
server_.terminateSession();
}
+void MainWindow::on_serverTerminated()
+{
+ stopDaemonAction_->setEnabled(false);
+ startDaemonAction_->setEnabled(true);
+}
+
void MainWindow::on_columnsAction_clicked()
{
ColumnSelectorDialog *dialog = new ColumnSelectorDialog(dlView_);
void on_openAction_clicked();
void on_removeAction_clicked();
void on_quitAction_clicked();
+ void on_startDaemonAction_clicked();
void on_stopDaemonAction_clicked();
+ void on_serverTerminated();
void on_columnsAction_clicked();
void on_preferencesAction_clicked();
void on_aboutAction_clicked();
void on_torrentFileSelected(const QString& file);
void on_alert(qtrapids::TorrentState, qtrapids::ParamsMap_t);
+
private:
void LoadPlugins();
void StartTorrentFromBufferData(char const* data, int size);
DownloadView *dlView_;
SeedView *seedView_;
QWidget *searchWidget_;
+ QAction *startDaemonAction_, *stopDaemonAction_;
PreferencesDialog *preferencesDialog_;
QSettings settings_;
QList<QDir> pluginDirs_;
QStringList pluginFileNames_;
+
//std::vector< std::auto_ptr<QTorrentHandle> const > torrentHandles_;
QtRapidsServer server_;