]> git.nothing2do.fr Git - diary-mobile.git/commitdiff
editButtonDB() is now functional origin/HEAD origin/master
authorNorbert Moutarde <norbert.moutarde@nothing2do.eu>
Thu, 24 Apr 2014 18:34:58 +0000 (20:34 +0200)
committerNorbert Moutarde <norbert.moutarde@nothing2do.eu>
Thu, 24 Apr 2014 18:34:58 +0000 (20:34 +0200)
mainwindow.cpp

index fdb0b6487300d9448b846468ab3d8757cec3e964..6b675beeecf76558954602e3271ad12a39e9d138 100644 (file)
@@ -117,8 +117,8 @@ CLabel* MainWindow::addWidget(const QString &key, const CLabel *a){
     int maxc=conf->value(QString("maxcolumn")).toInt();
     int maxl=conf->value(QString("maxline")).toInt();
     grid->addWidget(a, grid->count()/maxc, grid->count()%maxc, 1, 1, Qt::AlignJustify| Qt::AlignVCenter | Qt::AlignHCenter);
-    QObject::connect(a, SIGNAL(pressed()), signalmap, SLOT(map()));
-    //QObject::connect(a, SIGNAL(released()), signalmap, SLOT(map()));
+    //QObject::connect(a, SIGNAL(pressed()), signalmap, SLOT(map()));
+    QObject::connect(a, SIGNAL(released()), signalmap, SLOT(map()));
     signalmap->setMapping(a, key);
     return a;
 }
@@ -136,6 +136,9 @@ void MainWindow::action(const QString &a){
     else if(b[0]==QString("setint")){
         conf->setValue(b[1], QInputDialog::getInt(this, "setInt", b[1] , conf->value(QString(b[1])).toInt()));
     }
+    else if(b[0]==QString("start")){
+        getButtons(conf->value(QString("start")).toString());
+    }
     else if(b[0]=="new"){
         entry(c);
     }
@@ -152,6 +155,9 @@ void MainWindow::action(const QString &a){
     else if(b[0]==QString("clear")){
         way.clear();
     }
+    else if(b[0]==QString("edit")){
+        editButtonDB(b[1]);
+    }
     else getButtons(a);
 }
 void MainWindow::createMenuBar(){
@@ -169,7 +175,7 @@ void MainWindow::createMenuBar(){
 
     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("&Edit buttons"), this, SLOT(editButtonDB()), QKeySequence(trUtf8("Ctrl+E", "Buttons|&Edit")));
+    EditMenu->addAction(trUtf8("&Edit buttons"), this, SLOT(chooseButtonDB()), 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);
     HelpMenu=new QMenu(QString("&Help"));
@@ -316,7 +322,7 @@ void MainWindow::entry(){
 }
 void MainWindow::createDB(){
     qDebug()<<"createDB()";
-    exec(QList<QString>({"create table ui(keyword text, label text, action text);"}));
+    exec(QList<QString>({"create table ui(id INTEGER PRIMARY KEY AUTOINCREMENT,keyword text, label text, action text);"}));
     exec(QList<QString>({"create table raw(date timestamp, texte text);"}));
 }
 void MainWindow::addButtonDB(){
@@ -353,25 +359,38 @@ void MainWindow::getButtons(const QString &a){
     int i=0;
     qDebug()<<"bcl to add buttons";
     while(q->next()){
-        addWidget(q->value(actCol).toString(), new CLabel(q->value(labCol).toString(), conf->value(QString("button"), QVariant("background-color: red;border-style: outset;border-width: 7px;border-radius: 10px;border-color: beige;font: bold 15px;padding: 6px;")).toString()));
+        addWidget(q->value(actCol).toString(), new CLabel(q->value(labCol).toString(), conf->value(QString("button")).toString()));
         i++;
     };
     way.append(a);
     qDebug()<<"end getButtons : "<<i<<" button(s) way.size()"<<way.size();
 }
-void MainWindow::editButtonDB(){
-    /*flush();
-    qDebug()<<"exec()="<<exec(QList<QString>({"select label from ui where keyword like :key and label = :label;"}));
+void MainWindow::chooseButtonDB(){
+    const QString a=QInputDialog::getText(this, QString("chooseButtonDB"), QString("Entrez le mots-clé : "), QLineEdit::Normal, way.last());
+    chooseButtonDB(a);
+}
+void MainWindow::chooseButtonDB(const QString & a){
+    flush();
+    qDebug()<<"exec()="<<exec(QList<QString>({"select id,label from ui where keyword like ?;", a}));
     while (q->next()) {
-        //QString key=QString("sql select keyword,label,action from ui where keyword like '"+q->value(0).toString()+"';");
-        qDebug()<<q->value(0).toString();
-        addWidget(QString("sql select keyword,label,action from ui where keyword like '"+q->value(0).toString()+"';"), new CLabel(q->value(0).toString()));
+        const QString action="edit "+q->value(0).toString();
+        addWidget(action, new CLabel(q->value(1).toString(), conf->value(QString("button")).toString()));
     }
-    /*flush();
-    while (q->next()){
+}
+void MainWindow::editButtonDB(const QString & a){
+    exec(QList<QString>({"select id,keyword,label,action from ui where id=?;", a}));
+    q->next();
+    const QString keyword=QInputDialog::getText(this, "keyword", "new keyword", QLineEdit::Normal, q->value(1).toString());
+    const QString label=QInputDialog::getText(this, "label", "new label", QLineEdit::Normal, q->value(2).toString());
+    const QString action=QInputDialog::getText(this, "action", "new action", QLineEdit::Normal, q->value(3).toString());
+    if((keyword=="")||(label=="")||(action=="")){
+        exec(QList<QString>({"delete from ui where id=?", a}));
+        return;
+        }
+    exec(QList<QString>({"update ui set keyword=?, label=?, action=? where id=?;", keyword, label, action, a}));
 
-    }*/
 }
+
 void MainWindow::downloadUi(){
     qDebug()<<"updateUi() : "<<conf->value(QString("download"), QVariant("https://raw.github.com/Nothing2Do/diary-mobile-android/master/ui.sql")).toString();
     download(conf->value(QString("download")).toString());
@@ -413,7 +432,8 @@ void MainWindow::RAWsent(){
 void MainWindow::back(){
     flush();
     getButtons(conf->value(QString("menuback")).toString());
-    for(int i=0; i<way.size()-1; i++){
+    way.removeLast();
+    for(int i=0; i<way.size(); i++){
         addWidget(QString(way[i]), new CLabel(QString(way[i]), conf->value(QString("button")).toString()));
     }
 }