mirror of
https://github.com/epasveer/seer.git
synced 2026-08-29 16:40:42 +08:00
Checkpoint. Search text shortcuts.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -887,5 +887,7 @@ void SeerMainWindow::refreshShortCuts () {
|
||||
|
||||
actionFileQuit->setShortcut(setting._sequence);
|
||||
}
|
||||
|
||||
gdbWidget->editorManager()->setEditorKeySettings(keySettings());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user