]> git.nothing2do.fr Git - diary-mobile.git/commitdiff
downloadDB, writeDB, and updateUi do as they name say
authorNorbert Moutarde <norbert.moutarde@nothing2do.eu>
Wed, 26 Mar 2014 18:11:09 +0000 (19:11 +0100)
committerNorbert Moutarde <norbert.moutarde@nothing2do.eu>
Wed, 26 Mar 2014 18:11:09 +0000 (19:11 +0100)
mainwindow.cpp
mainwindow.h

index 66f3d97154a31129765f04a24754c6e048a322aa..8db1f6abf11c756f87aef237cc542c6a91f0a8c9 100644 (file)
@@ -153,7 +153,7 @@ void MainWindow::createMenuBar(){
     EditMenu=new QMenu(QString("&Buttons"));
     EditMenu->addAction(trUtf8("C&reate Database"), this, SLOT(createDB()), QKeySequence(trUtf8("Ctrl+R", "Buttons|CreateDB")));
     EditMenu->addAction(trUtf8("A&dd buttons"), this, SLOT(addButtonDB()), QKeySequence(trUtf8("Ctrl+D", "Buttons|Add")));
-    //EditMenu->addAction(trUtf8("Sa&v buttons"), this, SLOT(savButtons()), QKeySequence(trUtf8("Ctrl+V", "Buttons|Save")));
+    EditMenu->addAction(trUtf8("Sa&v buttons"), this, SLOT(savButtons()), QKeySequence(trUtf8("Ctrl+V", "Buttons|Save")));
     EditMenu->addAction(trUtf8("&Edit buttons"), this, SLOT(editButtonDB()), QKeySequence(trUtf8("Ctrl+E", "Buttons|&Edit")));
     EditMenu->addAction(trUtf8("&View/Hide menu"), this, SLOT(toggleMenu()), QKeySequence(trUtf8("Ctrl+T", "Buttons|View menu")));
     menuBar()->addMenu(EditMenu);
@@ -240,10 +240,11 @@ void MainWindow::firstrun(){
     conf->setValue(QString("button"), QVariant("background-color: red;border-style: outset;border-width: 7px;border-radius: 10px;border-color: beige;font: bold 15px;padding: 6px;"));
     conf->setValue(QString("menu"), QVariant(1));
     conf->setValue(QString("download"), QVariant("https://raw.github.com/Nothing2Do/diary-mobile-android/master/ui.sql"));
-    conf->setValue(QString("upload"), QVariant("ftp://<user>:<pass>@<hostname>/<file>"));
+    conf->setValue(QString("uploadDB"), QVariant("ftp://<user>:<pass>@<hostname>/db"));
     conf->setValue(QString("restore"), QVariant("http://www.xxx.com/db"));
     conf->setValue(QString("start"), QVariant("begin"));
     conf->setValue(QString("db"), QVariant("/data/data/eu.nothing2do.diarymobile/files/db"));
+    conf->setValue(QString("selectbuttons"), QVariant("select keyword,label,action from ui;"));
 }
 QString &MainWindow::get(int row, int column){
     q->seek(row);
@@ -354,16 +355,12 @@ void MainWindow::editButtonDB(){
 
     }*/
 }
-void MainWindow::updateUi(){
-    //download(conf->value(QString("download")).toString());
+void MainWindow::downloadUi(){
     qDebug()<<"updateUi() : "<<conf->value(QString("download")).toString();
     download(conf->value(QString("download")).toString());
-    //readButtons();
-    connect(m, SIGNAL(downloaded()), SLOT(writeUpdate()));
+    connect(m, SIGNAL(downloaded()), SLOT(writeUi()));
 }
-void MainWindow::writeUpdate(){
-    //flush(); now in readButtons()
-    // put newly downloaded sql file into database
+void MainWindow::writeUi(){
     q->exec("PRAGMA foreign_keys=OFF;");
     q->exec("BEGIN TRANSACTION;");
     readButtons(m->downloadedData());
@@ -371,8 +368,8 @@ void MainWindow::writeUpdate(){
 }
 void MainWindow::sendDB(){
     system("su");
-    qDebug()<<"sendDB() : "<<conf->value(QString("upload")).toString();
-    QUrl upload(conf->value(QString("upload")).toString());
+    qDebug()<<"sendDB() : "<<conf->value(QString("uploadDB")).toString();
+    QUrl upload(conf->value(QString("uploadDB")).toString());
     net=new QNetworkAccessManager(this);
     QFile b(conf->value(QString("db")).toString());
     b.open(QIODevice::ReadOnly);
@@ -383,6 +380,7 @@ void MainWindow::sendDB(){
     connect(rep, SIGNAL(finished()), this, SLOT(datasend()));
     system("exit");
 }
+
 void MainWindow::back(){
     if(way.size()-1>0){
         flush();
@@ -444,6 +442,7 @@ QByteArray FileDownloader::downloadedData() const
 void MainWindow::readButtons(const QByteArray &in){
     int a=in.count('\n');
     QString d=in.split('\n').at(0);
+    conf->setValue(QString("firstline"), d);
     qDebug()<<"first line : "<<d;
     for(int i=1; i<a; i++){
         q->prepare(d);
@@ -472,22 +471,36 @@ void MainWindow::resetUi(){
     exec(QList<QString>({"delete from ui;"}));
 
 }
-void MainWindow::restoreDB(){
-    system("su");
+void MainWindow::downloadDB(){
     qDebug()<<"restoreDB() : "<<conf->value(QString("restore")).toString();
-    QUrl download(conf->value(QString("restore")).toString());
-    net=new QNetworkAccessManager(this);
-    QFile b(conf->value(QString("db")).toString());
-    b.open(QIODevice::WriteOnly);
-    rep=net->get(QNetworkRequest(download));
-    // to be finished ...
-    b.write(rep->readAll());
+    download(conf->value(QString("restore")).toString());
+    connect(m, SIGNAL(downloaded()), SLOT(writeDB()));
+}
+void MainWindow::writeDB(){
+    system("su");
+    QFile a(conf->value(QString("db")).toString());
+    a.open(QIODevice::WriteOnly | QIODevice::Text);
+    QTextStream b(&a);
+    b<<m->downloadedData();
     system("exit");
 }
+
 void MainWindow::download(const QString & a){
     qDebug()<<"download() : "<<a;
     QUrl url(a);
     m = new FileDownloader(url, this);
-    //connect(m, SIGNAL(downloaded()), SLOT(writeUpdate()));
-    //return m->downloadedData();
+}
+void MainWindow::savButtons(){
+    exec(QList<QString> ({conf->value(QString("selectbuttons")).toString()}));
+    QFile a(conf->value(QString("buttonfile")).toString());
+    a.open(QIODevice::WriteOnly | QIODevice::Text);
+    QTextStream b(&a);
+    b<<conf->value("firstline").toString()<<"\n";
+    while (q->next()) {
+        for (int i=0; i<3; i++){
+            b<<q->value(i).toString();
+        }
+        b<<"\n";
+    }
+    a.close();
 }
index 2dfe263873c3a3ab4a13155820fce9fd449f9a45..86e58a07b8a9045b5625dee39bc4da9bab0b56f4 100644 (file)
@@ -113,15 +113,16 @@ private slots:
     void entry(const QString &);
     void createDB();
     void addButtonDB();
+    void writeDB();
     void editButtonDB();
     void getButtons(const QString &);
     void updateUi();
     void writeUpdate();
     void sendDB();
-    //void savButtons();
+    void savButtons();
     void readButtons(const QByteArray &);
     void resetUi();
-    void restoreDB();
+    void downloadDB();
     void download(const QString &);
 public slots: