Workaround for QTCREATORBUG-72 (multiple shortcuts)

This fixes the Ctrl+W vs. Ctrl+F4 for close on MS-Windows
by introducing Ctrl+F4 as an alternative shortcut.

Reviewed-by: con
This commit is contained in:
mae
2010-05-17 11:39:42 +02:00
parent 78f130a121
commit 1a77c287df
2 changed files with 13 additions and 4 deletions

View File

@@ -141,6 +141,7 @@ const char * const GOTO_OTHER_SPLIT = "QtCreator.GotoOtherSplit";
const char * const SAVEASDEFAULT = "QtCreator.SaveAsDefaultLayout"; const char * const SAVEASDEFAULT = "QtCreator.SaveAsDefaultLayout";
const char * const RESTOREDEFAULT = "QtCreator.RestoreDefaultLayout"; const char * const RESTOREDEFAULT = "QtCreator.RestoreDefaultLayout";
const char * const CLOSE = "QtCreator.Close"; const char * const CLOSE = "QtCreator.Close";
const char * const CLOSE_ALTERNATIVE = "QtCreator.Close_Alternative"; // temporary, see QTCREATORBUG-72
const char * const CLOSEALL = "QtCreator.CloseAll"; const char * const CLOSEALL = "QtCreator.CloseAll";
const char * const CLOSEOTHERS = "QtCreator.CloseOthers"; const char * const CLOSEOTHERS = "QtCreator.CloseOthers";
const char * const GOTONEXT = "QtCreator.GotoNext"; const char * const GOTONEXT = "QtCreator.GotoNext";

View File

@@ -67,6 +67,7 @@
#include <QtCore/QSettings> #include <QtCore/QSettings>
#include <QtGui/QAction> #include <QtGui/QAction>
#include <QtGui/QShortcut>
#include <QtGui/QApplication> #include <QtGui/QApplication>
#include <QtGui/QFileDialog> #include <QtGui/QFileDialog>
#include <QtGui/QLayout> #include <QtGui/QLayout>
@@ -311,16 +312,21 @@ EditorManager::EditorManager(ICore *core, QWidget *parent) :
// Close Action // Close Action
cmd = am->registerAction(m_d->m_closeCurrentEditorAction, Constants::CLOSE, editManagerContext); cmd = am->registerAction(m_d->m_closeCurrentEditorAction, Constants::CLOSE, editManagerContext);
#ifdef Q_WS_WIN
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+F4")));
#else
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+W"))); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+W")));
#endif
cmd->setAttribute(Core::Command::CA_UpdateText); cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_d->m_closeCurrentEditorAction->text()); cmd->setDefaultText(m_d->m_closeCurrentEditorAction->text());
mfile->addAction(cmd, Constants::G_FILE_CLOSE); mfile->addAction(cmd, Constants::G_FILE_CLOSE);
connect(m_d->m_closeCurrentEditorAction, SIGNAL(triggered()), this, SLOT(closeEditor())); connect(m_d->m_closeCurrentEditorAction, SIGNAL(triggered()), this, SLOT(closeEditor()));
#ifdef Q_WS_WIN
// workaround for QTCREATORBUG-72
QShortcut *sc = new QShortcut(parent);
cmd = am->registerShortcut(sc, Constants::CLOSE_ALTERNATIVE, editManagerContext);
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+F4")));
cmd->setDefaultText(EditorManager::tr("Close"));
connect(sc, SIGNAL(activated()), this, SLOT(closeEditor()));
#endif
// Close All Action // Close All Action
cmd = am->registerAction(m_d->m_closeAllEditorsAction, Constants::CLOSEALL, editManagerContext); cmd = am->registerAction(m_d->m_closeAllEditorsAction, Constants::CLOSEALL, editManagerContext);
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+W"))); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+W")));
@@ -733,6 +739,8 @@ void EditorManager::closeOtherEditors()
// SLOT connected to action // SLOT connected to action
void EditorManager::closeEditor() void EditorManager::closeEditor()
{ {
if (!m_d->m_currentEditor)
return;
addCurrentPositionToNavigationHistory(); addCurrentPositionToNavigationHistory();
closeEditor(m_d->m_currentEditor); closeEditor(m_d->m_currentEditor);
} }