+void DolphinView::setCategorizedSorting(bool categorized)
+{
+ if (!supportsCategorizedSorting() || (categorized == categorizedSorting())) {
+ return;
+ }
+
+ Q_ASSERT(m_iconsView != 0);
+ if (categorized) {
+ Q_ASSERT(m_iconsView->itemCategorizer() == 0);
+ m_iconsView->setItemCategorizer(new DolphinItemCategorizer());
+ } else {
+ KItemCategorizer* categorizer = m_iconsView->itemCategorizer();
+ m_iconsView->setItemCategorizer(0);
+ delete categorizer;
+ }
+
+ ViewProperties props(m_urlNavigator->url());
+ props.setCategorizedSorting(categorized);
+ props.save();
+
+ emit categorizedSortingChanged();
+}
+
+bool DolphinView::categorizedSorting() const
+{
+ if (!supportsCategorizedSorting()) {
+ return false;
+ }
+
+ Q_ASSERT(m_iconsView != 0);
+ return m_iconsView->itemCategorizer() != 0;
+}
+
+bool DolphinView::supportsCategorizedSorting() const
+{
+ return m_iconsView != 0;
+}
+