TextEditor: add right sidebar

Task-number: QTCREATORBUG-9436
Change-Id: Ic0406758a30d52c22c58433f5f35305b798cb462
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
Serhii Moroz
2016-09-17 18:31:56 +03:00
parent 69f978efca
commit 69da534f99
33 changed files with 407 additions and 211 deletions

View File

@@ -43,22 +43,30 @@ class NavigationWidget;
struct NavigationWidgetPrivate;
namespace Internal { class NavigationSubWidget; }
enum class Side {
Left,
Right
};
class CORE_EXPORT NavigationWidgetPlaceHolder : public QWidget
{
Q_OBJECT
friend class Core::NavigationWidget;
public:
explicit NavigationWidgetPlaceHolder(Id mode, QWidget *parent = 0);
explicit NavigationWidgetPlaceHolder(Id mode, Side side, QWidget *parent = 0);
virtual ~NavigationWidgetPlaceHolder();
static NavigationWidgetPlaceHolder* current();
static NavigationWidgetPlaceHolder *current(Side side);
static void setCurrent(Side side, NavigationWidgetPlaceHolder *navWidget);
void applyStoredSize(int width);
private:
void currentModeAboutToChange(Id mode);
Id m_mode;
static NavigationWidgetPlaceHolder* m_current;
Side m_side;
static NavigationWidgetPlaceHolder *s_currentLeft;
static NavigationWidgetPlaceHolder *s_currentRight;
};
class CORE_EXPORT NavigationWidget : public MiniSplitter
@@ -72,15 +80,16 @@ public:
FactoryPriorityRole
};
explicit NavigationWidget(QAction *toggleSideBarAction);
explicit NavigationWidget(QAction *toggleSideBarAction, Side side);
virtual ~NavigationWidget();
void setFactories(const QList<INavigationWidgetFactory*> &factories);
QString settingsGroup() const;
void saveSettings(QSettings *settings);
void restoreSettings(QSettings *settings);
QWidget *activateSubWidget(Id factoryId);
QWidget *activateSubWidget(Id factoryId, int preferredPosition);
void closeSubWidgets();
bool isShown() const;
@@ -89,7 +98,8 @@ public:
bool isSuppressed() const;
void setSuppressed(bool b);
static NavigationWidget* instance();
static NavigationWidget *instance(Side side);
static QWidget *activateSubWidget(Id factoryId, Side fallbackSide);
int storedWidth();
@@ -106,8 +116,10 @@ private:
void splitSubWidget(int factoryIndex);
void closeSubWidget();
void updateToggleText();
Internal::NavigationSubWidget *insertSubItem(int position, int index);
Internal::NavigationSubWidget *insertSubItem(int position, int factoryIndex);
int factoryIndex(Id id);
QString settingsKey(const QString &key) const;
void onSubWidgetFactoryIndexChanged(int factoryIndex);
NavigationWidgetPrivate *d;
};