forked from qt-creator/qt-creator
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:
@@ -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";
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user