File indexing completed on 2024-05-12 16:01:58
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Jouni Pentikäinen <joupent@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KISWINDOWLAYOUTRESOURCE_H 0008 #define KISWINDOWLAYOUTRESOURCE_H 0009 0010 #include <KoResource.h> 0011 0012 class KisMainWindow; 0013 class KisWindowLayoutResource; 0014 typedef QSharedPointer<KisWindowLayoutResource> KisWindowLayoutResourceSP; 0015 0016 #include "kritaui_export.h" 0017 0018 class KRITAUI_EXPORT KisWindowLayoutResource : public KoResource 0019 { 0020 public: 0021 explicit KisWindowLayoutResource(const QString &filename); 0022 ~KisWindowLayoutResource() override; 0023 KisWindowLayoutResource(const KisWindowLayoutResource &rhs); 0024 KisWindowLayoutResource &operator=(const KisWindowLayoutResource &rhs) = delete; 0025 KoResourceSP clone() const override; 0026 0027 static KisWindowLayoutResourceSP fromCurrentWindows ( 0028 const QString &filename, const QList<QPointer<KisMainWindow>> &mainWindows, 0029 bool showImageInAllWindows, 0030 bool primaryWorkspaceFollowsFocus, 0031 KisMainWindow *primaryWindow 0032 ); 0033 0034 void applyLayout(); 0035 0036 bool saveToDevice(QIODevice *dev) const override; 0037 bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override; 0038 0039 0040 QPair<QString, QString> resourceType() const override 0041 { 0042 return QPair<QString, QString>(ResourceType::WindowLayouts, ""); 0043 } 0044 0045 QString defaultFileExtension() const override; 0046 0047 protected: 0048 void setWindows(const QList<QPointer<KisMainWindow>> &mainWindows); 0049 0050 virtual void saveXml(QDomDocument &doc, QDomElement &root) const; 0051 0052 virtual void loadXml(const QDomElement &root) const; 0053 0054 private: 0055 struct Private; 0056 0057 QScopedPointer<Private> d; 0058 }; 0059 0060 0061 #endif