File indexing completed on 2024-05-05 16:13:52

0001 /*
0002     SPDX-FileCopyrightText: 2008 Tobias Koenig <tokoe@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KCMTRASH_H
0008 #define KCMTRASH_H
0009 
0010 #include <KCModule>
0011 
0012 class QCheckBox;
0013 class QComboBox;
0014 class QDoubleSpinBox;
0015 class QFrame;
0016 class QLabel;
0017 class QListWidgetItem;
0018 class QSpinBox;
0019 class TrashImpl;
0020 
0021 /**
0022  * @brief Allow to configure the trash.
0023  */
0024 class TrashConfigModule : public KCModule
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     TrashConfigModule(QWidget *parent, const QVariantList &args);
0030     ~TrashConfigModule() override;
0031 
0032     void save() override;
0033     void defaults() override;
0034 
0035 private Q_SLOTS:
0036     void percentChanged(double);
0037     void trashChanged(QListWidgetItem *);
0038     void trashChanged(int);
0039     void useTypeChanged();
0040 
0041 private:
0042     void readConfig();
0043     void writeConfig();
0044     void setupGui();
0045 
0046     QCheckBox *mUseTimeLimit;
0047     QSpinBox *mDays;
0048     QCheckBox *mUseSizeLimit;
0049     QWidget *mSizeWidget;
0050     QDoubleSpinBox *mPercent;
0051     QLabel *mSizeLabel;
0052     QComboBox *mLimitReachedAction;
0053 
0054     TrashImpl *mTrashImpl;
0055     QString mCurrentTrash;
0056     bool trashInitialize;
0057     typedef struct {
0058         bool useTimeLimit;
0059         int days;
0060         bool useSizeLimit;
0061         double percent;
0062         int actionType;
0063     } ConfigEntry;
0064 
0065     typedef QMap<QString, ConfigEntry> ConfigMap;
0066     ConfigMap mConfigMap;
0067 };
0068 
0069 #endif // KCMTRASH_H