Commit cf250f26 authored by Lasse Holmstedt's avatar Lasse Holmstedt
Browse files

fixed a crash with sidebar when using old settings files

If the user uses old QtC settings files (QtCreator.ini), sidebar item
names are there translated. Because the new settings uses id's instead
of translated names, old sidebar items will not exist on save, causing
crashes. this fixes that issue.

Reviewed-by: con
parent 924da63d
......@@ -218,11 +218,19 @@ void SideBar::saveSettings(QSettings *settings, const QString &name)
const QString prefix = name.isEmpty() ? name : (name + QLatin1Char('/'));
QStringList views;
for (int i = 0; i < m_widgets.count(); ++i)
views.append(m_widgets.at(i)->currentItemId());
for (int i = 0; i < m_widgets.count(); ++i) {
QString currentItemId = m_widgets.at(i)->currentItemId();
if (!currentItemId.isEmpty())
views.append(currentItemId);
}
if (views.isEmpty() && m_itemMap.size()) {
QMapIterator<QString, QWeakPointer<SideBarItem> > iter(m_itemMap);
iter.next();
views.append(iter.key());
}
settings->setValue(prefix + "Views", views);
settings->setValue(prefix + "Visible", true);//isVisible());
settings->setValue(prefix + "Visible", true);
settings->setValue(prefix + "VerticalPosition", saveState());
settings->setValue(prefix + "Width", width());
}
......@@ -244,6 +252,7 @@ void SideBar::readSettings(QSettings *settings, const QString &name)
if (views.count()) {
foreach (const QString &id, views)
insertSideBarWidget(m_widgets.count(), id);
} else {
insertSideBarWidget(0);
}
......@@ -365,7 +374,9 @@ QString SideBarWidget::currentItemTitle() const
QString SideBarWidget::currentItemId() const
{
return m_currentItem->id();
if (m_currentItem)
return m_currentItem->id();
return QString();
}
void SideBarWidget::setCurrentItem(const QString &id)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment