]> git.nothing2do.fr Git - diary-mobile.git/commitdiff
new buttons can be uploaded on a ftp server
authorNorbert Moutarde <norbert.moutarde@nothing2do.eu>
Tue, 7 Jan 2014 23:15:47 +0000 (00:15 +0100)
committerNorbert Moutarde <norbert.moutarde@nothing2do.eu>
Tue, 7 Jan 2014 23:15:47 +0000 (00:15 +0100)
mainwindow.cpp
mainwindow.h

index 1addb7fe336a6fa25b2b188cc1a5f13ee6eb8b13..b13640e06e4e2de559badafa998b4d19b4c68072 100644 (file)
@@ -25,22 +25,21 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
     screen->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
     signalmap=new QSignalMapper(this);
     connect(signalmap, SIGNAL(mapped(const QString &)), this, SLOT(action(const QString &)));
+    connect(this, SIGNAL(datafilled()), this, SLOT(start()));
     label=new QLabel;
+
     setCentralWidget(screen);
     createMenuBar();
     connectDB();
     if(conf->value(QString("first")).toInt()==1){
         qDebug()<<"second";
         createDB();
+        updateUi();
         conf->setValue(QString("first"), 2);
     };
     QFile sav(conf->value(QString("buttonfile")).toString());
-    if(sav.exists()){
-        sav.open(QIODevice::ReadWrite|QIODevice::Text);
-        data=sav.readAll();
-    }else{
-        updateUi();
-    }
+    qDebug()<<"sav.exists():"<<sav.exists();
+    //readButtons(data);
     statusBar()->addPermanentWidget(label);
     menuBar()->setVisible(conf->value(QString("menu")).toBool());
     start();
