Initial commit for the QML client:
[qtrapids] / src / client / main.cpp
index 6968465..9d992b8 100644 (file)
@@ -1,11 +1,9 @@
 /***************************************************************************
- *   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        *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 #include <QApplication>
+#include <QtDeclarative>
+#include <QDeclarativeContext>
 #include <QTest>
 #include <QDebug>
 //#include <QDesktopWidget>
 //#include "DownloadView.h"
+#include <QtDeclarative/qdeclarative.h>
+#include "models/QDeclarativeDownloadListModel.h"
 
 #include "MainWindow.h"
+#include "../include/qtrapids/dbus.hpp"
 
 using qtrapids::MainWindow;
 
 int main(int argc, char *argv[])
 {
 
+
+
     QCoreApplication::setOrganizationName("Ixonos");
     QCoreApplication::setOrganizationDomain("ixonos.com");
     QCoreApplication::setApplicationName("QtRapids");
 
     // Q_INIT_RESOURCE(application);
     QApplication app(argc, argv);
-    MainWindow mainWindow;
+    //MainWindow mainWindow;
+    app.setProperty("NoMStyle", true);
+    
+    // Register our types:
+    qmlRegisterType<qtrapids::QDeclarativeDownloadListModel>("QtRapids", 1, 0, "DownloadListModel");
+
+    QDir::setCurrent(app.applicationDirPath());
+
+    QDeclarativeView window;
+    //QDeclarativeEngine engine;
+    qtrapids::QDeclarativeDownloadListModel downloadModel;
+    QDeclarativeContext *context = window.rootContext();
+    context->setContextProperty("downloadModel", &downloadModel);
+    window.setSource(QUrl("qrc:/main.qml"));
+
+    window.showFullScreen();
+//    window.show();
+
+
+    /* TODO: Enable this once we have the views up & running
+    QDBusConnection dbus = QDBusConnection::sessionBus();
+    dbus.registerObject("/qtrapids_gui", &mainWindow);
+    dbus.registerService("com.ixonos.qtrapids_gui");
+
     mainWindow.connectToServer();
+    mainWindow.RestoreSettings();
+
     // mainWindow->setGeometry(QApplication::desktop()->screenGeometry());
 
     mainWindow.show();
-
+    */
     /*
     DownloadView* dlw = new DownloadView(NULL);
       //qtrapids * mw = new qtrapids();
     dlw->show();
     DownloadViewItem* dlwItem = new DownloadViewItem(QStringList() << "Name"
-               << "Size" << "Status"
-               << "Progress" << "DL speed"
-               << "UL speed" << "Seeds/Leechers"
-               << "ratio");
+                << "Size" << "Status"
+                << "Progress" << "DL speed"
+                << "UL speed" << "Seeds/Leechers"
+                << "ratio");
     DownloadViewItem* dlwItem2 = new DownloadViewItem(QStringList() << "Name"
-               << "1000" << "Downloading"
-               << "23%" << "11"
-               << "0.1" << "0/2"
-               << "1.10");
+                << "1000" << "Downloading"
+                << "23%" << "11"
+                << "0.1" << "0/2"
+                << "1.10");
     //dlwItem->insertChild(0, new DownloadViewItem(QStringList() << "Name"));
     dlw->insertTopLevelItem(0,dlwItem);
     dlw->insertTopLevelItem(1,dlwItem2);
 
     for (unsigned i = 0; i < 10; ++i)
     {
-       DownloadViewItem *editItem = dynamic_cast<DownloadViewItem*>
-                       (dlw->itemAt(QPoint(0,0)));
-       editItem->setData ( 8, Qt::DisplayRole, QVariant("EDITED" + QString::number(i, 'g', 2)));
-       QTest::qSleep(2000);
+        DownloadViewItem *editItem = dynamic_cast<DownloadViewItem*>
+                        (dlw->itemAt(QPoint(0,0)));
+        editItem->setData ( 8, Qt::DisplayRole, QVariant("EDITED" + QString::number(i, 'g', 2)));
+        QTest::qSleep(2000);
     }
     */
 
+    qtrapids::TorrentState editItem;
+    for (unsigned i = 0; i < 10; ++i)
+    {
+        editItem.hash = QString("asdfasdfasdfasdfasfsd-") + QString::number(i);
+        editItem.name = QString("Lassi-") + QString::number(i);
+        editItem.action = qtrapids::TorrentState::action_add;
+        editItem.state = 0;
+        editItem.progress = 10+i;
+        editItem.down_rate = 10+i;
+        editItem.up_rate = 10+i;
+        editItem.seeds = 10+i;
+        editItem.leeches = 10+i;
+        editItem.ratio = 10+i;
+        editItem.total_size = 100000+i;
+        editItem.total_done = 10000+i;
+        downloadModel.updateItem(editItem, qtrapids::ParamsMap_t());
+    }
 
     return app.exec();
 }