File indexing completed on 2024-04-28 15:40:13

0001 // SPDX-FileCopyrightText: 2003-2022 Jesper K. Pedersen <blackie@kde.org>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004 
0005 #ifndef STATUSBAR_H
0006 #define STATUSBAR_H
0007 
0008 #include "BreadcrumbViewer.h"
0009 
0010 #include <QStatusBar>
0011 
0012 class QToolButton;
0013 class QTimer;
0014 class QProgressBar;
0015 class QLabel;
0016 class QSlider;
0017 
0018 namespace MainWindow
0019 {
0020 class ImageCounter;
0021 class DirtyIndicator;
0022 
0023 class StatusBar : public QStatusBar
0024 {
0025     Q_OBJECT
0026 public:
0027     StatusBar();
0028     DirtyIndicator *mp_dirtyIndicator;
0029     ImageCounter *mp_partial;
0030     ImageCounter *mp_selected;
0031     BreadcrumbViewer *mp_pathIndicator;
0032 
0033     void setLocked(bool locked);
0034     void startProgress(const QString &text, int total);
0035     void setProgress(int progress);
0036     void setProgressBarVisible(bool);
0037 
0038     void showThumbnailSlider();
0039     void hideThumbnailSlider();
0040 
0041 Q_SIGNALS:
0042     void cancelRequest();
0043     void thumbnailSettingsRequested();
0044 
0045 protected:
0046     void enterEvent(QEvent *event) override;
0047 
0048 private Q_SLOTS:
0049     void hideStatusBar();
0050     void showStatusBar();
0051 
0052 private:
0053     void setupGUI();
0054     void setPendingShow();
0055 
0056     QLabel *m_lockedIndicator;
0057     QProgressBar *m_progressBar;
0058     QToolButton *m_cancel;
0059     QTimer *m_pendingShowTimer;
0060     QSlider *m_thumbnailSizeSlider;
0061     QToolButton *m_thumbnailSettings;
0062 };
0063 
0064 }
0065 
0066 #endif /* STATUSBAR_H */
0067 
0068 // vi:expandtab:tabstop=4 shiftwidth=4: