From ec6015459681d6fcb8eeea997c1abd92534588df Mon Sep 17 00:00:00 2001 From: Ernie Pasveer Date: Sat, 19 Feb 2022 11:29:13 -0600 Subject: [PATCH] Checkpoint. --- src/SeerConfigDialog.cpp | 14 ++++++++++ src/SeerConfigDialog.h | 4 +++ src/SeerKeysConfigPage.cpp | 52 +++++++++++++++++++++++++++++++++++++- src/SeerKeysConfigPage.h | 7 +++++ src/SeerKeysConfigPage.ui | 30 +++++++++++++++++++--- 5 files changed, 103 insertions(+), 4 deletions(-) diff --git a/src/SeerConfigDialog.cpp b/src/SeerConfigDialog.cpp index e8f9aac..3f46d23 100644 --- a/src/SeerConfigDialog.cpp +++ b/src/SeerConfigDialog.cpp @@ -175,6 +175,16 @@ QStringList SeerConfigDialog::sourceAlternateDirectories () const { return _sourceConfigPage->alternateDirectories(); } +void SeerConfigDialog::setKeySettings (const SeerKeySettings& settings) { + + _keysConfigPage->setKeySettings(settings); +} + +const SeerKeySettings& SeerConfigDialog::keySettings () const { + + return _keysConfigPage->keySettings(); +} + void SeerConfigDialog::setSeerRememberWindowSizes (bool flag) { _seerConfigPage->setRememberWindowSizes(flag); @@ -265,6 +275,10 @@ void SeerConfigDialog::handleButtonClicked (QAbstractButton* button) { setSourceAlternateDirectories(alternateDirectories); + }else if (itemLabel == "Keys") { + + setKeySettings(SeerKeySettings::populate()); + }else if (itemLabel == "Seer") { setSeerConsoleMode("normal"); diff --git a/src/SeerConfigDialog.h b/src/SeerConfigDialog.h index cede90c..4e773da 100644 --- a/src/SeerConfigDialog.h +++ b/src/SeerConfigDialog.h @@ -55,6 +55,10 @@ class SeerConfigDialog : public QDialog, protected Ui::SeerConfigDialogForm { void setSourceAlternateDirectories (const QStringList& alternateDirectories); QStringList sourceAlternateDirectories () const; + // Key settings. + void setKeySettings (const SeerKeySettings& settings); + const SeerKeySettings& keySettings () const; + // Seer settings. void setSeerRememberWindowSizes (bool flag); bool seerRememberWindowSizes () const; diff --git a/src/SeerKeysConfigPage.cpp b/src/SeerKeysConfigPage.cpp index 80b5c82..08a2b83 100644 --- a/src/SeerKeysConfigPage.cpp +++ b/src/SeerKeysConfigPage.cpp @@ -1,6 +1,7 @@ #include "SeerKeysConfigPage.h" +#include +#include #include -#include SeerKeysConfigPage::SeerKeysConfigPage(QWidget* parent) : QWidget(parent) { @@ -15,3 +16,52 @@ SeerKeysConfigPage::SeerKeysConfigPage(QWidget* parent) : QWidget(parent) { SeerKeysConfigPage::~SeerKeysConfigPage() { } +void SeerKeysConfigPage::setKeySettings (const SeerKeySettings& settings) { + + _keySettings = settings; + + // Clear the table contents. + keysTableWidget->setRowCount(0); + + // Get a list of keys from the highlighter. + QStringList keys = _keySettings.keys(); + + // Loop through each key and get its info. + // Construct a table entry. + for (int r=0; rinsertRow(r); + + // Insert the KeySequence editor. + QKeySequenceEdit* keySequenceEdit = new QKeySequenceEdit; + keySequenceEdit->setKeySequence(setting._sequence); + + keysTableWidget->setCellWidget(r, 0, keySequenceEdit); + + // Insert the Description. + QLabel* descriptionLabel = new QLabel(setting._help); + + keysTableWidget->setCellWidget(r, 1, descriptionLabel); + + // Connect things to watch for changes. + //QObject::connect(fontWeightBox, QOverload::of(&QComboBox::currentIndexChanged), this, &SeerEditorConfigPage::handleHighlighterChanged); + //QObject::connect(fontItalicBox, QOverload::of(&QComboBox::currentIndexChanged), this, &SeerEditorConfigPage::handleHighlighterChanged); + //QObject::connect(foregroundColorButton, &QColorButton::colorChanged, this, &SeerEditorConfigPage::handleHighlighterChanged); + //QObject::connect(backgroundColorButton, &QColorButton::colorChanged, this, &SeerEditorConfigPage::handleHighlighterChanged); + } + + keysTableWidget->setVerticalHeaderLabels(keys); + + keysTableWidget->resizeColumnToContents(0); // KeySequence + keysTableWidget->resizeColumnToContents(1); // Description +} + +const SeerKeySettings& SeerKeysConfigPage::keySettings() const { + + return _keySettings; +} + diff --git a/src/SeerKeysConfigPage.h b/src/SeerKeysConfigPage.h index 277927a..207aa7d 100644 --- a/src/SeerKeysConfigPage.h +++ b/src/SeerKeysConfigPage.h @@ -1,5 +1,6 @@ #pragma once +#include "SeerKeySettings.h" #include #include "ui_SeerKeysConfigPage.h" @@ -12,6 +13,12 @@ class SeerKeysConfigPage : public QWidget, protected Ui::SeerKeysConfigPage { explicit SeerKeysConfigPage (QWidget* parent = 0); ~SeerKeysConfigPage (); + void setKeySettings (const SeerKeySettings& settings); + const SeerKeySettings& keySettings () const; + protected slots: + + private: + SeerKeySettings _keySettings; }; diff --git a/src/SeerKeysConfigPage.ui b/src/SeerKeysConfigPage.ui index 0fb06d9..11357b2 100644 --- a/src/SeerKeysConfigPage.ui +++ b/src/SeerKeysConfigPage.ui @@ -6,14 +6,14 @@ 0 0 - 887 - 817 + 901 + 652 SeerKeysConfigPage - + @@ -372,6 +372,29 @@ + + + Gdb and Editor Keys + + + + + + + Shortcut + + + + + Description + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -388,6 +411,7 @@ p, li { white-space: pre-wrap; } gdbKeysGroupBox textBrowser editorKeysGroupBox + gdbAndEditorKeysGroupBox