diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2011-10-06 19:36:26 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@nokia.com> | 2011-10-10 15:39:50 +0200 |
commit | bdf486fca1b294d6725e6fd580d7fb6b95aa7fbb (patch) | |
tree | 7ed917b22eed14e1a32396a2bac72d4d7788c4fc /src/plugins/vcsbase | |
parent | d6fcc1d6c4bf9fb1884eb2408f153f0716b689bf (diff) | |
download | qt-creator-bdf486fca1b294d6725e6fd580d7fb6b95aa7fbb.tar.gz |
VCS: Get current file from the editor
Get the current file from the editor, not the filemanager. The later
does not get updated for temporary files like those created by git
blame, leaving the file-based actions in the VCSes enabled when viewing
those temporary files, triggering actions on the last real file that
was visible.
Task-number: QTCREATORBUG-6250
Change-Id: I5c2d3c62805f69bc8e103f0776cd6796332f606c
Reviewed-on: http://codereview.qt-project.org/6175
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src/plugins/vcsbase')
-rw-r--r-- | src/plugins/vcsbase/vcsbaseplugin.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp index d011686bf9..337c141897 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.cpp +++ b/src/plugins/vcsbase/vcsbaseplugin.cpp @@ -205,9 +205,9 @@ StateListener::StateListener(QObject *parent) : QObject(parent) { Core::ICore *core = Core::ICore::instance(); - connect(core->fileManager(), SIGNAL(currentFileChanged(QString)), + connect(core->editorManager(), SIGNAL(currentEditorChanged(Core::IEditor*)), this, SLOT(slotStateChanged())); - connect(core->editorManager()->instance(), SIGNAL(currentEditorStateChanged(Core::IEditor*)), + connect(core->editorManager(), SIGNAL(currentEditorStateChanged(Core::IEditor*)), this, SLOT(slotStateChanged())); connect(core->vcsManager(), SIGNAL(repositoryChanged(QString)), this, SLOT(slotStateChanged())); @@ -235,7 +235,11 @@ void StateListener::slotStateChanged() // temporary path prefix or does the file contains a hash, indicating a project // folder? State state; - state.currentFile = core->fileManager()->currentFile(); + Core::EditorManager *em = core->editorManager(); + if (!em || !em->currentEditor() || !em->currentEditor()->file()) + state.currentFile.clear(); + else + state.currentFile = em->currentEditor()->file()->fileName(); QScopedPointer<QFileInfo> currentFileInfo; // Instantiate QFileInfo only once if required. if (!state.currentFile.isEmpty()) { const bool isTempFile = state.currentFile.startsWith(QDir::tempPath()); |