From 8eacd85d683b27357dd16b334581d92b84fedab5 Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 16 Sep 2015 12:30:32 +0200 Subject: [PATCH 1/3] Link to wiki: how to set shortcuts --- cockatrice/src/sequenceEdit/ui_shortcutstab.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/sequenceEdit/ui_shortcutstab.h b/cockatrice/src/sequenceEdit/ui_shortcutstab.h index 261fc6a8..fd370bb5 100644 --- a/cockatrice/src/sequenceEdit/ui_shortcutstab.h +++ b/cockatrice/src/sequenceEdit/ui_shortcutstab.h @@ -18,6 +18,8 @@ QT_BEGIN_NAMESPACE +#define WIKI "https://github.com/Cockatrice/Cockatrice/wiki/Custom-Keyboard-Shortcuts" + class Ui_shortcutsTab { public: @@ -267,6 +269,7 @@ public: SequenceEdit *Player_aAlwaysRevealTopCard; QSpacerItem *verticalSpacer_3; QWidget * tab_4; + QLabel *faqLabel; void setupUi(QWidget *shortcutsTab) { @@ -1402,7 +1405,13 @@ public: grid->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding),1,0); tabWidget->addTab(tab_4, QString()); - gridLayout_9->addWidget(tabWidget, 0, 0, 1, 1); + + faqLabel = new QLabel(shortcutsTab); + faqLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse); + faqLabel->setOpenExternalLinks(true); + + gridLayout_9->addWidget(tabWidget, 0, 0, 1, 1); + gridLayout_9->addWidget(faqLabel,1,0,1,1); tabWidget->setCurrentIndex(0); grid->setSpacing(3); @@ -1557,6 +1566,7 @@ public: lbl_Player_aAlwaysRevealTopCard->setText(QApplication::translate("shortcutsTab", "Always reveal top card", 0)); tabWidget->setTabText(tabWidget->indexOf(tab_3), QApplication::translate("shortcutsTab", "Draw | Move | View | Gameplay", 0)); tabWidget->setTabText(tabWidget->indexOf(tab_4), QApplication::translate("shortcutsTab","Counters", 0)); + faqLabel->setText(QString("%2").arg(WIKI).arg(QApplication::translate("shortcutsTab","How to set custom shortcuts",0))); } // retranslateUi }; From 0ce38ea88e145b0f82e851566269259ce13138a5 Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 16 Sep 2015 13:26:50 +0200 Subject: [PATCH 2/3] Reset & Clear all shortcuts This closes #1517 --- cockatrice/src/sequenceEdit/sequenceedit.cpp | 10 +++++ cockatrice/src/sequenceEdit/sequenceedit.h | 3 ++ cockatrice/src/sequenceEdit/shortcutstab.cpp | 37 +++++++++++++++++++ cockatrice/src/sequenceEdit/shortcutstab.h | 6 ++- cockatrice/src/sequenceEdit/ui_shortcutstab.h | 18 ++++++++- cockatrice/src/shortcutssettings.cpp | 18 +++++++++ cockatrice/src/shortcutssettings.h | 6 ++- 7 files changed, 95 insertions(+), 3 deletions(-) diff --git a/cockatrice/src/sequenceEdit/sequenceedit.cpp b/cockatrice/src/sequenceEdit/sequenceedit.cpp index ed754211..4d8aa404 100644 --- a/cockatrice/src/sequenceEdit/sequenceedit.cpp +++ b/cockatrice/src/sequenceEdit/sequenceedit.cpp @@ -71,6 +71,16 @@ void SequenceEdit::restoreDefault() updateSettings(); } +void SequenceEdit::refreshShortcut() +{ + lineEdit->setText(settingsCache->shortcuts().getShortcutString(shorcutName)); +} + +void SequenceEdit::clear() +{ + this->lineEdit->setText(""); +} + bool SequenceEdit::eventFilter(QObject *, QEvent * event) { if(event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) diff --git a/cockatrice/src/sequenceEdit/sequenceedit.h b/cockatrice/src/sequenceEdit/sequenceedit.h index 0a016c2c..7f7a7aca 100644 --- a/cockatrice/src/sequenceEdit/sequenceedit.h +++ b/cockatrice/src/sequenceEdit/sequenceedit.h @@ -14,11 +14,14 @@ class SequenceEdit : public QWidget public: SequenceEdit(QString _shorcutName, QWidget *parent = 0); QString getSecuence(); + void refreshShortcut(); + void clear(); signals: private slots: void removeLastShortcut(); void restoreDefault(); + protected: bool eventFilter(QObject *, QEvent *event); private: diff --git a/cockatrice/src/sequenceEdit/shortcutstab.cpp b/cockatrice/src/sequenceEdit/shortcutstab.cpp index b28a1466..23d2e96c 100644 --- a/cockatrice/src/sequenceEdit/shortcutstab.cpp +++ b/cockatrice/src/sequenceEdit/shortcutstab.cpp @@ -1,10 +1,17 @@ #include "shortcutstab.h" #include "ui_shortcutstab.h" +#include "../settingscache.h" +#include + ShortcutsTab::ShortcutsTab() : ui(new Ui::shortcutsTab) { ui->setupUi(this); + connect(ui->btnResetAll,SIGNAL(clicked()),this,SLOT(resetShortcuts())); + connect(ui->btnClearAll,SIGNAL(clicked()),this,SLOT(clearShortcuts())); + connect(&settingsCache->shortcuts(),SIGNAL(allShortCutsReset()),this,SLOT(refreshEdits())); + connect(&settingsCache->shortcuts(),SIGNAL(allShortCutsClear()),this,SLOT(afterClear())); } void ShortcutsTab::retranslateUi() @@ -16,3 +23,33 @@ ShortcutsTab::~ShortcutsTab() { delete ui; } + +void ShortcutsTab::resetShortcuts() +{ + settingsCache->shortcuts().resetAllShortcuts(); +} + +void ShortcutsTab::refreshEdits() +{ + QList edits = this->findChildren(); + for(int i= 0; i < edits.length(); ++i) + { + edits.at(i)->refreshShortcut(); + } + QMessageBox::information(this,tr("Shortcuts reset"),tr("All shortcuts have been reset")); +} + +void ShortcutsTab::clearShortcuts() +{ + settingsCache->shortcuts().clearAllShortcuts(); +} + +void ShortcutsTab::afterClear() +{ + QList edits = this->findChildren(); + for(int i= 0; i < edits.length(); ++i) + { + edits.at(i)->clear(); + } + QMessageBox::information(this,tr("Shortcuts reset"),tr("All shortcuts have been cleared")); +} diff --git a/cockatrice/src/sequenceEdit/shortcutstab.h b/cockatrice/src/sequenceEdit/shortcutstab.h index c2e88d39..10396e10 100644 --- a/cockatrice/src/sequenceEdit/shortcutstab.h +++ b/cockatrice/src/sequenceEdit/shortcutstab.h @@ -17,7 +17,11 @@ public: ShortcutsTab(); void retranslateUi(); ~ShortcutsTab(); - +private slots: + void resetShortcuts(); + void refreshEdits(); + void clearShortcuts(); + void afterClear(); private: Ui::shortcutsTab *ui; }; diff --git a/cockatrice/src/sequenceEdit/ui_shortcutstab.h b/cockatrice/src/sequenceEdit/ui_shortcutstab.h index fd370bb5..e856b538 100644 --- a/cockatrice/src/sequenceEdit/ui_shortcutstab.h +++ b/cockatrice/src/sequenceEdit/ui_shortcutstab.h @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -270,6 +271,8 @@ public: QSpacerItem *verticalSpacer_3; QWidget * tab_4; QLabel *faqLabel; + QPushButton *btnResetAll; + QPushButton *btnClearAll; void setupUi(QWidget *shortcutsTab) { @@ -1410,8 +1413,19 @@ public: faqLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse); faqLabel->setOpenExternalLinks(true); - gridLayout_9->addWidget(tabWidget, 0, 0, 1, 1); + btnResetAll = new QPushButton(shortcutsTab); + btnClearAll = new QPushButton(shortcutsTab); + + btnResetAll->setIcon(QPixmap("theme:icons/update")); + btnClearAll->setIcon(QPixmap("theme:icons/clearsearch")); + + QHBoxLayout *buttonsLayout = new QHBoxLayout(shortcutsTab); + buttonsLayout->addWidget(btnClearAll); + buttonsLayout->addWidget(btnResetAll); + + gridLayout_9->addWidget(tabWidget, 0, 0, 1, 2); gridLayout_9->addWidget(faqLabel,1,0,1,1); + gridLayout_9->addLayout(buttonsLayout,1,1,1,1,Qt::AlignRight); tabWidget->setCurrentIndex(0); grid->setSpacing(3); @@ -1567,6 +1581,8 @@ public: tabWidget->setTabText(tabWidget->indexOf(tab_3), QApplication::translate("shortcutsTab", "Draw | Move | View | Gameplay", 0)); tabWidget->setTabText(tabWidget->indexOf(tab_4), QApplication::translate("shortcutsTab","Counters", 0)); faqLabel->setText(QString("%2").arg(WIKI).arg(QApplication::translate("shortcutsTab","How to set custom shortcuts",0))); + btnResetAll->setText(QApplication::translate("shortcutsTab","Reset all shortcuts",0)); + btnClearAll->setText(QApplication::translate("shortcutsTab","Clear all shortcuts",0)); } // retranslateUi }; diff --git a/cockatrice/src/shortcutssettings.cpp b/cockatrice/src/shortcutssettings.cpp index d6ca64bc..861b7992 100644 --- a/cockatrice/src/shortcutssettings.cpp +++ b/cockatrice/src/shortcutssettings.cpp @@ -119,6 +119,24 @@ bool ShortcutsSettings::isValid(QString name, QString Sequences) return true; } +void ShortcutsSettings::resetAllShortcuts() +{ + for(QMap >::const_iterator it = defaultShortCuts.begin(); + it != defaultShortCuts.end(); ++it){ + setShortcuts(it.key(), it.value()); + } + emit allShortCutsReset(); +} + +void ShortcutsSettings::clearAllShortcuts() +{ + for(QMap >::const_iterator it = shortCuts.begin(); + it != shortCuts.end(); ++it){ + setShortcuts(it.key(), ""); + } + emit allShortCutsClear(); +} + void ShortcutsSettings::fillDefaultShorcuts() { defaultShortCuts["MainWindow/aCheckCardUpdates"] = parseSequenceString(""); diff --git a/cockatrice/src/shortcutssettings.h b/cockatrice/src/shortcutssettings.h index 89f3d602..1f82ee02 100644 --- a/cockatrice/src/shortcutssettings.h +++ b/cockatrice/src/shortcutssettings.h @@ -24,9 +24,13 @@ public: void setShortcuts(QString name, QString Sequences); bool isValid(QString name, QString Sequences); + + void resetAllShortcuts(); + void clearAllShortcuts(); signals: void shortCutchanged(); - + void allShortCutsReset(); + void allShortCutsClear(); private: QString settingsFilePath; QMap > shortCuts; From 599ef0ae62a2c525c04e0d4dfb336dc741699e12 Mon Sep 17 00:00:00 2001 From: marco Date: Sat, 19 Sep 2015 23:13:46 +0200 Subject: [PATCH 3/3] Confirmation to clear/restore shortcuts --- cockatrice/src/sequenceEdit/shortcutstab.cpp | 18 ++++++++++++------ cockatrice/src/sequenceEdit/ui_shortcutstab.h | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/cockatrice/src/sequenceEdit/shortcutstab.cpp b/cockatrice/src/sequenceEdit/shortcutstab.cpp index 23d2e96c..d5c3091f 100644 --- a/cockatrice/src/sequenceEdit/shortcutstab.cpp +++ b/cockatrice/src/sequenceEdit/shortcutstab.cpp @@ -26,30 +26,36 @@ ShortcutsTab::~ShortcutsTab() void ShortcutsTab::resetShortcuts() { - settingsCache->shortcuts().resetAllShortcuts(); + if(QMessageBox::question(this,tr("Restore all default shortcuts"), + tr("Do you really want to restore all default shortcuts?")) == QMessageBox::Yes) + { + settingsCache->shortcuts().resetAllShortcuts(); + } } void ShortcutsTab::refreshEdits() -{ +{ QList edits = this->findChildren(); for(int i= 0; i < edits.length(); ++i) { edits.at(i)->refreshShortcut(); } - QMessageBox::information(this,tr("Shortcuts reset"),tr("All shortcuts have been reset")); } void ShortcutsTab::clearShortcuts() { - settingsCache->shortcuts().clearAllShortcuts(); + if(QMessageBox::question(this,tr("Clear all default shortcuts"), + tr("Do you really want to clear all shortcuts?")) == QMessageBox::Yes) + { + settingsCache->shortcuts().clearAllShortcuts(); + } } void ShortcutsTab::afterClear() -{ +{ QList edits = this->findChildren(); for(int i= 0; i < edits.length(); ++i) { edits.at(i)->clear(); } - QMessageBox::information(this,tr("Shortcuts reset"),tr("All shortcuts have been cleared")); } diff --git a/cockatrice/src/sequenceEdit/ui_shortcutstab.h b/cockatrice/src/sequenceEdit/ui_shortcutstab.h index e856b538..d642a9fc 100644 --- a/cockatrice/src/sequenceEdit/ui_shortcutstab.h +++ b/cockatrice/src/sequenceEdit/ui_shortcutstab.h @@ -1581,7 +1581,7 @@ public: tabWidget->setTabText(tabWidget->indexOf(tab_3), QApplication::translate("shortcutsTab", "Draw | Move | View | Gameplay", 0)); tabWidget->setTabText(tabWidget->indexOf(tab_4), QApplication::translate("shortcutsTab","Counters", 0)); faqLabel->setText(QString("%2").arg(WIKI).arg(QApplication::translate("shortcutsTab","How to set custom shortcuts",0))); - btnResetAll->setText(QApplication::translate("shortcutsTab","Reset all shortcuts",0)); + btnResetAll->setText(QApplication::translate("shortcutsTab","Restore all default shortcuts",0)); btnClearAll->setText(QApplication::translate("shortcutsTab","Clear all shortcuts",0)); } // retranslateUi