Skip to content

Commit 9762291

Browse files
committed
Removing scanning after translations
There is a way for a Qt Creator plugin to get a path to its installation directory.
1 parent b0f75cf commit 9762291

2 files changed

Lines changed: 10 additions & 19 deletions

File tree

llamaplugin.cpp

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -64,25 +64,14 @@ LlamaPlugin::~LlamaPlugin()
6464
disconnect(m_ringUpdateTimer, &QTimer::timeout, this, &LlamaPlugin::ring_update);
6565
}
6666

67-
static FilePath scanForTranslation(const QString &translationFile)
67+
FilePath LlamaPlugin::getTranslationFilePath(const QString &translationFile)
6868
{
69-
const FilePaths &pluginPaths = ExtensionSystem::PluginManager::pluginPaths();
70-
for (const FilePath &plugin : pluginPaths) {
71-
const FilePaths pluginFolders = plugin.dirEntries(
72-
FileFilter({}, QDir::Dirs | QDir::NoDotAndDotDot));
73-
74-
for (const FilePath &folder : pluginFolders) {
75-
FilePath translationDir = folder
76-
/ (HostOsInfo::isMacHost()
77-
? QString("Qt Creator.app/Contents/Resources")
78-
: QString("share/qtcreator"))
79-
/ "translations";
80-
if (!translationDir.dirEntries({{translationFile}, QDir::Files | QDir::NoDotAndDotDot})
81-
.isEmpty())
82-
return translationDir.pathAppended(translationFile);
83-
}
84-
}
85-
return FilePath();
69+
const FilePath pluginLocation = ExtensionSystem::PluginManager::specForPlugin(this)->location();
70+
const FilePath translationDir = HostOsInfo::isMacHost()
71+
? (pluginLocation / "../../Resources/translations")
72+
: (pluginLocation / "../../../share/qtcreator/translations")
73+
.cleanPath();
74+
return translationDir / translationFile;
8675
}
8776

8877
void LlamaPlugin::initialize()
@@ -92,7 +81,7 @@ void LlamaPlugin::initialize()
9281
QString locale = ICore::userInterfaceLanguage();
9382
locale = locale.contains("zh_") ? locale : locale.left(locale.indexOf("_"));
9483
const QString languageFile = "llamacpp_" + locale + ".qm";
95-
const QString llamaCppTranslation = scanForTranslation(languageFile).path();
84+
const QString llamaCppTranslation = getTranslationFilePath(languageFile).path();
9685
if (translator->load(llamaCppTranslation))
9786
QCoreApplication::installTranslator(translator);
9887

llamaplugin.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ private slots:
5858
const QByteArray &response);
5959
void hideCompletionHint();
6060

61+
Utils::FilePath getTranslationFilePath(const QString &translationFile);
62+
6163
// Context management
6264
struct FimContext
6365
{

0 commit comments

Comments
 (0)