.
This commit is contained in:
@@ -42,7 +42,6 @@ cEdit::cEdit(QWidget *parent) :
|
||||
m_lpAllProgress(0),
|
||||
m_lpAllDone(0),
|
||||
m_lpVerticalSpacer(0),
|
||||
// m_lpButtonBox(0),
|
||||
m_lpSerie(0)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include "cserie.h"
|
||||
|
||||
#include <QDialog>
|
||||
//#include <QDialogButtonBox>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
@@ -33,9 +32,9 @@ private slots:
|
||||
|
||||
void on_m_lpTabWidget_tabBarClicked(int index);
|
||||
|
||||
void on_m_lpCliffhanger_clicked();
|
||||
void on_m_lpCliffhanger_clicked();
|
||||
|
||||
void on_m_lpFirstAired_dateChanged(const QDate &date);
|
||||
void on_m_lpFirstAired_dateChanged(const QDate &date);
|
||||
|
||||
private:
|
||||
Ui::cEdit* ui;
|
||||
@@ -59,7 +58,6 @@ private:
|
||||
QPushButton* m_lpAllDone;
|
||||
|
||||
QSpacerItem* m_lpVerticalSpacer;
|
||||
// QDialogButtonBox* m_lpButtonBox;
|
||||
|
||||
cSerie* m_lpSerie;
|
||||
};
|
||||
|
||||
+168
-22
@@ -10,6 +10,7 @@
|
||||
#include "cmessageanimatedialog.h"
|
||||
#include "cmessagedialog.h"
|
||||
#include "cedit.h"
|
||||
#include "cmovieedit.h"
|
||||
#include "cimage.h"
|
||||
|
||||
#include "cthemoviedbv3.h"
|
||||
@@ -623,7 +624,7 @@ void cMainWindow::displayMovies()
|
||||
lpRoot = 0;
|
||||
else
|
||||
{
|
||||
lpRoot = new QStandardItem(szOldCollection);
|
||||
lpRoot = new QStandardItem(QString("<font color='white'><b>%1</b></font>").arg(szOldCollection));
|
||||
m_lpMoviesListModel->appendRow(lpRoot);
|
||||
}
|
||||
}
|
||||
@@ -702,8 +703,42 @@ void cMainWindow::showMoviesContextMenu(QTreeView* lpTreeView, const QPoint &pos
|
||||
|
||||
lpMenu->addAction("add", this, SLOT(onActionMovieAdd()));
|
||||
|
||||
lpMenu->addAction("update all", this, SLOT(onActionMovieUpdateAll()));
|
||||
lpMenu->addSeparator();
|
||||
|
||||
if(lpTreeView->selectionModel()->selectedRows().count() == 1)
|
||||
{
|
||||
cMovie* lpMovie = m_lpMoviesListModel->itemFromIndex(lpTreeView->selectionModel()->selectedRows().at(0))->data(Qt::UserRole).value<cMovie*>();
|
||||
if(lpMovie)
|
||||
{
|
||||
lpMenu->addAction("update", this, SLOT(onActionMovieUpdate()));
|
||||
lpMenu->addAction("delete", this, SLOT(onActionMovieDelete()));
|
||||
lpMenu->addAction("edit", this, SLOT(onActionMovieEdit()));
|
||||
lpMenu->addSeparator();
|
||||
|
||||
if(!lpMovie->imdbID().isEmpty())
|
||||
lpMenu->addAction("open IMDB", this, SLOT(onActionMovieGotoIMDB()));
|
||||
|
||||
// if(!lpMovie->download().isEmpty())
|
||||
// {
|
||||
// lpMenu->addAction("open download link", this, SLOT(onActionMovieGotoDownload()));
|
||||
// lpMenu->addAction("copy download link", this, SLOT(onActionMovieCopyDownload()));
|
||||
// }
|
||||
lpMenu->addSeparator();
|
||||
lpMenu->addAction("load images", this, SLOT(onActionMovieLoadPictures()));
|
||||
}
|
||||
}
|
||||
else if(lpTreeView->selectionModel()->selectedRows().count())
|
||||
{
|
||||
lpMenu->addAction("update selected", this, SLOT(onActionMovieUpdate()));
|
||||
lpMenu->addAction("delete selected", this, SLOT(onActionMovieDelete()));
|
||||
lpMenu->addSeparator();
|
||||
lpMenu->addAction("load images", this, SLOT(onActionLoadMoviePictures()));
|
||||
}
|
||||
|
||||
lpMenu->popup(lpTreeView->viewport()->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
bool cMainWindow::runEdit(cSerie* lpSerie, QString& szDownload)
|
||||
{
|
||||
cEdit* lpEdit = new cEdit;
|
||||
@@ -775,6 +810,52 @@ bool cMainWindow::runEdit(cSerie* lpSerie, QString& szDownload)
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool cMainWindow::runMovieEdit(cMovie *lpMovie)
|
||||
{
|
||||
cMovieEdit* lpMovieEdit = new cMovieEdit(this);
|
||||
|
||||
cMessageAnimateDialog* lpDialog = new cMessageAnimateDialog(this);
|
||||
lpDialog->setTitle("Edit");
|
||||
lpDialog->setMessage("Loading");
|
||||
lpDialog->show();
|
||||
|
||||
lpMovieEdit->setMovie(lpMovie);
|
||||
|
||||
QSettings settings;
|
||||
qint16 iX = settings.value("movieEdit/x", QVariant::fromValue(-1)).toInt();
|
||||
qint16 iY = settings.value("movieEdit/y", QVariant::fromValue(-1)).toInt();
|
||||
qint16 iWidth = settings.value("movieEdit/width", QVariant::fromValue(-1)).toInt();
|
||||
qint16 iHeight = settings.value("movieEdit/height", QVariant::fromValue(-1)).toInt();
|
||||
|
||||
if(iX != -1 && iY != -1)
|
||||
lpMovieEdit->move(iX, iY);
|
||||
if(iWidth != -1 && iHeight != -1)
|
||||
lpMovieEdit->resize(iWidth, iHeight);
|
||||
|
||||
delete lpDialog;
|
||||
|
||||
qint16 ret = lpMovieEdit->exec();
|
||||
|
||||
settings.setValue("movieEdit/width", QVariant::fromValue(lpMovieEdit->size().width()));
|
||||
settings.setValue("movieEdit/height", QVariant::fromValue(lpMovieEdit->size().height()));
|
||||
settings.setValue("movieEdit/x", QVariant::fromValue(lpMovieEdit->x()));
|
||||
settings.setValue("movieEdit/y", QVariant::fromValue(lpMovieEdit->y()));
|
||||
if(this->isMaximized())
|
||||
settings.setValue("movieEdit/maximized", QVariant::fromValue(true));
|
||||
else
|
||||
settings.setValue("movieEdit/maximized", QVariant::fromValue(false));
|
||||
|
||||
if(ret == QDialog::Rejected)
|
||||
{
|
||||
delete lpMovieEdit;
|
||||
return(false);
|
||||
}
|
||||
|
||||
delete lpMovieEdit;
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
void cMainWindow::onActionAdd()
|
||||
{
|
||||
cSearch* lpSearch = new cSearch(this);
|
||||
@@ -890,15 +971,7 @@ void cMainWindow::onActionMovieAdd()
|
||||
|
||||
delete lpDialog;
|
||||
|
||||
lpDialog = new cMessageAnimateDialog(this);
|
||||
lpDialog->setTitle("Update");
|
||||
lpDialog->setMessage("Updating");
|
||||
lpDialog->show();
|
||||
|
||||
lpMovie->save(m_db);
|
||||
/*
|
||||
QString szDownload;
|
||||
if(!runEdit(lpSerie, szDownload))
|
||||
if(!runMovieEdit(lpMovie))
|
||||
return;
|
||||
|
||||
lpDialog = new cMessageAnimateDialog(this);
|
||||
@@ -906,18 +979,16 @@ void cMainWindow::onActionMovieAdd()
|
||||
lpDialog->setMessage("Updating");
|
||||
lpDialog->show();
|
||||
|
||||
lpSerie->save(m_db);
|
||||
*/
|
||||
lpMovie->save(m_db);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
lpSerie = new cSerie;
|
||||
lpSerie->setSeriesName(szPlaceholder);
|
||||
lpMovie = new cMovie;
|
||||
lpMovie->setMovieTitle(szPlaceholder);
|
||||
|
||||
qint32 iMax = 0;
|
||||
QSqlQuery query;
|
||||
if(query.exec("SELECT MAX(id) FROM serie;"))
|
||||
if(query.exec("SELECT MAX(movieID) FROM movie;"))
|
||||
{
|
||||
query.next();
|
||||
if(query.isValid())
|
||||
@@ -927,10 +998,9 @@ void cMainWindow::onActionMovieAdd()
|
||||
iMax = 1000000;
|
||||
else
|
||||
iMax++;
|
||||
lpSerie->setID(iMax);
|
||||
lpSerie->setFirstAired(QDate(iYear, 1, 1));
|
||||
lpSerie->save(m_db);
|
||||
*/
|
||||
lpMovie->setMovieID(iMax);
|
||||
lpMovie->setReleaseDate(QString("%1-01-01").arg(iYear));
|
||||
lpMovie->save(m_db);
|
||||
}
|
||||
|
||||
loadMoviesDB();
|
||||
@@ -947,6 +1017,10 @@ void cMainWindow::onActionUpdateAll()
|
||||
doUpdate(serieList);
|
||||
}
|
||||
|
||||
void cMainWindow::onActionMovieUpdateAll()
|
||||
{
|
||||
}
|
||||
|
||||
void cMainWindow::onActionUpdateUnfinished()
|
||||
{
|
||||
cSerieList serieList;
|
||||
@@ -974,6 +1048,10 @@ void cMainWindow::onActionUpdate()
|
||||
doUpdate(serieList);
|
||||
}
|
||||
|
||||
void cMainWindow::onActionMovieUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
void cMainWindow::doUpdate(cSerieList& serieList)
|
||||
{
|
||||
if(serieList.count())
|
||||
@@ -1045,6 +1123,28 @@ void cMainWindow::onActionDelete()
|
||||
delete lpDialog;
|
||||
}
|
||||
|
||||
void cMainWindow::onActionMovieDelete()
|
||||
{
|
||||
if(QMessageBox::question(this, "Delete Movie", "Are you sure?") == QMessageBox::No)
|
||||
return;
|
||||
|
||||
cMovie* lpMovie = m_lpMoviesListModel->itemFromIndex(ui->m_lpMoviesList->selectionModel()->selectedRows().at(0))->data(Qt::UserRole).value<cMovie*>();
|
||||
if(!lpMovie)
|
||||
return;
|
||||
|
||||
cMessageAnimateDialog* lpDialog = new cMessageAnimateDialog(this);
|
||||
lpDialog->setTitle("Delete");
|
||||
lpDialog->setMessage("Deleting");
|
||||
lpDialog->show();
|
||||
|
||||
lpMovie->del(m_db);
|
||||
|
||||
loadMoviesDB();
|
||||
displayMovies();
|
||||
|
||||
delete lpDialog;
|
||||
}
|
||||
|
||||
void cMainWindow::onActionEdit()
|
||||
{
|
||||
cSerie* lpSerie = m_lpSeriesListModel->itemFromIndex(ui->m_lpSeriesList1->selectionModel()->selectedRows().at(0))->data(Qt::UserRole).value<cSerie*>();
|
||||
@@ -1067,23 +1167,52 @@ void cMainWindow::onActionEdit()
|
||||
lpSerie->save(m_db);
|
||||
|
||||
m_szOldSelected = lpSerie->seriesName();
|
||||
loadDB();
|
||||
loadSeriesDB();
|
||||
displaySeries();
|
||||
|
||||
delete lpDialog;
|
||||
}
|
||||
|
||||
void cMainWindow::onActionMovieEdit()
|
||||
{
|
||||
cMovie* lpMovie = m_lpMoviesListModel->itemFromIndex(ui->m_lpMoviesList->selectionModel()->selectedRows().at(0))->data(Qt::UserRole).value<cMovie*>();
|
||||
if(!lpMovie)
|
||||
return;
|
||||
|
||||
QString szDownload;
|
||||
if(!runMovieEdit(lpMovie))
|
||||
return;
|
||||
|
||||
cMessageAnimateDialog* lpDialog = new cMessageAnimateDialog(this);
|
||||
lpDialog->setTitle("Update");
|
||||
lpDialog->setMessage("Updating");
|
||||
lpDialog->show();
|
||||
|
||||
lpMovie->del(m_db);
|
||||
lpMovie->save(m_db);
|
||||
|
||||
m_szOldSelected = lpMovie->movieTitle();
|
||||
loadMoviesDB();
|
||||
displayMovies();
|
||||
|
||||
delete lpDialog;
|
||||
}
|
||||
|
||||
void cMainWindow::on_m_lpSeriesList1_doubleClicked(const QModelIndex &/*index*/)
|
||||
{
|
||||
onActionEdit();
|
||||
}
|
||||
|
||||
|
||||
void cMainWindow::on_m_lpSeriesList2_doubleClicked(const QModelIndex &/*index*/)
|
||||
{
|
||||
onActionEdit();
|
||||
}
|
||||
|
||||
void cMainWindow::on_m_lpMoviesList_doubleClicked(const QModelIndex &index)
|
||||
{
|
||||
onActionMovieEdit();
|
||||
}
|
||||
|
||||
void cMainWindow::onActionGotoIMDB()
|
||||
{
|
||||
if(ui->m_lpSeriesList1->selectionModel()->selectedRows().count())
|
||||
@@ -1097,6 +1226,19 @@ void cMainWindow::onActionGotoIMDB()
|
||||
}
|
||||
}
|
||||
|
||||
void cMainWindow::onActionMovieGotoIMDB()
|
||||
{
|
||||
if(ui->m_lpMoviesList->selectionModel()->selectedRows().count())
|
||||
{
|
||||
cMovie* lpMovie = m_lpMoviesListModel->itemFromIndex(ui->m_lpMoviesList->selectionModel()->selectedRows().at(0))->data(Qt::UserRole).value<cMovie*>();
|
||||
if(lpMovie)
|
||||
{
|
||||
QString link = QString("http://www.imdb.com/title/%1").arg(lpMovie->imdbID());
|
||||
QDesktopServices::openUrl(QUrl(link));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cMainWindow::onActionGotoDownload()
|
||||
{
|
||||
if(ui->m_lpSeriesList1->selectionModel()->selectedRows().count())
|
||||
@@ -1162,6 +1304,10 @@ void cMainWindow::onActionLoadPictures()
|
||||
m_lpPicturesThread->start();
|
||||
}
|
||||
|
||||
void cMainWindow::onActionMovieLoadPictures()
|
||||
{
|
||||
}
|
||||
|
||||
void cMainWindow::picturesMessage(const QString& szMessage, const qint32& iProgress)
|
||||
{
|
||||
m_lpMessageDialog->setMessage(szMessage);
|
||||
|
||||
@@ -45,6 +45,7 @@ private slots:
|
||||
void on_m_lpSeriesList2_pressed(const QModelIndex &index);
|
||||
|
||||
void on_m_lpMoviesList_customContextMenuRequested(const QPoint &pos);
|
||||
void on_m_lpMoviesList_doubleClicked(const QModelIndex &index);
|
||||
|
||||
void onActionAdd();
|
||||
void onActionUpdateAll();
|
||||
@@ -58,6 +59,12 @@ private slots:
|
||||
void onActionLoadPictures();
|
||||
|
||||
void onActionMovieAdd();
|
||||
void onActionMovieUpdateAll();
|
||||
void onActionMovieUpdate();
|
||||
void onActionMovieDelete();
|
||||
void onActionMovieEdit();
|
||||
void onActionMovieGotoIMDB();
|
||||
void onActionMovieLoadPictures();
|
||||
|
||||
void updateMessage(const QString& szMessage, const qint32 &iProgress);
|
||||
void updateAppendMessage(const QString& szMessage);
|
||||
@@ -101,6 +108,7 @@ private:
|
||||
void displayMovies();
|
||||
|
||||
bool runEdit(cSerie *lpSerie, QString& szDownload);
|
||||
bool runMovieEdit(cMovie *lpMovie);
|
||||
|
||||
void showSeriesContextMenu(QTreeView* lpTreeView, const QPoint &pos);
|
||||
void doUpdate(cSerieList& serieList);
|
||||
|
||||
+12
-2
@@ -10,9 +10,19 @@
|
||||
#include <QMapIterator>
|
||||
|
||||
|
||||
cMovie::cMovie()
|
||||
cMovie::cMovie() :
|
||||
m_szOverview(QString("")),
|
||||
m_dPopularity(0.0),
|
||||
m_szPosterPath(QString("")),
|
||||
m_dRevenue(0.0),
|
||||
m_iRuntime(0),
|
||||
m_szStatus(QString("")),
|
||||
m_szTagline(QString("")),
|
||||
m_bVideo(false),
|
||||
m_dVoteAverage(0.0),
|
||||
m_iVoteCount(0),
|
||||
m_iState(StateInit)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void cMovie::setMovieTitle(const QString& szTitle)
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
#include "cmovieedit.h"
|
||||
#include "cmovieimage.h"
|
||||
|
||||
#include "ui_cmovieedit.h"
|
||||
|
||||
|
||||
cMovieEdit::cMovieEdit(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::cMovieEdit),
|
||||
m_lpMovie(0)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
cMovieEdit::~cMovieEdit()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void cMovieEdit::setMovie(cMovie *lpMovie)
|
||||
{
|
||||
m_lpMovie = lpMovie;
|
||||
|
||||
if(!lpMovie)
|
||||
return;
|
||||
|
||||
ui->m_lpName->setText(lpMovie->movieTitle());
|
||||
ui->m_lpFirstAired->setDate(lpMovie->releaseDate());
|
||||
|
||||
switch(lpMovie->state())
|
||||
{
|
||||
case cMovie::StateInit:
|
||||
ui->m_lpInit->setChecked(true);
|
||||
break;
|
||||
case cMovie::StateProgress:
|
||||
ui->m_lpProgress->setChecked(true);
|
||||
case cMovie::StateDone:
|
||||
ui->m_lpDone->setChecked(true);
|
||||
break;
|
||||
}
|
||||
|
||||
if(!m_lpMovie->backdropPath().isEmpty())
|
||||
{
|
||||
cMovieImage image;
|
||||
QPixmap banner = image.getImage(m_lpMovie->backdropPath());
|
||||
ui->m_lpDetailsBanner->setPixmap(banner);
|
||||
}
|
||||
|
||||
ui->m_lpDetailsOverview->setText(m_lpMovie->overview());
|
||||
|
||||
QTreeWidgetItem* lpItem;
|
||||
for(int x = 0;x < m_lpMovie->cast().count();x++)
|
||||
{
|
||||
QStringList str = m_lpMovie->cast().at(x).split(",");
|
||||
lpItem = new QTreeWidgetItem(ui->m_lpDetailsActors);
|
||||
lpItem->setText(0, str.at(0));
|
||||
lpItem->setText(1, str.at(1));
|
||||
ui->m_lpDetailsActors->addTopLevelItem(lpItem);
|
||||
}
|
||||
for(int x = 0;x < m_lpMovie->genres().count();x++)
|
||||
{
|
||||
lpItem = new QTreeWidgetItem(ui->m_lpDetailsGenre);
|
||||
lpItem->setText(0, m_lpMovie->genres().at(x));
|
||||
ui->m_lpDetailsGenre->addTopLevelItem(lpItem);
|
||||
}
|
||||
}
|
||||
|
||||
void cMovieEdit::on_m_lpInit_clicked()
|
||||
{
|
||||
m_lpMovie->setState(cMovie::StateInit);
|
||||
}
|
||||
|
||||
void cMovieEdit::on_m_lpProgress_clicked()
|
||||
{
|
||||
m_lpMovie->setState(cMovie::StateProgress);
|
||||
}
|
||||
|
||||
void cMovieEdit::on_m_lpDone_clicked()
|
||||
{
|
||||
m_lpMovie->setState(cMovie::StateDone);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
#ifndef CMOVIEEDIT_H
|
||||
#define CMOVIEEDIT_H
|
||||
|
||||
|
||||
#include "cmovie.h"
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class cMovieEdit;
|
||||
}
|
||||
|
||||
class cMovieEdit : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit cMovieEdit(QWidget *parent = 0);
|
||||
~cMovieEdit();
|
||||
|
||||
void setMovie(cMovie* lpMovie);
|
||||
private slots:
|
||||
void on_m_lpInit_clicked();
|
||||
|
||||
void on_m_lpProgress_clicked();
|
||||
|
||||
void on_m_lpDone_clicked();
|
||||
|
||||
private:
|
||||
Ui::cMovieEdit *ui;
|
||||
|
||||
cMovie* m_lpMovie;
|
||||
};
|
||||
|
||||
#endif // CMOVIEEDIT_H
|
||||
+257
@@ -0,0 +1,257 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>cMovieEdit</class>
|
||||
<widget class="QDialog" name="cMovieEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>805</width>
|
||||
<height>582</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6" stretch="3,1">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="m_lpName">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Year:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDateEdit" name="m_lpFirstAired">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="m_lpInit">
|
||||
<property name="text">
|
||||
<string>Initialized</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="m_lpProgress">
|
||||
<property name="text">
|
||||
<string>in Progress</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="m_lpDone">
|
||||
<property name="text">
|
||||
<string>done</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="m_lpDetailsBanner">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>310</width>
|
||||
<height>200</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Box</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>785</width>
|
||||
<height>310</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QTextEdit" name="m_lpDetailsOverview">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="2,1">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="cVerticalLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Actors</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTreeWidget" name="m_lpDetailsActors">
|
||||
<property name="columnCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<attribute name="headerVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">2</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="cVerticalLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Genre</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTreeWidget" name="m_lpDetailsGenre">
|
||||
<property name="columnCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<attribute name="headerVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">2</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>cVerticalLabel</class>
|
||||
<extends>QLabel</extends>
|
||||
<header>cverticallabel.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>cMovieEdit</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>cMovieEdit</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
@@ -0,0 +1,64 @@
|
||||
#include "common.h"
|
||||
|
||||
#include "cmovieimage.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkReply>
|
||||
#include <QEventLoop>
|
||||
#include <QUrl>
|
||||
|
||||
|
||||
cMovieImage::cMovieImage()
|
||||
{
|
||||
}
|
||||
|
||||
QPixmap cMovieImage::getImage(const QString& szFileName)
|
||||
{
|
||||
QPixmap pixmap;
|
||||
|
||||
QString szPath = rootPath() + QDir::separator() + "t" + QDir::separator() + "p" + QDir::separator() + "w300" + QDir::separator() + szFileName.right(szFileName.length()-1);
|
||||
|
||||
if(szFileName.isEmpty())
|
||||
pixmap.load(rootPath() + QDir::separator() + QDir::separator() + "empty.jpg");
|
||||
else
|
||||
pixmap.load(szPath);
|
||||
|
||||
if(!pixmap.width())
|
||||
return(downloadFile(szFileName));
|
||||
|
||||
return(pixmap);
|
||||
}
|
||||
|
||||
QPixmap cMovieImage::downloadFile(const QString& szFileName)
|
||||
{
|
||||
QPixmap pixmap;
|
||||
|
||||
QString szPath = rootPath() + QDir::separator() + "t" + QDir::separator() + "p" + QDir::separator() + "w300" + QDir::separator() + szFileName.right(szFileName.length()-1);
|
||||
QString szURL = "http://image.tmdb.org/t/p/w300" + szFileName;
|
||||
|
||||
QNetworkAccessManager networkManager;
|
||||
QUrl url(szURL);
|
||||
QNetworkRequest request(url);
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/xml");
|
||||
|
||||
QNetworkReply* reply = networkManager.get(request);
|
||||
QEventLoop loop;
|
||||
|
||||
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
|
||||
loop.exec();
|
||||
|
||||
QByteArray szData = reply->readAll();
|
||||
delete reply;
|
||||
|
||||
pixmap.loadFromData(szData);
|
||||
|
||||
QDir dir(szPath);
|
||||
QFileInfo fileInfo(szPath);
|
||||
dir.mkpath(dir.filePath(fileInfo.absolutePath()));
|
||||
pixmap.save(szPath);
|
||||
|
||||
return(pixmap);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef CMOVIEIMAGE_H
|
||||
#define CMOVIEIMAGE_H
|
||||
|
||||
|
||||
#include <QPixmap>
|
||||
|
||||
|
||||
class cMovieImage
|
||||
{
|
||||
public:
|
||||
cMovieImage();
|
||||
QPixmap getImage(const QString& szFileName);
|
||||
private:
|
||||
QPixmap downloadFile(const QString& szFileName);
|
||||
};
|
||||
|
||||
#endif // CMOVIEIMAGE_H
|
||||
@@ -5,6 +5,8 @@
|
||||
#include <QPainter>
|
||||
#include <QTextDocument>
|
||||
#include <QAbstractTextDocumentLayout>
|
||||
#include <QAbstractItemModel>
|
||||
#include <QStandardItemModel>
|
||||
|
||||
|
||||
#define STATE_INIT Qt::gray
|
||||
@@ -39,10 +41,47 @@ void cMovieViewItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem
|
||||
|
||||
if(!lpMovie)
|
||||
{
|
||||
QItemModel* lpModel = (QItemModel*)index.model();
|
||||
aaaaa
|
||||
int statusInit = 0;
|
||||
int statusProg = 0;
|
||||
int statusDone = 0;
|
||||
|
||||
QStandardItemModel* lpModel = (QStandardItemModel*)index.model();
|
||||
QStandardItem* lpParent = lpModel->itemFromIndex(index);
|
||||
if(lpParent)
|
||||
{
|
||||
int x = 0;
|
||||
|
||||
QStandardItem* lpChild = lpParent->child(x);
|
||||
while(lpChild)
|
||||
{
|
||||
cMovie* lpMovie1 = qvariant_cast<cMovie*>(lpChild->data(Qt::UserRole));
|
||||
if(lpMovie1)
|
||||
{
|
||||
switch(lpMovie1->state())
|
||||
{
|
||||
case cMovie::StateInit:
|
||||
statusInit++;
|
||||
break;
|
||||
case cMovie::StateProgress:
|
||||
statusProg++;
|
||||
break;
|
||||
case cMovie::StateDone:
|
||||
statusDone++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
x++;
|
||||
lpChild = lpParent->child(x);
|
||||
}
|
||||
}
|
||||
if(statusProg)
|
||||
painter->setBrush(STATE_PROGRESS);
|
||||
else if(statusInit)
|
||||
painter->setBrush(STATE_INIT);
|
||||
else
|
||||
painter->setBrush(STATE_DONE);
|
||||
}
|
||||
if(lpMovie)
|
||||
else
|
||||
{
|
||||
oldBrush = painter->brush();
|
||||
|
||||
@@ -60,10 +99,16 @@ void cMovieViewItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem
|
||||
default:
|
||||
break;
|
||||
}
|
||||
painter->drawRect(clip);
|
||||
|
||||
painter->setBrush(oldBrush);
|
||||
}
|
||||
QRect back = clip;
|
||||
|
||||
back.setLeft(back.left()+2);
|
||||
back.setRight(back.right()-2);
|
||||
back.setTop(back.top()+4);
|
||||
back.setBottom(back.bottom()-4);
|
||||
|
||||
painter->drawRect(back);
|
||||
painter->setBrush(oldBrush);
|
||||
|
||||
QAbstractTextDocumentLayout::PaintContext ctx;
|
||||
// set text color to red for selected item
|
||||
|
||||
+8
-3
@@ -33,7 +33,9 @@ SOURCES += main.cpp\
|
||||
cmovie.cpp \
|
||||
cmoviesearch.cpp \
|
||||
cmovieviewitemdelegate.cpp \
|
||||
common.cpp
|
||||
common.cpp \
|
||||
cmovieedit.cpp \
|
||||
cmovieimage.cpp
|
||||
|
||||
HEADERS += cmainwindow.h \
|
||||
cserie.h \
|
||||
@@ -55,7 +57,9 @@ HEADERS += cmainwindow.h \
|
||||
cmovie.h \
|
||||
cmoviesearch.h \
|
||||
cmovieviewitemdelegate.h \
|
||||
common.h
|
||||
common.h \
|
||||
cmovieedit.h \
|
||||
cmovieimage.h
|
||||
|
||||
FORMS += cmainwindow.ui \
|
||||
csearch.ui \
|
||||
@@ -64,7 +68,8 @@ FORMS += cmainwindow.ui \
|
||||
cseasondetails.ui \
|
||||
cepisodedetails.ui \
|
||||
cmessagedialog.ui \
|
||||
cmoviesearch.ui
|
||||
cmoviesearch.ui \
|
||||
cmovieedit.ui
|
||||
|
||||
DISTFILES +=
|
||||
|
||||
|
||||
Reference in New Issue
Block a user