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;
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);
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(){
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();
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));
}
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)
{
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);
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);
+ }
+
+ }
//#include "sax2.h"
#include <QTranslator>
#include <QLocale>
+#include <QtMultimedia/QMediaPlayer>
+#include <QtMultimedia/QMediaPlaylist>
+#include <QtMultimediaWidgets/QVideoWidget>
+
#ifndef FILEDOWNLOADER_H
#define FILEDOWNLOADER_H
void showExpanded();
const CLabel* addWidget(const QString &, const CLabel *);
+ void resizeEvent(QResizeEvent *);
private slots:
void datasent();
void back();
void writeDB();
void chooseButtonDB();
void chooseButtonDB(const QString &);
-
+ void addMedia(const QString &);
void editButtonDB(const QString &);
void getButtons(const QString &);
void getButtons();
void RAWsent();
void Uisent();
void savButtons();
- void readButtons(const QByteArray &);
+ void readData(const QByteArray &);
void resetUi();
void downloadDB();
void download(const QString &);
//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;
FileDownloader * m;
QNetworkAccessManager *net;
QNetworkReply * rep;
+ bool orientation;//0=portrait 1=paysage (size.width() > size.height())
+ QVideoWidget * videoWidget;
};