File indexing completed on 2024-05-12 05:13:30
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #pragma once 0007 0008 #include "grantleethemeeditor_export.h" 0009 #include <QWidget> 0010 class QLineEdit; 0011 class KZip; 0012 class KEditListWidget; 0013 namespace TextCustomEditor 0014 { 0015 class PlainTextEditorWidget; 0016 } 0017 namespace GrantleeThemeEditor 0018 { 0019 class GRANTLEETHEMEEDITOR_EXPORT DesktopFilePage : public QWidget 0020 { 0021 Q_OBJECT 0022 public: 0023 enum DesktopFileOption { None = 1, ExtraDisplayVariables = 2, SpecifyFileName = 4 }; 0024 Q_DECLARE_FLAGS(DesktopFileOptions, DesktopFileOption) 0025 0026 explicit DesktopFilePage(const QString &defaultFileName, DesktopFilePage::DesktopFileOptions options, QWidget *parent = nullptr); 0027 ~DesktopFilePage() override; 0028 0029 void saveTheme(const QString &path); 0030 void loadTheme(const QString &path); 0031 0032 void setThemeName(const QString &themeName); 0033 [[nodiscard]] QString filename() const; 0034 0035 [[nodiscard]] QString description() const; 0036 0037 [[nodiscard]] QString themeName() const; 0038 void createZip(const QString &themeName, KZip *zip); 0039 void installTheme(const QString &themePath); 0040 void setDefaultDesktopName(const QString &name); 0041 0042 Q_SIGNALS: 0043 void mainFileNameChanged(const QString &filename); 0044 void extraDisplayHeaderChanged(const QStringList &headers); 0045 void changed(); 0046 0047 private: 0048 void slotFileNameChanged(const QString &); 0049 void slotExtraDisplayHeadersChanged(); 0050 void saveAsFilename(const QString &filename); 0051 QString mDefaultDesktopName; 0052 QLineEdit *mName = nullptr; 0053 TextCustomEditor::PlainTextEditorWidget *mDescription = nullptr; 0054 QLineEdit *mFilename = nullptr; 0055 QLineEdit *mAuthor = nullptr; 0056 QLineEdit *mEmail = nullptr; 0057 QLineEdit *mVersion = nullptr; 0058 KEditListWidget *mExtraDisplayHeaders = nullptr; 0059 }; 0060 }