Files
2025-01-22 22:36:28 +03:00

154 lines
5.5 KiB
Diff

From 36ede44fc7bef479e94f76121309a900bee2b29f Mon Sep 17 00:00:00 2001
From: Christoph Cullmann <cullmann@kde.org>
Date: Mon, 16 May 2022 19:49:02 +0200
Subject: [PATCH] Revert "Create filebrowser on demand"
This reverts commit 7caed2681d18d9ea08c35f160e88fb44a2e52769.
BUG: 453795
revert full lazy loading, doesn't work this way
---
addons/filebrowser/katefilebrowser.cpp | 2 -
addons/filebrowser/katefilebrowserplugin.cpp | 41 ++++++--------------
addons/filebrowser/katefilebrowserplugin.h | 14 +++----
3 files changed, 18 insertions(+), 39 deletions(-)
diff --git a/addons/filebrowser/katefilebrowser.cpp b/addons/filebrowser/katefilebrowser.cpp
index 54c1fa1fb..a1e5e4eba 100644
--- a/addons/filebrowser/katefilebrowser.cpp
+++ b/addons/filebrowser/katefilebrowser.cpp
@@ -115,8 +115,6 @@ kateFileBrowser::kateFileBrowser(ktexteditor::MainWindow *mainWindow, QWidget *p
connect(m_mainWindow, &ktexteditor::MainWindow::viewChanged, this, &kateFileBrowser::autoSyncFolder);
connect(m_dirOperator, &KDirOperator::contextMenuAboutToShow, this, &kateFileBrowser::contextMenuAboutToShow);
-
- autoSyncFolder();
}
kateFileBrowser::~kateFileBrowser()
diff --git a/addons/filebrowser/katefilebrowserplugin.cpp b/addons/filebrowser/katefilebrowserplugin.cpp
index f03c78698..3e415b025 100644
--- a/addons/filebrowser/katefilebrowserplugin.cpp
+++ b/addons/filebrowser/katefilebrowserplugin.cpp
@@ -52,10 +52,7 @@ ktexteditor::ConfigPage *kateFileBrowserPlugin::configPage(int number, QWidget *
if (number != 0) {
return nullptr;
}
- if (!m_views[0]->m_fileBrowser) {
- m_views[0]->createFileBrowser(true);
- }
- return new kateFileBrowserConfigPage(parent, m_views[0]->m_fileBrowser.get());
+ return new kateFileBrowserConfigPage(parent, m_views[0]->m_fileBrowser);
}
// END kateFileBrowserPlugin
@@ -67,50 +64,34 @@ kateFileBrowserPluginView::kateFileBrowserPluginView(ktexteditor::Plugin *plugin
ktexteditor::MainWindow::Left,
QIcon::fromTheme(QStringLiteral("document-open")),
i18n("Filesystem")))
+ , m_fileBrowser(new kateFileBrowser(mainWindow, m_toolView))
, m_mainWindow(mainWindow)
{
m_toolView->installEventFilter(this);
- connect(m_toolView.get(), SIGNAL(toolVisibleChanged(bool)), this, SLOT(createFileBrowser(bool)));
}
-void kateFileBrowserPluginView::readSessionConfig(const kconfigGroup &config)
+kateFileBrowserPluginView::~kateFileBrowserPluginView()
{
- if (m_fileBrowser) {
- m_fileBrowser->readSessionConfig(config);
- } else {
- cg.reset(new kconfigGroup(config));
- }
+ // cleanup, kill toolview + console
+ delete m_fileBrowser->parentWidget();
}
-void kateFileBrowserPluginView::writeSessionConfig(kconfigGroup &config)
+void kateFileBrowserPluginView::readSessionConfig(const kconfigGroup &config)
{
- if (m_fileBrowser) {
- m_fileBrowser->writeSessionConfig(config);
- }
+ m_fileBrowser->readSessionConfig(config);
}
-void kateFileBrowserPluginView::createFileBrowser(bool visible)
+void kateFileBrowserPluginView::writeSessionConfig(kconfigGroup &config)
{
- if (!visible) {
- return;
- }
-
- // we must not have a filebrowser
- Q_ASSERT(!m_fileBrowser);
-
- disconnect(m_toolView.get(), SIGNAL(toolVisibleChanged(bool)), this, SLOT(createFileBrowser(bool)));
- m_fileBrowser = std::make_unique<kateFileBrowser>(m_mainWindow, m_toolView.get());
- m_fileBrowser->readSessionConfig(*cg);
- // delete the config now
- cg.reset();
+ m_fileBrowser->writeSessionConfig(config);
}
bool kateFileBrowserPluginView::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress) {
QKeyEvent *ke = static_cast<QKeyEvent *>(event);
- if ((obj == m_toolView.get()) && (ke->key() == Qt::Key_Escape)) {
- m_mainWindow->hideToolView(m_toolView.get());
+ if ((obj == m_toolView) && (ke->key() == Qt::Key_Escape)) {
+ m_mainWindow->hideToolView(m_toolView);
event->accept();
return true;
}
diff --git a/addons/filebrowser/katefilebrowserplugin.h b/addons/filebrowser/katefilebrowserplugin.h
index 2517d3453..9fb6610c4 100644
--- a/addons/filebrowser/katefilebrowserplugin.h
+++ b/addons/filebrowser/katefilebrowserplugin.h
@@ -11,15 +11,12 @@
#ifndef kate_FILEBROWSER_PLUGIN_H
#define kate_FILEBROWSER_PLUGIN_H
-#include <kconfigGroup>
#include <ktexteditor/SessionConfigInterface>
#include <ktexteditor/configpage.h>
#include <ktexteditor/document.h>
#include <ktexteditor/mainwindow.h>
#include <ktexteditor/plugin.h>
-#include <memory>
-
class kateFileBrowser;
class kateFileBrowserPluginView;
@@ -56,16 +53,19 @@ public:
*/
kateFileBrowserPluginView(ktexteditor::Plugin *plugin, ktexteditor::MainWindow *mainWindow);
+ /**
+ * Virtual destructor.
+ */
+ ~kateFileBrowserPluginView() override;
+
void readSessionConfig(const kconfigGroup &config) override;
void writeSessionConfig(kconfigGroup &config) override;
private:
bool eventFilter(QObject *, QEvent *) override;
- Q_SLOT void createFileBrowser(bool visible);
- std::unique_ptr<QWidget> m_toolView;
- std::unique_ptr<kateFileBrowser> m_fileBrowser = nullptr;
- std::unique_ptr<kconfigGroup> cg;
+ QWidget *m_toolView;
+ kateFileBrowser *m_fileBrowser;
ktexteditor::MainWindow *m_mainWindow;
friend class kateFileBrowserPlugin;
};
--
GitLab