diff --git a/libs/ui/KisSessionResource.cpp b/libs/ui/KisSessionResource.cpp --- a/libs/ui/KisSessionResource.cpp +++ b/libs/ui/KisSessionResource.cpp @@ -23,6 +23,11 @@ #include #include +#include +#include + + + struct KisSessionResource::Private { struct View @@ -39,7 +44,7 @@ return nullptr; } }; - + QString profileName; QVector views; }; @@ -89,6 +94,12 @@ kisPart->addDocument(document); documents.insert(url, document); } + //update profile + QString profileName; + profileName = d->profileName; + window->viewManager()->changeAuthorProfile(profileName); + window->viewManager()->slotUpdateAuthorProfileActions(); + KisView *view = window->newView(document); view->restoreViewState(viewData.viewConfig); @@ -140,7 +151,17 @@ view.viewConfig.toXML(doc, elem); root.appendChild(elem); + + // Save profile + KConfigGroup appAuthorGroup(KSharedConfig::openConfig(), "Author"); + QString profileName = appAuthorGroup.readEntry("active-profile", ""); + + QDomElement session = doc.createElement("session"); + session.setAttribute("profile", profileName); + root.appendChild(session); + } + } void KisSessionResource::loadXml(const QDomElement &root) const @@ -159,4 +180,9 @@ d->views.append(view); } + //Load session + d->profileName.clear(); + auto sessionElement = root.firstChildElement("session"); + d->profileName = QString(sessionElement.attribute("profile")); + } diff --git a/libs/ui/KisViewManager.h b/libs/ui/KisViewManager.h --- a/libs/ui/KisViewManager.h +++ b/libs/ui/KisViewManager.h @@ -215,6 +215,10 @@ void slotActivateTransformTool(); + // Change and update author + void changeAuthorProfile(const QString &profileName); + void slotUpdateAuthorProfileActions(); + Q_SIGNALS: void floatingMessageRequested(const QString &message, const QString &iconName); @@ -237,8 +241,6 @@ void openResourcesDirectory(); void initializeStatusBarVisibility(); void guiUpdateTimeout(); - void changeAuthorProfile(const QString &profileName); - void slotUpdateAuthorProfileActions(); void slotUpdatePixelGridAction(); void slotSaveShowRulersState(bool value); void slotSaveRulersTrackMouseState(bool value);