{
qDebug()<<"begin of MainWindows";
conf=new QSettings(QString("FwF"), QString("diary-mobile"), this);
- if (conf->allKeys().size()==0){
- first=1;
+ if(conf->allKeys().size()==0){
+ qDebug()<<"first";
firstrun();
- }
+ conf->setValue(QString("first"), 1);
+ };
screen=new QWidget(this);
- grid=new QGridLayout();
- texte=new QLineEdit();
- vbox=new QVBoxLayout(screen);
- hbox=new QHBoxLayout();
- ok=new CLabel("ok");
- ok->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- connect(ok, SIGNAL(released()), this, SLOT(entry()));
- hbox->addWidget(texte);
- hbox->addWidget(ok);
- vbox->addLayout(hbox);
- vbox->addLayout(grid);
+ grid=new QGridLayout(screen);
signalmap=new QSignalMapper(this);
connect(signalmap, SIGNAL(mapped(const QString &)),
this, SLOT(action(const QString &)));
setCentralWidget(screen);
createMenuBar();
connectDB();
- //createDB();
+ if(conf->value(QString("first")).toInt()==1){
+ qDebug()<<"second";
+ createDB();
+ conf->setValue(QString("first"), 2);
+ };
statusBar()->addPermanentWidget(label);
menuBar()->show();
start();
}
void MainWindow::start(){
flush();
+ way.clear();
getButtons(QString("begin"));
}
MainWindow::~MainWindow()
}
CLabel* MainWindow::addWidget(const QString &key, CLabel * a){
qDebug()<<"addWidget("<<key<<")";
- //widget.insert(key, a);
int maxc=conf->value(QString("maxcolumn")).toInt();
grid->addWidget(a, grid->count()/maxc, grid->count()%maxc, 1, 1, Qt::AlignVCenter | Qt::AlignHCenter);
//QObject::connect(a, SIGNAL(pressed()), signalmap, SLOT(map()));
}
void MainWindow::action(const QString & a){
qDebug()<<"action("<<a<<")";
- label->setText(a);
+
flush();
if (a.split(QString(" "))[0]==QString("set")){
conf->setValue(QString(a.split(QString(" "))[1]), a.split(QString(" "))[2]);
exec(a.mid(4));
start();
}
- else if(a.split(QString(" "))[0]==QString("edit")){
-
+ else if(a=="new"){
+ entry();
+ start();
}
else getButtons(a);
}
void MainWindow::createMenuBar(){
+
FileMenu=new QMenu(QString("&File"), this);
FileMenu->addAction(trUtf8("&Start..."), this, SLOT(start()),QKeySequence(trUtf8("Ctrl+S", "Start")));
- FileMenu->addAction(trUtf8("&Connect"), this, SLOT(connectDB()),QKeySequence(trUtf8("Ctrl+C", "Connect")));
+ FileMenu->addAction(trUtf8("&Back"), this, SLOT(back()),QKeySequence(trUtf8("Ctrl+B", "Back")));
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 menu"), this, SLOT(toggleMenu()), QKeySequence(trUtf8("Ctrl+T", "Edit|View menu")));
menuBar()->addMenu(EditMenu);
HelpMenu=new QMenu(QString("&Help"));
HelpMenu->addAction(tr("About Qt"), qApp, SLOT(aboutQt()), QKeySequence(tr("ctrl+H", "About Qt")));
menuBar()->addMenu(HelpMenu);
- menuBar()->show();
+
+ //menuBar()->show();
}
void MainWindow::toggleMenu(){
if (menuBar()->isVisible()){
}
void MainWindow::firstrun(){
+ qDebug()<<"firstrun()";
conf->setValue(QString("host"), QVariant("127.0.0.1"));
conf->setValue(QString("port"),QVariant(5432));
conf->setValue(QString("user"), QVariant("user"));
}
void MainWindow::entry(){
QDateTime v;
- QString a=v.currentDateTime().toString(QString("yyyy-MM-dd hh:mm:ss"))+" "+texte->text();
+ QString time=v.currentDateTime().toString(QString("yyyy-MM-dd hh:mm:ss")), entry="";
+ entry=QInputDialog::getText(this, QString("nouvelle entrée"), QString(time), QLineEdit::Normal, QString(""));
+ if(entry=="")
+ getButtons(way.last());
+ QString a=time+" "+entry;
QFile fichier(conf->value(QString("file")).toString());
fichier.open(QIODevice::Append | QIODevice::Text);
QTextStream flux(&fichier);
fichier.close();
qDebug()<<"content added into file : "<<a;
q->prepare("INSERT INTO raw (date, texte) VALUES (:date, :txt);");
- q->bindValue(":date", v.currentDateTime().toString(QString("yyyy-MM-dd hh:mm:ss")));
- q->bindValue(":txt", texte->text());
+ q->bindValue(":date", time);
+ q->bindValue(":txt", entry);
qDebug()<<":date = "<<q->boundValue(QString(":date"));
qDebug()<<":txt = "<<q->boundValue(QString(":txt"));
q->exec();
QSqlError b=q->lastError();
if (b.isValid())qDebug()<<"q->lastError():"<<b.text();
- texte->clear();
}
void MainWindow::createDB(){
+ qDebug()<<"createDB()";
exec(QString("create table ui(keyword text, label text, action text);"));
exec(QString("create table raw(date timestamp, texte text);"));
- exec(QString("INSERT INTO 'ui' (keyword, label, action) VALUES('begin','fille','fille');"));
- exec(QString("INSERT INTO 'ui' (keyword, label, action) VALUES('fille','aurelie','f-aurelie');"));
- exec(QString("INSERT INTO 'ui' (keyword, label, action) VALUES('f-aurelie','discours','f-a-discours');"));
- exec(QString("INSERT INTO 'ui' (keyword, label, action) VALUES('f-a-discours','discours un peu plus long que la moyenne pour voir se qui va se passer','begin');"));
+ exec(QString("insert into ui (keyword, label, action) values ('begin', 'new', 'new')"));
}
void MainWindow::addButtonDB(){
qDebug()<<"addButtonDB()";
- QString cmd="insert into ui (keyword, label, action) values ('", cur=label->text();
+ QString cmd="insert into ui (keyword, label, action) values ('", cur=way.last();
QString view=QInputDialog::getText(this, QString("label"), QString("Entrez le label"));
if (view=="")view="default";
QString key=QInputDialog::getText(this, QString("keyword"), QString("Entrez le nom de la page"), QLineEdit::Normal, cur);
QString action=QInputDialog::getText(this, QString("action"), QString("Entrez l'action"), QLineEdit::Normal, cur+"_"+view);
QString a=cmd+key+"', '"+view+"', '"+action+"');";
- exec(a);
- flush();
- getButtons(label->text());
+ qDebug()<<"exec()="<<exec(a);
+ /*flush();
+ getButtons(way.last());*/
}
void MainWindow::getButtons(const QString &a){
- QString tmp="select label,action from ui where keyword like '%"+a+"%';";
+ QString tmp="select label,action from ui where keyword like '%"+a+"%';", b=QString::number(way.size());
+ label->setText(b);
+ way.append(a);
exec(tmp);
int labCol = 0;//r.indexOf("label");
int actCol = 1;//r.indexOf("action");
}
void MainWindow::editButtonDB(){
flush();
- exec(QString("select label from ui where keyword like '"+label->text())+"';");
+ qDebug()<<"exec()="<<exec(QString("select label from ui where keyword like '"+label->text())+"';");
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()));
}
- flush();
+ /*flush();
while (q->next()){
+ }*/
+}
+int MainWindow::updateUi(){
+ return system("wget --no-check-certificate https://github.com/Nothing2Do/diary-mobile-android/raw/master/ui.sql");
+
+}
+void MainWindow::back(){
+ int a=QInputDialog::getInt(this, QString("Retour"), QString("Où voulez-vous revenir ?"), way.size()-2, 0, way.size()-2);
+ qDebug()<<"retour : "<<a;
+ flush();
+ getButtons(way[a]);
+}
+void MainWindow::keyReleaseEvent(QKeyEvent *event)
+{
+ static bool accepted=true;
+ if (event->key()==Qt::Key_Back)
+ {
+ back();
+ event->setAccepted(accepted); // dont't close my Top Level Widget !
+ accepted=false;// close the app next time when the user press back button
}
+
}