]> cloud.milkyroute.net Git - dolphin.git/commitdiff
allow sorting by type
authorPeter Penz <peter.penz19@gmail.com>
Sun, 22 Apr 2007 21:04:46 +0000 (21:04 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sun, 22 Apr 2007 21:04:46 +0000 (21:04 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=656971

src/detailsviewsettingspage.cpp
src/detailsviewsettingspage.h
src/dolphin_detailsmodesettings.kcfg
src/dolphindetailsview.cpp
src/dolphinmainwindow.cpp
src/dolphinmainwindow.h
src/dolphinsortfilterproxymodel.cpp
src/dolphinui.rc
src/dolphinview.h
src/sidebartreeview.cpp
src/viewpropertiesdialog.cpp

index 7ec11b1538fc0ea25f482d393201a662b5220f27..23c0d9dcfd82e7c9adad6c664629428c7f017deb 100644 (file)
 #include <QSpinBox>
 
 DetailsViewSettingsPage::DetailsViewSettingsPage(DolphinMainWindow* mainWindow,
-        QWidget* parent) :
-        KVBox(parent),
-        m_mainWindow(mainWindow),
-        m_dateBox(0),
-        m_permissionsBox(0),
-        m_ownerBox(0),
-        m_groupBox(0),
-        m_smallIconSize(0),
-        m_mediumIconSize(0),
-        m_largeIconSize(0),
-        m_fontRequester(0)
+                                                 QWidget* parent) :
+    KVBox(parent),
+    m_mainWindow(mainWindow),
+    m_dateBox(0),
+    m_permissionsBox(0),
+    m_ownerBox(0),
+    m_groupBox(0),
+    m_smallIconSize(0),
+    m_mediumIconSize(0),
+    m_largeIconSize(0),
+    m_fontRequester(0)
 {
     const int spacing = KDialog::spacingHint();
     const int margin = KDialog::marginHint();
@@ -74,11 +74,15 @@ DetailsViewSettingsPage::DetailsViewSettingsPage(DolphinMainWindow* mainWindow,
     m_groupBox = new QCheckBox(i18n("Group"), this);
     m_groupBox->setChecked(settings->showGroup());
 
+    m_typeBox = new QCheckBox(i18n("Type"), this);
+    m_typeBox->setChecked(settings->showType());
+
     QHBoxLayout* columnsLayout = new QHBoxLayout(columnsBox);
     columnsLayout->addWidget(m_dateBox);
     columnsLayout->addWidget(m_permissionsBox);
     columnsLayout->addWidget(m_ownerBox);
     columnsLayout->addWidget(m_groupBox);
+    columnsLayout->addWidget(m_typeBox);
 
     // Create "Icon" properties
     QGroupBox* iconSizeBox = new QGroupBox(i18n("Icon Size"), this);
@@ -134,7 +138,8 @@ DetailsViewSettingsPage::DetailsViewSettingsPage(DolphinMainWindow* mainWindow,
 }
 
 DetailsViewSettingsPage::~DetailsViewSettingsPage()
-{}
+{
+}
 
 void DetailsViewSettingsPage::applySettings()
 {
@@ -145,6 +150,7 @@ void DetailsViewSettingsPage::applySettings()
     settings->setShowPermissions(m_permissionsBox->isChecked());
     settings->setShowOwner(m_ownerBox->isChecked());
     settings->setShowGroup(m_groupBox->isChecked());
+    settings->setShowType(m_typeBox->isChecked());
 
     int iconSize = K3Icon::SizeSmall;
     if (m_mediumIconSize->isChecked()) {
index 2318f976028916b9878763b175a2645c9f4ce6ed..95a83fdc5e7d001f8a3de7530dede8ebf09525c6 100644 (file)
@@ -54,6 +54,7 @@ private:
     QCheckBox* m_permissionsBox;
     QCheckBox* m_ownerBox;
     QCheckBox* m_groupBox;
+    QCheckBox* m_typeBox;
     QRadioButton* m_smallIconSize;
     QRadioButton* m_mediumIconSize;
     QRadioButton* m_largeIconSize;
index ceaf2136f5f75aa2235a28eb833ee1e7c2e3c88c..7c76893fcb9a2cd324f4f99bd6c0a32497fba017 100644 (file)
@@ -45,5 +45,9 @@
             <label>Show size</label>
             <default>false</default>
         </entry>
+        <entry name="ShowType" type="Bool">
+            <label>Show type</label>
+            <default>false</default>
+        </entry>
     </group>
 </kcfg>
\ No newline at end of file
index 88537471bbd10a01d4241c11216f7a4539899f94..6544940b11436833cb5a82dfe071f7618d907662 100644 (file)
@@ -116,6 +116,10 @@ bool DolphinDetailsView::event(QEvent* event)
         if (!settings->showGroup()) {
             hideColumn(KDirModel::Group);
         }
+
+        if (!settings->showType()) {
+            hideColumn(KDirModel::Type);
+        }
     }
 
     return QTreeView::event(event);
index 73de1b56cf6114cf999a4789d1aa1e4c9ffb4b9f..1c3d6789bda4a59e2a22e3db7385d8ce148287b4 100644 (file)
@@ -305,6 +305,8 @@ void DolphinMainWindow::slotSortingChanged(DolphinView::Sorting sorting)
     case DolphinView::SortByGroup:
         action = actionCollection()->action("by_group");
         break;
+    case DolphinView::SortByType:
+        action = actionCollection()->action("by_type");
     default:
         break;
     }
@@ -703,6 +705,11 @@ void DolphinMainWindow::sortByGroup()
     m_activeView->setSorting(DolphinView::SortByGroup);
 }
 
+void DolphinMainWindow::sortByType()
+{
+    m_activeView->setSorting(DolphinView::SortByType);
+}
+
 void DolphinMainWindow::toggleSortOrder()
 {
     const Qt::SortOrder order = (m_activeView->sortOrder() == Qt::AscendingOrder) ?
@@ -1137,6 +1144,10 @@ void DolphinMainWindow::setupActions()
     sortByGroup->setText(i18n("By Group"));
     connect(sortByGroup, SIGNAL(triggered()), this, SLOT(sortByGroup()));
 
+    KToggleAction* sortByType = actionCollection()->add<KToggleAction>("by_type");
+    sortByType->setText(i18n("By Type"));
+    connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType()));
+
     QActionGroup* sortGroup = new QActionGroup(this);
     sortGroup->addAction(sortByName);
     sortGroup->addAction(sortBySize);
@@ -1144,6 +1155,7 @@ void DolphinMainWindow::setupActions()
     sortGroup->addAction(sortByPermissions);
     sortGroup->addAction(sortByOwner);
     sortGroup->addAction(sortByGroup);
+    sortGroup->addAction(sortByType);
 
     KToggleAction* sortDescending = actionCollection()->add<KToggleAction>("descending");
     sortDescending->setText(i18n("Descending"));
@@ -1259,6 +1271,10 @@ void DolphinMainWindow::setupDockWidgets()
     // after the dock concept has been finalized.
 
     // setup "Information"
+
+    // TODO: temporary deactivated info sidebar because of some minor side effects
+
+    /*
     QDockWidget* infoDock = new QDockWidget(i18n("Information"));
     infoDock->setObjectName("infoDock");
     infoDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
@@ -1269,7 +1285,7 @@ void DolphinMainWindow::setupDockWidgets()
     actionCollection()->addAction("show_info_panel", infoDock->toggleViewAction());
 
     addDockWidget(Qt::RightDockWidgetArea, infoDock);
-    connectSidebarPage(infoWidget);
+    connectSidebarPage(infoWidget);*/
 
     // setup "Tree View"
     QDockWidget* treeViewDock = new QDockWidget(i18n("Folders"));
@@ -1286,7 +1302,7 @@ void DolphinMainWindow::setupDockWidgets()
 
     const bool firstRun = DolphinSettings::instance().generalSettings()->firstRun();
     if (firstRun) {
-        infoDock->hide();
+        //infoDock->hide();
         treeViewDock->hide();
     }
 
index c3e0f91ab2cd161e9fb1ce0b7ea4ab261d659308..4f850339e85513ea022be1395e930e05dee92820 100644 (file)
@@ -262,6 +262,9 @@ private slots:
     /** The sorting of the current view should be done by the group. */
     void sortByGroup();
 
+    /** The sorting of the current view should be done by the type. */
+    void sortByType();
+
     /** Switches between an ascending and descending sorting order. */
     void toggleSortOrder();
 
index aba4117e8afca9aa0b1e58255f4be9754bc6e141..024110267c9526bdfe1a65b71f412db093b7792a 100644 (file)
 #include <kdirmodel.h>
 #include <kfileitem.h>
 
-static const int dolphinMapSize = 6;
+static const int dolphinMapSize = 7;
 static int dolphinViewToDirModelColumn[] =
-    {
-        KDirModel::Name,         // DolphinView::SortByName
-        KDirModel::Size,         // DolphinView::SortBySize
-        KDirModel::ModifiedTime, // DolphinView::SortByDate
-        KDirModel::Permissions,  // DolphinView::SortByPermissions
-        KDirModel::Owner,        // DolphinView::SortByOwner
-        KDirModel::Group         // DolphinView::SortByGroup
-    };
+{
+    KDirModel::Name,         // DolphinView::SortByName
+    KDirModel::Size,         // DolphinView::SortBySize
+    KDirModel::ModifiedTime, // DolphinView::SortByDate
+    KDirModel::Permissions,  // DolphinView::SortByPermissions
+    KDirModel::Owner,        // DolphinView::SortByOwner
+    KDirModel::Group,        // DolphinView::SortByGroup
+    KDirModel::Type          // DolphinView::SortByType
+};
 
 static DolphinView::Sorting dirModelColumnToDolphinView[] =
-    {
-        DolphinView::SortByName,        // KDirModel::Name
-        DolphinView::SortBySize,        // KDirModel::Size
-        DolphinView::SortByDate,        // KDirModel::ModifiedTime
-        DolphinView::SortByPermissions, // KDirModel::Permissions
-        DolphinView::SortByOwner,       // KDirModel::Owner
-        DolphinView::SortByGroup        // KDirModel::Group
-    };
+{
+    DolphinView::SortByName,        // KDirModel::Name
+    DolphinView::SortBySize,        // KDirModel::Size
+    DolphinView::SortByDate,        // KDirModel::ModifiedTime
+    DolphinView::SortByPermissions, // KDirModel::Permissions
+    DolphinView::SortByOwner,       // KDirModel::Owner
+    DolphinView::SortByGroup,       // KDirModel::Group
+    DolphinView::SortByType         // KDirModel::Type
+};
 
 
 DolphinSortFilterProxyModel::DolphinSortFilterProxyModel(QObject* parent) :
index a6cfa18c7c1d44cb95be13449979fe73d836353f..f7207b2f87f824eefe8934b056ac0d02d4073d74 100644 (file)
@@ -30,6 +30,7 @@
     <Action name="by_permissions" />
     <Action name="by_owner" />
     <Action name="by_group" />
+    <Action name="by_type" />
     <Separator/>
     <Action name="descending" />
     <Action name="categorized" />
index f6b85f96b74e9cee4d9abdb2a889328934d7f39f..ec7fcf85bc8399d2b18824f65abfe8f942cff0ef 100644 (file)
@@ -108,7 +108,8 @@ public:
         SortByPermissions,
         SortByOwner,
         SortByGroup,
-        MaxSortEnum = SortByGroup
+        SortByType,
+        MaxSortEnum = SortByType
     };
 
     DolphinView(DolphinMainWindow* mainwindow,
index 30ad6b169a16fee214b8fe79415aeb6f205a620f..2ab0543fcf52a8b7f0fd7804895f2702a4320aad 100644 (file)
@@ -54,6 +54,7 @@ bool SidebarTreeView::event(QEvent* event)
         hideColumn(KDirModel::Permissions);
         hideColumn(KDirModel::Owner);
         hideColumn(KDirModel::Group);
+        hideColumn(KDirModel::Type);
         header()->hide();
     }
 
