14#include <ksharedconfig.h>
30 if (window->
id() == this->windowId)
return window;
65 QMap<QString, KisDocument *> documents;
71 const QString path = document->path();
72 documents.insert(path, document);
75 Q_FOREACH(
auto &viewData,
d->views) {
76 QString path = viewData.file;
81 qDebug() <<
"Warning: session file contains inconsistent data.";
86 document = kisPart->createDocument();
94 kisPart->addDocument(document);
95 documents.insert(path, document);
99 profileName =
d->profileName;
129 if (view->
document()->path().isEmpty())
continue;
133 viewData.file = view->
document()->path();
135 d->views.append(viewData);
145 Q_FOREACH(
const auto view,
d->views) {
146 QDomElement elem = doc.createElement(
"view");
148 elem.setAttribute(
"window", view.windowId.toString());
150 elem.setAttribute(
"src", QUrl::fromLocalFile(view.file).toString());
151 view.viewConfig.toXML(doc, elem);
153 root.appendChild(elem);
156 KConfigGroup appAuthorGroup(KSharedConfig::openConfig(),
"Author");
157 QString profileName = appAuthorGroup.readEntry(
"active-profile",
"");
159 QDomElement session = doc.createElement(
"session");
160 session.setAttribute(
"profile", profileName);
161 root.appendChild(session);
172 for (
auto viewElement = root.firstChildElement(
"view");
173 !viewElement.isNull();
174 viewElement = viewElement.nextSiblingElement(
"view")) {
177 view.
file = QUrl(viewElement.attribute(
"src")).toLocalFile();
178 view.
windowId = QUuid(viewElement.attribute(
"window"));
181 d->views.append(view);
184 d->profileName.clear();
185 auto sessionElement = root.firstChildElement(
"session");
186 d->profileName = QString(sessionElement.attribute(
"profile"));
bool openPath(const QString &path, OpenFlags flags=None)
openPath Open a Path
KisView * newView(QObject *document, QMdiSubWindow *subWindow=0)
KisViewManager * viewManager
QList< QPointer< KisMainWindow > > mainWindows
static KisPart * instance()
QList< QPointer< KisView > > views
KoResourceSP clone() const override
void storeCurrentWindows()
QString defaultFileExtension() const override
void saveXml(QDomDocument &doc, QDomElement &root) const override
QScopedPointer< Private > d
KisSessionResource(const QString &filename)
void loadXml(const QDomElement &root) const override
void slotUpdateAuthorProfileActions()
void changeAuthorProfile(const QString &profileName)
KisMainWindow * mainWindow() const
void restoreViewState(const KisPropertiesConfiguration &config)
QPointer< KisDocument > document
void saveViewState(KisPropertiesConfiguration &config) const
void setWindows(const QList< QPointer< KisMainWindow > > &mainWindows)
virtual void saveXml(QDomDocument &doc, QDomElement &root) const
virtual void loadXml(const QDomElement &root) const
QSharedPointer< KoResource > KoResourceSP
bool fromXML(const QString &xml, bool clear=true) override
KisMainWindow * getWindow() const
KisPropertiesConfiguration viewConfig
void setValid(bool valid)