[Libreoffice-commits] core.git: Branch 'feature/qt5+kde5' - 3 commits - vcl/Library_vclplug_kde5.mk vcl/unx

Katarina Behrens Katarina.Behrens at cib.de
Mon Jun 18 10:00:15 UTC 2018


 vcl/Library_vclplug_kde5.mk         |    2 
 vcl/unx/kde5/FPServiceInfo.hxx      |   28 -------------
 vcl/unx/kde5/KDE5FilePicker.cxx     |   59 ----------------------------
 vcl/unx/kde5/KDE5FilePicker2.cxx    |   26 +++++++++++-
 vcl/unx/kde5/VCLKDE5Application.cxx |   75 ------------------------------------
 vcl/unx/kde5/VCLKDE5Application.hxx |   41 -------------------
 6 files changed, 24 insertions(+), 207 deletions(-)

New commits:
commit 5a3ee6623c161838ddc1ebf65ac6be3eece5be09
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Mon Jun 18 11:24:36 2018 +0200

    VCLKDE5Application is now unused as well
    
    Change-Id: Ib11274b6039596246aa232b83fa4d85095a93e08

diff --git a/vcl/Library_vclplug_kde5.mk b/vcl/Library_vclplug_kde5.mk
index 11fa740926e4..4d134d0fbf8b 100644
--- a/vcl/Library_vclplug_kde5.mk
+++ b/vcl/Library_vclplug_kde5.mk
@@ -84,7 +84,6 @@ $(eval $(call gb_Library_add_exception_objects,vclplug_kde5,\
     vcl/unx/kde5/KDE5SalFrame \
     vcl/unx/kde5/KDE5SalGraphics \
     vcl/unx/kde5/KDE5SalInstance \
-    vcl/unx/kde5/VCLKDE5Application \
 ))
 
 ifeq ($(OS),LINUX)
