sfx2/source/doc/autoredactdialog.cxx | 73 ++++++++++++++++++++++++++++++++--- vcl/qt5/Qt5Instance.cxx | 6 +- 2 files changed, 71 insertions(+), 8 deletions(-)
New commits: commit 17c91a53d25c0b82524e04a0c108f8e0abc76685 Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Tue Jun 18 14:11:31 2019 +0000 Commit: Jan-Marek Glogowski <glo...@fbihome.de> CommitDate: Tue Jun 18 20:22:32 2019 +0200 tdf#125934 Qt5 set the desktop file name... .. but only on wayland, as this also overrides the individual window icons on X11. Change-Id: I1b453b23f0dfd4ef2616d7b8054580a6018cdc53 Reviewed-on: https://gerrit.libreoffice.org/74293 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> diff --git a/vcl/qt5/Qt5Instance.cxx b/vcl/qt5/Qt5Instance.cxx index 7961d5be0209..f83cf86b25ba 100644 --- a/vcl/qt5/Qt5Instance.cxx +++ b/vcl/qt5/Qt5Instance.cxx @@ -243,8 +243,10 @@ Qt5Instance::~Qt5Instance() void Qt5Instance::AfterAppInit() { - // sets the default application icon on Wayland - QGuiApplication::setDesktopFileName(QStringLiteral("libreoffice-startcenter.desktop")); + // set the default application icon via destop file just on Wayland, + // as this otherwise overrides the individual desktop icons on X11. + if (QGuiApplication::platformName() == "wayland") + QGuiApplication::setDesktopFileName(QStringLiteral("libreoffice-startcenter.desktop")); } void Qt5Instance::deleteObjectLater(QObject* pObject) { pObject->deleteLater(); } commit 3cc152695af2117fecc0006ac2d34d43a9df0d86 Author: Muhammet Kara <muhammet.k...@collabora.com> AuthorDate: Mon Jun 17 15:33:37 2019 +0300 Commit: Muhammet Kara <muhammet.k...@collabora.com> CommitDate: Tue Jun 18 20:20:08 2019 +0200 Let autoredact dialog remember last state * By storing the JSON string as SvtViewOptions Change-Id: I08e323005612cb0181d2176af659eb54267fbb3f Reviewed-on: https://gerrit.libreoffice.org/74169 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.k...@collabora.com> diff --git a/sfx2/source/doc/autoredactdialog.cxx b/sfx2/source/doc/autoredactdialog.cxx index cc0aa1456db8..950684ac4d1c 100644 --- a/sfx2/source/doc/autoredactdialog.cxx +++ b/sfx2/source/doc/autoredactdialog.cxx @@ -557,6 +557,7 @@ SfxAutoRedactDialog::SfxAutoRedactDialog(weld::Window* pParent) OUString sExtraData; SvtViewOptions aDlgOpt(EViewType::Dialog, OStringToOUString(m_xDialog->get_help_id(), RTL_TEXTENCODING_UTF8)); + if (aDlgOpt.Exists()) { css::uno::Any aUserItem = aDlgOpt.GetUserItem("UserItem"); @@ -564,12 +565,34 @@ SfxAutoRedactDialog::SfxAutoRedactDialog(weld::Window* pParent) } // update the targets configuration if necessary + if (!sExtraData.isEmpty()) { weld::WaitObject aWaitCursor(m_xDialog.get()); - //m_aTargets.Update(); - } - // TODO: fill the targets box + try + { + // Create path string, and read JSON from file + boost::property_tree::ptree aTargetsJSON; + std::stringstream aStream(std::string(sExtraData.toUtf8())); + + boost::property_tree::read_json(aStream, aTargetsJSON); + + // Recreate & add the targets to the dialog + for (const boost::property_tree::ptree::value_type& rValue : + aTargetsJSON.get_child("RedactionTargets")) + { + RedactionTarget* pTarget = JSONtoRedactionTarget(rValue); + addTarget(pTarget); + } + } + catch (css::uno::Exception& e) + { + SAL_WARN("sfx.doc", + "Exception caught while trying to load the last dialog state: " << e.Message); + return; + //TODO: Warn the user with a message box + } + } // Handler connections m_xLoadBtn->connect_clicked(LINK(this, SfxAutoRedactDialog, Load)); @@ -581,9 +604,47 @@ SfxAutoRedactDialog::SfxAutoRedactDialog(weld::Window* pParent) SfxAutoRedactDialog::~SfxAutoRedactDialog() { - // Store the view options - /*SvtViewOptions aDlgOpt(EViewType::Dialog, OStringToOUString(m_xDialog->get_help_id(), RTL_TEXTENCODING_UTF8)); - aDlgOpt.SetUserItem("UserItem", css::uno::makeAny(m_xMoreBt->get_expanded() ? OUString("Y") : OUString("N")));*/ + if (m_aTableTargets.empty()) + { + // Clear the dialog data + SvtViewOptions aDlgOpt(EViewType::Dialog, + OStringToOUString(m_xDialog->get_help_id(), RTL_TEXTENCODING_UTF8)); + aDlgOpt.Delete(); + return; + } + + try + { + // Put the targets into a JSON array + boost::property_tree::ptree aTargetsArray; + for (const auto& targetPair : m_aTableTargets) + { + aTargetsArray.push_back(std::make_pair("", redactionTargetToJSON(targetPair.first))); + } + + // Build the JSON tree + boost::property_tree::ptree aTargetsTree; + aTargetsTree.add_child("RedactionTargets", aTargetsArray); + std::stringstream aStream; + + boost::property_tree::write_json(aStream, aTargetsTree, false); + + OUString sUserDataStr(OUString::fromUtf8(aStream.str().c_str())); + + // Store the dialog data + SvtViewOptions aDlgOpt(EViewType::Dialog, + OStringToOUString(m_xDialog->get_help_id(), RTL_TEXTENCODING_UTF8)); + aDlgOpt.SetUserItem("UserItem", css::uno::makeAny(sUserDataStr)); + + clearTargets(); + } + catch (css::uno::Exception& e) + { + SAL_WARN("sfx.doc", + "Exception caught while trying to store the dialog state: " << e.Message); + return; + //TODO: Warn the user with a message box + } } bool SfxAutoRedactDialog::hasTargets() const _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits