From 36ede44fc7bef479e94f76121309a900bee2b29f Mon Sep 17 00:00:00 2001 From: Christoph Cullmann 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(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(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 #include #include #include #include #include -#include - 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 m_toolView; - std::unique_ptr m_fileBrowser = nullptr; - std::unique_ptr cg; + QWidget *m_toolView; + kateFileBrowser *m_fileBrowser; ktexteditor::MainWindow *m_mainWindow; friend class kateFileBrowserPlugin; }; -- GitLab