improve RTL workflow
This commit is contained in:
@@ -931,9 +931,8 @@ void App::init_menu_tools()
|
||||
|
||||
if (auto rtl_btn = popup_exp->find<NodeButtonCustom>("tools-rtl"))
|
||||
{
|
||||
auto ui = main->find("central-row");
|
||||
NodeCheckBox* cb = rtl_btn->find<NodeCheckBox>("tools-rtl-check");
|
||||
cb->set_value(ui->GetRTL() == YGDirectionRTL, false);
|
||||
cb->set_value(ui_rtl, false);
|
||||
|
||||
rtl_btn->on_click = [this, popup_exp, rtl_btn](Node* b)
|
||||
{
|
||||
@@ -943,8 +942,7 @@ void App::init_menu_tools()
|
||||
|
||||
rtl_btn->find<NodeCheckBox>("tools-rtl-check")->on_value_changed = [this, main](Node*, bool checked)
|
||||
{
|
||||
auto ui = main->find("central-row");
|
||||
ui->SetRTL(checked ? YGDirectionRTL : YGDirectionLTR);
|
||||
set_ui_rtl(checked);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1363,6 +1361,17 @@ void App::initLayout()
|
||||
LOG("initializing layout completed");
|
||||
}
|
||||
|
||||
void App::set_ui_rtl(bool rtl)
|
||||
{
|
||||
ui_rtl = rtl;
|
||||
layout[main_id]->find("central-row")->SetRTL(rtl ? YGDirectionRTL : YGDirectionLTR);
|
||||
}
|
||||
|
||||
bool App::get_ui_rtl() const
|
||||
{
|
||||
return ui_rtl;
|
||||
}
|
||||
|
||||
void App::ui_save()
|
||||
{
|
||||
Serializer::Descriptor d;
|
||||
@@ -1409,7 +1418,7 @@ void App::ui_save()
|
||||
d.set("drop-right", list_drop_right);
|
||||
|
||||
Settings::set("ui", d);
|
||||
Settings::set("ui-rtl", Serializer::Integer(layout[main_id]->find("central-row")->GetRTL()));
|
||||
Settings::set("ui-rtl", Serializer::Boolean(ui_rtl));
|
||||
|
||||
#if _WIN32
|
||||
extern void win32_save_window_state();
|
||||
@@ -1422,7 +1431,7 @@ void App::ui_save()
|
||||
void App::ui_restore()
|
||||
{
|
||||
if (Settings::has("ui-rtl"))
|
||||
layout[main_id]->find("central-row")->SetRTL((YGDirection)Settings::value<Serializer::Integer>("ui-rtl"));
|
||||
set_ui_rtl(Settings::value<Serializer::Integer>("ui-rtl"));
|
||||
|
||||
if (!Settings::has("ui"))
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user