aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-12-10 13:52:45 +0000
committerSaturneric <[email protected]>2021-12-10 13:52:45 +0000
commit4bed34bc3144d324e39dd1e603de848f5c87c236 (patch)
tree68be3fda12f384d3125c981feabbd9e561dae552 /src
parentStart to use .ui file (diff)
parentUpdate CI for Release and Debug. (diff)
downloadGpgFrontend-4bed34bc3144d324e39dd1e603de848f5c87c236.tar.gz
GpgFrontend-4bed34bc3144d324e39dd1e603de848f5c87c236.zip
Merge branch 'develop' into develop-ui
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt11
-rw-r--r--src/main.cpp28
-rw-r--r--src/ui/widgets/FilePage.cpp13
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);
}
});