@@ -108,18 +108,8 @@ QSharedMemory* guiMutexLock()
108108 return shm;
109109}
110110
111- QTranslator translator, qtTranslator;
112-
113- void configureApp (bool gui)
111+ void configureTranslation (QTranslator& translator, QTranslator& qtTranslator)
114112{
115- if (gui) {
116- #if defined(Q_OS_WIN) && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
117- QApplication::setStyle (" Fusion" ); // Supports dark scheme on Win 10/11
118- #else
119- QApplication::setStyle (new StyleOverride);
120- #endif
121- }
122-
123113 bool foundTranslation;
124114 // Configure translations
125115 for (const QString& path : PathInfo::translationsPaths ()) {
@@ -148,24 +138,42 @@ void configureApp(bool gui)
148138 .arg (QLocale::languageToString (
149139 QLocale::system ().language ()));
150140 }
141+ qApp->installTranslator (&translator);
142+ qApp->installTranslator (&qtTranslator);
143+ }
144+
145+ void configureApp (bool gui, QTranslator& translator, QTranslator& qtTranslator)
146+ {
147+ if (gui) {
148+ #if defined(Q_OS_WIN) && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
149+ QApplication::setStyle (" Fusion" ); // Supports dark scheme on Win 10/11
150+ #else
151+ QApplication::setStyle (new StyleOverride);
152+ #endif
153+ }
151154
152155 auto app = QCoreApplication::instance ();
153- app->installTranslator (&translator);
154- app->installTranslator (&qtTranslator);
155156 app->setAttribute (Qt::AA_DontCreateNativeWidgetSiblings, true );
157+ configureTranslation (translator, qtTranslator);
156158}
157159
158160// TODO find a way so we don't have to do this
159161// / Recreate the application as a QApplication
160- void reinitializeAsQApplication (int & argc, char * argv[])
162+ void reinitializeAsQApplication (int & argc,
163+ char * argv[],
164+ QTranslator& translator,
165+ QTranslator& qtTranslator)
161166{
162167 delete QCoreApplication::instance ();
163168 new QApplication (argc, argv);
164- configureApp (true );
169+ configureApp (true , translator, qtTranslator );
165170}
166171
167172int main (int argc, char * argv[])
168173{
174+
175+ QTranslator translator, qtTranslator;
176+
169177 // Required for saving button list QList<CaptureTool::Type>
170178 qRegisterMetaType<QList<int >>();
171179
@@ -176,6 +184,7 @@ int main(int argc, char* argv[])
176184 // no arguments, just launch Flameshot
177185 if (argc == 1 ) {
178186 QApplication app (argc, argv);
187+ configureTranslation (translator, qtTranslator);
179188
180189#ifdef USE_KDSINGLEAPPLICATION
181190#ifdef Q_OS_UNIX
@@ -189,7 +198,7 @@ int main(int argc, char* argv[])
189198 }
190199#endif
191200
192- configureApp (true );
201+ configureApp (true , translator, qtTranslator );
193202 auto c = Flameshot::instance ();
194203 FlameshotDaemon::start ();
195204
@@ -210,7 +219,8 @@ int main(int argc, char* argv[])
210219 * CLI parsing |
211220 * ------------*/
212221 new QCoreApplication (argc, argv);
213- configureApp (false );
222+ configureApp (false , translator, qtTranslator);
223+
214224 CommandLineParser parser;
215225 // Add description
216226 parser.setDescription (
@@ -412,12 +422,13 @@ int main(int argc, char* argv[])
412422 Flameshot::setOrigin (Flameshot::CLI);
413423 if (parser.isSet (helpOption) || parser.isSet (versionOption)) {
414424 } else if (parser.isSet (launcherArgument)) { // LAUNCHER
415- reinitializeAsQApplication (argc, argv);
425+ reinitializeAsQApplication (argc, argv, translator, qtTranslator );
416426 Flameshot* flameshot = Flameshot::instance ();
417427 flameshot->launcher ();
418428 qApp->exec ();
419429 } else if (parser.isSet (guiArgument)) { // GUI
420- reinitializeAsQApplication (argc, argv);
430+ reinitializeAsQApplication (argc, argv, translator, qtTranslator);
431+
421432 // Prevent multiple instances of 'flameshot gui' from running if not
422433 // configured to do so.
423434 if (!ConfigHandler ().allowMultipleGuiInstances ()) {
@@ -480,7 +491,7 @@ int main(int argc, char* argv[])
480491 }
481492 return requestCaptureAndWait (req);
482493 } else if (parser.isSet (fullArgument)) { // FULL
483- reinitializeAsQApplication (argc, argv);
494+ reinitializeAsQApplication (argc, argv, translator, qtTranslator );
484495
485496 // Option values
486497 QString path = parser.value (pathOption);
@@ -515,7 +526,7 @@ int main(int argc, char* argv[])
515526 }
516527 return requestCaptureAndWait (req);
517528 } else if (parser.isSet (screenArgument)) { // SCREEN
518- reinitializeAsQApplication (argc, argv);
529+ reinitializeAsQApplication (argc, argv, translator, qtTranslator );
519530
520531 QString numberStr = parser.value (screenNumberOption);
521532 // Option values
@@ -587,7 +598,7 @@ int main(int argc, char* argv[])
587598 }
588599 if (!someFlagSet) {
589600 // Open gui when no options are given
590- reinitializeAsQApplication (argc, argv);
601+ reinitializeAsQApplication (argc, argv, translator, qtTranslator );
591602 QObject::connect (
592603 qApp, &QApplication::lastWindowClosed, qApp, &QApplication::quit);
593604 Flameshot::instance ()->config ();
0 commit comments