};
screen=new QWidget(this);
grid=new QGridLayout(screen);
+ screen->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
signalmap=new QSignalMapper(this);
connect(signalmap, SIGNAL(mapped(const QString &)),
this, SLOT(action(const QString &)));
conf->setValue(QString("first"), 2);
};
statusBar()->addPermanentWidget(label);
- menuBar()->show();
+ menuBar()->setVisible(conf->value(QString("menu")).toBool());
start();
}
void MainWindow::start(){
}
void MainWindow::quit(){
qDebug()<<"quit()";
+ conf->setValue(QString("menu"), menuBar()->isVisible());
conf->sync();
db.commit();
db.close();
conf->setValue(QString(a.split(QString(" "))[1]), a.split(QString(" "))[2]);
start();
}
- /*else if(a.split(QString(" "))[0]==QString("sql")){
- exec(a.mid(4));
- start();
- }*/
+ else if(a.split(QString(" "))[0]==QString("settext")){
+ conf->setValue(a.split(QString(" "))[1], QInputDialog::getText(this, "setText", "label", QLineEdit::Normal, a.split(QString(" "))[2]));
+ }
+ else if(a.split(QString(" "))[0]==QString("setint")){
+ conf->setValue(a.split(QString(" "))[1], QInputDialog::getInt(this, "setInt", a.split(QString(" "))[2] , conf->value(QString(a.split(QString(" "))[3])).toInt()));
+ }
else if(a=="new"){
entry();
start();
FileMenu=new QMenu(QString("&File"), this);
FileMenu->addAction(trUtf8("&Start..."), this, SLOT(start()),QKeySequence(trUtf8("Ctrl+S", "Start")));
FileMenu->addAction(trUtf8("&Back"), this, SLOT(back()),QKeySequence(trUtf8("Ctrl+B", "Back")));
+ FileMenu->addAction(trUtf8("&Update"), this, SLOT(updateUi()),QKeySequence(trUtf8("Ctrl+U", "Update")));
FileMenu->addAction(trUtf8("&Quit..."), this, SLOT(quit()),QKeySequence(trUtf8("Ctrl+Q", "Quit")));
menuBar()->addMenu(FileMenu);
EditMenu=new QMenu(QString("&Edit"));
setWordWrap(true);
setLineWidth(5);
setStyleSheet("background-color: red;border-style: outset;border-width: 7px;border-radius: 10px;border-color: beige;font: bold 15px;padding: 6px;");
- setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
-
-
+ setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
+ setScaledContents(1);
}
CLabel::~CLabel()
{
conf->setValue(QString("maxcolumn"), QVariant(4));
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("dbfile"), QVariant("ui.sql"));
+ conf->setValue(QString("getsql"), QVariant("wget --no-check-certificate https://github.com/Nothing2Do/diary-mobile-android/raw/master/ui.sql"));
}
QString &MainWindow::get(int row, int column){
q->seek(row);
return tmp;
}
int MainWindow::exec(const QList<QString> & a){
- qDebug()<<"exec()="<<a[0]<<" a.size()="<<a.size();
q->prepare(a[0]);
for (int j=1; j<a.size(); j++){
q->bindValue(j-1, a[j]);
qDebug()<<"bind "<<j-1<<" and"<<a[j];
}
- qDebug()<<"exec()="<<q->exec();
+ qDebug()<<"exec("<<a[0]<<")="<<q->exec();
QSqlError b=q->lastError();
+ int qs=q->size();
+ //q->exec(QString("COMMIT;"));
if (b.isValid())qDebug()<<"SQL error->exec() :"<<b.text();
- return q->size();
+ return qs;
}
int MainWindow::alias(const QString & a){
qDebug()<<"alias("<<a<<")";
void MainWindow::addButtonDB(){
qDebug()<<"addButtonDB()";
QList<QString> cmd;
+ bool ok=0;
cmd.append("insert into ui (label, keyword, action) values (:label, :keyword, :action)");
QString 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 view=QInputDialog::getText(this, QString("label"), QString("Entrez le label"),QLineEdit::Normal, QString(), &ok);
+ if ((view=="")||(ok==0))view="default";
+ QString key=QInputDialog::getText(this, QString("keyword"), QString("Entrez le nom de la page où il siègera"), QLineEdit::Normal, cur);
cur.chop(1);
QString action=QInputDialog::getText(this, QString("action"), QString("Entrez l'action"), QLineEdit::Normal, cur+"_"+view);
cmd.append(view);
getButtons(way.last());
}
void MainWindow::getButtons(const QString &a){
-//void MainWindow::getButtons(){
qDebug()<<"getButtons()";
- QList<QString> tmp({"select label,action from ui where keyword like :word;"});
- //QString a="begin";
- tmp.append(a);
+ QList<QString> tmp({"select label,action from ui where keyword like :word;", a});;
QString b=QString::number(way.size());
label->setText(b);
way.append(a);
};
}
void MainWindow::editButtonDB(){
- flush();
- qDebug()<<"exec()="<<exec(QList<QString>({"select label from ui where keyword like ':key' and label = ':label';"}));
+ /*flush();
+ qDebug()<<"exec()="<<exec(QList<QString>({"select label from ui where keyword like :key and label = :label;"}));
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();
}*/
}
-int MainWindow::updateUi(){
- return system("wget --no-check-certificate https://github.com/Nothing2Do/diary-mobile-android/raw/master/ui.sql");
+void MainWindow::updateUi(){
+ // it work on linux
+ system(conf->value(QString("getsql")).toString().toStdString().c_str());
+ QString cmd="cat "+conf->value(QString("dbfile")).toString()+"|sqlite3 "+conf->value(QString("database")).toString();
+ qDebug()<<"cmd : "<<cmd;
+ system(cmd.toStdString().c_str());
+ return;
}
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]);
+ bool ok;
+ int a=QInputDialog::getInt(this, QString("back()"), QString("Ou ?"), way.size()-2, 0, way.size()-2, 1, &ok);
+ if(ok){
+ flush();
+ getButtons(way[a]);
+ qDebug()<<"retour : "<<a;
+ }else return;
+
}
void MainWindow::keyReleaseEvent(QKeyEvent *event)
{
static bool accepted=true;
- if (event->key()==Qt::Key_Back)
+ event->setAccepted(accepted); // don't close my Top Level Widget !
+ int k=event->key();
+ qDebug()<<"key="<<k;
+ if (k==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
+ }else if(k==Qt::Key_Alt){
+
}
}
+static void SetTextToLabel(QLabel *label, QString text)
+{
+ QFontMetrics metrix(label->font());
+ int width = label->width() - 2;
+ QString clippedText = metrix.elidedText(text, Qt::ElideRight, width);
+ label->setText(clippedText);
+}