Initial commit for the QML client:
[qtrapids] / src / client / main.cpp
index 524da17..9d992b8 100644 (file)
  *   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;
 
@@ -30,51 +34,88 @@ 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;
-       
-       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");
-       DownloadViewItem* dlwItem2 = new DownloadViewItem(QStringList() << "Name"
-                       << "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);
-       }
-       */
-
-       return app.exec();
+
+    QCoreApplication::setOrganizationName("Ixonos");
+    QCoreApplication::setOrganizationDomain("ixonos.com");
+    QCoreApplication::setApplicationName("QtRapids");
+
+    // Q_INIT_RESOURCE(application);
+    QApplication app(argc, argv);
+    //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");
+    DownloadViewItem* dlwItem2 = new DownloadViewItem(QStringList() << "Name"
+                << "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);
+    }
+    */
+
+    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();
 }