1 /* 2 * Copyright (C) 2020 Damir Porobic <damir.porobic@gmx.com> 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 */ 19 20 #ifndef KSNIP_STICKERSETTINGS_H 21 #define KSNIP_STICKERSETTINGS_H 22 23 #include <QGroupBox> 24 #include <QLabel> 25 #include <QGridLayout> 26 #include <QPushButton> 27 #include <QFileDialog> 28 #include <QListWidget> 29 #include <QStandardPaths> 30 #include <QDir> 31 #include <QCheckBox> 32 33 #include "src/backend/config/KsnipConfig.h" 34 #include "src/common/helper/PathHelper.h" 35 #include "src/common/provider/DirectoryPathProvider.h" 36 37 class StickerSettings : public QGroupBox 38 { 39 Q_OBJECT 40 public: 41 explicit StickerSettings(KsnipConfig *config); 42 ~StickerSettings() override; 43 void saveSettings(); 44 45 private: 46 QListWidget *mListWidget; 47 QPushButton *mAddButton; 48 QPushButton *mRemoveButton; 49 QPushButton *mUpButton; 50 QPushButton *mDownButton; 51 QCheckBox *mUseDefaultStickerCheckBox; 52 QGridLayout *mLayout; 53 KsnipConfig *mConfig; 54 int mPathDataKey; 55 int mIsSavedDataKey; 56 int mIsRemovedDataKey; 57 58 void initGui(); 59 void loadConfig(); 60 61 private slots: 62 void addTriggered(); 63 void removeTriggered(); 64 void upTriggered(); 65 void downTriggered(); 66 void currentRowChanged(int row); 67 void addSticker(const QString &path, bool isSaved) const; 68 QString stickerDirectory() const; 69 QStringList processSticker() const; 70 }; 71 72 73 #endif //KSNIP_STICKERSETTINGS_H 74