File indexing completed on 2024-05-05 04:51:45

0001 /*
0002     SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004  */
0005 
0006 #ifndef K3BFILLSTATUSDISPLAY_H
0007 #define K3BFILLSTATUSDISPLAY_H
0008 
0009 #include <QMouseEvent>
0010 #include <QPaintEvent>
0011 #include <QFrame>
0012 
0013 class QPaintEvent;
0014 class QMouseEvent;
0015 namespace K3b {
0016     class Doc;
0017     class Msf;
0018 
0019     namespace Device {
0020         class Device;
0021     }
0022 
0023     class FillStatusDisplayWidget : public QWidget
0024     {
0025         Q_OBJECT
0026 
0027     public:
0028         FillStatusDisplayWidget( Doc* doc, QWidget* parent );
0029         ~FillStatusDisplayWidget() override;
0030 
0031         QSize sizeHint() const override;
0032         QSize minimumSizeHint() const override;
0033 
0034         const K3b::Msf& cdSize() const;
0035 
0036     public Q_SLOTS:
0037         void setShowTime( bool b );
0038         void setCdSize( const K3b::Msf& size );
0039 
0040     Q_SIGNALS:
0041         void contextMenu( const QPoint& );
0042 
0043     protected:
0044         void mousePressEvent( QMouseEvent* ) override;
0045         void paintEvent(QPaintEvent*) override;
0046 
0047     private:
0048         class Private;
0049         Private* d;
0050     };
0051 
0052 
0053     class FillStatusDisplay : public QFrame
0054     {
0055         Q_OBJECT
0056 
0057     public:
0058         explicit FillStatusDisplay(Doc* doc, QWidget *parent=0);
0059         ~FillStatusDisplay() override;
0060 
0061     public Q_SLOTS:
0062         void showSize();
0063         void showTime();
0064 
0065     protected:
0066         void setupPopupMenu();
0067 
0068     private Q_SLOTS:
0069         void slotAutoSize();
0070         void slot74Minutes();
0071         void slot80Minutes();
0072         void slot100Minutes();
0073         void slotDvd4_7GB();
0074         void slotDvdDoubleLayer();
0075         void slotWhy44();
0076         void slotBD25();
0077         void slotBD50();
0078         void slotCustomSize();
0079         void slotMenuButtonClicked();
0080         void slotPopupMenu(const QPoint&);
0081         void slotDetermineSize();
0082         void slotDocChanged();
0083         void slotMediumChanged( K3b::Device::Device* dev );
0084         void slotUpdateDisplay();
0085 
0086         void slotLoadUserDefaults();
0087         void slotSaveUserDefaults();
0088 
0089     protected:
0090         bool event( QEvent* ) override;
0091 
0092     private:
0093         class Private;
0094         Private* d;
0095     };
0096 }
0097 
0098 #endif