File indexing completed on 2024-05-12 15:50:11

0001 /* -*- C++ -*-
0002     This file is part of ThreadWeaver.
0003 
0004     SPDX-FileCopyrightText: 2005-2014 Mirko Boehm <mirko@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #ifndef MAINWINDOW_H
0010 #define MAINWINDOW_H
0011 
0012 #include <QMainWindow>
0013 
0014 #include "Model.h"
0015 
0016 class ImageListFilter;
0017 
0018 namespace Ui
0019 {
0020 class MainWindow;
0021 }
0022 
0023 class AverageLoadManager;
0024 
0025 class MainWindow : public QMainWindow
0026 {
0027     Q_OBJECT
0028 
0029 public:
0030     explicit MainWindow(QWidget *parent = nullptr);
0031     ~MainWindow() override;
0032 
0033 protected:
0034     void closeEvent(QCloseEvent *) override;
0035 
0036 public Q_SLOTS:
0037     void slotProgress(int step, int total);
0038 
0039 private Q_SLOTS:
0040     void slotOpenFiles();
0041     void slotSelectOutputDirectory();
0042     void slotFileLoaderCapChanged();
0043     void slotImageLoaderCapChanged();
0044     void slotComputeThumbNailCapChanged();
0045     void slotSaveThumbNailCapChanged();
0046     void slotWorkerCapChanged();
0047     void slotEnableAverageLoadManager(bool);
0048     void slotRecommendedWorkerCountChanged(int);
0049     void slotQuit();
0050 
0051 private:
0052     Ui::MainWindow *ui;
0053     QString m_outputDirectory;
0054     Model m_model;
0055     ImageListFilter *m_fileLoaderFilter;
0056     ImageListFilter *m_imageLoaderFilter;
0057     ImageListFilter *m_imageScalerFilter;
0058     ImageListFilter *m_imageWriterFilter;
0059     AverageLoadManager *m_averageLoadManager;
0060 
0061     static const QString Setting_OpenLocation;
0062     static const QString Setting_OutputLocation;
0063     static const QString Setting_WindowState;
0064     static const QString Setting_WindowGeometry;
0065 };
0066 
0067 #endif // MAINWINDOW_H