Changeset View
Changeset View
Standalone View
Standalone View
app/browsemainpage.cpp
Show First 20 Lines • Show All 74 Lines • ▼ Show 20 Line(s) | 69 | { | |||
---|---|---|---|---|---|
75 | int mDocumentCountImages; | 75 | int mDocumentCountImages; | ||
76 | int mDocumentCountVideos; | 76 | int mDocumentCountVideos; | ||
77 | KFileItemList* mSelectedMediaItems; | 77 | KFileItemList* mSelectedMediaItems; | ||
78 | KActionCollection* mActionCollection; | 78 | KActionCollection* mActionCollection; | ||
79 | FilterController* mFilterController; | 79 | FilterController* mFilterController; | ||
80 | KActionMenu* mSortActionMenu; | 80 | KActionMenu* mSortActionMenu; | ||
81 | QActionGroup* mSortAction; | 81 | QActionGroup* mSortAction; | ||
82 | KToggleAction* mSortDescendingAction; | 82 | KToggleAction* mSortDescendingAction; | ||
83 | KToggleAction* mSortFoldersFirst; | ||||
83 | QActionGroup* mThumbnailDetailsActionGroup; | 84 | QActionGroup* mThumbnailDetailsActionGroup; | ||
84 | PreviewItemDelegate* mDelegate; | 85 | PreviewItemDelegate* mDelegate; | ||
85 | 86 | | |||
86 | void setupWidgets() | 87 | void setupWidgets() | ||
87 | { | 88 | { | ||
88 | setupUi(q); | 89 | setupUi(q); | ||
89 | q->layout()->setMargin(0); | 90 | q->layout()->setMargin(0); | ||
90 | 91 | | |||
▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Line(s) | 165 | QObject::connect(mSortAction, SIGNAL(triggered(QAction*)), | |||
165 | q, SLOT(updateSortOrder())); | 166 | q, SLOT(updateSortOrder())); | ||
166 | 167 | | |||
167 | mSortDescendingAction = view->add<KToggleAction>("sort_desc"); | 168 | mSortDescendingAction = view->add<KToggleAction>("sort_desc"); | ||
168 | mSortDescendingAction->setText(i18nc("@action:inmenu Sort", "Descending")); | 169 | mSortDescendingAction->setText(i18nc("@action:inmenu Sort", "Descending")); | ||
169 | mSortDescendingAction->setChecked(false); | 170 | mSortDescendingAction->setChecked(false); | ||
170 | QObject::connect(mSortDescendingAction, SIGNAL(toggled(bool)), | 171 | QObject::connect(mSortDescendingAction, SIGNAL(toggled(bool)), | ||
171 | q, SLOT(updateSortOrder())); | 172 | q, SLOT(updateSortOrder())); | ||
172 | 173 | | |||
174 | mSortFoldersFirst = view->add<KToggleAction>("sort_folders_first"); | ||||
175 | mSortFoldersFirst->setText(i18nc("@action:inmenu Sort", "Folders First")); | ||||
176 | mSortFoldersFirst->setChecked(true); | ||||
177 | QObject::connect(mSortFoldersFirst, SIGNAL(toggled(bool)), | ||||
178 | q, SLOT(updateSortFoldersFirst())); | ||||
179 | | ||||
173 | for(auto action : mSortAction->actions()) { | 180 | for(auto action : mSortAction->actions()) { | ||
174 | mSortActionMenu->addAction(action); | 181 | mSortActionMenu->addAction(action); | ||
175 | } | 182 | } | ||
176 | mSortActionMenu->addSeparator(); | 183 | mSortActionMenu->addSeparator(); | ||
177 | mSortActionMenu->addAction(mSortDescendingAction); | 184 | mSortActionMenu->addAction(mSortDescendingAction); | ||
185 | mSortActionMenu->addAction(mSortFoldersFirst); | ||||
178 | 186 | | |||
179 | mThumbnailDetailsActionGroup = new QActionGroup(q); | 187 | mThumbnailDetailsActionGroup = new QActionGroup(q); | ||
180 | mThumbnailDetailsActionGroup->setExclusive(false); | 188 | mThumbnailDetailsActionGroup->setExclusive(false); | ||
181 | KActionMenu* thumbnailDetailsAction = view->add<KActionMenu>("thumbnail_details"); | 189 | KActionMenu* thumbnailDetailsAction = view->add<KActionMenu>("thumbnail_details"); | ||
182 | thumbnailDetailsAction->setText(i18nc("@action:inmenu", "Thumbnail Details")); | 190 | thumbnailDetailsAction->setText(i18nc("@action:inmenu", "Thumbnail Details")); | ||
183 | thumbnailDetailsAction->addAction(thumbnailDetailAction(i18nc("@action:inmenu", "Filename"), PreviewItemDelegate::FileNameDetail)); | 191 | thumbnailDetailsAction->addAction(thumbnailDetailAction(i18nc("@action:inmenu", "Filename"), PreviewItemDelegate::FileNameDetail)); | ||
184 | thumbnailDetailsAction->addAction(thumbnailDetailAction(i18nc("@action:inmenu", "Date"), PreviewItemDelegate::DateDetail)); | 192 | thumbnailDetailsAction->addAction(thumbnailDetailAction(i18nc("@action:inmenu", "Date"), PreviewItemDelegate::DateDetail)); | ||
185 | thumbnailDetailsAction->addAction(thumbnailDetailAction(i18nc("@action:inmenu", "Image Size"), PreviewItemDelegate::ImageSizeDetail)); | 193 | thumbnailDetailsAction->addAction(thumbnailDetailAction(i18nc("@action:inmenu", "Image Size"), PreviewItemDelegate::ImageSizeDetail)); | ||
▲ Show 20 Lines • Show All 129 Lines • ▼ Show 20 Line(s) | 318 | { | |||
315 | d->mDocumentCountVideos = 0; | 323 | d->mDocumentCountVideos = 0; | ||
316 | d->mSelectedMediaItems = new KFileItemList; | 324 | d->mSelectedMediaItems = new KFileItemList; | ||
317 | d->mActionCollection = actionCollection; | 325 | d->mActionCollection = actionCollection; | ||
318 | d->setupWidgets(); | 326 | d->setupWidgets(); | ||
319 | d->setupActions(actionCollection); | 327 | d->setupActions(actionCollection); | ||
320 | d->setupFilterController(); | 328 | d->setupFilterController(); | ||
321 | loadConfig(); | 329 | loadConfig(); | ||
322 | updateSortOrder(); | 330 | updateSortOrder(); | ||
331 | updateSortFoldersFirst(); | ||||
323 | updateThumbnailDetails(); | 332 | updateThumbnailDetails(); | ||
324 | 333 | | |||
325 | // Set up connections for document count | 334 | // Set up connections for document count | ||
326 | connect(d->mDirModel, &SortedDirModel::rowsInserted, | 335 | connect(d->mDirModel, &SortedDirModel::rowsInserted, | ||
327 | this, &BrowseMainPage::slotDirModelRowsInserted); | 336 | this, &BrowseMainPage::slotDirModelRowsInserted); | ||
328 | connect(d->mDirModel, &SortedDirModel::rowsAboutToBeRemoved, | 337 | connect(d->mDirModel, &SortedDirModel::rowsAboutToBeRemoved, | ||
329 | this, &BrowseMainPage::slotDirModelRowsAboutToBeRemoved); | 338 | this, &BrowseMainPage::slotDirModelRowsAboutToBeRemoved); | ||
330 | connect(d->mDirModel, &SortedDirModel::modelReset, | 339 | connect(d->mDirModel, &SortedDirModel::modelReset, | ||
Show All 25 Lines | 353 | { | |||
356 | 365 | | |||
357 | Q_FOREACH(QAction * action, d->mSortAction->actions()) { | 366 | Q_FOREACH(QAction * action, d->mSortAction->actions()) { | ||
358 | if (sortingFromSortAction(action) == GwenviewConfig::sorting()) { | 367 | if (sortingFromSortAction(action) == GwenviewConfig::sorting()) { | ||
359 | action->setChecked(true); | 368 | action->setChecked(true); | ||
360 | break; | 369 | break; | ||
361 | } | 370 | } | ||
362 | } | 371 | } | ||
363 | d->mSortDescendingAction->setChecked(GwenviewConfig::sortDescending()); | 372 | d->mSortDescendingAction->setChecked(GwenviewConfig::sortDescending()); | ||
373 | d->mSortFoldersFirst->setChecked(GwenviewConfig::sortFoldersFirst()); | ||||
364 | 374 | | |||
365 | d->updateContextBarActions(); | 375 | d->updateContextBarActions(); | ||
366 | } | 376 | } | ||
367 | 377 | | |||
368 | void BrowseMainPage::saveConfig() const | 378 | void BrowseMainPage::saveConfig() const | ||
369 | { | 379 | { | ||
370 | GwenviewConfig::setUrlNavigatorIsEditable(d->mUrlNavigator->isUrlEditable()); | 380 | GwenviewConfig::setUrlNavigatorIsEditable(d->mUrlNavigator->isUrlEditable()); | ||
371 | GwenviewConfig::setUrlNavigatorShowFullPath(d->mUrlNavigator->showFullPath()); | 381 | GwenviewConfig::setUrlNavigatorShowFullPath(d->mUrlNavigator->showFullPath()); | ||
372 | GwenviewConfig::setThumbnailSize(d->mThumbnailSlider->value()); | 382 | GwenviewConfig::setThumbnailSize(d->mThumbnailSlider->value()); | ||
373 | GwenviewConfig::setSorting(sortingFromSortAction(d->mSortAction->checkedAction())); | 383 | GwenviewConfig::setSorting(sortingFromSortAction(d->mSortAction->checkedAction())); | ||
374 | GwenviewConfig::setSortDescending(d->mSortDescendingAction->isChecked()); | 384 | GwenviewConfig::setSortDescending(d->mSortDescendingAction->isChecked()); | ||
385 | GwenviewConfig::setSortFoldersFirst(d->mSortFoldersFirst->isChecked()); | ||||
375 | GwenviewConfig::setThumbnailDetails(d->mDelegate->thumbnailDetails()); | 386 | GwenviewConfig::setThumbnailDetails(d->mDelegate->thumbnailDetails()); | ||
376 | } | 387 | } | ||
377 | 388 | | |||
378 | bool BrowseMainPage::eventFilter(QObject* watched, QEvent* event) | 389 | bool BrowseMainPage::eventFilter(QObject* watched, QEvent* event) | ||
379 | { | 390 | { | ||
380 | if (window()->isFullScreen() && event->type() == QEvent::ShortcutOverride) { | 391 | if (window()->isFullScreen() && event->type() == QEvent::ShortcutOverride) { | ||
381 | const QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event); | 392 | const QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event); | ||
382 | if (keyEvent->key() == Qt::Key_Escape) { | 393 | if (keyEvent->key() == Qt::Key_Escape) { | ||
▲ Show 20 Lines • Show All 84 Lines • ▼ Show 20 Line(s) | 476 | { | |||
467 | GV_RETURN_IF_FAIL(action); | 478 | GV_RETURN_IF_FAIL(action); | ||
468 | 479 | | |||
469 | const Qt::SortOrder order = d->mSortDescendingAction->isChecked() ? Qt::DescendingOrder : Qt::AscendingOrder; | 480 | const Qt::SortOrder order = d->mSortDescendingAction->isChecked() ? Qt::DescendingOrder : Qt::AscendingOrder; | ||
470 | 481 | | |||
471 | // This works because for now Sorting::Enum maps to KDirModel::ModelColumns | 482 | // This works because for now Sorting::Enum maps to KDirModel::ModelColumns | ||
472 | d->mDirModel->sort(sortingFromSortAction(action), order); | 483 | d->mDirModel->sort(sortingFromSortAction(action), order); | ||
473 | } | 484 | } | ||
474 | 485 | | |||
486 | void BrowseMainPage::updateSortFoldersFirst() | ||||
487 | { | ||||
488 | d->mDirModel->setSortFoldersFirst(d->mSortFoldersFirst->isChecked()); | ||||
489 | d->mDirModel->invalidate(); | ||||
490 | } | ||||
491 | | ||||
475 | void BrowseMainPage::updateThumbnailDetails() | 492 | void BrowseMainPage::updateThumbnailDetails() | ||
476 | { | 493 | { | ||
477 | PreviewItemDelegate::ThumbnailDetails details = 0; | 494 | PreviewItemDelegate::ThumbnailDetails details = 0; | ||
478 | Q_FOREACH(const QAction * action, d->mThumbnailDetailsActionGroup->actions()) { | 495 | Q_FOREACH(const QAction * action, d->mThumbnailDetailsActionGroup->actions()) { | ||
479 | if (action->isChecked()) { | 496 | if (action->isChecked()) { | ||
480 | details |= PreviewItemDelegate::ThumbnailDetail(action->data().toInt()); | 497 | details |= PreviewItemDelegate::ThumbnailDetail(action->data().toInt()); | ||
481 | } | 498 | } | ||
482 | } | 499 | } | ||
▲ Show 20 Lines • Show All 48 Lines • Show Last 20 Lines |