Исправлено заполнение часовых поясов

pull/16/head
Igor Belitskiy 3 years ago
parent f20c7e5643
commit 36fdc9e211

@ -33,17 +33,19 @@ int main(int argc, char* argv[]) {
system(cmd.c_str());
return 0;
}
//setlocale(LC_ALL, '');
bind_textdomain_codeset(app_name.c_str(), "UTF-8");
textdomain(app_name.c_str());
bindtextdomain(app_name.c_str(), path_locale.c_str());
auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example.plug");
auto builder = Gtk::Builder::create_from_file(path_glade + "ubl-settings-datetime.glade");
if (argc>1){
str_argv_1 = argv[1];
}
if ((str_argv_1=="--help" || str_argv_1=="--lock-datetime") || (str_argv_1=="--lock-timezone" || str_argv_1=="--lock-ntp") || (str_argv_1=="--lock-update" || argc==1)){
cout << 2222 << endl;
//setlocale(LC_ALL, ".");
//bindtextdomain(app_name.c_str(), ".");
//textdomain(app_name.c_str());
//textdomain(app_name);
for (int i=0; i<argc; i++){
if (strcmp(argv[i],"--help")==0){
help();

@ -29,6 +29,7 @@ string path_app= "/home/superadmin/Документы/Проект/ubconfig_new/
string path_glade= "/home/superadmin/Документы/Проект/ubconfig_new/ubl-settings-datetime/";
string app_name = "ubl-settings-datetime";
string path_reg = "/home/superadmin/Документы/Проект/ubconfig_new/ubl-settings-datetime/reg/";
string path_locale = "/usr/share/locale/";
bool flag_datetime = false;
bool flag_timezone = false;
bool flag_ntp = false;
@ -139,12 +140,15 @@ void MainWindow::event(){
_cbZone->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::enter_zone));
_cbZoneGlob->signal_changed().connect(sigc::mem_fun(*this, &MainWindow::enter_zone_glob));
_txtNtpServer->signal_focus_out_event().connect(sigc::mem_fun(*this, &MainWindow::focus_ntp));
//_btnMessClose->signal_day_selected_double_click().connect(sigc::mem_fun(*this, &MainWindow::close_calendar));
}
void MainWindow::gui_mess_close(){
_mess_dchp->hide();
}
void MainWindow::close_calendar(){
_popCalendar->hide();
}
bool MainWindow::focus_ntp(GdkEventFocus* event){
if (event!=NULL){}
@ -280,6 +284,7 @@ void MainWindow::get_config(){
string str_filling_zon = read_reg_zon_cfg.substr(read_reg_zon_cfg.find("/")+1,read_reg_zon_cfg.length());
str_filling_zon = str_filling_zon.substr(0,str_filling_zon.find("\n"));
string str_zone_check = "";
cout << str_filling_zon << endl;
this->append_region_zone(str_filling_reg,str_filling_zon);
}
else {
@ -523,51 +528,46 @@ void MainWindow::update_calendar(){
string date = str_day + '.' + str_month + '.' + to_string(year1);
_txtDate->set_text(date);
}
/*
void MainWindow::read_file(){
string cmd_reg = "find /usr/share/zoneinfo/* -maxdepth 0 -type d -not \\( -name posix -o -name right \\) -printf \"%f\n\"";
string str_reg_all = this->call(cmd_reg);
cout << 222 << endl;
cout << 222 << endl;
cout << str_reg_all << endl;
char delim = '\n';
vector<std::string> vector_reg=this->split(str_reg_all, delim);
string str_zone_all = "";
string cmd_zone = "";
string key_reg = "";
for (const auto &str_reg : vector_reg){
cmd_zone = "find /usr/share/zoneinfo/"+str_reg+"/* -type f -printf \"%f\n\" | sort -u";
str_zone_all=this->call(cmd_zone);
vector<std::string> vector_zone = this->split(str_zone_all, delim);
vector<string> zone;
zone.push_back("");
for (const auto &str_zone : vector_zone){
zone.push_back(string(gettext(str_zone.c_str())));
}
key_reg = string(gettext(key_reg.c_str()));
time_reg_map.insert({str_reg, zone});
}
}
*/
void MainWindow::read_file(){
std::string line;
namespace fs = std::filesystem;
for (const auto & entry : fs::directory_iterator(path_reg)){
for (const auto & entry : fs::directory_iterator("/usr/share/zoneinfo/")){
std::ifstream in(entry.path()); // окрываем файл для чтения
if (in.is_open())
{
vector<string> zone;
zone.push_back("");
while (getline(in, line))
{
zone.push_back(string(gettext(line.c_str())));
}
string key_reg = entry.path().filename().string();
key_reg = string(gettext(key_reg.c_str()));
time_reg_map.insert({key_reg, zone});
string path_dir = "/usr/share/zoneinfo/"+key_reg;
if (fs::is_directory(path_dir)){
vector<string> zone;
zone.push_back("");
for (const auto & entry_zone : fs::directory_iterator(path_dir)){
std::ifstream in1(entry_zone.path()); // окрываем файл для чтения
if (in1.is_open())
{
string key_zone = entry_zone.path().filename().string();
if (key_zone.length()!=0 || key_zone!=" "){
zone.push_back(string(gettext(key_zone.c_str())));
}
}
in1.close();
}
key_reg = string(gettext(key_reg.c_str()));
time_reg_map.insert({key_reg, zone});
while (getline(in, line))
{
}
}
}
in.close();
}

@ -28,6 +28,7 @@ extern string path_app;
extern string path_glade;
extern string app_name;
extern string path_reg;
extern string path_locale;
extern bool flag_datetime;
extern bool flag_timezone;
extern bool flag_ntp;
@ -60,6 +61,7 @@ public:
MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder);
MainWindow(Glib::RefPtr<Gtk::Builder> const& builder);
virtual ~MainWindow() = default;
void close_calendar();
void settings();
void flag_block_gui();
void add_CSS();

Loading…
Cancel
Save