Export the navigation widget and expose activation of subwidgets.

Reviewed-by: hjk
This commit is contained in:
Leandro Melo
2010-08-13 10:10:43 +02:00
parent 7d135ef01e
commit 761a9694f9
3 changed files with 16 additions and 12 deletions

View File

@@ -60,6 +60,7 @@ class MessageManager;
class MimeDatabase; class MimeDatabase;
class ModeManager; class ModeManager;
class ProgressManager; class ProgressManager;
class NavigationWidget;
class RightPaneWidget; class RightPaneWidget;
class ScriptManager; class ScriptManager;
class SettingsDatabase; class SettingsDatabase;
@@ -73,7 +74,6 @@ class ActionManagerPrivate;
class CoreImpl; class CoreImpl;
class FancyTabWidget; class FancyTabWidget;
class GeneralSettings; class GeneralSettings;
class NavigationWidget;
class ProgressManagerPrivate; class ProgressManagerPrivate;
class ShortcutSettings; class ShortcutSettings;
class StatusBarManager; class StatusBarManager;

View File

@@ -233,18 +233,22 @@ NavigationSubWidget *NavigationWidget::insertSubItem(int position,int index)
void NavigationWidget::activateSubWidget() void NavigationWidget::activateSubWidget()
{ {
setShown(true);
QShortcut *original = qobject_cast<QShortcut *>(sender()); QShortcut *original = qobject_cast<QShortcut *>(sender());
QString id = m_shortcutMap[original]; QString id = m_shortcutMap[original];
activateSubWidget(id);
}
void NavigationWidget::activateSubWidget(const QString &factoryId)
{
setShown(true);
foreach (NavigationSubWidget *subWidget, m_subWidgets) { foreach (NavigationSubWidget *subWidget, m_subWidgets) {
if (subWidget->factory()->id() == id) { if (subWidget->factory()->id() == factoryId) {
subWidget->setFocusWidget(); subWidget->setFocusWidget();
return; return;
} }
} }
int index = factoryIndex(id); int index = factoryIndex(factoryId);
if (index >= 0) { if (index >= 0) {
m_subWidgets.first()->setFactoryIndex(index); m_subWidgets.first()->setFactoryIndex(index);
m_subWidgets.first()->setFocusWidget(); m_subWidgets.first()->setFocusWidget();

View File

@@ -49,14 +49,11 @@ namespace Core {
class INavigationWidgetFactory; class INavigationWidgetFactory;
class IMode; class IMode;
class Command; class Command;
namespace Internal {
class NavigationWidget; class NavigationWidget;
}
class CORE_EXPORT NavigationWidgetPlaceHolder : public QWidget class CORE_EXPORT NavigationWidgetPlaceHolder : public QWidget
{ {
friend class Core::Internal::NavigationWidget; friend class Core::NavigationWidget;
Q_OBJECT Q_OBJECT
public: public:
NavigationWidgetPlaceHolder(Core::IMode *mode, QWidget *parent = 0); NavigationWidgetPlaceHolder(Core::IMode *mode, QWidget *parent = 0);
@@ -71,10 +68,10 @@ private:
}; };
namespace Internal { namespace Internal {
class NavigationSubWidget; class NavigationSubWidget;
}
class NavigationWidget : public MiniSplitter class CORE_EXPORT NavigationWidget : public MiniSplitter
{ {
Q_OBJECT Q_OBJECT
public: public:
@@ -92,6 +89,7 @@ public:
void saveSettings(QSettings *settings); void saveSettings(QSettings *settings);
void restoreSettings(QSettings *settings); void restoreSettings(QSettings *settings);
void activateSubWidget(const QString &factoryId);
void closeSubWidgets(); void closeSubWidgets();
bool isShown() const; bool isShown() const;
@@ -120,10 +118,10 @@ private slots:
private: private:
void updateToggleText(); void updateToggleText();
NavigationSubWidget *insertSubItem(int position, int index); Internal::NavigationSubWidget *insertSubItem(int position, int index);
int factoryIndex(const QString &id); int factoryIndex(const QString &id);
QList<NavigationSubWidget *> m_subWidgets; QList<Internal::NavigationSubWidget *> m_subWidgets;
QHash<QShortcut *, QString> m_shortcutMap; QHash<QShortcut *, QString> m_shortcutMap;
QHash<QString, Core::Command*> m_commandMap; QHash<QString, Core::Command*> m_commandMap;
QStandardItemModel *m_factoryModel; QStandardItemModel *m_factoryModel;
@@ -135,6 +133,8 @@ private:
QAction *m_toggleSideBarAction; QAction *m_toggleSideBarAction;
}; };
namespace Internal {
class NavigationSubWidget : public QWidget class NavigationSubWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT