summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/navigationwidget.cpp
diff options
context:
space:
mode:
authorDenis Mingulov <denis.mingulov@gmail.com>2010-09-09 14:35:26 +0200
committerhjk <qtc-committer@nokia.com>2010-09-09 14:39:59 +0200
commitb23b4588bf01f380f20c1cbbc8c4520194b9cd5e (patch)
treee552e483fb4ff07bd79b67afa9edf6c222acfad3 /src/plugins/coreplugin/navigationwidget.cpp
parent0c9d85a933b74122170cd289d3fc8d92e7613374 (diff)
downloadqt-creator-b23b4588bf01f380f20c1cbbc8c4520194b9cd5e.tar.gz
Navigation Widget: add 'Priority' support
Merge-request: 176 Reviewed-by: hjk <qtc-committer@nokia.com>
Diffstat (limited to 'src/plugins/coreplugin/navigationwidget.cpp')
-rw-r--r--src/plugins/coreplugin/navigationwidget.cpp29
1 files changed, 13 insertions, 16 deletions
diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp
index 709757c389..4294419f9b 100644
--- a/src/plugins/coreplugin/navigationwidget.cpp
+++ b/src/plugins/coreplugin/navigationwidget.cpp
@@ -143,6 +143,7 @@ NavigationWidget::NavigationWidget(QAction *toggleSideBarAction) :
m_width(0),
m_toggleSideBarAction(toggleSideBarAction)
{
+ m_factoryModel->setSortRole(FactoryPriorityRole);
setOrientation(Qt::Vertical);
insertSubItem(0, -1); // we don't have any entry to show yet
m_instance = this;
@@ -180,8 +181,10 @@ void NavigationWidget::setFactories(const QList<INavigationWidgetFactory *> fact
QStandardItem *newRow = new QStandardItem(factory->displayName());
newRow->setData(qVariantFromValue(factory), FactoryObjectRole);
newRow->setData(factory->id(), FactoryIdRole);
+ newRow->setData(factory->priority(), FactoryPriorityRole);
m_factoryModel->appendRow(newRow);
}
+ m_factoryModel->sort(0);
}
int NavigationWidget::storedWidth()
@@ -403,8 +406,7 @@ int NavigationWidget::factoryIndex(const QString &id)
NavigationSubWidget::NavigationSubWidget(NavigationWidget *parentWidget, int position, int factoryIndex)
: m_parentWidget(parentWidget),
- m_position(position),
- m_currentIndex(-1)
+ m_position(position)
{
m_navigationComboBox = new NavComboBox(this);
m_navigationComboBox->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
@@ -412,6 +414,7 @@ NavigationSubWidget::NavigationSubWidget(NavigationWidget *parentWidget, int pos
m_navigationComboBox->setMinimumContentsLength(0);
m_navigationComboBox->setModel(parentWidget->factoryModel());
m_navigationWidget = 0;
+ m_navigationWidgetFactory = 0;
m_toolBar = new Utils::StyledBar(this);
QHBoxLayout *toolBarLayout = new QHBoxLayout;
@@ -453,27 +456,24 @@ NavigationSubWidget::~NavigationSubWidget()
void NavigationSubWidget::comboBoxIndexChanged(int factoryIndex)
{
- if (m_currentIndex == factoryIndex)
- return;
-
saveSettings();
- m_currentIndex = factoryIndex;
-
// Remove toolbutton
foreach (QWidget *w, m_additionalToolBarWidgets)
delete w;
+ m_additionalToolBarWidgets.clear();
// Remove old Widget
delete m_navigationWidget;
+ m_navigationWidget = 0;
+ m_navigationWidgetFactory = 0;
if (factoryIndex == -1)
return;
// Get new stuff
- INavigationWidgetFactory *factory
- = m_navigationComboBox->itemData(factoryIndex,
- NavigationWidget::FactoryObjectRole).value<INavigationWidgetFactory *>();
- NavigationView n = factory->createWidget();
+ m_navigationWidgetFactory = m_navigationComboBox->itemData(factoryIndex,
+ NavigationWidget::FactoryObjectRole).value<INavigationWidgetFactory *>();
+ NavigationView n = m_navigationWidgetFactory->createWidget();
m_navigationWidget = n.widget;
layout()->addWidget(m_navigationWidget);
@@ -495,10 +495,7 @@ void NavigationSubWidget::setFocusWidget()
INavigationWidgetFactory *NavigationSubWidget::factory()
{
- if (m_currentIndex == -1)
- return 0;
- return m_navigationComboBox->itemData(m_currentIndex,
- NavigationWidget::FactoryObjectRole).value<INavigationWidgetFactory *>();
+ return m_navigationWidgetFactory;
}
@@ -527,7 +524,7 @@ Core::Command *NavigationSubWidget::command(const QString &title) const
int NavigationSubWidget::factoryIndex() const
{
- return m_currentIndex;
+ return m_navigationComboBox->currentIndex();
}
void NavigationSubWidget::setFactoryIndex(int i)