Added TorrentPickerPage.
[qtrapids] / src / qml-client / MainPageHandler.cpp
diff --git a/src/qml-client/MainPageHandler.cpp b/src/qml-client/MainPageHandler.cpp
new file mode 100644 (file)
index 0000000..26a7760
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 2012  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.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include <QtCore/QString>
+#include <QtCore/QDebug>
+#include <QFileDialog>
+#include <meegotouch/mwindow.h>
+
+#include "MainPageHandler.h"
+
+
+namespace qtrapids
+{
+
+MainPageHandler::MainPageHandler(QObject *parent) :
+    QObject(parent)
+{
+}
+
+MainPageHandler::~MainPageHandler()
+{
+}
+
+void MainPageHandler::fileSelectorOpen()
+{
+    qDebug() << Q_FUNC_INFO;
+    QWidget* widget = qobject_cast<QWidget*>(MApplication::activeWindow());
+    QString filename = QFileDialog::getOpenFileName(widget, tr("Open torrent file"), QString(), tr("Torrent files (*.torrent)") );
+    on_torrentFileSelected(filename);
+}
+
+
+void MainPageHandler::on_torrentFileSelected(const QString& file)
+{
+    qDebug() << Q_FUNC_INFO << " file selected: " << file;
+
+    // Torrent filename empty, do nothing.
+    if (file == "") {
+        return;
+    }
+
+    // Otherwise add torrent
+    // For params, see: http://www.rasterbar.com/products/libtorrent/manual.html#add-torrent
+    // save_path is the only mandatory parameter, rest are optional.
+    //addParams.storage_mode = libtorrent::storage_mode_allocate;
+    try {
+        // TODO: Enable this once server_ is in place
+//         server_.addTorrent(file,
+//                            settings_.value("download/directory").toString(),
+//                            ParamsMap_t());
+    } catch (...) {
+        qDebug() << Q_FUNC_INFO << "Exception adding torrent";
+    }
+}
+
+} //namespace qtrapids