#include "views/zoomlevelinfo.h"
#include <konq_operations.h>
-#include <kaction.h>
-#include <kactioncollection.h>
-#include <kactionmenu.h>
-#include <kfileitemdelegate.h>
-#include <klocale.h>
-#include <knewmenu.h>
-#include <kselectaction.h>
-#include <ktoggleaction.h>
-#include <krun.h>
-#include <kpropertiesdialog.h>
-
+#include <KAction>
+#include <KActionCollection>
+#include <KActionMenu>
+#include <KFileItemDelegate>
+#include <KLocale>
+#include <KNewFileMenu>
+#include <KSelectAction>
+#include <KToggleAction>
+#include <KRun>
+#include <KPropertiesDialog>
DolphinViewActionHandler::DolphinViewActionHandler(KActionCollection* collection, QObject* parent)
: QObject(parent),
const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
- const KFileItemDelegate::InformationList infos = infoAccessor.keys();
- foreach (KFileItemDelegate::Information info, infos) {
+ const KFileItemDelegate::InformationList infoKeys = infoAccessor.keys();
+ foreach (KFileItemDelegate::Information info, infoKeys) {
const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::AdditionalInfoType);
KToggleAction* action = m_actionCollection->add<KToggleAction>(name);
action->setText(infoAccessor.translation(info));
sortByActionGroup->addAction(sortByName);
const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
- const KFileItemDelegate::InformationList infos = infoAccessor.keys();
- foreach (KFileItemDelegate::Information info, infos) {
+ const KFileItemDelegate::InformationList infoKeys = infoAccessor.keys();
+ foreach (KFileItemDelegate::Information info, infoKeys) {
const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::SortByType);
KToggleAction* action = m_actionCollection->add<KToggleAction>(name);
action->setText(infoAccessor.translation(info));
void DolphinViewActionHandler::updateViewActions()
{
QAction* viewModeAction = m_actionCollection->action(currentViewModeActionName());
- if (viewModeAction != 0) {
+ if (viewModeAction) {
viewModeAction->setChecked(true);
QAction* viewModeMenu = m_actionCollection->action("view_mode");
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)
void DolphinViewActionHandler::toggleAdditionalInfo(QAction* action)
{
emit actionBeingHandled();
- m_currentView->toggleAdditionalInfo(action);
+
+ const KFileItemDelegate::Information info =
+ static_cast<KFileItemDelegate::Information>(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()
void DolphinViewActionHandler::slotSortingChanged(DolphinView::Sorting sorting)
{
- const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
- const KFileItemDelegate::InformationList infos = infoAccessor.keys();
-
QAction* action = 0;
if (sorting == DolphinView::SortByName) {
action = m_actionCollection->action("sort_by_name");
} else {
- foreach (const KFileItemDelegate::Information info, infos) {
+ const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
+ const KFileItemDelegate::InformationList infoKeys = infoAccessor.keys();
+ foreach (const KFileItemDelegate::Information info, infoKeys) {
if (sorting == infoAccessor.sorting(info)) {
const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::SortByType);
action = m_actionCollection->action(name);
}
}
- if (action != 0) {
+ if (action) {
action->setChecked(true);
QAction* sortByMenu = m_actionCollection->action("sort");
void DolphinViewActionHandler::slotZoomLevelChanged(int level)
{
QAction* zoomInAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomIn));
- if (zoomInAction != 0) {
+ if (zoomInAction) {
zoomInAction->setEnabled(level < ZoomLevelInfo::maximumLevel());
}
QAction* zoomOutAction = m_actionCollection->action(KStandardAction::name(KStandardAction::ZoomOut));
- if (zoomOutAction != 0) {
+ if (zoomOutAction) {
zoomOutAction->setEnabled(level > ZoomLevelInfo::minimumLevel());
}
}