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::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);