From d8630e808badeadefc0e88bdb8ee7066c42e4daa Mon Sep 17 00:00:00 2001 From: con Date: Fri, 4 Feb 2011 14:44:21 +0100 Subject: [PATCH] Update "paste snippet" action state depending on editor. --- src/plugins/cpaster/cpasterplugin.cpp | 10 ++++++++++ src/plugins/cpaster/cpasterplugin.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp index 6f5b509ce4c..e8f691b1d27 100644 --- a/src/plugins/cpaster/cpasterplugin.cpp +++ b/src/plugins/cpaster/cpasterplugin.cpp @@ -142,6 +142,9 @@ bool CodepasterPlugin::initialize(const QStringList &arguments, QString *error_m connect(m_fetchAction, SIGNAL(triggered()), this, SLOT(fetch())); cpContainer->addAction(command); + connect(Core::EditorManager::instance(), SIGNAL(currentEditorChanged(Core::IEditor*)), + this, SLOT(updateActions())); + updateActions(); return true; } @@ -160,6 +163,13 @@ ExtensionSystem::IPlugin::ShutdownFlag CodepasterPlugin::aboutToShutdown() return SynchronousShutdown; } +void CodepasterPlugin::updateActions() +{ + const IEditor* editor = EditorManager::instance()->currentEditor(); + const BaseTextEditorEditable *textEditor = qobject_cast(editor); + m_postEditorAction->setEnabled(textEditor != 0); +} + void CodepasterPlugin::postEditor() { const IEditor* editor = EditorManager::instance()->currentEditor(); diff --git a/src/plugins/cpaster/cpasterplugin.h b/src/plugins/cpaster/cpasterplugin.h index 591daa6ef29..190445c57b0 100644 --- a/src/plugins/cpaster/cpasterplugin.h +++ b/src/plugins/cpaster/cpasterplugin.h @@ -70,6 +70,9 @@ public slots: const QString &content, bool error); +private slots: + void updateActions(); + private: void post(QString data, const QString &mimeType);