X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fgui%2FMainWindow.cpp;h=4d47618b4807f6962b3a749acd8dd79e98136f62;hb=d27c2db830de9a65d6a419479ee598cbf3697746;hp=4ccddd9b8a12d9d5e3d97e67ff59c8d78162fb41;hpb=6c325f6d191739f115b2df64b7b83949e355e8d6;p=qtrapids diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 4ccddd9..4d47618 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -33,83 +33,83 @@ #include "MainWindow.h" -const QString ABOUT_TEXT - = QString(QObject::trUtf8("QtRapids, a simple BitTorrent client based on" - "\nQt and Libtorrent." - "\n\nURL: http://qtrapids.garage.maemo.org/" - "\n\nAuthors:\nLassi Väätämöinen, lassi.vaatamoinen@ixonos.com" - "\nDenis Zalievsky, denis.zalewsky@ixonos.com" - "\n\nIxonos Plc, Finland\n")); +const QString ABOUT_TEXT += QString(QObject::trUtf8("QtRapids, a simple BitTorrent client based on" + "\nQt and Libtorrent." + "\n\nURL: http://qtrapids.garage.maemo.org/" + "\n\nAuthors:\nLassi Väätämöinen, lassi.vaatamoinen@ixonos.com" + "\nDenis Zalievsky, denis.zalewsky@ixonos.com" + "\n\nIxonos Plc, Finland\n")); // Consturctor MainWindow::MainWindow(): - QMainWindow(), // Superclass - tabWidget_(NULL), - dlView_(NULL), - seedView_(NULL), - preferencesDialog_(NULL), - settings_(), + QMainWindow(), // Superclass + tabWidget_(NULL), + dlView_(NULL), + seedView_(NULL), + preferencesDialog_(NULL), + settings_(), // torrentHandles_(), - btSession_() + btSession_() { - // MENUBAR - QMenuBar *menuBar = new QMenuBar(); - QMenu *tempMenu = NULL; - - tempMenu = menuBar->addMenu(tr("&File")); - QAction *openAction = tempMenu->addAction(tr("&Open")); - QAction *removeAction = tempMenu->addAction(tr("&Remove")); - removeAction->setEnabled(false); - QAction *quitAction = tempMenu->addAction(tr("&Quit")); - - tempMenu = menuBar->addMenu(tr("&Settings")); - QAction *preferencesAction = tempMenu->addAction(tr("&Preferences")); - - tempMenu = menuBar->addMenu(tr("&Help")); - QAction *aboutAction = tempMenu->addAction(tr("&About")); - QAction *aboutQtAction = tempMenu->addAction(tr("About &Qt")); - - setMenuBar(menuBar); - connect(openAction, SIGNAL(triggered()), this, SLOT(on_openAction_clicked())); - 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(preferencesAction, SIGNAL(triggered()), this, SLOT(on_preferencesAction_clicked())); - connect(aboutAction, SIGNAL(triggered()), this, SLOT(on_aboutAction_clicked())); - connect(aboutQtAction, SIGNAL(triggered()), this, SLOT(on_aboutQtAction_clicked())); - - // TABWIDGET (central widget) - tabWidget_ = new QTabWidget(); - - /// @todo Exception handling - dlView_ = new DownloadView(this); - seedView_ = new SeedView(this); - tabWidget_->addTab(dlView_, tr("Downloads")); - tabWidget_->addTab(seedView_, tr("Seeds")); - connect(dlView_, SIGNAL(itemSelectionChanged()), this, - SLOT(on_downloadItemSelectionChanged())); - connect(seedView_, SIGNAL(itemSelectionChanged()), this, - SLOT(on_seedItemSelectionChanged())); - - - // Tab widget as central widget. - setCentralWidget(tabWidget_); - - // TOOLBAR - QToolBar *toolBar = new QToolBar(); - toolBar->addAction(tr("Open")); - removeAction = toolBar->addAction(tr("Remove")); - removeAction->setEnabled(false); - addToolBar(Qt::TopToolBarArea, toolBar); - - connect(this, SIGNAL(itemSelected(bool)), removeAction, - SLOT(setEnabled(bool))); - connect(toolBar, SIGNAL(actionTriggered(QAction*)), this, - SLOT(handleToolBarAction(QAction*))); - - connect(&btSession_, SIGNAL(alert(std::auto_ptr)), - this, SLOT(on_alert(std::auto_ptr))); + // MENUBAR + QMenuBar *menuBar = new QMenuBar(); + QMenu *tempMenu = NULL; + + tempMenu = menuBar->addMenu(tr("&File")); + QAction *openAction = tempMenu->addAction(tr("&Open")); + QAction *removeAction = tempMenu->addAction(tr("&Remove")); + removeAction->setEnabled(false); + QAction *quitAction = tempMenu->addAction(tr("&Quit")); + + tempMenu = menuBar->addMenu(tr("&Settings")); + QAction *preferencesAction = tempMenu->addAction(tr("&Preferences")); + + tempMenu = menuBar->addMenu(tr("&Help")); + QAction *aboutAction = tempMenu->addAction(tr("&About")); + QAction *aboutQtAction = tempMenu->addAction(tr("About &Qt")); + + setMenuBar(menuBar); + connect(openAction, SIGNAL(triggered()), this, SLOT(on_openAction_clicked())); + 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(preferencesAction, SIGNAL(triggered()), this, SLOT(on_preferencesAction_clicked())); + connect(aboutAction, SIGNAL(triggered()), this, SLOT(on_aboutAction_clicked())); + connect(aboutQtAction, SIGNAL(triggered()), this, SLOT(on_aboutQtAction_clicked())); + + // TABWIDGET (central widget) + tabWidget_ = new QTabWidget(); + + /// @todo Exception handling + dlView_ = new DownloadView(this); + seedView_ = new SeedView(this); + tabWidget_->addTab(dlView_, tr("Downloads")); + tabWidget_->addTab(seedView_, tr("Seeds")); + connect(dlView_, SIGNAL(itemSelectionChanged()), this, + SLOT(on_downloadItemSelectionChanged())); + connect(seedView_, SIGNAL(itemSelectionChanged()), this, + SLOT(on_seedItemSelectionChanged())); + + + // Tab widget as central widget. + setCentralWidget(tabWidget_); + + // TOOLBAR + QToolBar *toolBar = new QToolBar(); + toolBar->addAction(tr("Open")); + removeAction = toolBar->addAction(tr("Remove")); + removeAction->setEnabled(false); + addToolBar(Qt::TopToolBarArea, toolBar); + + connect(this, SIGNAL(itemSelected(bool)), removeAction, + SLOT(setEnabled(bool))); + connect(toolBar, SIGNAL(actionTriggered(QAction*)), this, + SLOT(handleToolBarAction(QAction*))); + + connect(&btSession_, SIGNAL(alert(std::auto_ptr)), + this, SLOT(on_alert(std::auto_ptr))); } @@ -120,103 +120,114 @@ MainWindow::~MainWindow() // =========================== SLOTS ================================= void MainWindow::on_openAction_clicked() { - 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(); + 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() { - qtrapids::QTorrentHandle handle = dlView_->removeSelected(); - btSession_.removeTorrent(handle); + qtrapids::QTorrentHandle handle = dlView_->removeSelected(); + btSession_.removeTorrent(handle); } void MainWindow::on_quitAction_clicked() { - close(); + close(); } void MainWindow::on_preferencesAction_clicked() { - if (!preferencesDialog_) { - preferencesDialog_ = new PreferencesDialog(this); - } - preferencesDialog_->show(); - preferencesDialog_->raise(); - preferencesDialog_->activateWindow(); + if (!preferencesDialog_) + { + preferencesDialog_ = new PreferencesDialog(this); + } + preferencesDialog_->show(); + preferencesDialog_->raise(); + preferencesDialog_->activateWindow(); } void MainWindow::on_aboutAction_clicked() { - QMessageBox::about(this, tr("About QtRapids"), ABOUT_TEXT); + QMessageBox::about(this, tr("About QtRapids"), ABOUT_TEXT); } - - + + void MainWindow::on_aboutQtAction_clicked() { - QMessageBox::aboutQt (this, tr("About Qt")); + QMessageBox::aboutQt (this, tr("About Qt")); } void MainWindow::on_downloadItemSelectionChanged() { #ifdef QTRAPIDS_DEBUG - qDebug() << "MainWindow::on_seedItemSelectionChanged():" << dlView_->currentItem(); + qDebug() << "MainWindow::on_seedItemSelectionChanged():" << dlView_->currentItem(); #endif - if (dlView_->currentItem() != NULL) { - emit(itemSelected(true)); - } else { - emit(itemSelected(false)); - } + if (dlView_->currentItem() != NULL) + { + emit(itemSelected(true)); + } + else + { + emit(itemSelected(false)); + } } void MainWindow::on_seedItemSelectionChanged() { #ifdef QTRAPIDS_DEBUG - qDebug() << "MainWindow::on_seedItemSelectionChanged():" << seedView_->currentItem(); + qDebug() << "MainWindow::on_seedItemSelectionChanged():" << seedView_->currentItem(); #endif - if (seedView_->currentItem() != NULL) { - emit(itemSelected(true)); - } else { - emit(itemSelected(false)); - } + if (seedView_->currentItem() != NULL) + { + emit(itemSelected(true)); + } + else + { + emit(itemSelected(false)); + } } - + void MainWindow::handleToolBarAction(QAction* action) { - if (action->text() == "Open") { - on_openAction_clicked(); - } else if (action->text() == "Remove") { - on_removeAction_clicked(); - } + if (action->text() == "Open") + { + on_openAction_clicked(); + } + else if (action->text() == "Remove") + { + on_removeAction_clicked(); + } } void MainWindow::on_torrentFileSelected(const QString& file) { #ifdef QTRAPIDS_DEBUG - qDebug() << " MainWindow::on_torrentFileSelected(): " << file; + qDebug() << " MainWindow::on_torrentFileSelected(): " << file; #endif - // Torrent filename empty, do nothing. - if (file == "") { - return; - } - - // Otherwise add torrent - // For params, see: http://www.rasterbar.com/products/libtorrent/manual.html#add-torrent - AddTorrentParams addParams; - boost::intrusive_ptr tiTmp = - new libtorrent::torrent_info(boost::filesystem::path(file.toStdString())); - addParams.ti = tiTmp; - // save_path is the only mandatory parameter, rest are optional. - addParams.save_path = boost::filesystem::path(settings_.value("download/directory").toString().toStdString()); - //addParams.storage_mode = libtorrent::storage_mode_allocate; - qtrapids::QTorrentHandle handle = btSession_.addTorrent(addParams); - dlView_->newItem(handle); + // Torrent filename empty, do nothing. + if (file == "") + { + return; + } + + // Otherwise add torrent + // For params, see: http://www.rasterbar.com/products/libtorrent/manual.html#add-torrent + AddTorrentParams addParams; + boost::intrusive_ptr tiTmp = + new libtorrent::torrent_info(boost::filesystem::path(file.toStdString())); + addParams.ti = tiTmp; + // save_path is the only mandatory parameter, rest are optional. + addParams.save_path = boost::filesystem::path(settings_.value("download/directory").toString().toStdString()); + //addParams.storage_mode = libtorrent::storage_mode_allocate; + qtrapids::QTorrentHandle handle = btSession_.addTorrent(addParams); + dlView_->newItem(handle); // torrentHandles_.push_back(handlePtr); #ifdef QTRAPIDS_DEBUG - qDebug() << "Is valid: " << handle.isValid(); + qDebug() << "Is valid: " << handle.isValid(); #endif } @@ -224,24 +235,26 @@ void MainWindow::on_torrentFileSelected(const QString& file) void MainWindow::on_alert(std::auto_ptr al) { - - if (al.get() != NULL) { -// qDebug() -// << "MainWindow::on_torrentAlert(): " + + if (al.get() != NULL) + { +// qDebug() +// << "MainWindow::on_torrentAlert(): " // << QString::fromStdString(al->message()); - TorrentAlert *torrentAlert - = dynamic_cast (al.get()); + TorrentAlert *torrentAlert + = dynamic_cast (al.get()); + + if (torrentAlert) + { + qtrapids::QTorrentHandle torrentHandle = qtrapids::QTorrentHandle(torrentAlert->handle); + dlView_->updateItem(qtrapids::QTorrentHandle(torrentAlert->handle)); + } + + } + + - if (torrentAlert) { - qtrapids::QTorrentHandle torrentHandle = qtrapids::QTorrentHandle(torrentAlert->handle); - dlView_->updateItem(qtrapids::QTorrentHandle(torrentAlert->handle)); - } - - } - - - } /*