diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index 57bea2133a51e66fdb6ebbfcf4449915db464502..433479a40d42eacdf302785578ff1186f3ff82c6 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -60,6 +60,7 @@ class MessageManager; class MimeDatabase; class ModeManager; class ProgressManager; +class NavigationWidget; class RightPaneWidget; class ScriptManager; class SettingsDatabase; @@ -73,7 +74,6 @@ class ActionManagerPrivate; class CoreImpl; class FancyTabWidget; class GeneralSettings; -class NavigationWidget; class ProgressManagerPrivate; class ShortcutSettings; class StatusBarManager; diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp index 0bfb62aea684845a509ae45193a3376bf1173311..709757c3893938938284a19e6c7c1f7cf1ea618c 100644 --- a/src/plugins/coreplugin/navigationwidget.cpp +++ b/src/plugins/coreplugin/navigationwidget.cpp @@ -233,18 +233,22 @@ NavigationSubWidget *NavigationWidget::insertSubItem(int position,int index) void NavigationWidget::activateSubWidget() { - setShown(true); QShortcut *original = qobject_cast<QShortcut *>(sender()); QString id = m_shortcutMap[original]; + activateSubWidget(id); +} +void NavigationWidget::activateSubWidget(const QString &factoryId) +{ + setShown(true); foreach (NavigationSubWidget *subWidget, m_subWidgets) { - if (subWidget->factory()->id() == id) { + if (subWidget->factory()->id() == factoryId) { subWidget->setFocusWidget(); return; } } - int index = factoryIndex(id); + int index = factoryIndex(factoryId); if (index >= 0) { m_subWidgets.first()->setFactoryIndex(index); m_subWidgets.first()->setFocusWidget(); diff --git a/src/plugins/coreplugin/navigationwidget.h b/src/plugins/coreplugin/navigationwidget.h index 1c4834aeb0fab54004db53b48340ace53d297245..e609e54239240ed3e49c6abfec32364a0b522bac 100644 --- a/src/plugins/coreplugin/navigationwidget.h +++ b/src/plugins/coreplugin/navigationwidget.h @@ -49,14 +49,11 @@ namespace Core { class INavigationWidgetFactory; class IMode; class Command; - -namespace Internal { class NavigationWidget; -} class CORE_EXPORT NavigationWidgetPlaceHolder : public QWidget { - friend class Core::Internal::NavigationWidget; + friend class Core::NavigationWidget; Q_OBJECT public: NavigationWidgetPlaceHolder(Core::IMode *mode, QWidget *parent = 0); @@ -71,10 +68,10 @@ private: }; namespace Internal { - class NavigationSubWidget; +} -class NavigationWidget : public MiniSplitter +class CORE_EXPORT NavigationWidget : public MiniSplitter { Q_OBJECT public: @@ -92,6 +89,7 @@ public: void saveSettings(QSettings *settings); void restoreSettings(QSettings *settings); + void activateSubWidget(const QString &factoryId); void closeSubWidgets(); bool isShown() const; @@ -120,10 +118,10 @@ private slots: private: void updateToggleText(); - NavigationSubWidget *insertSubItem(int position, int index); + Internal::NavigationSubWidget *insertSubItem(int position, int index); int factoryIndex(const QString &id); - QList<NavigationSubWidget *> m_subWidgets; + QList<Internal::NavigationSubWidget *> m_subWidgets; QHash<QShortcut *, QString> m_shortcutMap; QHash<QString, Core::Command*> m_commandMap; QStandardItemModel *m_factoryModel; @@ -135,6 +133,8 @@ private: QAction *m_toggleSideBarAction; }; +namespace Internal { + class NavigationSubWidget : public QWidget { Q_OBJECT