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