diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 0cc9a34..6e37e72 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -102,11 +102,14 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) connect(m_filesystem, &FilesystemWidget::sortChanged, m_ringList, &ImageRingList::setSort); connect(m_filesystem, &FilesystemWidget::reverseSort, m_ringList, &ImageRingList::reverseSort); + m_filetree = nullptr; +#if !defined(FLATPAK) || !defined(__aarch64__)//bug with QTreeView and QFileSystemModel on ARM64 under flatpak m_filetree = new Filetree(this); connect(m_filetree, &Filetree::fileSelected, this, static_cast(&MainWindow::loadFile)); connect(m_filetree, &Filetree::copyFiles, [this](const QString &path){ copyOrMove(true, path); }); connect(m_filetree, &Filetree::moveFiles, [this](const QString &path){ copyOrMove(false, path); }); connect(m_filetree, &Filetree::indexDirectory, this, static_cast(&MainWindow::indexDir)); +#endif m_databaseView = new DataBaseView(m_database, this); connect(m_databaseView, &DataBaseView::loadFile, this, static_cast(&MainWindow::loadFile)); @@ -145,11 +148,13 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) databaseViewDock->hide(); addDockWidget(Qt::BottomDockWidgetArea, databaseViewDock); +#if !defined(FLATPAK) || !defined(__aarch64__) QDockWidget *filetreeDock = new QDockWidget(tr("File tree"), this); filetreeDock->setWidget(m_filetree); filetreeDock->setObjectName("filetreeDock"); databaseViewDock->hide(); addDockWidget(Qt::LeftDockWidgetArea, filetreeDock); +#endif Histogram *histogram = new Histogram(this); QDockWidget *histogramDock = new QDockWidget(tr("Histogram"), this); @@ -178,7 +183,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) fileMenu->addAction(tr("Open directory recursively"), this, &MainWindow::loadDir); QAction *saveAs = fileMenu->addAction(tr("Save as"), QKeySequence::Save, this, &MainWindow::saveAs); fileMenu->addSeparator(); +#if !defined(FLATPAK) || !defined(__aarch64__) fileMenu->addAction(tr("File manager"), this, &MainWindow::openFileManager); +#endif fileMenu->addAction(tr("Copy marked files"), Qt::Key_F5, this, &MainWindow::copyMarked); fileMenu->addAction(tr("Move marked files"), Qt::Key_F6, this, &MainWindow::moveMarked); fileMenu->addAction(tr("Move marked files to trash"), QKeySequence::Delete, this, &MainWindow::deleteMarked); @@ -194,7 +201,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) fileMenu->addSeparator(); QAction *liveModeAction = fileMenu->addAction(tr("Live mode"), this, &MainWindow::liveMode); liveModeAction->setCheckable(true); - QAction *exitAction = fileMenu->addAction(tr("Exit"), this, &MainWindow::close); + QAction *exitAction = fileMenu->addAction(tr("Exit"), QCoreApplication::instance(), &QCoreApplication::quit, Qt::QueuedConnection); exitAction->setShortcut(QKeySequence::Quit); menuBar()->addMenu(fileMenu); @@ -367,6 +374,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) filesystemDock->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable); databaseViewDock->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable); filetreeDock->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable); + if(_plateSolving)_plateSolving->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable); m_stretchPanel->setFloatable(false); } } @@ -813,9 +821,11 @@ void MainWindow::checkNewVersion() void MainWindow::openFileManager() { +#if !defined(FLATPAK) || !defined(__aarch64__) FileManager *filemanager = new FileManager(_openSuffix); connect(filemanager, &FileManager::openFile, this, static_cast(&MainWindow::loadFile)); filemanager->show(); +#endif } void MainWindow::updateWindowTitle() diff --git a/src/mainwindow.h b/src/mainwindow.h index feb565d..16efbf6 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -23,7 +23,7 @@ class MainWindow : public QMainWindow FilesystemWidget *m_filesystem; Filetree *m_filetree; DataBaseView *m_databaseView; - PlateSolving *_plateSolving; + PlateSolving *_plateSolving = nullptr; static int socketPair[2]; QSocketNotifier *socketNotifier; QString _lastDir; diff --git a/src/platesolving.h b/src/platesolving.h index d941c53..5480ef5 100644 --- a/src/platesolving.h +++ b/src/platesolving.h @@ -1,7 +1,7 @@ #ifndef PLATESOLVING_H #define PLATESOLVING_H -#include "qelapsedtimer.h" +#include #include class Solver;