]> git.nothing2do.fr Git - diary-mobile.git/commitdiff
I've added into action : "vid", "history" and "read", QString lastprint
authorNorbert Moutarde <norbert.moutarde@nothing2do.eu>
Sat, 7 Jun 2014 19:34:42 +0000 (21:34 +0200)
committerNorbert Moutarde <norbert.moutarde@nothing2do.eu>
Sat, 7 Jun 2014 19:34:42 +0000 (21:34 +0200)
in getButtons, MainWindow::addMedia, MainWindow::resizeEvent and
multimedia things

diary-mobile.pro
mainwindow.cpp
mainwindow.h

index c2de6413af7e9e247c7bae44febe0051a47b7a87..876daba5650e5528cce66cdb85f22f45d00a789d 100644 (file)
@@ -4,7 +4,7 @@
 #
 #-------------------------------------------------
 
-QT       += core gui network sql xml
+QT       += core gui network sql xml multimedia multimediawidgets
 
 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
index b5a06719c1f05876e04d5ba14dafe635432cb021..a95cb5a987832bc4a2b43b7af84c5aa097ce9062 100644 (file)
@@ -146,13 +146,7 @@ const CLabel* MainWindow::addWidget(const QString &key, const CLabel *a){
     qDebug()<<"addWidget("<<key<<")";
     int c=grid->count();
     int maxc=conf->value(QString("maxcolumn")).toInt();
-    /*int maxl=conf->value(QString("maxline")).toInt();
-    if(c>=maxc*maxl){
-        QMessageBox::information(this, QString("lourd !"), QString("il y a trop de boutons sur cette page"));
-        return 0;
-    }*/
     grid->addWidget(a, c/maxc, c%maxc, 1, 1, Qt::AlignJustify| Qt::AlignVCenter | Qt::AlignHCenter);
-    //QObject::connect(a, SIGNAL(pressed()), signalmap, SLOT(map()));
     QObject::connect(a, SIGNAL(released()), signalmap, SLOT(map()));
     signalmap->setMapping(a, key);
     return a;
@@ -243,6 +237,20 @@ void MainWindow::action(const QString &a){
     else if(b[0]==QString("down")){
         download(b[1], b[2]);
     }
+    else if(b[0]==QString("vid")){
+        addMedia(c);
+    }
+    else if(b[0]==QString("history")){
+        flush();
+        for(int i=0; i<way.size(); i++){
+            addWidget(QString(way[i]), new CLabel(QString(way[i]), conf->value(QString("button")).toString()));
+        }
+    }
+    else if(b[0]==QString("read")){
+        QFile a(b[1]);
+        a.open(QIODevice::ReadOnly);
+        readData(a.readAll());
+    }
     else {
         getButtons(a);
 
@@ -268,7 +276,7 @@ void MainWindow::createMenuBar(){
     HelpMenu->addAction(trUtf8("New entry"), this, SLOT(entry()));
     HelpMenu->addAction(trUtf8("getButtons"), this, SLOT(getButtons()));
     HelpMenu->addAction(trUtf8("About Qt"), qApp, SLOT(aboutQt()), QKeySequence(tr("ctrl+H", "Help|About Qt")));
-    EditMenu->addAction(trUtf8("C&reate Database"), this, SLOT(createDB()), QKeySequence(trUtf8("Ctrl+R", "Help|CreateDB")));
+    HelpMenu->addAction(trUtf8("C&reate Database"), this, SLOT(createDB()), QKeySequence(trUtf8("Ctrl+R", "Help|CreateDB")));
     menuBar()->addMenu(HelpMenu);
 }
 void MainWindow::toggleMenu(){
@@ -439,7 +447,7 @@ void MainWindow::addButtonDB(){
     return;
 }
 void MainWindow::getButtons(const QString &b){
-    QString a=b;
+    QString a=b;lastprint=b;
     if((b[0]!='-')&&(b[0]!='+'))way.append(a);
     else a.remove(0, 1);
     qDebug()<<"getButtons("<<a<<") way.size()"<<way.size();
@@ -511,7 +519,7 @@ void MainWindow::downloadUi(){
     connect(m, SIGNAL(downloaded()), SLOT(writeUi()));
 }
 void MainWindow::writeUi(){
-    readButtons(m->downloadedData());
+    readData(m->downloadedData());
     m->deleteLater();
     conf->setValue(QString("lastdownload"), QDateTime::currentDateTime().toString(Qt::ISODate));
 }
@@ -542,10 +550,11 @@ void MainWindow::RAWsent(){
     QMessageBox::information(this, trUtf8("RAWsent", "message title when data has been send"), trUtf8("sendRAW finish", "message text when data has been send"));
 }
 void MainWindow::back(){
-    flush();
-    getButtons(conf->value(QString("menuback")).toString());
-    for(int i=0; i<way.size(); i++){
-        addWidget(QString(way[i]), new CLabel(QString(way[i]), conf->value(QString("button")).toString()));
+    if(label->text()!=QString("video")){
+        flush();
+        getButtons(conf->value(QString("menuback")).toString());
+    }else{
+        getButtons(QString("+video"));
     }
 }
 void MainWindow::keyReleaseEvent(QKeyEvent *event)
@@ -598,13 +607,13 @@ QByteArray FileDownloader::downloadedData() const
 {
     return m_DownloadedData;
 }
-void MainWindow::readButtons(const QByteArray &in){
+void MainWindow::readData(const QByteArray &in){
     qDebug()<<"readButtons";
     q->exec("PRAGMA foreign_keys=OFF;");
-    q->exec("BEGIN TRANSACTION;");
+    q->exec("BEGIN TRANSACTION;");// these 2 line is SQLite specific
     int a=in.count('\n');
     QString d=in.split('\n').at(0);
-    conf->setValue(QString("firstline"), d);
+    //conf->setValue(QString("firstline"), d);
     qDebug()<<"first line : "<<d;
     for(int i=1; i<a; i++){
         q->prepare(d);
@@ -743,7 +752,41 @@ void MainWindow::writeFile(){
     tmp.open(QIODevice::WriteOnly);
     QDataStream str(&tmp);
     str<<m->downloadedData();
+    QMessageBox::information(this, trUtf8("writeFile", "pop-up title when file has been written"), trUtf8("File written : "+file.toLocal8Bit(), "pop-up text when file has been written"));
     m->disconnect();
     d.unlock();
-    QMessageBox::information(this, trUtf8("writeFile", "pop-up title when file has been written"), trUtf8("File written : "+file.toLocal8Bit(), "pop-up text when file has been written"));
 }
+void MainWindow::addMedia(const QString & a){
+    if((video)&&(playlist)){
+        playlist->addMedia(QUrl(a));
+    }else{
+        flush();
+        videoWidget=new QVideoWidget;
+        video=new QMediaPlayer;
+        playlist=new QMediaPlaylist;
+        video->setVideoOutput(videoWidget);
+        video->setPlaylist(playlist);
+        playlist->addMedia(QUrl(a));
+        int c=grid->count();
+        int maxc=conf->value(QString("maxcolumn")).toInt();
+        if(!orientation)grid->addWidget(videoWidget, c/maxc, c%maxc, 1, -1, Qt::AlignJustify| Qt::AlignVCenter | Qt::AlignHCenter);
+        else grid->addWidget(videoWidget, c/maxc, c%maxc, -1, 1, Qt::AlignJustify| Qt::AlignVCenter | Qt::AlignHCenter);
+        label->setText(QString("video"));
+
+    }
+}
+void MainWindow::resizeEvent(QResizeEvent *event)
+{
+    QSize size = event->size();
+    bool isLandscape = size.width() > size.height();
+    if (isLandscape!=orientation){
+        size.transpose();
+        const int a=conf->value(QString("maxcolumn")).toInt();
+        conf->setValue(QString("maxcolumn"), conf->value(QString("maxline")).toInt());
+        conf->setValue(QString("maxline"), a);
+        orientation=isLandscape;
+        flush();
+        getButtons(lastprint);
+    }
+
+ }
index f1108d6606bb5d2f22bb0434014132b663aa0bbc..6162c3da0870200fbd3d5979424d27d2e3a976f2 100644 (file)
 //#include "sax2.h"
 #include <QTranslator>
 #include <QLocale>
+#include <QtMultimedia/QMediaPlayer>
+#include <QtMultimedia/QMediaPlaylist>
+#include <QtMultimediaWidgets/QVideoWidget>
+
 
 #ifndef FILEDOWNLOADER_H
 #define FILEDOWNLOADER_H
@@ -127,6 +131,7 @@ public:
 
     void showExpanded();
     const CLabel* addWidget(const QString &, const CLabel *);
+    void resizeEvent(QResizeEvent *);
 private slots:
     void datasent();
     void back();
@@ -149,7 +154,7 @@ private slots:
     void writeDB();
     void chooseButtonDB();
     void chooseButtonDB(const QString &);
-
+    void addMedia(const QString &);
     void editButtonDB(const QString &);
     void getButtons(const QString &);
     void getButtons();
@@ -161,7 +166,7 @@ private slots:
     void RAWsent();
     void Uisent();
     void savButtons();
-    void readButtons(const QByteArray &);
+    void readData(const QByteArray &);
     void resetUi();
     void downloadDB();
     void download(const QString &);
@@ -174,13 +179,14 @@ private:
     //sax2 xml;
     //QsKineticScroller * ks;
     //QScrollArea * scroll;
-
+    QMediaPlayer *video;
+    QMediaPlaylist *playlist;
     QMutex sql,updatelocker,d;
     QWidget *screen;
     QGridLayout *grid;
     QLabel *label;
     QSettings *conf;
-    QString tmp, file;//host, user, tmp, password, servercert,database;
+    QString tmp, file, lastprint;//host, user, tmp, password, servercert,database;
     QMenu *FileMenu, *EditMenu, *HelpMenu;
     //unsigned short int port;// j'ai lu les docs sur internet et 0<="unsigned short int"<65536
     QSignalMapper *signalmap;
@@ -192,6 +198,8 @@ private:
     FileDownloader * m;
     QNetworkAccessManager *net;
     QNetworkReply * rep;
+    bool orientation;//0=portrait 1=paysage (size.width() > size.height())
+    QVideoWidget * videoWidget;
 };