diff --git a/vcl/unx/kde5/VCLKDE5Application.cxx b/vcl/unx/kde5/VCLKDE5Application.cxx
deleted file mode 100644
index 2d9532f1def9..000000000000
--- a/vcl/unx/kde5/VCLKDE5Application.cxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "VCLKDE5Application.hxx"
-
-#include <QtGui/QClipboard>
-#include <QtCore/QEvent>
-#include <assert.h>
-
-VCLKDE5Application::VCLKDE5Application(int argc, char** argv)
-    : QApplication(argc, argv)
-{
-}
-
-// various hacks to be performed before re-entering Qt's event loop
-// because of showing a Qt dialog
-void VCLKDE5Application::preDialogSetup()
-{
-    // KFileDialog integration requires using event loop with QClipboard.
-    // Opening the KDE file dialog here can lead to QClipboard
-    // asking for clipboard contents. If LO core is the owner of the clipboard
-    // content, without event loop use this will block for 5 seconds and timeout,
-    // since the clipboard thread will not be able to acquire SolarMutex
-    // and thus won't be able to respond. If the event loops
-    // are properly integrated and QClipboard can use a nested event loop
-    // (see the KDE VCL plug), then this won't happen.
-    // We cannot simply release SolarMutex here, because the event loop started
-    // by the file dialog would also call back to LO code.
-    assert(QApplication::clipboard()->property("useEventLoopWhenWaiting").toBool());
-}
-
-// various hacks to be performed after a Qt dialog has been closed
-void VCLKDE5Application::postDialogCleanup()
-{
-    // HACK: KFileDialog uses KConfig("kdeglobals") for saving some settings
-    // (such as the auto-extension flag), but that doesn't update KGlobal::config()
-    // (which is probably a KDE bug), so force reading the new configuration,
-    // otherwise the next opening of the dialog would use the old settings.
-    KConfig config;
-    config.reparseConfiguration();
-    // HACK: If Qt owns clipboard or selection, give up on their ownership now. Otherwise
-    // LO core might ask for the contents, but it would block while doing so (i.e. it
-    // doesn't seem to have an equivalent of QClipboard's "useEventLoopWhenWaiting"),
-    // therefore QClipboard wouldn't be able to respond, and whole LO would block until
-    // a timeout. Given that Klipper is most probably running, giving up clipboard/selection
-    // ownership will not only avoid the blocking, but even pasting that content in LO
-    // will in fact work, if Klipper can handle it.
-    // Technically proper solution would be of course to allow Qt to process QClipboard
-    // events while LO waits for clipboard contents, or short-circuit to QClipboard somehow
-    // (it's a mystery why LO's clipboard handling has its own thread when whole LO can
-    // get blocked by both trying to send and receive clipboard contents anyway).
-    QClipboard* clipboard = QApplication::clipboard();
-    if (clipboard->ownsSelection())
-        clipboard->clear(QClipboard::Selection);
-    if (clipboard->ownsClipboard())
-        clipboard->clear();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/kde5/VCLKDE5Application.hxx b/vcl/unx/kde5/VCLKDE5Application.hxx
deleted file mode 100644
index 5503db32c901..000000000000
--- a/vcl/unx/kde5/VCLKDE5Application.hxx
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_VCL_UNX_KDE5_VCLKDE5APPLICATION_HXX
-#define INCLUDED_VCL_UNX_KDE5_VCLKDE5APPLICATION_HXX
-
-#pragma once
-
-#include <QtWidgets/QApplication>
-#include <QtCore/QAbstractNativeEventFilter>
-#include <KConfigCore/kconfig.h>
-
-#undef Region
-
-class VCLKDE5Application : public QApplication, public QAbstractNativeEventFilter
-{
-public:
-    VCLKDE5Application(int argc, char** argv);
-    static void preDialogSetup();
-    static void postDialogCleanup();
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit a8b1c4bec0c65288adf4282d032a02bfeae6160f
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Mon Jun 18 11:15:02 2018 +0200

    Drop cargo-cult FPServiceInfo
    
    FILE_PICKER_SERVICE_NAME wasn't even used anywhere
    
    Change-Id: Ie99de85175b8321948612c680c4e4d956a4c7efc

diff --git a/vcl/unx/kde5/FPServiceInfo.hxx b/vcl/unx/kde5/FPServiceInfo.hxx
deleted file mode 100644
index ec58684d4919..000000000000
--- a/vcl/unx/kde5/FPServiceInfo.hxx
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#pragma once
-
-// the service names
-#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.KDE4FilePicker"
-
-// the implementation names
-#define FILE_PICKER_IMPL_NAME "com.sun.star.ui.dialogs.KDE4FilePicker"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx
index 778608e1edb9..ce8af6a7eaf2 100644
--- a/vcl/unx/kde5/KDE5FilePicker2.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker2.cxx
@@ -31,7 +31,6 @@
 #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
 
 #include <osl/mutex.hxx>
-#include "FPServiceInfo.hxx"
 
 #undef Region
 
@@ -664,7 +663,7 @@ void KDE5FilePicker::disposing(const lang::EventObject& rEvent)
 
 OUString SAL_CALL KDE5FilePicker::getImplementationName()
 {
-    return OUString(FILE_PICKER_IMPL_NAME);
+    return OUString("com.sun.star.ui.dialogs.KDE5FilePicker");
 }
 
 sal_Bool SAL_CALL KDE5FilePicker::supportsService(const OUString& ServiceName)
commit c55dd17d686c000946a5cb4bc4cec23768c54757
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Mon Jun 18 10:36:50 2018 +0200

    Fold all the rest into KDE5FilePicker2
    
    Change-Id: Icbaa56057776ffcb981207ec30e5d94d6901e43c

diff --git a/vcl/Library_vclplug_kde5.mk b/vcl/Library_vclplug_kde5.mk
index 655ae6b80d96..11fa740926e4 100644
--- a/vcl/Library_vclplug_kde5.mk
+++ b/vcl/Library_vclplug_kde5.mk
@@ -79,7 +79,6 @@ $(eval $(call gb_Library_add_libs,vclplug_kde5,\
 ))
 
 $(eval $(call gb_Library_add_exception_objects,vclplug_kde5,\
-    vcl/unx/kde5/KDE5FilePicker \
     vcl/unx/kde5/KDE5FilePicker2 \
     vcl/unx/kde5/KDE5SalData \
     vcl/unx/kde5/KDE5SalFrame \
diff --git a/vcl/unx/kde5/KDE5FilePicker.cxx b/vcl/unx/kde5/KDE5FilePicker.cxx
deleted file mode 100644
index 19bea46654a3..000000000000
--- a/vcl/unx/kde5/KDE5FilePicker.cxx
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "KDE5FilePicker.hxx"
-
-#include <KWindowSystem>
-#include <KFileWidget>
-
-#include <QtCore/QDebug>
-#include <QtCore/QUrl>
-#include <QtGui/QClipboard>
-#include <QtGui/QWindow>
-#include <QtWidgets/QCheckBox>
-#include <QtWidgets/QFileDialog>
-#include <QtWidgets/QGridLayout>
-#include <QtWidgets/QWidget>
-#include <QtWidgets/QApplication>
-
-// KDE5FilePicker
-
-KDE5FilePicker::~KDE5FilePicker()
-{
-    delete _extraControls;
-    delete _dialog;
-}
-
-bool KDE5FilePicker::eventFilter(QObject* o, QEvent* e)
-{
-    if (e->type() == QEvent::Show && o->isWidgetType())
-    {
-        auto* w = static_cast<QWidget*>(o);
-        if (!w->parentWidget() && w->isModal())
-        {
-            if (auto* fileWidget = w->findChild<KFileWidget*>({}, Qt::FindDirectChildrenOnly))
-                fileWidget->setCustomWidget(_extraControls);
-        }
-    }
-    return QObject::eventFilter(o, e);
-}
-
-#include <KDE5FilePicker.moc>
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx
index b7c3320344bf..778608e1edb9 100644
--- a/vcl/unx/kde5/KDE5FilePicker2.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker2.cxx
@@ -48,6 +48,7 @@
 #include <QtWidgets/QGridLayout>
 #include <QtWidgets/QWidget>
 #include <QtWidgets/QApplication>
+#include <KFileWidget>
 
 #include <fpicker/strings.hrc>
 #include <strings.hrc>
@@ -141,6 +142,12 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode)
     qApp->installEventFilter(this);
 }
 
+KDE5FilePicker::~KDE5FilePicker()
+{
+    delete _extraControls;
+    delete _dialog;
+}
+
 void SAL_CALL
 KDE5FilePicker::addFilePickerListener(const uno::Reference<XFilePickerListener>& xListener)
 {
@@ -687,4 +694,20 @@ void KDE5FilePicker::selectionChanged()
         m_xListener->fileSelectionChanged(aEvent);
 }
 
+bool KDE5FilePicker::eventFilter(QObject* o, QEvent* e)
+{
+    if (e->type() == QEvent::Show && o->isWidgetType())
+    {
+        auto* w = static_cast<QWidget*>(o);
+        if (!w->parentWidget() && w->isModal())
+        {
+            if (auto* fileWidget = w->findChild<KFileWidget*>({}, Qt::FindDirectChildrenOnly))
+                fileWidget->setCustomWidget(_extraControls);
+        }
+    }
+    return QObject::eventFilter(o, e);
+}
+
+#include <KDE5FilePicker.moc>
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list