flush();
if (a.split(QString(" "))[0]==QString("set")){
conf->setValue(QString(a.split(QString(" "))[1]), a.split(QString(" "))[2]);
- start();
+ getButtons(way.last());
}
else if(a.split(QString(" "))[0]==QString("settext")){
conf->setValue(a.split(QString(" "))[1], QInputDialog::getText(this, "setText", a.split(QString(" "))[1], QLineEdit::Normal, conf->value(QString(a.split(QString(" "))[1])).toString()));//conf->value(QString(a.split(QString(" ")).mid(2)))
+ getButtons(way.last());
}
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()));
+ getButtons(way.last());
}
else if(a.split(QString(" "))[0]=="new"){
entry(a.remove(0, 4));
- start();
+ getButtons(way.last());
}
else if(a.split(QString(" "))[0]=="setfile"){
conf->setValue(a.split(QString(" "))[1], QFileDialog::getSaveFileName(this, QString("get file"), QDir::homePath()));
+ getButtons(way.last());
}
else getButtons(a);
}
conf->setValue(QString("menu"), QVariant(1));
conf->setValue(QString("sqlfile"), QVariant("ui.sql"));
conf->setValue(QString("getsql"), QVariant("wget --no-check-certificate https://github.com/Nothing2Do/diary-mobile-android/raw/master/ui.sql"));
+ conf->setValue(QString("update"), QVariant("https://raw.github.com/Nothing2Do/diary-mobile-android/master/ui.sql"));
+
}
QString &MainWindow::get(int row, int column){
q->seek(row);
}
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 qs;
+ if(q->isSelect())return q->size();
+ else return 0;
}
int MainWindow::alias(const QString & a){
qDebug()<<"alias("<<a<<")";
}
void MainWindow::entry(const QString &a){
- QDateTime v;
- QString time=v.currentDateTime().toString(QString("yyyy-MM-dd hh:mm:ss")), entry="";
+ QString time=QDateTime::currentDateTime().toString(QString("yyyy-MM-dd hh:mm:ss")), entry="";
entry=QInputDialog::getText(this, QString("nouvelle entrée"), time, QLineEdit::Normal, a);
if(entry=="")
getButtons(way.last());
flux << c << endl;
fichier.close();
qDebug()<<"content added into file : "<<a;
- q->prepare("INSERT INTO raw (date, texte) VALUES (:date, :txt);");
- q->bindValue(":date", time);
- q->bindValue(":txt", entry);
- qDebug()<<":date = "<<q->boundValue(QString(":date"));
- qDebug()<<":txt = "<<q->boundValue(QString(":txt"));
- q->exec();
+ QList<QString> d({"INSERT INTO raw (date, texte) VALUES (:date, :txt);"});
+ d.append(time);
+ d.append(entry);
+ exec(d);
QSqlError b=q->lastError();
if (b.isValid())qDebug()<<"q->lastError():"<<b.text();
}
void MainWindow::getButtons(const QString &a){
qDebug()<<"getButtons()";
QList<QString> tmp({"select label,action from ui where keyword like :word;", a});;
- QString b=QString::number(way.size());
- label->setText(b);
+ label->setText(QString::number(way.size()));
way.append(a);
exec(tmp);
int labCol = 0;//r.indexOf("label");
}*/
}
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;
+ qDebug()<<"updateUi() : "<<conf->value(QString("update")).toString();
+ QUrl update(conf->value(QString("update")).toString());
+ m = new FileDownloader(update, this);
+ connect(m, SIGNAL(downloaded()), SLOT(writeUpdate()));
+
+
}
void MainWindow::back(){
bool ok;
- int a=QInputDialog::getInt(this, QString("back()"), QString("Ou ?"), way.size()-2, 0, way.size()-2, 1, &ok);
+ int a=QInputDialog::getInt(this, QString("back()"), QString("Quel page ?"), way.size()-2, 0, way.size()-2, 1, &ok);
if(ok){
flush();
getButtons(way[a]);
QString clippedText = metrix.elidedText(text, Qt::ElideRight, width);
label->setText(clippedText);
}
+FileDownloader::FileDownloader(QUrl url, QObject *parent) : QObject(parent)
+{
+ connect(&m_WebCtrl, SIGNAL(finished(QNetworkReply*)),
+ SLOT(fileDownloaded(QNetworkReply*)));
+
+ QNetworkRequest request(url);
+ m_WebCtrl.get(request);
+}
+FileDownloader::~FileDownloader()
+{
+
+}
+void FileDownloader::fileDownloaded(QNetworkReply* pReply)
+{
+ m_DownloadedData = pReply->readAll();
+ //emit a signal
+ pReply->deleteLater();
+ emit downloaded();
+}
+QByteArray FileDownloader::downloadedData() const
+{
+ return m_DownloadedData;
+}
+void MainWindow::writeUpdate(){
+ qDebug()<<"downloaded :"<<m->downloadedData();
+ /* put newly downloaded sql file into database */
+
+}
//#include <QTableWidget>
#include <QTextEdit>
+#ifndef FILEDOWNLOADER_H
+#define FILEDOWNLOADER_H
+
+#include <QObject>
+#include <QByteArray>
+#include <QNetworkAccessManager>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+
+class FileDownloader : public QObject
+{
+ Q_OBJECT
+public:
+ explicit FileDownloader(QUrl url, QObject *parent = 0);
+
+ virtual ~FileDownloader();
+
+ QByteArray downloadedData() const;
+
+signals:
+ void downloaded();
+
+private slots:
+
+ void fileDownloaded(QNetworkReply* pReply);
+
+private:
+
+ QNetworkAccessManager m_WebCtrl;
+
+ QByteArray m_DownloadedData;
+
+};
+
+#endif // FILEDOWNLOADER_H
+
+
class CLabel : public QLabel
{
Q_OBJECT
void mousePressEvent ( QMouseEvent * event ) ;
void mouseReleaseEvent(QMouseEvent * event ) ;
};
+
class MainWindow : public QMainWindow
{
Q_OBJECT
void getButtons(const QString &);
//void getButtons();
void updateUi();
+ void writeUpdate();
public slots:
signals:
QSqlDatabase db;
QSqlQuery *q;
//QSqlRecord r;
+ FileDownloader * m;
};
INSERT INTO "ui" (keyword, label, action) VALUES('config','filesave','settext file');
INSERT INTO "ui" (keyword, label, action) VALUES('config','SQLsettings', 'settext SQLsettings requiressl=1 connect_timeout=10000');
INSERT INTO "ui" (keyword, label, action) VALUES('config','button', 'settext button background-color: red;border-style: outset;border-width: 7px;border-radius: 10px;border-color: beige;font: bold 15px;padding: 6px;');
-INSERT INTO "ui" (keyword, label, action) VALUES('config','fichier SQL', 'setfile sqlfile ui.sql');
+INSERT INTO "ui" (keyword, label, action) VALUES('config','fichier SQL', 'settext sqlfile ui.sql');
INSERT INTO "ui" (keyword, label, action) VALUES('config','getSQL', 'settext getsql wget --no-check-certificate https://github.com/Nothing2Do/diary-mobile-android/raw/master/ui.sql');
COMMIT;