MCPcopy Create free account
hub / github.com/alpha-liu-01/SpeedyNote / createLanguageTab

Method createLanguageTab

source/ControlPanelDialog.cpp:1949–2077  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1947
1948
1949void ControlPanelDialog::createLanguageTab() {
1950 languageTab = new QWidget(this);
1951 QVBoxLayout *layout = new QVBoxLayout(languageTab);
1952
1953 // Add some spacing at the top
1954 layout->addSpacing(10);
1955
1956 // Title and description
1957 QLabel *titleLabel = new QLabel(tr("Language Settings"), languageTab);
1958 titleLabel->setStyleSheet("font-size: 16px; font-weight: bold;");
1959 layout->addWidget(titleLabel);
1960
1961 layout->addSpacing(10);
1962
1963 // Use system language checkbox
1964 useSystemLanguageCheckbox = new QCheckBox(tr("Use System Language (Auto-detect)"), languageTab);
1965 layout->addWidget(useSystemLanguageCheckbox);
1966
1967 QLabel *systemNote = new QLabel(tr("When enabled, SpeedyNote will automatically detect and use your system's language setting."), languageTab);
1968 systemNote->setWordWrap(true);
1969 systemNote->setStyleSheet("color: gray; font-size: 11px; margin-bottom: 15px;");
1970 layout->addWidget(systemNote);
1971
1972 // Manual language selection
1973 QLabel *manualLabel = new QLabel(tr("Manual Language Override:"), languageTab);
1974 manualLabel->setStyleSheet("font-weight: bold;");
1975 layout->addWidget(manualLabel);
1976
1977 // Read saved language settings once — used both for combo population (so
1978 // a saved-but-uninstalled language still appears) and for initial state.
1979 QSettings settings(QStringLiteral("SpeedyNote"), QStringLiteral("App"));
1980 const bool useSystemLang = settings.value(QStringLiteral("useSystemLanguage"), true).toBool();
1981 const QString overrideLang = settings.value(QStringLiteral("languageOverride"),
1982 QStringLiteral("en")).toString();
1983
1984 languageCombo = new QComboBox(languageTab);
1985 for (const auto& lang : discoverAvailableLanguages(overrideLang)) {
1986 languageCombo->addItem(lang.displayName, lang.code);
1987 if (!lang.installed) {
1988 // Grey out the "not installed" entry but still allow selection so the
1989 // user can see their saved choice and can change it.
1990 const int idx = languageCombo->count() - 1;
1991 languageCombo->setItemData(idx, QColor(Qt::gray), Qt::ForegroundRole);
1992 }
1993 }
1994 useSystemLanguageCheckbox->setChecked(useSystemLang);
1995 languageCombo->setEnabled(!useSystemLang);
1996 const int savedIdx = languageCombo->findData(overrideLang);
1997 if (savedIdx >= 0) languageCombo->setCurrentIndex(savedIdx);
1998 layout->addWidget(languageCombo);
1999
2000 QLabel *manualNote = new QLabel(tr("Select a specific language to override the system setting. Changes take effect after restarting the application."), languageTab);
2001 manualNote->setWordWrap(true);
2002 manualNote->setStyleSheet("color: gray; font-size: 11px; margin-bottom: 15px;");
2003 layout->addWidget(manualNote);
2004
2005 // Current language status
2006 QLabel *statusLabel = new QLabel(tr("Current Language Status:"), languageTab);

Callers

nothing calls this directly

Calls 11

buildDisplayNameFunction · 0.85
connectFunction · 0.85
addWidgetMethod · 0.80
ocrAvailableLanguagesMethod · 0.80
setCheckedMethod · 0.45
setEnabledMethod · 0.45
languageMethod · 0.45
isEmptyMethod · 0.45
addStretchMethod · 0.45

Tested by

no test coverage detected