index 61bb5a12d81667cc37f62d5b1ba1589b24a178f9..11fe8d6f3de3fd808c6381d9833b9e563446f6cc 100644 (file)
@@ -85,6 +85,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
     m_viewMode->addItem(KIcon("fileview-column"), i18n("Column"));
     const int index = static_cast<int>(m_viewProps->viewMode());
     m_viewMode->setCurrentIndex(index);
+    const bool iconsViewEnabled = (index == DolphinView::IconsView);
 
     QLabel* sortingLabel = new QLabel(i18n("Sorting:"), propsBox);
     QWidget* sortingBox = new QWidget(propsBox);
@@ -99,6 +100,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
     m_categorizedSorting->addItem(i18n("Uncategorized"));
     m_categorizedSorting->addItem(i18n("Categorized"));
     m_categorizedSorting->setCurrentIndex(m_viewProps->categorizedSorting() ? 1 : 0);
+    m_categorizedSorting->setEnabled(iconsViewEnabled);
 
     m_sorting = new QComboBox(sortingBox);
     m_sorting->addItem("By Name");
@@ -107,6 +109,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
     m_sorting->addItem("By Permissions");
     m_sorting->addItem("By Owner");
     m_sorting->addItem("By Group");
+    m_sorting->addItem("By Type");
     m_sorting->setCurrentIndex(m_viewProps->sorting());
 
     QHBoxLayout* sortingLayout = new QHBoxLayout();
@@ -124,7 +127,7 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
     m_additionalInfo->addItem(i18n("Date"), KFileItemDelegate::ModificationTime);
     const int addInfoIndex = m_additionalInfo->findData(m_viewProps->additionalInfo());
     m_additionalInfo->setCurrentIndex(addInfoIndex);
-    m_additionalInfo->setEnabled(m_viewProps->viewMode() == DolphinView::IconsView);
+    m_additionalInfo->setEnabled(iconsViewEnabled);
 
     m_showPreview = new QCheckBox(i18n("Show preview"), propsBox);
     m_showPreview->setChecked(m_viewProps->showPreview());