From 13b0ca009252dcbb3afec54d2c0be124aeee6f47 Mon Sep 17 00:00:00 2001 From: Lorenz Haas Date: Fri, 5 Apr 2013 14:33:23 +0200 Subject: [PATCH] Add keyboard shortcut for "New Scratch Buffer" Task-number: QTCREATORBUG-9039 Change-Id: Iff7d821f863f2691786acaea44137d291d3dbf67 Reviewed-by: David Schulz --- src/plugins/texteditor/texteditorconstants.h | 1 + src/plugins/texteditor/texteditorplugin.cpp | 22 ++++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h index 39e656afcd9..7a9edef2f70 100644 --- a/src/plugins/texteditor/texteditorconstants.h +++ b/src/plugins/texteditor/texteditorconstants.h @@ -94,6 +94,7 @@ namespace Constants { const char C_TEXTEDITOR[] = "Text Editor"; const char COMPLETE_THIS[] = "TextEditor.CompleteThis"; const char QUICKFIX_THIS[] = "TextEditor.QuickFix"; +const char CREATE_SCRATCH_BUFFER[] = "TextEditor.CreateScratchBuffer"; const char VISUALIZE_WHITESPACE[] = "TextEditor.VisualizeWhitespace"; const char CLEAN_WHITESPACE[] = "TextEditor.CleanWhitespace"; const char TEXT_WRAPPING[] = "TextEditor.TextWrapping"; diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp index 3ad315773e0..e47a3504246 100644 --- a/src/plugins/texteditor/texteditorplugin.cpp +++ b/src/plugins/texteditor/texteditorplugin.cpp @@ -99,6 +99,8 @@ static inline QString wizardDisplayCategory() // based on a temporary file without prompting for a path. class ScratchFileWizard : public Core::IWizard { + Q_OBJECT + public: virtual WizardKind kind() const { return FileWizard; } virtual QIcon icon() const { return QIcon(); } @@ -118,13 +120,15 @@ public: { return Core::FeatureSet(); } virtual WizardFlags flags() const { return Core::IWizard::PlatformIndependent; } + virtual void runWizard(const QString &, QWidget *, const QString &, const QVariantMap &) + { createFile(); } - virtual void runWizard(const QString &path, QWidget *parent, const QString &platform, const QVariantMap &extraValues); +public Q_SLOTS: + virtual void createFile(); }; -void ScratchFileWizard::runWizard(const QString &, QWidget *, const QString &, const QVariantMap &extraValues) +void ScratchFileWizard::createFile() { - Q_UNUSED(extraValues) QString tempPattern = QDir::tempPath(); if (!tempPattern.endsWith(QLatin1Char('/'))) tempPattern += QLatin1Char('/'); @@ -156,7 +160,8 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe wizardParameters); // Add text file wizard addAutoReleasedObject(wizard); - addAutoReleasedObject(new ScratchFileWizard); + ScratchFileWizard *scratchFile = new ScratchFileWizard; + addAutoReleasedObject(scratchFile); m_settings = new TextEditorSettings(this); @@ -188,6 +193,13 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe quickFixCommand->setDefaultKeySequence(QKeySequence(tr("Alt+Return"))); connect(quickFixShortcut, SIGNAL(activated()), this, SLOT(invokeQuickFix())); + // Add shortcut for create a scratch buffer + QShortcut *scratchBufferShortcut = new QShortcut(Core::ICore::mainWindow()); + scratchBufferShortcut->setWhatsThis(tr("Creates a scratch buffer using a temporary file.")); + scratchBufferShortcut->setContext(Qt::ApplicationShortcut); + Core::ActionManager::registerShortcut(scratchBufferShortcut, Constants::CREATE_SCRATCH_BUFFER, context); + connect(scratchBufferShortcut, SIGNAL(activated()), scratchFile, SLOT(createFile())); + // Generic highlighter. connect(Core::ICore::instance(), SIGNAL(coreOpened()), Manager::instance(), SLOT(registerMimeTypes())); @@ -327,3 +339,5 @@ void TextEditorPlugin::updateCurrentSelection(const QString &text) } Q_EXPORT_PLUGIN(TextEditorPlugin) + +#include "texteditorplugin.moc"