summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-04-04 11:50:43 +0200
committerArno <arno@disconnect.de>2018-04-04 11:50:43 +0200
commit295b8e2b197e689380002ccfe77fe4fb56c544d6 (patch)
tree60929a9b3ddbdd8a261f9159f1a774c47033665e
parenta86cab595e880541b3fe717a1c382e4f39fc01d5 (diff)
downloadSheMov-295b8e2b197e689380002ccfe77fe4fb56c544d6.tar.gz
SheMov-295b8e2b197e689380002ccfe77fe4fb56c544d6.tar.bz2
SheMov-295b8e2b197e689380002ccfe77fe4fb56c544d6.zip
Implement MoviePropertiesDialog
Try to replace all those editing dialogs with one exhausting dialog. For now, it's just the layout. It does nothing yet.
-rw-r--r--moviepropertiesdialog.cpp94
-rw-r--r--moviepropertiesdialog.h32
-rw-r--r--moviewidget.cpp3
-rw-r--r--moviewidget.h2
-rw-r--r--shemov.pro6
5 files changed, 135 insertions, 2 deletions
diff --git a/moviepropertiesdialog.cpp b/moviepropertiesdialog.cpp
new file mode 100644
index 0000000..2b6fd80
--- /dev/null
+++ b/moviepropertiesdialog.cpp
@@ -0,0 +1,94 @@
+#include <QLabel>
+#include <QLineEdit>
+#include <QRadioButton>
+#include <QGroupBox>
+#include <QPushButton>
+#include <QIntValidator>
+#include <QStandardItemModel>
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QApplication>
+
+#include "moviepropertiesdialog.h"
+#include "smview.h"
+
+MoviePropertiesDialog::MoviePropertiesDialog(QWidget *parent) : QDialog(parent){
+ setupDialog();
+}
+
+void MoviePropertiesDialog::setupDialog(){
+ QLabel *seriesNameL = new QLabel(tr("Name"));
+ mSeriesNameLE = new QLineEdit;
+ QGridLayout *seriesGrid = new QGridLayout;
+ seriesGrid->addWidget(seriesNameL, 0, 0);
+ seriesGrid->addWidget(mSeriesNameLE, 0, 1);
+ QLabel *seriesSubtitleL = new QLabel(tr("Subtitle"));
+ mSubtitleLE = new QLineEdit;
+ seriesGrid->addWidget(seriesSubtitleL, 1, 0);
+ seriesGrid->addWidget(mSubtitleLE, 1, 1);
+ QLabel *commentL = new QLabel(tr("Comment"));
+ mCommentLE = new QLineEdit;
+ seriesGrid->addWidget(commentL, 2, 0);
+ seriesGrid->addWidget(mCommentLE, 2, 1);
+ QGroupBox *seriesGB = new QGroupBox(tr("Series"));
+ seriesGB->setLayout(seriesGrid);
+ QIntValidator *validator = new QIntValidator(this);
+ mReleaseYearLE = new QLineEdit("0000");
+ mReleaseYearLE->setValidator(validator);
+ QGroupBox *releaseYearGB = new QGroupBox(tr("Rel. year"));
+ QHBoxLayout *releaseYearGBL = new QHBoxLayout;
+ releaseYearGBL->addWidget(mReleaseYearLE);
+ releaseYearGB->setLayout(releaseYearGBL);
+ mSeriesPartLE = new QLineEdit("00");
+ mSeriesPartLE->setValidator(validator);
+ QGroupBox *partNoGB = new QGroupBox(tr("Part No."));
+ QHBoxLayout *partNoGBL = new QHBoxLayout;
+ partNoGBL->addWidget(mSeriesPartLE);
+ partNoGB->setLayout(partNoGBL);
+ mTorrentRB = new QRadioButton(tr("BitTorrent"));
+ mUsenetRB = new QRadioButton(tr("Usenet"));
+ QGroupBox *sourceGB = new QGroupBox(tr("Source"));
+ QHBoxLayout *sourceGBL = new QHBoxLayout;
+ sourceGBL->addWidget(mTorrentRB);
+ sourceGBL->addWidget(mUsenetRB);
+ sourceGB->setLayout(sourceGBL);
+ QHBoxLayout *variousL = new QHBoxLayout;
+ variousL->addWidget(releaseYearGB);
+ variousL->addWidget(partNoGB);
+ variousL->addWidget(sourceGB);
+ mActorV = new SmView;
+ mActorV->setPalette(qApp->palette());
+ mActorV->setAlternatingRowColors(true);
+ mActorM = new QStandardItemModel;
+ mActorV->setModel(mActorM);
+ QGroupBox *actorsGB = new QGroupBox(tr("Actors"));
+ QHBoxLayout *actorsGBL = new QHBoxLayout;
+ actorsGBL->addWidget(mActorV);
+ actorsGB->setLayout(actorsGBL);
+ mGenreV = new SmView;
+ mGenreV->setPalette(qApp->palette());
+ mGenreV->setAlternatingRowColors(true);
+ mGenreM = new QStandardItemModel;
+ mGenreV->setModel(mGenreM);
+ QGroupBox *genresGB = new QGroupBox(tr("Genres"));
+ QHBoxLayout *genresGBL = new QHBoxLayout;
+ genresGBL->addWidget(mGenreV);
+ genresGB->setLayout(genresGBL);
+ QHBoxLayout *viewL = new QHBoxLayout;
+ viewL->addWidget(actorsGB);
+ viewL->addWidget(genresGB);
+ QPushButton *updatePB = new QPushButton(tr("Update!"));
+ QPushButton *cancelPB = new QPushButton(tr("Cancel"));
+ connect(cancelPB, &QPushButton::clicked, this, &MoviePropertiesDialog::reject);
+ QHBoxLayout *buttonLayout = new QHBoxLayout;
+ buttonLayout->addStretch();
+ buttonLayout->addWidget(cancelPB);
+ buttonLayout->addWidget(updatePB);
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(seriesGB);
+ mainLayout->addLayout(variousL);
+ mainLayout->addLayout(viewL);
+ mainLayout->addLayout(buttonLayout);
+ setLayout(mainLayout);
+}
diff --git a/moviepropertiesdialog.h b/moviepropertiesdialog.h
new file mode 100644
index 0000000..63b03bf
--- /dev/null
+++ b/moviepropertiesdialog.h
@@ -0,0 +1,32 @@
+#ifndef MOVIEPROPERTIESDIALOG_H
+#define MOVIEPROPERTIESDIALOG_H
+
+#include <QDialog>
+
+class QLineEdit;
+class QRadioButton;
+class SmView;
+class QStandardItemModel;
+
+class MoviePropertiesDialog : public QDialog {
+ public:
+ explicit MoviePropertiesDialog(QWidget *parent = nullptr);
+ void setPartsId(int id);
+
+ private:
+ void setupDialog();
+ QLineEdit *mSeriesNameLE;
+ QLineEdit *mSubtitleLE;
+ QLineEdit *mCommentLE;
+ QLineEdit *mReleaseYearLE;
+ QLineEdit *mSeriesPartLE;
+ QRadioButton *mTorrentRB;
+ QRadioButton *mUsenetRB;
+ SmView *mActorV;
+ QStandardItemModel *mActorM;
+ SmView *mGenreV;
+ QStandardItemModel *mGenreM;
+ int mSeriesPartsId;
+};
+
+#endif // MOVIEPROPERTIESDIALOG_H
diff --git a/moviewidget.cpp b/moviewidget.cpp
index c07da0f..d86305b 100644
--- a/moviewidget.cpp
+++ b/moviewidget.cpp
@@ -18,9 +18,11 @@
#include "moviewidget.h"
#include "smview.h"
+#include "moviepropertiesdialog.h"
#include "helper.h"
MovieWidget::MovieWidget(QWidget *parent) : QWidget(parent){
+ mPropDlg = new MoviePropertiesDialog(this);
setPalette(qApp->palette());
setupWidget();
}
@@ -82,6 +84,7 @@ void MovieWidget::setupWidget(){
mTopProxy->setFilterKeyColumn(1);
mTopView->setModel(mTopProxy);
connect(mTopView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &MovieWidget::topSelectionChanged);
+ connect(mTopView, &QTreeView::doubleClicked, [=] { mPropDlg->show(); });
mBottomView = new SmView;
mBottomView->setAlternatingRowColors(true);
diff --git a/moviewidget.h b/moviewidget.h
index 6201861..43f05e6 100644
--- a/moviewidget.h
+++ b/moviewidget.h
@@ -9,6 +9,7 @@ class QTreeView;
class QSortFilterProxyModel;
class QStandardItemModel;
class SmView;
+class MoviePropertiesDialog;
class MovieWidget : public QWidget {
Q_OBJECT
@@ -41,6 +42,7 @@ class MovieWidget : public QWidget {
SmView *mBottomView;
QSortFilterProxyModel *mBottomProxy;
QStandardItemModel *mBottomModel;
+ MoviePropertiesDialog *mPropDlg;
};
#endif // MOVIEWIDGET_H
diff --git a/shemov.pro b/shemov.pro
index ffcebc8..6a2fa32 100644
--- a/shemov.pro
+++ b/shemov.pro
@@ -46,7 +46,8 @@ SOURCES = main.cpp \
fsproxy.cpp \
viewer.cpp \
moviewidget.cpp \
- smview.cpp
+ smview.cpp \
+ moviepropertiesdialog.cpp
HEADERS = \
shemov.h \
helper.h \
@@ -87,7 +88,8 @@ HEADERS = \
fsproxy.h \
viewer.h \
moviewidget.h \
- smview.h
+ smview.h \
+ moviepropertiesdialog.h
LIBS += -lmagic -lXfixes -lX11 -lMagick++-6.Q16HDRI
INCLUDEPATH += /usr/include/ImageMagick-6/
RESOURCES = shemov.qrc