1010#include < QDir>
1111#include < QFileDialog>
1212#include < QFileSystemModel>
13+ #include < QMenu>
1314#include < QMessageBox>
1415#include < QResource>
1516#include < QScrollBar>
@@ -295,6 +296,12 @@ MainWindow::MainWindow()
295296 });
296297 connect (sortingOrderBtn, &QToolButton::clicked, this ,
297298 [this ](bool ) { pageOrderingChanged (m_stages->filterAt (m_curFilter)->selectedPageOrder ()); });
299+ connect (pauseSortingBtn, &QToolButton::toggled, this , [this ](bool ) {
300+ if (!isProjectLoaded ()) {
301+ return ;
302+ }
303+ resetThumbSequence (currentPageOrderProvider (), ThumbnailSequence::KEEP_SELECTION );
304+ });
298305 connect (deviationHighlightingBtn, &QToolButton::clicked, this , [this , &settings](bool checked) {
299306 settings.setHighlightDeviationEnabled (checked);
300307 m_thumbSequence->invalidateAllThumbnails ();
@@ -599,6 +606,10 @@ bool MainWindow::compareFiles(const QString& fpath1, const QString& fpath2) {
599606}
600607
601608std::shared_ptr<const PageOrderProvider> MainWindow::currentPageOrderProvider () const {
609+ if (pauseSortingBtn->isChecked ()) {
610+ return nullptr ;
611+ }
612+
602613 const int idx = sortOptions->currentIndex ();
603614 if (idx < 0 ) {
604615 return nullptr ;
@@ -623,6 +634,11 @@ void MainWindow::updateSortOptions() {
623634
624635 sortOptions->setVisible (sortOptions->count () > 0 );
625636
637+ pauseSortingBtn->setEnabled (sortOptions->count () > 0 );
638+ if (sortOptions->count () == 0 ) {
639+ pauseSortingBtn->setChecked (false );
640+ }
641+
626642 if (sortOptions->count () > 0 ) {
627643 sortOptions->setCurrentIndex (filter->selectedPageOrder ());
628644 }
@@ -1016,7 +1032,8 @@ void MainWindow::pageContextMenuRequested(const PageInfo& pageInfo_, const QPoin
10161032 goToPage (pageInfo.id ());
10171033 }
10181034
1019- QMenu menu;
1035+ // Parent widget helps correct multi-monitor placement (issue #75).
1036+ QMenu menu (thumbView);
10201037
10211038 auto & iconProvider = IconProvider::getInstance ();
10221039 QAction* insBefore = menu.addAction (iconProvider.getIcon (" insert-before" ), tr (" Insert before ..." ));
@@ -1041,7 +1058,7 @@ void MainWindow::pastLastPageContextMenuRequested(const QPoint& screenPos) {
10411058 return ;
10421059 }
10431060
1044- QMenu menu;
1061+ QMenu menu (thumbView) ;
10451062 menu.addAction (IconProvider::getInstance ().getIcon (" insert-here" ), tr (" Insert here ..." ));
10461063
10471064 if (menu.exec (screenPos)) {
@@ -2157,6 +2174,7 @@ void MainWindow::setupIcons() {
21572174 gotoPageBtn->setIcon (iconProvider.getIcon (" right-pointing" ));
21582175 selectionModeBtn->setIcon (iconProvider.getIcon (" checkbox-styled" ));
21592176 thumbColumnViewBtn->setIcon (iconProvider.getIcon (" column-view" ));
2177+ pauseSortingBtn->setIcon (iconProvider.getIcon (" stop" ));
21602178 sortingOrderBtn->setIcon (iconProvider.getIcon (" sorting-order" ));
21612179 deviationHighlightingBtn->setIcon (iconProvider.getIcon (" six-spoked-asterisk" ));
21622180 diminishThumbnailsBtn->setIcon (iconProvider.getIcon (" diminishing-glass" ));
0 commit comments