/***************************************************************************
- * Copyright (C) 2009 by Lassi Väätämöinen *
- * lassi.vaatamoinen@ixonos.com *
+ * Copyright (C) 2010 by Ixonos Plc *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
+ * the Free Software Foundation; version 2 of the License. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
dlView_(NULL),
seedView_(NULL),
searchWidget_(NULL),
+ startDaemonAction_(NULL),
+ stopDaemonAction_(NULL),
preferencesDialog_(NULL),
settings_(QCoreApplication::organizationName()
, QCoreApplication::applicationName()),
, "/qtrapids", QDBusConnection::sessionBus())
// torrentHandles_(),
{
+
+ setWindowTitle("QtRapids");
+
// MENUBAR
QMenuBar *menuBar = new QMenuBar();
QMenu *tempMenu = NULL;
QAction *openAction = tempMenu->addAction(tr("&Open"));
QAction *removeAction = tempMenu->addAction(tr("&Remove"));
removeAction->setEnabled(false);
+
+ 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"));
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(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()));
/// @todo Exception handling
dlView_ = new DownloadView(this);
- seedView_ = new SeedView(this);
+ //seedView_ = new SeedView(this);
tabWidget_->addTab(dlView_, tr("Downloads"));
- tabWidget_->addTab(seedView_, tr("Seeds"));
+ //tabWidget_->addTab(seedView_, tr("Seeds"));
connect(dlView_, SIGNAL(itemSelectionChanged()), this,
SLOT(on_downloadItemSelectionChanged()));
- connect(seedView_, SIGNAL(itemSelectionChanged()), this,
- SLOT(on_seedItemSelectionChanged()));
+ //connect(seedView_, SIGNAL(itemSelectionChanged()), this,
+ // SLOT(on_seedItemSelectionChanged()));
// Tab widget as central widget.
setCentralWidget(tabWidget_);
toolBar->addAction(tr("Open"));
removeAction = toolBar->addAction(tr("Remove"));
removeAction->setEnabled(false);
- addToolBar(Qt::TopToolBarArea, toolBar);
+ addToolBar(Qt::BottomToolBarArea, toolBar);
connect(this, SIGNAL(itemSelected(bool)), removeAction,
SLOT(setEnabled(bool)));
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>)));
// =========================== PRIVATE SLOTS =================================
void MainWindow::on_openAction_clicked()
{
+ QString filename = QFileDialog::getOpenFileName( this, tr("Open torrent file"), QString(), tr("Torrent files (*.torrent)") );
+ on_torrentFileSelected(filename);
+ /*
QFileDialog *dialog = new QFileDialog( this, "Open torrent file", QString(), tr("Torrent files (*.torrent)"));
dialog->setFileMode(QFileDialog::ExistingFile);
connect(dialog, SIGNAL(fileSelected(const QString&)), this, SLOT(on_torrentFileSelected(const QString&)));
dialog->show();
-
+ */
}
void MainWindow::on_removeAction_clicked()
}
+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 MainWindow::on_torrentFileSelected(const QString& file)
+void MainWindow::on_torrentFileSelected(QString file)
{
#ifdef QTRAPIDS_DEBUG
qDebug() << " MainWindow::on_torrentFileSelected(): " << file;