From: Norbert Moutarde Date: Sat, 7 Jun 2014 19:34:42 +0000 (+0200) Subject: I've added into action : "vid", "history" and "read", QString lastprint X-Git-Url: https://git.nothing2do.fr/?a=commitdiff_plain;h=329ddf9630bfaf7536352d52ceb9222c96594ddd;p=diary-mobile.git I've added into action : "vid", "history" and "read", QString lastprint in getButtons, MainWindow::addMedia, MainWindow::resizeEvent and multimedia things --- diff --git a/diary-mobile.pro b/diary-mobile.pro index c2de641..876daba 100644 --- a/diary-mobile.pro +++ b/diary-mobile.pro @@ -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 diff --git a/mainwindow.cpp b/mainwindow.cpp index b5a0671..a95cb5a 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -146,13 +146,7 @@ const CLabel* MainWindow::addWidget(const QString &key, const CLabel *a){ qDebug()<<"addWidget("<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; ivalue(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("<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; ivalue(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 : "<prepare(d); @@ -743,7 +752,41 @@ void MainWindow::writeFile(){ tmp.open(QIODevice::WriteOnly); QDataStream str(&tmp); str<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); + } + + } diff --git a/mainwindow.h b/mainwindow.h index f1108d6..6162c3d 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -54,6 +54,10 @@ //#include "sax2.h" #include #include +#include +#include +#include + #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; };