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){
+
+ if((conf->value(QString("first")).toInt()==1)){
qDebug()<<"second";
createDB();
updateUi();
conf->setValue(QString("first"), 2);
};
QFile sav(conf->value(QString("buttonfile")).toString());
- qDebug()<<"sav.exists():"<<sav.exists();
- //readButtons(data);
+ if((sav.exists())&&(conf->value(QString("first")).toInt()!=1)){
+ sav.open(QIODevice::ReadOnly);
+ data=sav.readAll();
+ sav.close();
+ }
statusBar()->addPermanentWidget(label);
menuBar()->setVisible(conf->value(QString("menu")).toBool());
- start();
}
void MainWindow::start(){
way.clear();
entry(b);
}
else if(a=="viewdata")qDebug()<<data;
+ else if(a=="nothing")return;
else if(a.split(QString(" "))[0]=="setfile"){
conf->setValue(a.split(QString(" "))[1], QFileDialog::getSaveFileName(this, QString("get file"), conf->value(a.split(QString(" "))[1]).toString()));
}
FileMenu->addAction(trUtf8("Up&load"), this, SLOT(sendUi()),QKeySequence(trUtf8("Ctrl+L", "Upload")));
FileMenu->addAction(trUtf8("&Quit..."), this, SLOT(quit()),QKeySequence(trUtf8("Ctrl+Q", "Quit")));
menuBar()->addMenu(FileMenu);
- EditMenu=new QMenu(QString("&Edit"));
- EditMenu->addAction(trUtf8("C&reate database"), this, SLOT(createDB()), QKeySequence(trUtf8("Ctrl+R", "Edit|Database")));
- EditMenu->addAction(trUtf8("A&dd buttons"), this, SLOT(addButtonDB()), QKeySequence(trUtf8("Ctrl+D", "Add buttons")));
- EditMenu->addAction(trUtf8("&Edit buttons"), this, SLOT(editButtonDB()), QKeySequence(trUtf8("Ctrl+E", "Edit|&Edit button")));
- EditMenu->addAction(trUtf8("&View/Hide menu"), this, SLOT(toggleMenu()), QKeySequence(trUtf8("Ctrl+T", "Edit|View menu")));
+ 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("&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")));
+ EditMenu->addAction(trUtf8("Re&set database"), this, SLOT(resetDB()), QKeySequence(trUtf8("Ctrl+S", "Buttons|ResetDB")));
menuBar()->addMenu(EditMenu);
HelpMenu=new QMenu(QString("&Help"));
HelpMenu->addAction(tr("About Qt"), qApp, SLOT(aboutQt()), QKeySequence(tr("ctrl+H", "About Qt")));
setWordWrap(true);
setLineWidth(5);
setStyleSheet(style);
- setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
setScaledContents(1);
}
CLabel::~CLabel()
db.setUserName(conf->value(QString("user")).toString());
db.setPassword(conf->value(QString("password")).toString());
db.setConnectOptions(conf->value(QString("SQLsettings")).toString());//10sec,
- //bool ok=db.open();
qDebug()<<"db.open() ? "<<db.open()<< ". database : "<<db.databaseName();
q=new QSqlQuery(db);
conf->setValue(QString("SQLsettings"), QVariant("requiressl=1 connect_timeout=10000"));
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("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>@<server>/<file>"));
+ conf->setValue(QString("upload"), QVariant("ftp://<user>:<pass>@<hostname>/<file>"));
conf->setValue(QString("start"), QVariant("begin"));
}
QString &MainWindow::get(int row, int column){
QFile fichier(conf->value(QString("file")).toString());
fichier.open(QIODevice::Append | QIODevice::Text);
QTextStream flux(&fichier);
- flux << time << c << endl;
+ flux << c << endl;
fichier.close();
QList<QString> d({"INSERT INTO raw (date, texte) VALUES (:date, :txt);"});
d.append(time);
bool ok=0;
cmd.append("insert into ui (label, keyword, action) values (:label, :keyword, :action)");
QString cur=way.last();
- 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()-2; i++){
+ QString a="", b, c=QInputDialog::getText(this, QString("label"), QString("Entrez son label"),QLineEdit::Normal, QString(), &ok);
+ if ((c=="")||(ok==0))return;
+ cmd.append(c);
+ for(int i=0;i<way.size(); i++){
a+=way[i];
a.chop(1);
a+=" ";
+ qDebug()<<"a="<<a<<" i="<<i;
}
- a+=way.last();
- //a.chop(1);
- b=a+" "+b;
- a=QInputDialog::getText(this, QString("keyword"), QString("Entrez ses mots clé (no limit !)"), QLineEdit::Normal, cur, &ok);
+ b=QInputDialog::getText(this, QString("keyword"), QString("Entrez ses mots clé (no limit !)"), QLineEdit::Normal, cur, &ok);
+ if ((b=="")||(ok==0))return;
+ cmd.append(b);
+ a=QInputDialog::getText(this, QString("action"), QString("Entrez son action"), QLineEdit::Normal, a+c, &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);
exec(cmd);
- data.append(b).append('$').append(a).append('$').append(c).append('\n');
- getButtons(way.last());
+ data.append(c).append('$').append(b).append('$').append(a).append('\n');
+ savButtons();
+ //getButtons(way.last());
return;
}
void MainWindow::getButtons(const QString &a){
- qDebug()<<"getButtons("<<a<<")";
+ qDebug()<<"getButtons("<<a<<") wait for update end (10s)";
flush();
- /*qDebug()<<"trylock(10000)";
- updatelocker.tryLock(10000);
- updatelocker.unlock();
- qDebug()<<"unlocked";*/
+ if(updatelocker.tryLock(10000))updatelocker.unlock();
+ else{qDebug()<<"updatelocker is locked more than 10s";}
way.append(a);
QString b="%"+a+"%";
QList<QString> tmp({"select label,action from ui where keyword like ?;", b});
void MainWindow::sendUi(){
qDebug()<<"sendUi() : "<<conf->value(QString("upload")).toString();
QUrl upload(conf->value(QString("upload")).toString());
-
net=new QNetworkAccessManager(this);
- /*qDebug()<<"net->put : "<<*/
+ //qDebug()<<"net->put : "<<net->put(QNetworkRequest(upload), data);
rep=net->put(QNetworkRequest(upload),data);
- connect(net, SIGNAL(finished(QNetworkReply&)), this, SLOT(datasend(QNetworkReply&)));
+ connect(rep, SIGNAL(finished(QNetworkReply&)), this, SLOT(datasend(QNetworkReply&)));
}
void MainWindow::back(){
flush();
- if(!way.isEmpty()){way.removeLast();getButtons(way.last());}
+ if(!way.isEmpty()){
+ for(int i=0; i<way.size(); i++){
+ addWidget(QString(way[i]), new CLabel(QString(way[i])));
+ }
+ }
+ /*if(!way.isEmpty()){
+ way.removeLast();
+ getButtons(way.last());
+ }*/
else QMessageBox::information(this, QString("Erreur"), QString("Vous êtes déja au départ."));
}
}
void CLabel::SetTextToLabel(const QString& text)
{
- //qDebug()<<"setTextToLabel";
+ qDebug()<<"setTextToLabel";
QFontMetrics metrix(font());
- int width = this->width() - 2;
- //qDebug()<<"width()"<<width<<" height() "<<height();
//font().setPointSize(width);
- QString clippedText = metrix.elidedText(text, Qt::ElideMiddle, width);
- setText(clippedText);
+ setText(text);
}
FileDownloader::FileDownloader(QUrl url, QObject *parent) : QObject(parent)
{
}
void MainWindow::writeUpdate(){
qDebug()<<"downloaded : "<<m->downloadedData().size()<<" byte";
+ flush();
// put newly downloaded sql file into database
q->exec("PRAGMA foreign_keys=OFF;");
q->exec("BEGIN TRANSACTION;");
QFile b(conf->value(QString("buttonfile")).toString());
b.open(QIODevice::WriteOnly);
b.write(data);
+ b.close();
}
void MainWindow::readButtons(const QByteArray &in){
int a=in.count('\n');
data=in;
emit datafilled();
}
-void MainWindow::datasend(QNetworkReply & a){
- qDebug()<<"data send :"<<a.readAll();
+void MainWindow::datasend(QNetworkReply *a){
+ a->open(QIODevice::ReadOnly);
+ qDebug()<<"data send :"<<a->readAll();
+}
+void MainWindow::resetDB(){
+ exec(QList<QString>({"delete from ui;"}));
+
}