154 lines
5.5 KiB
Diff
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
|
|
|