summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/sidebar.h
diff options
context:
space:
mode:
authorLasse Holmstedt <lasse.holmstedt@nokia.com>2010-04-29 11:59:42 +0200
committerLasse Holmstedt <lasse.holmstedt@nokia.com>2010-04-29 13:50:21 +0200
commit7ba6fc883400acd99651c9a9722a9575e2dc8e4b (patch)
treeb380726824ae3b4fae949ba0fc217eb1c49194f8 /src/plugins/coreplugin/sidebar.h
parent3fd04c233c9a535e4a3e334047c1c5379789298c (diff)
downloadqt-creator-7ba6fc883400acd99651c9a9722a9575e2dc8e4b.tar.gz
Fixed localization issues with SideBar
When changing the language, the sidebar items would break because their localized window titles were used for storing the settings. Now, id's are used. Reviewed-by: con
Diffstat (limited to 'src/plugins/coreplugin/sidebar.h')
-rw-r--r--src/plugins/coreplugin/sidebar.h35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/plugins/coreplugin/sidebar.h b/src/plugins/coreplugin/sidebar.h
index 29383968e9..6ac82f8d40 100644
--- a/src/plugins/coreplugin/sidebar.h
+++ b/src/plugins/coreplugin/sidebar.h
@@ -64,13 +64,15 @@ class CORE_EXPORT SideBarItem : public QObject
{
Q_OBJECT
public:
- SideBarItem(QWidget *widget)
- : m_widget(widget)
+ // id is non-localized string of the item that's used to store the settings.
+ SideBarItem(QWidget *widget, const QString &id)
+ : m_widget(widget), m_id(id)
{}
virtual ~SideBarItem();
-
QWidget *widget() { return m_widget; }
+ QString id() const { return m_id; }
+ QString title() const { return m_widget->windowTitle(); }
/* Should always return a new set of tool buttons.
*
@@ -85,6 +87,7 @@ public:
private:
QWidget *m_widget;
+ QString m_id;
};
class CORE_EXPORT SideBar : public MiniSplitter
@@ -92,16 +95,20 @@ class CORE_EXPORT SideBar : public MiniSplitter
Q_OBJECT
public:
/*
- * The SideBar takes ownership of the SideBarItems.
+ * The SideBar takes explicit ownership of the SideBarItems
+ * if you have one SideBar, or shared ownership in case
+ * of multiple SideBars.
*/
SideBar(QList< SideBarItem*> widgetList,
QList< SideBarItem*> defaultVisible);
~SideBar();
- QStringList availableItems() const;
- QStringList unavailableItems() const;
+ QStringList availableItemIds() const;
+ QStringList availableItemTitles() const;
+ QStringList unavailableItemIds() const;
void makeItemAvailable(SideBarItem *item);
- void setUnavailableItems(const QStringList &itemTitles);
+ void setUnavailableItemIds(const QStringList &itemTitles);
+ QString idForTitle(const QString &itemId) const;
SideBarItem *item(const QString &title);
@@ -131,8 +138,9 @@ private:
QList<Internal::SideBarWidget*> m_widgets;
QMap<QString, QWeakPointer<SideBarItem> > m_itemMap;
- QStringList m_availableItems;
- QStringList m_unavailableItems;
+ QStringList m_availableItemIds;
+ QStringList m_availableItemTitles;
+ QStringList m_unavailableItemIds;
QStringList m_defaultVisible;
QMap<QString, Core::Command*> m_shortcutMap;
bool m_closeWhenEmpty;
@@ -147,13 +155,14 @@ public:
SideBarWidget(SideBar *sideBar, const QString &title);
~SideBarWidget();
+ QString currentItemId() const;
QString currentItemTitle() const;
- void setCurrentItem(const QString &title);
+ void setCurrentItem(const QString &id);
void updateAvailableItems();
void removeCurrentItem();
- Core::Command *command(const QString &title) const;
+ Core::Command *command(const QString &id) const;
signals:
void splitMe();
@@ -179,6 +188,10 @@ class ComboBox : public QComboBox
Q_OBJECT
public:
+ enum DataRoles {
+ IdRole = Qt::UserRole
+ };
+
ComboBox(SideBarWidget *sideBarWidget);
protected: