public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andreas Sturmlechner" <asturm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: kde-frameworks/kio/, kde-frameworks/kio/files/
Date: Sat, 30 Sep 2017 20:34:02 +0000 (UTC)	[thread overview]
Message-ID: <1506803625.abf5278fd06f3e1d88dd3e936c3cc1bc4136b455.asturm@gentoo> (raw)

commit:     abf5278fd06f3e1d88dd3e936c3cc1bc4136b455
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 25 09:45:37 2017 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Sep 30 20:33:45 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=abf5278f

kde-frameworks/kio: Fix huge 'file has changed' annoyance

Package-Manager: Portage-2.3.10, Repoman-2.3.3

 kde-frameworks/kio/files/kio-5.38.0-kioexec.patch | 87 +++++++++++++++++++++++
 kde-frameworks/kio/kio-5.38.0-r1.ebuild           | 80 +++++++++++++++++++++
 2 files changed, 167 insertions(+)

diff --git a/kde-frameworks/kio/files/kio-5.38.0-kioexec.patch b/kde-frameworks/kio/files/kio-5.38.0-kioexec.patch
new file mode 100644
index 00000000000..1cf2a1bfb83
--- /dev/null
+++ b/kde-frameworks/kio/files/kio-5.38.0-kioexec.patch
@@ -0,0 +1,87 @@
+From c76c1486ec79e8a16329207e9b293eed1244adfb Mon Sep 17 00:00:00 2001
+From: Jonathan Marten <jjm@keelhaul.me.uk>
+Date: Mon, 25 Sep 2017 08:56:04 +0100
+Subject: kioexec: Watch the file when it has finished copying
+
+To eliminate a spurious "The file has changed, do you want to upload
+it?" dialogue.
+
+BUG:384500
+
+Differential Revision: https://phabricator.kde.org/D7841
+---
+ src/kioexec/main.cpp | 49 +++++++++++++++++++++++++++----------------------
+ 1 file changed, 27 insertions(+), 22 deletions(-)
+
+diff --git a/src/kioexec/main.cpp b/src/kioexec/main.cpp
+index 6b0ec1d..615dfbf 100644
+--- a/src/kioexec/main.cpp
++++ b/src/kioexec/main.cpp
+@@ -118,11 +118,6 @@ KIOExec::KIOExec(const QStringList &args, bool tempFiles, const QString &suggest
+                 KIO::Job *job = KIO::file_copy(url, dest);
+                 jobList.append(job);
+ 
+-                // Tell kioexecd to watch the file for changes.
+-                OrgKdeKIOExecdInterface kioexecd(QStringLiteral("org.kde.kioexecd"), QStringLiteral("/modules/kioexecd"), QDBusConnection::sessionBus());
+-                kioexecd.watch(file.path, file.url.toString());
+-                mUseDaemon = !kioexecd.lastError().isValid();
+-
+                 connect(job, &KJob::result, this, &KIOExec::slotResult);
+             }
+         }
+@@ -141,25 +136,35 @@ KIOExec::KIOExec(const QStringList &args, bool tempFiles, const QString &suggest
+ 
+ void KIOExec::slotResult(KJob *job)
+ {
+-    if (job && job->error()) {
+-        // That error dialog would be queued, i.e. not immediate...
+-        //job->showErrorDialog();
+-        if ((job->error() != KIO::ERR_USER_CANCELED))
+-            KMessageBox::error(nullptr, job->errorString());
+-
+-        QString path = static_cast<KIO::FileCopyJob*>(job)->destUrl().path();
+-
+-        QList<FileInfo>::Iterator it = fileList.begin();
+-        for (; it != fileList.end(); ++it) {
+-            if (it->path == path) {
+-                break;
++    if (job) {
++        KIO::FileCopyJob *copyJob = static_cast<KIO::FileCopyJob *>(job);
++        const QString path = copyJob->destUrl().path();
++
++        if (job->error()) {
++            // That error dialog would be queued, i.e. not immediate...
++            //job->showErrorDialog();
++            if ((job->error() != KIO::ERR_USER_CANCELED))
++                KMessageBox::error(nullptr, job->errorString());
++
++            auto it = std::find_if(fileList.begin(), fileList.end(),
++                                   [&path](const FileInfo &i) { return (i.path == path); });
++            if (it != fileList.end()) {
++                fileList.erase(it);
++            } else {
++                qDebug() <<  path << " not found in list";
+             }
+         }
+-
+-        if (it != fileList.end()) {
+-            fileList.erase(it);
+-        } else {
+-            qDebug() <<  path << " not found in list";
++        else
++        {
++            // Tell kioexecd to watch the file for changes.
++            const QString dest = copyJob->srcUrl().toString();
++            qDebug() << "Telling kioexecd to watch path" << path << "dest" << dest;
++            OrgKdeKIOExecdInterface kioexecd(QStringLiteral("org.kde.kioexecd"), QStringLiteral("/modules/kioexecd"), QDBusConnection::sessionBus());
++            kioexecd.watch(path, dest);
++            mUseDaemon = !kioexecd.lastError().isValid();
++            if (!mUseDaemon) {
++                qDebug() << "Not using kioexecd";
++            }
+         }
+     }
+ 
+-- 
+cgit v0.11.2
+

diff --git a/kde-frameworks/kio/kio-5.38.0-r1.ebuild b/kde-frameworks/kio/kio-5.38.0-r1.ebuild
new file mode 100644
index 00000000000..d20326004df
--- /dev/null
+++ b/kde-frameworks/kio/kio-5.38.0-r1.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_TEST="forceoptional"
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="Framework providing transparent file and data management"
+LICENSE="LGPL-2+"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="acl +handbook kerberos +kwallet X"
+
+RDEPEND="
+	$(add_frameworks_dep karchive)
+	$(add_frameworks_dep kbookmarks)
+	$(add_frameworks_dep kcodecs)
+	$(add_frameworks_dep kcompletion)
+	$(add_frameworks_dep kconfig)
+	$(add_frameworks_dep kconfigwidgets)
+	$(add_frameworks_dep kcoreaddons)
+	$(add_frameworks_dep kdbusaddons)
+	$(add_frameworks_dep ki18n)
+	$(add_frameworks_dep kiconthemes)
+	$(add_frameworks_dep kitemviews)
+	$(add_frameworks_dep kjobwidgets)
+	$(add_frameworks_dep knotifications)
+	$(add_frameworks_dep kservice)
+	$(add_frameworks_dep ktextwidgets)
+	$(add_frameworks_dep kwidgetsaddons)
+	$(add_frameworks_dep kwindowsystem)
+	$(add_frameworks_dep kxmlgui)
+	$(add_frameworks_dep solid)
+	$(add_qt_dep qtdbus)
+	$(add_qt_dep qtgui)
+	$(add_qt_dep qtnetwork 'ssl')
+	$(add_qt_dep qtscript)
+	$(add_qt_dep qtwidgets)
+	$(add_qt_dep qtxml)
+	dev-libs/libxml2
+	dev-libs/libxslt
+	acl? (
+		sys-apps/attr
+		virtual/acl
+	)
+	kerberos? ( virtual/krb5 )
+	kwallet? ( $(add_frameworks_dep kwallet) )
+	X? ( $(add_qt_dep qtx11extras) )
+"
+DEPEND="${RDEPEND}
+	$(add_qt_dep qtconcurrent)
+	handbook? ( $(add_frameworks_dep kdoctools) )
+	test? ( sys-libs/zlib )
+	X? (
+		x11-libs/libX11
+		x11-libs/libXrender
+		x11-proto/xproto
+	)
+"
+PDEPEND="
+	$(add_frameworks_dep kded)
+"
+
+# tests hang
+RESTRICT+=" test"
+
+PATCHES=( "${FILESDIR}/${P}-kioexec.patch" )
+
+src_configure() {
+	local mycmakeargs=(
+		$(cmake-utils_use_find_package acl ACL)
+		$(cmake-utils_use_find_package handbook KF5DocTools)
+		$(cmake-utils_use_find_package kerberos GSSAPI)
+		$(cmake-utils_use_find_package kwallet KF5Wallet)
+		$(cmake-utils_use_find_package X X11)
+	)
+
+	kde5_src_configure
+}


             reply	other threads:[~2017-09-30 20:34 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-30 20:34 Andreas Sturmlechner [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-11-15 13:46 [gentoo-commits] repo/gentoo:master commit in: kde-frameworks/kio/, kde-frameworks/kio/files/ Andreas Sturmlechner
2024-08-10  7:57 Andreas Sturmlechner
2024-07-16 16:32 Andreas Sturmlechner
2024-03-24 21:03 Andreas Sturmlechner
2024-03-19  9:10 Andreas Sturmlechner
2023-06-22 21:16 Andreas Sturmlechner
2023-03-26  9:52 Andreas Sturmlechner
2023-03-23 16:47 Andreas Sturmlechner
2023-03-23  8:11 Andreas Sturmlechner
2023-01-25 10:22 Andreas Sturmlechner
2022-11-27 11:20 Andreas Sturmlechner
2022-08-08 14:40 Andreas Sturmlechner
2022-07-26 12:08 Andreas Sturmlechner
2022-07-19 13:29 Andreas Sturmlechner
2022-06-29 19:53 Andreas Sturmlechner
2021-12-08 15:08 Andreas Sturmlechner
2021-11-18 10:38 Andreas Sturmlechner
2021-08-15 18:57 Andreas Sturmlechner
2021-08-14 17:09 Andreas Sturmlechner
2021-07-16 15:21 Andreas Sturmlechner
2021-07-14 12:41 Andreas Sturmlechner
2021-05-30 15:51 Andreas Sturmlechner
2021-05-15 10:49 Andreas Sturmlechner
2021-04-11 14:23 Andreas Sturmlechner
2021-04-04 13:23 Andreas Sturmlechner
2021-03-25 23:13 Andreas Sturmlechner
2021-02-13 20:49 Andreas Sturmlechner
2021-02-12 21:48 Andreas Sturmlechner
2021-01-24 13:02 Andreas Sturmlechner
2021-01-11 12:28 Andreas Sturmlechner
2020-12-23 21:32 Andreas Sturmlechner
2020-11-16 23:41 Andreas Sturmlechner
2020-09-29 12:49 Andreas Sturmlechner
2020-05-16 22:38 Andreas Sturmlechner
2019-01-16 12:50 Andreas Sturmlechner
2018-07-21 16:51 Andreas Sturmlechner
2017-12-03 12:34 Andreas Sturmlechner
2017-05-17 22:08 Andreas Sturmlechner
2017-02-28 21:02 Johannes Huber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1506803625.abf5278fd06f3e1d88dd3e936c3cc1bc4136b455.asturm@gentoo \
    --to=asturm@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox