summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-apps/konsole/files/konsole-20.04.1-qt-5.15-set-text-encoding-crash.patch')
-rw-r--r--kde-apps/konsole/files/konsole-20.04.1-qt-5.15-set-text-encoding-crash.patch109
1 files changed, 0 insertions, 109 deletions
diff --git a/kde-apps/konsole/files/konsole-20.04.1-qt-5.15-set-text-encoding-crash.patch b/kde-apps/konsole/files/konsole-20.04.1-qt-5.15-set-text-encoding-crash.patch
deleted file mode 100644
index 78e5559d047a..000000000000
--- a/kde-apps/konsole/files/konsole-20.04.1-qt-5.15-set-text-encoding-crash.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 72e76de072aa4c7960396856e72681a00c4f67d9 Mon Sep 17 00:00:00 2001
-From: Ahmad Samir <a.samirh78@gmail.com>
-Date: Thu, 28 May 2020 21:40:29 +0200
-Subject: [PATCH] [SessionController] Fix crash caused by text encoding menu
-
-QMenu since 5.15 is hidden when an action is triggered, this caused a
-crash in Konsole when trying to access the text encoding menu.
-
-Now Session emits a signal when the text encoding is changed, the
-SessionController can connect to that singal to set the current codec in
-the KCodecAction object.
-
-Also fix the EditProfileDialog so that when the KCodecAction menu is
-shown the currently set codec is selected.
-
-BUG: 419526
-
-FIXED-IN: 20.08
----
- src/EditProfileDialog.cpp | 1 +
- src/Session.cpp | 2 ++
- src/Session.h | 5 +++++
- src/SessionController.cpp | 7 ++++---
- src/SessionController.h | 2 +-
- 5 files changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/src/EditProfileDialog.cpp b/src/EditProfileDialog.cpp
-index a64136934..f93e9e166 100644
---- a/src/EditProfileDialog.cpp
-+++ b/src/EditProfileDialog.cpp
-@@ -1725,6 +1725,7 @@ void EditProfileDialog::setupAdvancedPage(const Profile::Ptr &profile)
-
- // encoding options
- auto codecAction = new KCodecAction(this);
-+ codecAction->setCurrentCodec(profile->defaultEncoding());
- _advancedUi->selectEncodingButton->setMenu(codecAction->menu());
- connect(codecAction,
- QOverload<QTextCodec *>::of(&KCodecAction::triggered), this,
-diff --git a/src/Session.cpp b/src/Session.cpp
-index 1103f6e1b..483d8fd6a 100644
---- a/src/Session.cpp
-+++ b/src/Session.cpp
-@@ -252,6 +252,8 @@ void Session::setCodec(QTextCodec* codec)
- }
-
- emulation()->setCodec(codec);
-+
-+ emit sessionCodecChanged(codec);
- }
-
- bool Session::setCodec(const QByteArray& name)
-diff --git a/src/Session.h b/src/Session.h
-index 1b7da1b3b..c1af3c05d 100644
---- a/src/Session.h
-+++ b/src/Session.h
-@@ -661,6 +661,11 @@ Q_SIGNALS:
- */
- void currentDirectoryChanged(const QString &dir);
-
-+ /**
-+ * Emitted when the session text encoding changes.
-+ */
-+ void sessionCodecChanged(QTextCodec *codec);
-+
- /** Emitted when a bell event occurs in the session. */
- void bellRequest(const QString &message);
-
-diff --git a/src/SessionController.cpp b/src/SessionController.cpp
-index e72f342c4..f74969f85 100644
---- a/src/SessionController.cpp
-+++ b/src/SessionController.cpp
-@@ -691,7 +691,8 @@ void SessionController::setupCommonActions()
- _codecAction = new KCodecAction(i18n("Set &Encoding"), this);
- _codecAction->setIcon(QIcon::fromTheme(QStringLiteral("character-set")));
- collection->addAction(QStringLiteral("set-encoding"), _codecAction);
-- connect(_codecAction->menu(), &QMenu::aboutToShow, this, &Konsole::SessionController::updateCodecAction);
-+ _codecAction->setCurrentCodec(QString::fromUtf8(_session->codec()));
-+ connect(_session.data(), &Konsole::Session::sessionCodecChanged, this, &Konsole::SessionController::updateCodecAction);
- connect(_codecAction,
- QOverload<QTextCodec*>::of(&KCodecAction::triggered), this,
- &Konsole::SessionController::changeCodec);
-@@ -846,9 +847,9 @@ void SessionController::prepareSwitchProfileMenu()
- _switchProfileMenu->menu()->clear();
- _switchProfileMenu->menu()->addActions(_profileList->actions());
- }
--void SessionController::updateCodecAction()
-+void SessionController::updateCodecAction(QTextCodec *codec)
- {
-- _codecAction->setCurrentCodec(QString::fromUtf8(_session->codec()));
-+ _codecAction->setCurrentCodec(codec);
- }
-
- void SessionController::changeCodec(QTextCodec* codec)
-diff --git a/src/SessionController.h b/src/SessionController.h
-index 057a31446..5062833b7 100644
---- a/src/SessionController.h
-+++ b/src/SessionController.h
-@@ -260,7 +260,7 @@ private Q_SLOTS:
- // other
- void setupSearchBar();
- void prepareSwitchProfileMenu();
-- void updateCodecAction();
-+ void updateCodecAction(QTextCodec *codec);
- void showDisplayContextMenu(const QPoint &position);
- void movementKeyFromSearchBarReceived(QKeyEvent *event);
- void sessionNotificationsChanged(Session::Notification notification, bool enabled);
---
-2.26.2
-