@@ -146,10 +145,11 @@ void MainWindow::action(const QString &a){
     }
     else if(a.split(QString(" "))[0]=="new"){
         QString b="";
-        for(int c=0;c<way.size();c++){
+        for(int c=0;c<way.size()-1;c++){
             b+=way[c];
             b+=" ";
         };
+        b+=way.last();
         b+=" : ";
         b+=a.remove(0,4);
         entry(b);
@@ -263,7 +263,7 @@ void MainWindow::firstrun(){
     conf->setValue(QString("menu"), QVariant(1));
     //conf->setValue(QString("download"), QVariant("http://www.nothing2do.eu/ui.sql"));
     conf->setValue(QString("download"), QVariant("https://raw.github.com/Nothing2Do/diary-mobile-android/master/ui.sql"));
-    conf->setValue(QString("upload"), QVariant("ftp://<user>:<pass>@<host>/"));
+    conf->setValue(QString("upload"), QVariant("ftp://<user>:<pass>@<server>/<file>"));
     conf->setValue(QString("start"), QVariant("begin"));
 }
 QString &MainWindow::get(int row, int column){
@@ -291,7 +291,7 @@ void MainWindow::entry(const QString &a){
     bool ok=0;
 
     entry=QInputDialog::getText(this, QString("nouvelle entrée"), a, QLineEdit::Normal, "", &ok);
-    if((entry=="")||(ok==0))return;
+    if(ok==0)return;
     QString c=time+" "+entry;
     QFile fichier(conf->value(QString("file")).toString());
     fichier.open(QIODevice::Append | QIODevice::Text);
@@ -321,15 +321,19 @@ void MainWindow::addButtonDB(){
     QString a, c, b=QInputDialog::getText(this, QString("label"), QString("Entrez son label"),QLineEdit::Normal, QString(), &ok);
     if ((b=="")||(ok==0))return;
     cmd.append(b);
-    for(int i=0;i<way.size()-1; i++){
-        a+=way[i]+"-";
+    for(int i=0;i<way.size()-2; i++){
+        a+=way[i];
+        a.chop(1);
+        a+=" ";
     }
     a+=way.last();
+    a.chop(1);
     b=a+" "+b;
-    a=QInputDialog::getText(this, QString("keyword"), QString("Entrez ses mots clé"), QLineEdit::Normal, cur, &ok);
+    a=QInputDialog::getText(this, QString("keyword"), QString("Entrez ses mots clé (no limit !)"), QLineEdit::Normal, cur, &ok);
     if ((a=="")||(ok==0))return;
     cmd.append(a);
     cur.chop(1);
+    b.chop(1);
     c=QInputDialog::getText(this, QString("action"), QString("Entrez son action"), QLineEdit::Normal, b, &ok);
     if ((c=="")||(ok==0))return;
     cmd.append(c);
@@ -341,8 +345,10 @@ void MainWindow::addButtonDB(){
 void MainWindow::getButtons(const QString &a){
     qDebug()<<"getButtons("<<a<<")";
     flush();
+    /*qDebug()<<"trylock(10000)";
     updatelocker.tryLock(10000);
     updatelocker.unlock();
+    qDebug()<<"unlocked";*/
     way.append(a);
     QString b="%"+a+"%";
     QList<QString> tmp({"select label,action from ui where keyword like ?;", b});
@@ -374,27 +380,24 @@ void MainWindow::editButtonDB(){
     }*/
 }
 void MainWindow::updateUi(){
-    /*qDebug()<<"updatelocker.lock()";
-    updatelocker.lock();*/
     qDebug()<<"updateUi() : "<<conf->value(QString("download")).toString();
     QUrl update(conf->value(QString("download")).toString());
     m = new FileDownloader(update, this);
     connect(m, SIGNAL(downloaded()), SLOT(writeUpdate()));
-    qDebug()<<"updatelocker unlocked";
-
 }
 void MainWindow::sendUi(){
     qDebug()<<"sendUi() : "<<conf->value(QString("upload")).toString();
     QUrl upload(conf->value(QString("upload")).toString());
+
     net=new QNetworkAccessManager(this);
-    qDebug()<<"net->put : "<<net->put(QNetworkRequest(upload),data);
+    /*qDebug()<<"net->put : "<<*/
+    rep=net->put(QNetworkRequest(upload),data);
+    connect(net, SIGNAL(finished(QNetworkReply&)), this, SLOT(datasend(QNetworkReply&)));
 }
 void MainWindow::back(){
     flush();
-    for(int i=0;i<way.size();i++){
-        QString t=way[i];
-        addWidget(t, new CLabel(t));
-    }
+    if(!way.isEmpty()){way.removeLast();getButtons(way.last());}
+    else QMessageBox::information(this, QString("Erreur"), QString("Vous êtes déja au départ."));
 
 }
 void MainWindow::keyReleaseEvent(QKeyEvent *event)
@@ -449,10 +452,6 @@ void MainWindow::writeUpdate(){
     q->exec("PRAGMA foreign_keys=OFF;");
     q->exec("BEGIN TRANSACTION;");
     readButtons(m->downloadedData());
-    //updateUi();
-    savButtons();
-    //getButtons(conf->value(QString("start"), QVariant("begin")).toString());
-
 }
 void MainWindow::savButtons(){
     qDebug()<<"savButtons";
@@ -461,20 +460,23 @@ void MainWindow::savButtons(){
     b.write(data);
 }
 void MainWindow::readButtons(const QByteArray &in){
-    int a=m->downloadedData().count('\n');
+    int a=in.count('\n');
     qDebug()<<"first line : "<<in.split('\n').at(0);
-    QString d=m->downloadedData().split('\n').at(0);
+    QString d=in.split('\n').at(0);
     for(int i=1; i<a; i++){
         q->prepare(d);
-        int b=m->downloadedData().split('\n').at(i).count('$');
+        int b=in.split('\n').at(i).count('$');
         qDebug()<<i<<"th line, "<<b<<" delimiter";
         for(int j=0; j<b+1; j++){
-            q->bindValue(j, QString(m->downloadedData().split('\n').at(i).split('$').at(j)));
-            qDebug()<<"bind "<<j<<" and "<< QString(m->downloadedData().split('\n').at(i).split('$').at(j));
+            q->bindValue(j, QString(in.split('\n').at(i).split('$').at(j)));
+            qDebug()<<"bind "<<j<<" and "<< QString(in.split('\n').at(i).split('$').at(j));
         }
         qDebug()<<"q->exec() : "<<q->exec();
     };
     db.commit();
-
-
+    data=in;
+    emit datafilled();
+}
+void MainWindow::datasend(QNetworkReply & a){
+    qDebug()<<"data send :"<<a.readAll();
 }
index 4c4559bbf5033b5bfaf70e41aa45682bc37c47e0..91505d07d675e37cfdd2c4aa37b4d780917ff96b 100644 (file)
@@ -96,6 +96,7 @@ public:
     void showExpanded();
     CLabel* addWidget(const QString &, const CLabel *);
 private slots:
+    void datasend(QNetworkReply&);
     void back();
     void start();
     void quit();
@@ -122,7 +123,7 @@ private slots:
 public slots:
 
 signals:
-
+    void datafilled();
 private:
     QMutex sql,updatelocker;
     QWidget *screen;
@@ -140,6 +141,7 @@ private:
     //QSqlRecord r;
     FileDownloader * m;
     QNetworkAccessManager *net;
+    QNetworkReply * rep;
     QByteArray data;
 };