Просмотр исходного кода

DisplaySettings: Show screen numbers when showing the Monitors tab

This will be helpful once we allow the user to rearrange the displays.
Tom 4 лет назад
Родитель
Сommit
8b26debda1

+ 8 - 0
Userland/Applications/DisplaySettings/MonitorSettingsWidget.cpp

@@ -141,4 +141,12 @@ void MonitorSettingsWidget::apply_settings()
     }
 }
 
+void MonitorSettingsWidget::show_screen_numbers(bool show)
+{
+    if (m_showing_screen_numbers == show)
+        return;
+    m_showing_screen_numbers = show;
+    GUI::WindowServerConnection::the().async_show_screen_numbers(show);
+}
+
 }

+ 9 - 0
Userland/Applications/DisplaySettings/MonitorSettingsWidget.h

@@ -19,7 +19,14 @@ class MonitorSettingsWidget : public GUI::Widget {
     C_OBJECT(MonitorSettingsWidget);
 
 public:
+    ~MonitorSettingsWidget() override
+    {
+        if (m_showing_screen_numbers)
+            show_screen_numbers(false);
+    }
+
     void apply_settings();
+    void show_screen_numbers(bool);
 
 private:
     MonitorSettingsWidget();
@@ -35,6 +42,8 @@ private:
     RefPtr<GUI::ComboBox> m_resolution_combo;
     RefPtr<GUI::RadioButton> m_display_scale_radio_1x;
     RefPtr<GUI::RadioButton> m_display_scale_radio_2x;
+
+    bool m_showing_screen_numbers { false };
 };
 
 }

+ 3 - 0
Userland/Applications/DisplaySettings/main.cpp

@@ -52,6 +52,9 @@ int main(int argc, char** argv)
     auto& background_settings_widget = tab_widget.add_tab<DisplaySettings::BackgroundSettingsWidget>("Background");
     auto& font_settings_widget = tab_widget.add_tab<DisplaySettings::FontSettingsWidget>("Fonts");
     auto& monitor_settings_widget = tab_widget.add_tab<DisplaySettings::MonitorSettingsWidget>("Monitor");
+    tab_widget.on_change = [&](auto& widget) {
+        monitor_settings_widget.show_screen_numbers(&widget == &monitor_settings_widget);
+    };
 
     auto& button_container = main_widget.add<GUI::Widget>();
     button_container.set_shrink_to_fit(true);