Checkpoint. Search text shortcuts.

This commit is contained in:
Ernie Pasveer
2022-02-24 17:54:31 -06:00
parent 3571e03173
commit aa9bf81eac
6 changed files with 57 additions and 5 deletions
+21
View File
@@ -16,6 +16,7 @@ SeerEditorManagerWidget::SeerEditorManagerWidget (QWidget* parent) : QWidget(par
_editorFont = QFont("Source Code Pro", 10); // Default font.
_editorHighlighterSettings = SeerHighlighterSettings::populateForCPP(); // Default syntax highlighting.
_editorHighlighterEnabled = true;
_editorKeySettings = SeerKeySettings::populate(); // Defualt key settings.
// Setup UI
setupUi(this);
@@ -173,6 +174,24 @@ const QStringList& SeerEditorManagerWidget::editorAlternateDirectories () const
return _editorAlternateDirectories;
}
void SeerEditorManagerWidget::setEditorKeySettings (const SeerKeySettings& settings) {
_editorKeySettings = settings;
SeerEditorManagerEntries::iterator b = beginEntry();
SeerEditorManagerEntries::iterator e = endEntry();
while (b != e) {
b->widget->setKeySettings(_editorKeySettings);
b++;
}
}
const SeerKeySettings& SeerEditorManagerWidget::editorKeySettings () const {
return _editorKeySettings;
}
void SeerEditorManagerWidget::handleText (const QString& text) {
if (text.startsWith("*stopped")) {
@@ -456,6 +475,7 @@ SeerEditorWidget* SeerEditorManagerWidget::createEditorWidgetTab (const QString&
editorWidget->sourceArea()->setFont(editorFont());
editorWidget->sourceArea()->setHighlighterSettings(editorHighlighterSettings());
editorWidget->sourceArea()->setHighlighterEnabled(editorHighlighterEnabled());
editorWidget->setKeySettings(editorKeySettings());
// Set the tooltip for the tab.
int tabno = tabWidget->addTab(editorWidget, file);
@@ -501,6 +521,7 @@ SeerEditorWidget* SeerEditorManagerWidget::createEditorWidgetTab (const QString&
editorWidget->sourceArea()->setFont(editorFont());
editorWidget->sourceArea()->setHighlighterSettings(editorHighlighterSettings());
editorWidget->sourceArea()->setHighlighterEnabled(editorHighlighterEnabled());
editorWidget->setKeySettings(editorKeySettings());
// Set the tooltip for the tab.
int tabno = tabWidget->addTab(editorWidget, file);
+4
View File
@@ -2,6 +2,7 @@
#include "SeerEditorManagerEntry.h"
#include "SeerHighlighterSettings.h"
#include "SeerKeySettings.h"
#include <QtGui/QFont>
#include <QtWidgets/QWidget>
#include <QtCore/QMap>
@@ -37,6 +38,8 @@ class SeerEditorManagerWidget : public QWidget, protected Ui::SeerEditorManagerW
bool editorHighlighterEnabled () const;
void setEditorAlternateDirectories (const QStringList alternateDirectories);
const QStringList& editorAlternateDirectories () const;
void setEditorKeySettings (const SeerKeySettings& settings);
const SeerKeySettings& editorKeySettings () const;
public slots:
void handleText (const QString& text);
@@ -86,5 +89,6 @@ class SeerEditorManagerWidget : public QWidget, protected Ui::SeerEditorManagerW
bool _editorHighlighterEnabled;
QFont _editorFont;
QStringList _editorAlternateDirectories;
SeerKeySettings _editorKeySettings;
};
+23 -4
View File
@@ -17,7 +17,7 @@
#include <QtCore/QFile>
#include <QtCore/QDebug>
SeerEditorWidget::SeerEditorWidget(QWidget *parent) : QWidget(parent) {
SeerEditorWidget::SeerEditorWidget(QWidget* parent) : QWidget(parent) {
// Construct the UI.
setupUi(this);
@@ -31,8 +31,10 @@ SeerEditorWidget::SeerEditorWidget(QWidget *parent) : QWidget(parent) {
showAlternateBar(false); // Hide the alternate bar. ctrl+O to show it again.
setSearchMatchCase(true); // Search with case sensitivity.
_textSearchShortcut = new QShortcut(QKeySequence(tr("F11")), this);
_alternateDirectoryShortcut = new QShortcut(QKeySequence(tr("F12")), this);
_textSearchShortcut = new QShortcut(QKeySequence(tr("Ctrl-F")), this);
_alternateDirShortcut = new QShortcut(QKeySequence(tr("Ctrl-O")), this);
setKeySettings(SeerKeySettings::populate());
// Connect things.
QObject::connect(searchTextLineEdit, &QLineEdit::returnPressed, this, &SeerEditorWidget::handleSearchTextLineEdit);
@@ -48,7 +50,7 @@ SeerEditorWidget::SeerEditorWidget(QWidget *parent) : QWidget(parent) {
QObject::connect(sourceWidget, &SeerEditorWidgetSourceArea::showAlternateBar, this, &SeerEditorWidget::showAlternateBar);
QObject::connect(_textSearchShortcut, &QShortcut::activated, this, &SeerEditorWidget::handleTextSearchShortcut);
QObject::connect(_alternateDirectoryShortcut, &QShortcut::activated, this, &SeerEditorWidget::handleAlternateDirectoryShortcut);
QObject::connect(_alternateDirShortcut, &QShortcut::activated, this, &SeerEditorWidget::handleAlternateDirectoryShortcut);
}
SeerEditorWidget::~SeerEditorWidget () {
@@ -97,6 +99,23 @@ bool SeerEditorWidget::isAlternateBarShown () const {
return shown;
}
void SeerEditorWidget::setKeySettings (const SeerKeySettings& settings) {
_keySettings = settings;
if (_keySettings.has("SearchText") == true) {
_textSearchShortcut->setKey(_keySettings.get("SearchText")._sequence);
}
if (_keySettings.has("AlternateDir") == true) {
_alternateDirShortcut->setKey(_keySettings.get("AlternateDir")._sequence);
}
}
const SeerKeySettings& SeerEditorWidget::keySettings () const {
return _keySettings;
}
void SeerEditorWidget::showSearchBar (bool flag) {
+5 -1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "SeerCppSourceHighlighter.h"
#include "SeerKeySettings.h"
#include <QtWidgets/QPlainTextEdit>
#include <QtWidgets/QShortcut>
#include <QtWidgets/QWidget>
@@ -224,6 +225,8 @@ class SeerEditorWidget : public QWidget, protected Ui::SeerEditorWidgetForm {
bool isSearchBarShown () const;
bool searchMatchCase () const;
bool isAlternateBarShown () const;
void setKeySettings (const SeerKeySettings& settings);
const SeerKeySettings& keySettings () const;
public slots:
void showSearchBar (bool flag);
@@ -247,7 +250,8 @@ class SeerEditorWidget : public QWidget, protected Ui::SeerEditorWidgetForm {
void addAlternateDirectory (QString path);
private:
SeerKeySettings _keySettings;
QShortcut* _textSearchShortcut;
QShortcut* _alternateDirectoryShortcut;
QShortcut* _alternateDirShortcut;
};
+2
View File
@@ -58,6 +58,8 @@ SeerKeySettings SeerKeySettings::populate () {
keySettings.add("Debug", SeerKeySetting("Debug", QKeySequence::fromString("Alt+D"), "Open the debug dialog."));
keySettings.add("Arguments", SeerKeySetting("Arguments", QKeySequence::fromString("Alt+A"), "Open the argument dialog."));
keySettings.add("Quit", SeerKeySetting("Quit", QKeySequence::fromString("Alt+Q"), "Quit Seer."));
keySettings.add("SearchText", SeerKeySetting("SearchText", QKeySequence::fromString("Ctrl+F"), "Seach for text in the code editor."));
keySettings.add("AlternateDir", SeerKeySetting("AlternateDir", QKeySequence::fromString("Ctrl+O"), "Look for source file in an alternate directory."));
return keySettings;
}
+2
View File
@@ -887,5 +887,7 @@ void SeerMainWindow::refreshShortCuts () {
actionFileQuit->setShortcut(setting._sequence);
}
gdbWidget->editorManager()->setEditorKeySettings(keySettings());
}