diff options
author | Saturneric <[email protected]> | 2021-12-10 13:52:45 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2021-12-10 13:52:45 +0000 |
commit | 4bed34bc3144d324e39dd1e603de848f5c87c236 (patch) | |
tree | 68be3fda12f384d3125c981feabbd9e561dae552 /src | |
parent | Start to use .ui file (diff) | |
parent | Update CI for Release and Debug. (diff) | |
download | GpgFrontend-4bed34bc3144d324e39dd1e603de848f5c87c236.tar.gz GpgFrontend-4bed34bc3144d324e39dd1e603de848f5c87c236.zip |
Merge branch 'develop' into develop-ui
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 11 | ||||
-rw-r--r-- | src/main.cpp | 28 | ||||
-rw-r--r-- | src/ui/widgets/FilePage.cpp | 13 |
3 files changed, 38 insertions, 14 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 42fb5119..dc7098e4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -83,17 +83,16 @@ if (MULTI_LANG_SUPPORT) GET_FILENAME_COMPONENT(_poFileName ${_poFile} NAME) string(REGEX REPLACE "\\.[^.]*$" "" _langName ${_poFileName}) message(STATUS "_poFileName ${_langName}") - make_directory(${CMAKE_SOURCE_DIR}/resource/locale/out/${_langName}/LC_MESSAGES) + make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales) + make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales/${_langName}/LC_MESSAGES) add_custom_command( TARGET translations COMMAND echo Processing po LANG ${_langName} ) add_custom_command( TARGET translations - COMMAND msgfmt --check --verbose --output-file ${CMAKE_SOURCE_DIR}/resource/locale/out/${_langName}/LC_MESSAGES/GpgFrontend.mo ${_poFile} + COMMAND msgfmt --check --verbose --output-file ${RESOURCE_OUTPUT_DIRECTORY}/locales/${_langName}/LC_MESSAGES/GpgFrontend.mo ${_poFile} ) - add_custom_command(TARGET translations - COMMAND cp -rf ${CMAKE_SOURCE_DIR}/resource/locale/out/ ${RESOURCE_OUTPUT_DIRECTORY}/locales) endforeach () endif () @@ -109,10 +108,6 @@ if (APPLICATION_BUILD) # Copy Resource Files file(COPY ${CMAKE_SOURCE_DIR}/resource/css DESTINATION ${RESOURCE_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN) file(COPY ${CMAKE_SOURCE_DIR}/resource/icons DESTINATION ${RESOURCE_OUTPUT_DIRECTORY}/ FOLLOW_SYMLINK_CHAIN) - if (MULTI_LANG_SUPPORT) - make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales) - file(COPY ${CMAKE_SOURCE_DIR}/resource/locale/out/ DESTINATION ${RESOURCE_OUTPUT_DIRECTORY}/locales FOLLOW_SYMLINK_CHAIN) - endif () file(COPY ${CMAKE_SOURCE_DIR}/TRANSLATORS DESTINATION ${RESOURCE_OUTPUT_DIRECTORY} FOLLOW_SYMLINK_CHAIN) endif () diff --git a/src/main.cpp b/src/main.cpp index 96d3c4d8..1dbf1d5e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -42,6 +42,11 @@ int main(int argc, char* argv[]) { QApplication app(argc, argv); QApplication::setWindowIcon(QIcon(":gpgfrontend.png")); +#ifdef MACOS + // support retina screen + QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); +#endif + // logging system init_logging(); @@ -142,13 +147,13 @@ void init_locale() { .GetLocaleDir() .c_str(); +#ifndef WINDOWS if (!lang.empty()) { std::string lc = lang.empty() ? "" : lang + ".UTF-8"; // set LC_ALL auto* locale_name = setlocale(LC_ALL, lc.c_str()); if (locale_name == nullptr) LOG(WARNING) << "set LC_ALL failed" << lc; -#ifndef WINDOWS auto language = getenv("LANGUAGE"); // set LANGUAGE std::string language_env = language == nullptr ? "en" : language; @@ -157,13 +162,32 @@ void init_locale() { if (setenv("LANGUAGE", language_env.c_str(), 1)) { LOG(WARNING) << "set LANGUAGE failed" << language_env; }; -#endif } +#else + if (!lang.empty()) { + std::string lc = lang.empty() ? "" : lang; + + // set LC_ALL + auto* locale_name = setlocale(LC_ALL, lc.c_str()); + if (locale_name == nullptr) LOG(WARNING) << "set LC_ALL failed" << lc; + + auto language = getenv("LANGUAGE"); + // set LANGUAGE + std::string language_env = language == nullptr ? "en" : language; + language_env.insert(0, lang + ":"); + language_env.insert(0, "LANGUAGE="); + LOG(INFO) << "language env" << language_env; + if (putenv(language_env.c_str())) { + LOG(WARNING) << "set LANGUAGE failed" << language_env; + }; + } +#endif bindtextdomain(PROJECT_NAME, GpgFrontend::UI::GlobalSettingStation::GetInstance() .GetLocaleDir() .string() .c_str()); + bind_textdomain_codeset(PROJECT_NAME, "utf-8"); textdomain(PROJECT_NAME); } diff --git a/src/ui/widgets/FilePage.cpp b/src/ui/widgets/FilePage.cpp index d031114a..c51e0c76 100644 --- a/src/ui/widgets/FilePage.cpp +++ b/src/ui/widgets/FilePage.cpp @@ -112,12 +112,17 @@ FilePage::FilePage(QWidget* parent) : QWidget(parent) { &FilePage::onCustomContextMenu); connect(pathEdit, &QLineEdit::textChanged, [=]() { - auto dir = QDir(pathEdit->text()); - if (dir.isReadable()) { + auto path = pathEdit->text(); + auto dir = QDir(path); + if (path.endsWith("/") && dir.isReadable()) { auto dir_list = dir.entryInfoList(QDir::AllEntries); QStringList paths; - for (int i = 1; i < dir_list.size(); i++) - paths.append(dir_list.at(i).filePath()); + for (int i = 1; i < dir_list.size(); i++) { + const auto file_path = dir_list.at(i).filePath(); + const auto file_name = dir_list.at(i).fileName(); + if (file_name == "." || file_name == "..") continue; + paths.append(file_path); + } pathCompleteModel->setStringList(paths); } }); |