From 5c50c5b24d7a9f3b1a24869bd20d9f01190d7a5e Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Thu, 28 Jun 2018 16:06:16 +0800 Subject: [PATCH] Cache SearchPluginManager::engineLocation() result Also the folder is only created on first usage. --- src/base/search/searchpluginmanager.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/base/search/searchpluginmanager.cpp b/src/base/search/searchpluginmanager.cpp index 71bc33938..c94fe5ed5 100644 --- a/src/base/search/searchpluginmanager.cpp +++ b/src/base/search/searchpluginmanager.cpp @@ -322,13 +322,16 @@ QString SearchPluginManager::pluginsLocation() QString SearchPluginManager::engineLocation() { - QString folder = "nova"; - if (Utils::ForeignApps::pythonInfo().version.majorNumber() >= 3) - folder = "nova3"; - const QString location = Utils::Fs::expandPathAbs(specialFolderLocation(SpecialFolder::Data) + folder); - QDir locationDir(location); - if (!locationDir.exists()) + static QString location; + if (location.isEmpty()) { + const QString folder = (Utils::ForeignApps::pythonInfo().version.majorNumber() >= 3) + ? "nova3" : "nova"; + location = Utils::Fs::expandPathAbs(specialFolderLocation(SpecialFolder::Data) + folder); + + const QDir locationDir(location); locationDir.mkpath(locationDir.absolutePath()); + } + return location; }