X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d705172166c761c06b5fd1daf8cfea9315584e77..8eb9b508ca87fb1d634d8b8ba62c054ed04466d2:/src/views/dolphinviewactionhandler.cpp diff --git a/src/views/dolphinviewactionhandler.cpp b/src/views/dolphinviewactionhandler.cpp index 1886ef08b..a8b044a41 100644 --- a/src/views/dolphinviewactionhandler.cpp +++ b/src/views/dolphinviewactionhandler.cpp @@ -25,17 +25,16 @@ #include "views/zoomlevelinfo.h" #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include - +#include +#include +#include +#include DolphinViewActionHandler::DolphinViewActionHandler(KActionCollection* collection, QObject* parent) : QObject(parent), @@ -358,12 +357,16 @@ void DolphinViewActionHandler::zoomOut() void DolphinViewActionHandler::toggleSortOrder() { - m_currentView->toggleSortOrder(); + const Qt::SortOrder order = (m_currentView->sortOrder() == Qt::AscendingOrder) ? + Qt::DescendingOrder : + Qt::AscendingOrder; + m_currentView->setSortOrder(order); } void DolphinViewActionHandler::toggleSortFoldersFirst() { - m_currentView->toggleSortFoldersFirst(); + const bool sortFirst = m_currentView->sortFoldersFirst(); + m_currentView->setSortFoldersFirst(!sortFirst); } void DolphinViewActionHandler::slotSortOrderChanged(Qt::SortOrder order) @@ -381,7 +384,24 @@ void DolphinViewActionHandler::slotSortFoldersFirstChanged(bool foldersFirst) void DolphinViewActionHandler::toggleAdditionalInfo(QAction* action) { emit actionBeingHandled(); - m_currentView->toggleAdditionalInfo(action); + + const KFileItemDelegate::Information info = + static_cast(action->data().toInt()); + + KFileItemDelegate::InformationList list = m_currentView->additionalInfo(); + + const bool show = action->isChecked(); + + const int index = list.indexOf(info); + const bool containsInfo = (index >= 0); + if (show && !containsInfo) { + list.append(info); + m_currentView->setAdditionalInfo(list); + } else if (!show && containsInfo) { + list.removeAt(index); + m_currentView->setAdditionalInfo(list); + Q_ASSERT(list.indexOf(info) < 0); + } } void DolphinViewActionHandler::slotAdditionalInfoChanged()