]> sigrok.org Git - pulseview.git/blobdiff - pv/application.cpp
Session: Fix issue #67 by improving error handling
[pulseview.git] / pv / application.cpp
index 3a0ac0f13a5dc7986ca737615d9858998f775055..cce6393c39054fb4a961fdc1bd789863e9495d69 100644 (file)
@@ -69,7 +69,7 @@ Application::Application(int &argc, char* argv[]) :
 
 const QStringList Application::get_languages() const
 {
-       QStringList files = QDir(":/l10n/").entryList(QStringList("*.qm"), QDir::Files);
+       const QStringList files = QDir(":/l10n/").entryList(QStringList("*.qm"), QDir::Files);
 
        QStringList result;
        result << "en";  // Add default language to the set
@@ -86,7 +86,9 @@ const QStringList Application::get_languages() const
 const QString Application::get_language_editors(const QString& language) const
 {
        if (language == "de") return "Sören Apel, Uwe Hermann";
-       if (language == "es_mx") return "Carlos Diaz";
+       if (language == "es_MX") return "Carlos Diaz, Ulices Avila Hernandez";
+       if (language == "ja_jp") return "Yukari Shoji";
+       if (language == "zh_cn") return "ZtyPro";
 
        return QString();
 }
@@ -106,7 +108,11 @@ void Application::switch_language(const QString& language)
                        qWarning() << "Translation resource" << resource << "not found";
 
                // Qt translations
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+               QString tr_path(QLibraryInfo::path(QLibraryInfo::TranslationsPath));
+#else
                QString tr_path(QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+#endif
 
                if (qt_translator_.load("qt_" + language, tr_path))
                        installTranslator(&qt_translator_);
@@ -143,7 +149,7 @@ void Application::on_setting_changed(const QString &key, const QVariant &value)
                switch_language(value.toString());
 }
 
-void Application::collect_version_info(shared_ptr<sigrok::Context> context)
+void Application::collect_version_info(pv::DeviceManager &device_manager)
 {
        // Library versions and features
        version_info_.emplace_back(applicationName(), applicationVersion());
@@ -211,17 +217,18 @@ void Application::collect_version_info(shared_ptr<sigrok::Context> context)
 #endif
 
        // Device drivers
-       for (auto& entry : context->drivers())
-               driver_list_.emplace_back(QString::fromUtf8(entry.first.c_str()),
-                       QString::fromUtf8(entry.second->long_name().c_str()));
+       for (auto& entry : device_manager.context()->drivers())
+               if (device_manager.driver_supported(entry.second))
+                       driver_list_.emplace_back(QString::fromUtf8(entry.first.c_str()),
+                               QString::fromUtf8(entry.second->long_name().c_str()));
 
        // Input formats
-       for (auto& entry : context->input_formats())
+       for (auto& entry : device_manager.context()->input_formats())
                input_format_list_.emplace_back(QString::fromUtf8(entry.first.c_str()),
                        QString::fromUtf8(entry.second->description().c_str()));
 
        // Output formats
-       for (auto& entry : context->output_formats())
+       for (auto& entry : device_manager.context()->output_formats())
                output_format_list_.emplace_back(QString::fromUtf8(entry.first.c_str()),
                        QString::fromUtf8(entry.second->description().c_str()));