From 2cd19d880895173066ee3e9bd1ef455789903f45 Mon Sep 17 00:00:00 2001 From: birkeh Date: Sun, 22 Oct 2017 13:52:01 +0200 Subject: [PATCH] Position and size of search-windows are stored now. OK-button of search windows are disabled until valid values are available. --- cmainwindow.cpp | 32 ++++++++++++++++++++++++++++++++ cmoviesearch.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ cmoviesearch.h | 10 ++++++++-- cmoviesearch.ui | 10 +++++++++- csearch.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ csearch.h | 10 ++++++++-- csearch.ui | 8 ++++++++ 7 files changed, 151 insertions(+), 5 deletions(-) diff --git a/cmainwindow.cpp b/cmainwindow.cpp index abc769c..b7313f5 100644 --- a/cmainwindow.cpp +++ b/cmainwindow.cpp @@ -859,12 +859,28 @@ bool cMainWindow::runMovieEdit(cMovie *lpMovie) void cMainWindow::onActionAdd() { cSearch* lpSearch = new cSearch(this); + + QSettings settings; + qint16 iX = settings.value("search/x", QVariant::fromValue(-1)).toInt(); + qint16 iY = settings.value("search/y", QVariant::fromValue(-1)).toInt(); + qint16 iWidth = settings.value("search/width", QVariant::fromValue(-1)).toInt(); + qint16 iHeight = settings.value("search/height", QVariant::fromValue(-1)).toInt(); + + if(iX != -1 && iY != -1) + lpSearch->move(iX, iY); + if(iWidth != -1 && iHeight != -1) + lpSearch->resize(iWidth, iHeight); + if(lpSearch->exec() == QDialog::Rejected) { delete lpSearch; return; } + settings.setValue("search/width", QVariant::fromValue(lpSearch->size().width())); + settings.setValue("search/height", QVariant::fromValue(lpSearch->size().height())); + settings.setValue("search/x", QVariant::fromValue(lpSearch->x())); + settings.setValue("search/y", QVariant::fromValue(lpSearch->y())); qint32 id = lpSearch->id(); QString szPlaceholder = lpSearch->placeholderName(); @@ -937,12 +953,28 @@ void cMainWindow::onActionAdd() void cMainWindow::onActionMovieAdd() { cMovieSearch* lpSearch = new cMovieSearch(this); + + QSettings settings; + qint16 iX = settings.value("movieSearch/x", QVariant::fromValue(-1)).toInt(); + qint16 iY = settings.value("movieSearch/y", QVariant::fromValue(-1)).toInt(); + qint16 iWidth = settings.value("movieSearch/width", QVariant::fromValue(-1)).toInt(); + qint16 iHeight = settings.value("movieSearch/height", QVariant::fromValue(-1)).toInt(); + + if(iX != -1 && iY != -1) + lpSearch->move(iX, iY); + if(iWidth != -1 && iHeight != -1) + lpSearch->resize(iWidth, iHeight); + if(lpSearch->exec() == QDialog::Rejected) { delete lpSearch; return; } + settings.setValue("movieSearch/width", QVariant::fromValue(lpSearch->size().width())); + settings.setValue("movieSearch/height", QVariant::fromValue(lpSearch->size().height())); + settings.setValue("movieSearch/x", QVariant::fromValue(lpSearch->x())); + settings.setValue("movieSearch/y", QVariant::fromValue(lpSearch->y())); qint32 id = lpSearch->id(); QString szPlaceholder = lpSearch->placeholderName(); diff --git a/cmoviesearch.cpp b/cmoviesearch.cpp index 7ed6958..dfdfe77 100644 --- a/cmoviesearch.cpp +++ b/cmoviesearch.cpp @@ -17,6 +17,8 @@ cMovieSearch::cMovieSearch(QWidget *parent) : ui->setupUi(this); ui->m_lpSearchButton->setEnabled(false); ui->m_lpTabWidget->setCurrentIndex(0); + + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } cMovieSearch::~cMovieSearch() @@ -102,3 +104,44 @@ qint16 cMovieSearch::year() { return(ui->m_lpYear->value()); } + +void cMovieSearch::on_m_lpResults_clicked(const QModelIndex &index) +{ + setButtonBox(); +} + +void cMovieSearch::on_m_lpPlaceholderName_textChanged(const QString &arg1) +{ + setButtonBox(); +} + +void cMovieSearch::on_m_lpYear_valueChanged(int arg1) +{ + setButtonBox(); +} + +void cMovieSearch::setButtonBox() +{ + if(ui->m_lpTabWidget->currentIndex() == 0) + { + if(ui->m_lpResults->selectedItems().count()) + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(true); + else + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + return; + } + + if(ui->m_lpPlaceholderName->text().isEmpty()) + { + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + return; + } + + if(ui->m_lpYear->value() == 0) + { + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + return; + } + + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(true); +} diff --git a/cmoviesearch.h b/cmoviesearch.h index 882bf19..2e29268 100644 --- a/cmoviesearch.h +++ b/cmoviesearch.h @@ -22,12 +22,18 @@ public: qint16 year(); private slots: - void on_m_lpSearchButton_clicked(); + void on_m_lpSearchButton_clicked(); - void on_m_lpSearch_textChanged(const QString &arg1); + void on_m_lpSearch_textChanged(const QString &arg1); + void on_m_lpPlaceholderName_textChanged(const QString &arg1); + void on_m_lpYear_valueChanged(int arg1); + + void on_m_lpResults_clicked(const QModelIndex &index); private: Ui::cMovieSearch *ui; + + void setButtonBox(); }; #endif // CMOVIESEARCH_H diff --git a/cmoviesearch.ui b/cmoviesearch.ui index 23a4efb..3c2087d 100644 --- a/cmoviesearch.ui +++ b/cmoviesearch.ui @@ -27,7 +27,7 @@ - 1 + 0 @@ -142,6 +142,14 @@ + + m_lpSearch + m_lpSearchButton + m_lpResults + m_lpTabWidget + m_lpPlaceholderName + m_lpYear + diff --git a/csearch.cpp b/csearch.cpp index 59c4ffc..1fea3b3 100644 --- a/csearch.cpp +++ b/csearch.cpp @@ -16,6 +16,8 @@ cSearch::cSearch(QWidget *parent) : ui->setupUi(this); ui->m_lpSearchButton->setEnabled(false); ui->m_lpTabWidget->setCurrentIndex(0); + + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } cSearch::~cSearch() @@ -86,3 +88,44 @@ qint16 cSearch::year() { return(ui->m_lpYear->value()); } + +void cSearch::on_m_lpResults_clicked(const QModelIndex &index) +{ + setButtonBox(); +} + +void cSearch::on_m_lpPlaceholderName_textChanged(const QString& /*arg1*/) +{ + setButtonBox(); +} + +void cSearch::on_m_lpYear_valueChanged(int /*arg1*/) +{ + setButtonBox(); +} + +void cSearch::setButtonBox() +{ + if(ui->m_lpTabWidget->currentIndex() == 0) + { + if(ui->m_lpResults->selectedItems().count()) + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(true); + else + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + return; + } + + if(ui->m_lpPlaceholderName->text().isEmpty()) + { + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + return; + } + + if(ui->m_lpYear->value() == 0) + { + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + return; + } + + ui->m_lpButtonBox->button(QDialogButtonBox::Ok)->setEnabled(true); +} diff --git a/csearch.h b/csearch.h index 00561c2..087b357 100644 --- a/csearch.h +++ b/csearch.h @@ -22,11 +22,17 @@ public: qint16 year(); private slots: - void on_m_lpSearchButton_clicked(); - void on_m_lpSearch_textChanged(const QString &arg1); + void on_m_lpSearchButton_clicked(); + void on_m_lpSearch_textChanged(const QString &arg1); + + void on_m_lpResults_clicked(const QModelIndex &index); + void on_m_lpPlaceholderName_textChanged(const QString &arg1); + void on_m_lpYear_valueChanged(int arg1); private: Ui::cSearch *ui; + + void setButtonBox(); }; #endif // CSEARCH_H diff --git a/csearch.ui b/csearch.ui index 8ed6d25..d2ea5d4 100644 --- a/csearch.ui +++ b/csearch.ui @@ -142,6 +142,14 @@ + + m_lpSearch + m_lpSearchButton + m_lpResults + m_lpTabWidget + m_lpPlaceholderName + m_lpYear +