send(c);
}
else if(b[0]==QString("back")){
+ int ws=way.size(), d;
if(way.size()>=2){
way.removeLast();
getButtons(way.takeLast());
+ }
}
- }
else if(b[0]==QString("setfile")){
bool ok=0;
QString d, e;
else if(b[0]==QString("-hist")){
flush();
QString wi;
- lastprint=QString("hist");
+ lastprint=QString("-hist");
for(int i=0; i<way.size(); i++){
wi=way[i];
addWidget(wi, new CLabel(wi, conf->value(QString("button")).toString()));
}
}
else if(b[0]==QString("rm")){
- way.removeAt(b[1].toInt());
- }
+ int d, ws=way.size();
+ if(b.size()>=2)d=b[1].toInt();
+ else return;
+ for (int e=ws-1; e>=d; e--){
+ way.removeAt(e);
+ }
+ getButtons(way.takeLast());
+ }
else if(b[0]==QString("read")){
if(bs==2){
QFile a(b[1]);
QMessageBox::warning(this, trUtf8("Error", "title of box if action(\"read\" has too much (or too \"less\") value"), trUtf8("Bad number of value", "text of box if action(\"read\") has too much (or too \"less\") value"));
}
}
+ else if(b[0]==QString("mass")){
+ if(bs==4){
+ int tmp=b[1].toInt();
+ mass(tmp, b[2], b[3]);
+ }
+ }
else {
getButtons(a);
FileMenu=new QMenu(trUtf8("&File", "top menu"), this);
FileMenu->addAction(trUtf8("&Start", "File|Start"), this, SLOT(start()),QKeySequence(trUtf8("Ctrl+S", "File|Start")));
FileMenu->addAction(trUtf8("&Back", "File|Back"), this, SLOT(back()),QKeySequence(trUtf8("Ctrl+B", "File|Back")));
- FileMenu->addAction(trUtf8("&View/Hide menu", "File|View/Hide"), this, SLOT(toggleMenu()), QKeySequence(trUtf8("Ctrl+T", "File|View menu")));
+ FileMenu->addAction(trUtf8("&View/Hide menu", "File|View/Hide menu"), this, SLOT(toggleMenu()), QKeySequence(trUtf8("Ctrl+T", "File|View menu")));
FileMenu->addAction(trUtf8("sendRAW", "File|SendRAW"), this, SLOT(sendRAW()), QKeySequence(trUtf8("Ctrl+L", "File|Upload")));
FileMenu->addAction(trUtf8("Reset RAW", "File|resetRAW"), this, SLOT(resetRAW()), QKeySequence(trUtf8("Ctrl+E", "File|Reset")));
FileMenu->addAction(trUtf8("&Quit", "File|Quit"), this, SLOT(quit()),QKeySequence(trUtf8("Ctrl+Q", "File|Quit")));
void CLabel::mouseReleaseEvent( QMouseEvent * event )
{
switch(event->button()){
- case Qt::LeftButton:setStyleSheet(m_style);emit released();break;
+ case Qt::LeftButton:setStyleSheet(m_style.replace(QString("border-style: inset"), QString("border-style: outset")));emit released();break;
}
}
q->first();
while(q->isValid()){
int k=q->at();
- qDebug()<<"n°"<<k+1<<"="<<get(k,col);
+ qDebug()<<"n°"<<k<<"="<<get(col);
q->next();
}
}
db.setConnectOptions(conf->value(QString("SQLsettings")).toString());//10sec,
qDebug()<<"db.open() ? "<<db.open()<< ". database : "<<db.databaseName();
q=new QSqlQuery(db);
-
-
-
+ qq=new QSqlQuery(db);
}
void MainWindow::firstrun(){
qDebug()<<"firstrun()";
conf->setValue(QString("servercert"), QVariant("a.pem"));
conf->setValue(QString("database"), QVariant("db"));
conf->setValue(QString("password"), QVariant("pass"));
- conf->setValue(QString("rawfile"), QVariant("raw"));
- conf->setValue(QString("buttonfile"), QVariant("ui.sql+"));
+ conf->setValue(QString("fileraw"), QVariant("raw"));
+ conf->setValue(QString("filebuttons"), QVariant("ui.sql+"));
conf->setValue(QString("maxcolumn"), QVariant(2));
conf->setValue(QString("maxline"), QVariant(4));
conf->setValue(QString("SQLsettings"), QVariant("connect_timeout=10000"));
conf->setValue(QString("db"), QVariant("/data/data/eu.nothing2do.diarymobile/files/db"));
conf->setValue(QString("selectbuttons"), QVariant("select keyword,label,action from ui order by label;"));
conf->setValue(QString("columnbuttons"), QVariant(3));
+ conf->setValue(QString("sqlbuttons"), QVariant("INSERT INTO ui (keyword,label,action) VALUES(?,?,?);"));
conf->setValue(QString("selectraw"), QVariant("select date,texte from raw order by date;"));
conf->setValue(QString("columnraw"), QVariant(2));
conf->setValue(QString("menuback"), QVariant("-menuback"));
conf->setValue(QString("updatebuttons"), QVariant("update ui set keyword=?, label=?, action=? where id=?;"));
conf->setValue(QString("deletebutton"), QVariant("delete from ui where id=?"));
conf->setValue(QString("testbuttons"), QVariant("select id,keyword from ui where label=? and action=?;"));
+ conf->setValue(QString("changekey"), QVariant("select keyword,label,action,id from ui where keyword like ?;"));
conf->setValue(QString("volumdown"), QVariant("back"));
conf->setValue(QString("volumup"), QVariant("begin"));
conf->setValue(QString("askkeyword"), QVariant(0));
conf->setValue(QString("always"), QVariant("+always"));
qDebug()<<"firstrun() finished";
}
-QString &MainWindow::get(int row, int column){
- q->seek(row);
- tmp=q->value(column).toString();
- return tmp;
+QString MainWindow::get(int column){
+ //tmp=q->value(column).toString();
+ return q->value(column).toString();
+}
+QString MainWindow::get2(int column){
+ //tmp2=qq->value(column).toString();
+ return qq->value(column).toString();
}
int MainWindow::exec(const QList<QString> & a){
qDebug()<<"exec("<<a[0]<<") size="<<a.size();
else if (q->isValid()) return 0;
else return -1;
}
+int MainWindow::exec2(const QList<QString> & a){
+ qDebug()<<"exec("<<a[0]<<") size="<<a.size();
+ qq->prepare(a[0]);
+ for (int j=1; j<a.size(); j++){
+ qq->bindValue(j-1, a[j]);
+ qDebug()<<"bind "<<j-1<<" and"<<a[j];
+ }
+ qDebug()<<"exec():"<<qq->exec();
+ QSqlError b=qq->lastError();
+ db.commit();
+ if (b.isValid())qDebug()<<"SQL error :"<<b.text();
+ if(q->isSelect())return qq->size();
+ else if (qq->isValid()) return 0;
+ else return -1;
+}
void MainWindow::entry(const QString &a){
QString label, time=QDateTime::currentDateTime().toString(QString("yyyy-MM-dd hh:mm:ss")), entry, context;
bool ok=0;
void MainWindow::sendRAW(){
//send(QString("raw"))
exec(QList<QString> ({conf->value(QString("selectraw")).toString()}));
- QFile a(conf->value(QString("rawfile")).toString());
+ QFile a(conf->value(QString("fileraw")).toString());
a.open(QIODevice::WriteOnly|QIODevice::Text);
QTextStream b(&a);
int c=conf->value(QString("columnraw")).toInt()-1;
a.close();
qDebug()<<"a.open()="<<a.open(QIODevice::ReadOnly | QIODevice::Text);
//QUrl upload(conf->value(QString("uploadRAW")).toString());
- QUrl upload(QString("ftp://")+conf->value(QString("userftp")).toString()+QString(":")+conf->value(QString("passftp")).toString()+QString("@")+conf->value(QString("hostftp")).toString()+QString("/")+conf->value(QString("rawfile")).toString());
+ QUrl upload(QString("ftp://")+conf->value(QString("userftp")).toString()+QString(":")+conf->value(QString("passftp")).toString()+QString("@")+conf->value(QString("hostftp")).toString()+QString("/")+conf->value(QString("fileraw")).toString());
net=new QNetworkAccessManager(this);
//a.open(QIODevice::ReadOnly | QIODevice::Text);
rep=net->put(QNetworkRequest(upload), a.readAll());
void MainWindow::back(){
if(!((video)&&(playlist))){
getButtons(conf->value(QString("menuback")).toString());
- }else{
+ }else if(label->text()==conf->value(QString("menuback")).toString())getButtons(way.takeLast());
+ else{
getButtons(QString("+video"));
}
}
q->exec("PRAGMA foreign_keys=OFF;");
q->exec("BEGIN TRANSACTION;");// these 2 line is SQLite specific
int a=in.count('\n');
- QString d=in.split('\n').at(0);
+ /*QString d=in.split('\n').at(0);
qDebug()<<"first line : "<<d;
- conf->setValue(QString("firstline"), d);
- for(int i=1; i<a; i++){
+ conf->setValue(QString("firstline"), d);*/
+ QString d=conf->value(QString("sqlbuttons")).toString();
+ for(int i=0; i<a; i++){
q->prepare(d);
int b=in.split('\n').at(i).count('$');
//qDebug()<<i<<"th line, "<<b<<" delimiter";
}
void MainWindow::savButtons(){
exec(QList<QString> ({conf->value(QString("selectbuttons")).toString()}));
- QFile a(conf->value(QString("buttonfile")).toString());
+ QFile a(conf->value(QString("filebuttons")).toString());
a.open(QIODevice::WriteOnly|QIODevice::Text);
QTextStream b(&a);
int c=conf->value(QString("columnbuttons")).toInt()-1;
QString sep=conf->value(QString("sepbuttons")).toString();
qDebug()<<"c="<<c;
- b<<conf->value("firstline").toString()<<"\n";
+ //b<<conf->value("firstline").toString()<<"\n";
while (q->next()) {
for (int i=0; i<c; i++){
b<<q->value(i).toString()<<sep;
}
a.close();
//QUrl upload(conf->value(QString("uploadUi")).toString());
- QUrl upload(QString("ftp://")+conf->value(QString("userftp")).toString()+QString(":")+conf->value(QString("passftp")).toString()+QString("@")+conf->value(QString("hostftp")).toString()+QString("/")+conf->value(QString("buttonfile")).toString());
+ QUrl upload(QString("ftp://")+conf->value(QString("userftp")).toString()+QString(":")+conf->value(QString("passftp")).toString()+QString("@")+conf->value(QString("hostftp")).toString()+QString("/")+conf->value(QString("filebuttons")).toString());
net=new QNetworkAccessManager(this);
a.open(QIODevice::ReadOnly | QIODevice::Text);
rep=net->put(QNetworkRequest(upload), a.readAll());
void MainWindow::send(const QString & a){
QString t="select"+a;
exec(QList<QString> ({conf->value(t).toString()}));
- t=a+"file";
+ t="file"+a;
QFile tmp(conf->value(t).toString());
tmp.open(QIODevice::WriteOnly|QIODevice::Text);
QTextStream b(&tmp);
for (int i=0; i<c; i++){
b<<q->value(i).toString()<<sep;
}
- b<<q->value(1).toString()<<"\n";
+ b<<q->value(c).toString()<<"\n";
}
tmp.close();
qDebug()<<"a.open()="<<tmp.open(QIODevice::ReadOnly | QIODevice::Text);
QString cmd=QInputDialog::getText(this, trUtf8("action", "Title of box where ask for a custom action"), trUtf8("Enter your action", "Label of box where ask for custom action"), QLineEdit::Normal, QString(""), &ok);
if(ok)action(cmd);
}
+void MainWindow::mass(int c, const QString & a, const QString & b){
+ exec(QList<QString>({conf->value(QString("changekey")).toString(), a}));
+ QString key;
+
+ qDebug()<<"key="<<key;
+ while(q->next()){
+ key=get(c);
+ if(key.contains(a)){
+ key.replace(a,b);
+ QList<QString> tmp({conf->value(QString("updatebuttons")).toString()});
+ for(int t=0;t<4;t++){//4 is conf("changekey") column
+ if(t=c)tmp.append(key);
+ else tmp.append(get(t));
+ }
+ exec2(tmp);
+ }
+ }
+ getButtons(lastprint);
+}