From ef1fff7a22e0407925fd3af2ee0c3a5446f8bfd9 Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Fri, 13 Nov 2015 12:31:10 +0200 Subject: [PATCH 1/4] Resolved Issue #329. Add button to 'Scroll Up/Scroll Down' in Detail mode --HG-- branch : feature --- .../vtools/dialogs/tools/dialogdetail.cpp | 29 +++++++ src/libs/vtools/dialogs/tools/dialogdetail.h | 2 + src/libs/vtools/dialogs/tools/dialogdetail.ui | 75 ++++++++++++++++--- 3 files changed, 97 insertions(+), 9 deletions(-) diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.cpp b/src/libs/vtools/dialogs/tools/dialogdetail.cpp index cbf4d159c..4b774e535 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.cpp +++ b/src/libs/vtools/dialogs/tools/dialogdetail.cpp @@ -78,6 +78,8 @@ DialogDetail::DialogDetail(const VContainer *data, const quint32 &toolId, QWidge connect(ui.lineEditNameDetail, &QLineEdit::textChanged, this, &DialogDetail::NamePointChanged); connect(ui.toolButtonDelete, &QToolButton::clicked, this, &DialogDetail::DeleteItem); + connect(ui.toolButtonUp, &QToolButton::clicked, this, &DialogDetail::ScrollUp); + connect(ui.toolButtonDown, &QToolButton::clicked, this, &DialogDetail::ScrollDown); } //--------------------------------------------------------------------------------------------------------------------- @@ -170,6 +172,8 @@ void DialogDetail::NewItem(quint32 id, const Tool &typeTool, const NodeDetail &t qDebug()<<"Got wrong tools. Ignore."; return; } + ui.toolButtonUp->setEnabled(ui.checkBoxSeams->isChecked() && not ui.checkBoxClosed->isChecked()); + ui.toolButtonDown->setEnabled(ui.checkBoxSeams->isChecked() && not ui.checkBoxClosed->isChecked()); bool canAddNewPoint = false; @@ -338,6 +342,9 @@ void DialogDetail::ClickedSeams(bool checked) ui.checkBoxClosed->setEnabled(checked); ui.doubleSpinBoxSeams->setEnabled(checked); + ui.toolButtonUp->setEnabled(checked && not ui.checkBoxClosed->isChecked()); + ui.toolButtonDown->setEnabled(checked && not ui.checkBoxClosed->isChecked()); + if (checked && ui.doubleSpinBoxSeams->value() <= 0) { flagWidth = false; @@ -359,6 +366,8 @@ void DialogDetail::ClickedSeams(bool checked) void DialogDetail::ClickedClosed(bool checked) { closed = checked; + ui.toolButtonUp->setEnabled(not checked); + ui.toolButtonDown->setEnabled(not checked); } //--------------------------------------------------------------------------------------------------------------------- @@ -415,6 +424,26 @@ void DialogDetail::DeleteItem() ValidObjects(DetailIsValid()); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogDetail::ScrollUp() +{ + if (ui.listWidget->count() > 1) + { + QListWidgetItem *item = ui.listWidget->takeItem(ui.listWidget->count()-1); + ui.listWidget->insertItem(0, item); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogDetail::ScrollDown() +{ + if (ui.listWidget->count() > 1) + { + QListWidgetItem *item = ui.listWidget->takeItem(0); + ui.listWidget->addItem(item); + } +} + //--------------------------------------------------------------------------------------------------------------------- bool DialogDetail::DetailIsValid() const { diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.h b/src/libs/vtools/dialogs/tools/dialogdetail.h index dac43f320..9a8ec4314 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.h +++ b/src/libs/vtools/dialogs/tools/dialogdetail.h @@ -54,6 +54,8 @@ public slots: void ClickedReverse(bool checked); void ObjectChanged(int row); void DeleteItem(); + void ScrollUp(); + void ScrollDown(); protected: /** * @brief SaveData Put dialog data in local variables diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.ui b/src/libs/vtools/dialogs/tools/dialogdetail.ui index 808fcc799..e21c0bdf6 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.ui +++ b/src/libs/vtools/dialogs/tools/dialogdetail.ui @@ -6,8 +6,8 @@ 0 0 - 565 - 382 + 522 + 368 @@ -313,14 +313,72 @@ - - - false + + + QLayout::SetFixedSize - - Delete + + 10 - + + 10 + + + 10 + + + 10 + + + + + false + + + Delete + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Scroll down + + + ... + + + + + + + + + + Scroll up + + + ... + + + + + + + @@ -352,7 +410,6 @@ checkBoxSeams doubleSpinBoxSeams checkBoxClosed - toolButtonDelete buttonBox From b9deb50c1b6e376662868c9c0a6121b35544b6fa Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Fri, 13 Nov 2015 14:04:51 +0200 Subject: [PATCH 2/4] Fixed toolTips of scrollUp and scrollDown buttons --HG-- branch : feature --- src/libs/vtools/dialogs/tools/dialogdetail.cpp | 8 ++++---- src/libs/vtools/dialogs/tools/dialogdetail.ui | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.cpp b/src/libs/vtools/dialogs/tools/dialogdetail.cpp index 4b774e535..32e9d8ba9 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.cpp +++ b/src/libs/vtools/dialogs/tools/dialogdetail.cpp @@ -429,8 +429,8 @@ void DialogDetail::ScrollUp() { if (ui.listWidget->count() > 1) { - QListWidgetItem *item = ui.listWidget->takeItem(ui.listWidget->count()-1); - ui.listWidget->insertItem(0, item); + QListWidgetItem *item = ui.listWidget->takeItem(0); + ui.listWidget->addItem(item); } } @@ -439,8 +439,8 @@ void DialogDetail::ScrollDown() { if (ui.listWidget->count() > 1) { - QListWidgetItem *item = ui.listWidget->takeItem(0); - ui.listWidget->addItem(item); + QListWidgetItem *item = ui.listWidget->takeItem(ui.listWidget->count()-1); + ui.listWidget->insertItem(0, item); } } diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.ui b/src/libs/vtools/dialogs/tools/dialogdetail.ui index e21c0bdf6..1e5536314 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.ui +++ b/src/libs/vtools/dialogs/tools/dialogdetail.ui @@ -355,7 +355,7 @@ - Scroll down + Scroll down the list ... @@ -368,7 +368,7 @@ - Scroll up + Scroll up the list ... From 13ff0d797339d62b5b8b7d1b2cbbf55765a2ce8b Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Fri, 13 Nov 2015 14:54:26 +0200 Subject: [PATCH 3/4] Removed unwanted strings --HG-- branch : feature --- src/libs/vtools/dialogs/tools/dialogdetail.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.cpp b/src/libs/vtools/dialogs/tools/dialogdetail.cpp index 32e9d8ba9..ec6bafdd2 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.cpp +++ b/src/libs/vtools/dialogs/tools/dialogdetail.cpp @@ -172,8 +172,6 @@ void DialogDetail::NewItem(quint32 id, const Tool &typeTool, const NodeDetail &t qDebug()<<"Got wrong tools. Ignore."; return; } - ui.toolButtonUp->setEnabled(ui.checkBoxSeams->isChecked() && not ui.checkBoxClosed->isChecked()); - ui.toolButtonDown->setEnabled(ui.checkBoxSeams->isChecked() && not ui.checkBoxClosed->isChecked()); bool canAddNewPoint = false; @@ -342,8 +340,8 @@ void DialogDetail::ClickedSeams(bool checked) ui.checkBoxClosed->setEnabled(checked); ui.doubleSpinBoxSeams->setEnabled(checked); - ui.toolButtonUp->setEnabled(checked && not ui.checkBoxClosed->isChecked()); - ui.toolButtonDown->setEnabled(checked && not ui.checkBoxClosed->isChecked()); + ui.toolButtonUp->setEnabled(checked); + ui.toolButtonDown->setEnabled(checked); if (checked && ui.doubleSpinBoxSeams->value() <= 0) { @@ -366,8 +364,6 @@ void DialogDetail::ClickedSeams(bool checked) void DialogDetail::ClickedClosed(bool checked) { closed = checked; - ui.toolButtonUp->setEnabled(not checked); - ui.toolButtonDown->setEnabled(not checked); } //--------------------------------------------------------------------------------------------------------------------- From d253db879f0b455582b40db0d141066401299994 Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Fri, 13 Nov 2015 15:23:56 +0200 Subject: [PATCH 4/4] ScrollUp and scrollDown is enabled if we have more than 1 objects in a detail --HG-- branch : feature --- src/libs/vtools/dialogs/tools/dialogdetail.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.cpp b/src/libs/vtools/dialogs/tools/dialogdetail.cpp index ec6bafdd2..97b2f3b20 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.cpp +++ b/src/libs/vtools/dialogs/tools/dialogdetail.cpp @@ -178,6 +178,8 @@ void DialogDetail::NewItem(quint32 id, const Tool &typeTool, const NodeDetail &t if(ui.listWidget->count() == 0) { canAddNewPoint = true; + ui.toolButtonUp->setEnabled(false); + ui.toolButtonDown->setEnabled(false); } else { @@ -186,6 +188,8 @@ void DialogDetail::NewItem(quint32 id, const Tool &typeTool, const NodeDetail &t { canAddNewPoint = true; } + ui.toolButtonUp->setEnabled(true); + ui.toolButtonDown->setEnabled(true); } if(canAddNewPoint) @@ -340,9 +344,6 @@ void DialogDetail::ClickedSeams(bool checked) ui.checkBoxClosed->setEnabled(checked); ui.doubleSpinBoxSeams->setEnabled(checked); - ui.toolButtonUp->setEnabled(checked); - ui.toolButtonDown->setEnabled(checked); - if (checked && ui.doubleSpinBoxSeams->value() <= 0) { flagWidth = false; @@ -418,6 +419,17 @@ void DialogDetail::DeleteItem() delete ui.listWidget->item(ui.listWidget->currentRow()); ValidObjects(DetailIsValid()); + + if(ui.listWidget->count() < 2) + { + ui.toolButtonUp->setEnabled(false); + ui.toolButtonDown->setEnabled(false); + } + else + { + ui.toolButtonUp->setEnabled(true); + ui.toolButtonDown->setEnabled(true); + } } //---------------------------------------------------------------------------------------------------------------------