diff options
author | am <am@f440f766-f032-0410-8965-dc7d17de2ca0> | 2009-08-01 13:23:42 +0000 |
---|---|---|
committer | am <am@f440f766-f032-0410-8965-dc7d17de2ca0> | 2009-08-01 13:23:42 +0000 |
commit | 286d54a4705e56567a68cf6dabfa3ce64ac162d6 (patch) | |
tree | 021bff63e2e4f77383a6c95dc5b0dc54ea45e90e /moviepropertiesdialog.cpp | |
parent | 68ee8c0796a663ec87b913da33d48cf5481ddb35 (diff) | |
download | SheMov-286d54a4705e56567a68cf6dabfa3ce64ac162d6.tar.gz SheMov-286d54a4705e56567a68cf6dabfa3ce64ac162d6.tar.bz2 SheMov-286d54a4705e56567a68cf6dabfa3ce64ac162d6.zip |
-finished properties dialog
-start mplayer detached from FileSystemWidget
git-svn-id: file:///var/svn/repos2/shemov/trunk@397 f440f766-f032-0410-8965-dc7d17de2ca0
Diffstat (limited to 'moviepropertiesdialog.cpp')
-rw-r--r-- | moviepropertiesdialog.cpp | 152 |
1 files changed, 151 insertions, 1 deletions
diff --git a/moviepropertiesdialog.cpp b/moviepropertiesdialog.cpp index 26bec8f..724e9ba 100644 --- a/moviepropertiesdialog.cpp +++ b/moviepropertiesdialog.cpp @@ -14,6 +14,13 @@ #include <QLabel> #include <QSqlQuery> #include <QFileInfo> +#include <QFont> +#include <QApplication> +#include <QGridLayout> +#include <QLocale> +#include <QGraphicsTextItem> +#include <QGraphicsPixmapItem> +#include <QPixmap> #include "moviepropertiesdialog.h" #include "helper.h" @@ -43,11 +50,145 @@ MoviePropertiesDialog::MoviePropertiesDialog(int movid, QWidget *parent, Qt::Win QSqlQuery q2; q2.prepare("SELECT tactorname FROM actor, movieactormap WHERE movieactormap.iactorid = actor.iactorid AND movieactormap.imovid = :id"); q2.bindValue(":id", mId); + q2.exec(); while(q2.next()){ actors << q2.value(0).toString(); } //layout - + QVBoxLayout *mainLayout = new QVBoxLayout; + mView = new QGraphicsView; + mScene = new QGraphicsScene(this); + mView->setScene(mScene); + mainLayout->addWidget(mView); + + //cover buttons + QHBoxLayout *buttonPicLayout = new QHBoxLayout; + mPrev = new QPushButton(tr("Previous")); + connect(mPrev, SIGNAL(clicked()), this, SLOT(previousCover())); + mNext = new QPushButton(tr("Next")); + connect(mNext, SIGNAL(clicked()), this, SLOT(nextCover())); + buttonPicLayout->addWidget(mPrev); + buttonPicLayout->addStretch(); + buttonPicLayout->addWidget(mNext); + mainLayout->addLayout(buttonPicLayout); + + //actors + mActors = new QTextEdit; + mActors->setReadOnly(true); + mActors->setFont(QFont("Courier new")); + mActors->setHtml(actorHtml(actors)); + + //properties + QGridLayout *propertiesGrid = new QGridLayout; + QFont font = qApp->font(); + font.setWeight(QFont::Bold); + QLabel *l1 = new QLabel("Genre"); + l1->setFont(font); + QLabel *l2 = new QLabel(genre); + propertiesGrid->addWidget(l1, 0, 0); + propertiesGrid->addWidget(l2, 0, 1); + QLabel *l3 = new QLabel(tr("Title")); + l3->setFont(font); + QLabel *l4 = new QLabel(title); + propertiesGrid->addWidget(l3, 1, 0); + propertiesGrid->addWidget(l4, 1, 1); + QLabel *l5 = new QLabel(tr("Filename")); + l5->setFont(font); + QLabel *l6 = new QLabel(filename); + propertiesGrid->addWidget(l5, 2, 0); + propertiesGrid->addWidget(l6, 2, 1); + QLabel *l7 = new QLabel(tr("MD5")); + l7->setFont(font); + QLabel *l8 = new QLabel(md5); + propertiesGrid->addWidget(l7, 3, 0); + propertiesGrid->addWidget(l8, 3, 1); + QLabel *l9 = new QLabel(tr("Size")); + l9->setFont(font); + QLocale l; + QLabel *l10 = new QLabel(l.toString(size)); + propertiesGrid->addWidget(l9, 4, 0); + propertiesGrid->addWidget(l10, 4, 1); + QLabel *l11 = new QLabel(tr("Quality")); + l11->setFont(font); + QLabel *l12 = new QLabel(QString::number(quality)); + propertiesGrid->addWidget(l11, 5, 0); + propertiesGrid->addWidget(l12, 5, 1); + QLabel *l13 = new QLabel(tr("Archived")); + l13->setFont(font); + QLabel *l14 = new QLabel; + if(dvd < 0){ + l14->setText(tr("No - local")); + }else{ + QString s = QString(tr("On DVD #%1")).arg(QString::number(dvd)); + l14->setText(s); + } + propertiesGrid->addWidget(l13, 6, 0); + propertiesGrid->addWidget(l14, 6, 1); + QHBoxLayout *actorsPropertiesLayout = new QHBoxLayout; + actorsPropertiesLayout->addWidget(mActors); + actorsPropertiesLayout->addLayout(propertiesGrid); + mainLayout->addLayout(actorsPropertiesLayout); + + //close button + mClose = new QPushButton(tr("Close")); + connect(mClose, SIGNAL(clicked()), this, SLOT(reject())); + QHBoxLayout *closeButtonLayout = new QHBoxLayout; + closeButtonLayout->addStretch(); + closeButtonLayout->addWidget(mClose); + closeButtonLayout->addStretch(); + mainLayout->addLayout(closeButtonLayout); + + setLayout(mainLayout); + QString winTitle = QString("%1 - Properties of %2").arg(qApp->applicationName()).arg(title); + setWindowTitle(winTitle); + + if(!mCovers.isEmpty()){ + mIndex = 0; + } + setCover(mIndex); + +} + +void MoviePropertiesDialog::setCover(int index){ + mScene->clear(); + if((index < 0) || (index >= mCovers.size())){ + QGraphicsTextItem *item = new QGraphicsTextItem(tr("No covers")); + QFont font = QFont("Courier new", 30 , QFont::Bold); + item->setFont(font); + item->setDefaultTextColor(Qt::red); + item->rotate(45); + mScene->addItem(item); + item->setPos(0, 0); + mNext->setEnabled(false); + mPrev->setEnabled(false); + }else{ + QPixmap pm(mCovers.at(index)); + QGraphicsPixmapItem *item = new QGraphicsPixmapItem(pm); + mScene->addItem(item); + item->setPos(0, 0); + } +} + +void MoviePropertiesDialog::nextCover(){ + if(mIndex < 0){ + return; + } + ++mIndex; + if(mIndex >= mCovers.size()){ + mIndex = 0; + } + setCover(mIndex); +} + +void MoviePropertiesDialog::previousCover(){ + if(mIndex < 0){ + return; + } + --mIndex; + if(mIndex < 0){ + mIndex = mCovers.size() - 1; + } + setCover(mIndex); } void MoviePropertiesDialog::covers(){ @@ -63,3 +204,12 @@ void MoviePropertiesDialog::covers(){ } } } + +const QString MoviePropertiesDialog::actorHtml(const QStringList &actors) const{ + QString retval("<html><body><ul>"); + foreach(QString a, actors){ + retval.append(QString("<li>%1</li>").arg(a)); + } + retval.append("</ul></body></html>"); + return retval; +} |