pidgin/resources/Prefs/network.ui

Mon, 29 Aug 2022 22:06:07 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Mon, 29 Aug 2022 22:06:07 -0500
changeset 41623
78cf94d0f8c8
parent 41602
7a52387e60ae
child 41629
f617ffec2950
permissions
-rw-r--r--

Move network preferences to Adwaita preference widgets

This does make the TURN server settings longer vertically, but that seems more consistent with everything.

Also fix the `leave` event on the TURN server setting.

Testing Done:
Toggled all the options and checked that stuff happened in the Debug Window.

Also, I'm not sure why the `GtkSpinButton` and `GtkEntry` expand to different sizes; they both have `hexpand=1`, and the spin button is next to text that's _shorter_ than the entry, but somehow ends up farther right. Seems like a bug in GTK.

PS, be careful of this page; it tries to get your public IP address and displays it when it succeeds.

Reviewed at https://reviews.imfreedom.org/r/1680/

<?xml version="1.0" encoding="UTF-8"?>
<!--
Pidgin - Internet Messenger
Copyright (C) Pidgin Developers <devel@pidgin.im>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, see <https://www.gnu.org/licenses/>.
-->
<interface>
  <requires lib="gtk" version="4.0"/>
  <requires lib="Adw" version="1.0"/>
  <!-- interface-license-type gplv2 -->
  <!-- interface-name Pidgin -->
  <!-- interface-description Internet Messenger -->
  <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
  <object class="GtkAdjustment" id="ports_range_end.adjustment">
    <property name="upper">65535</property>
    <property name="step-increment">1</property>
    <property name="page-increment">10</property>
  </object>
  <object class="GtkAdjustment" id="ports_range_start.adjustment">
    <property name="upper">65535</property>
    <property name="step-increment">1</property>
    <property name="page-increment">10</property>
  </object>
  <object class="GtkAdjustment" id="turn_port_tcp.adjustment">
    <property name="upper">65535</property>
    <property name="step-increment">1</property>
    <property name="page-increment">10</property>
  </object>
  <object class="GtkAdjustment" id="turn_port_udp.adjustment">
    <property name="upper">65535</property>
    <property name="step-increment">1</property>
    <property name="page-increment">10</property>
  </object>
  <template class="PidginNetworkPrefs" parent="AdwPreferencesPage">
    <child>
      <object class="AdwPreferencesGroup">
        <property name="title" translatable="1">IP Address</property>
        <child>
          <object class="AdwActionRow">
            <property name="activatable-widget">stun_server</property>
            <property name="title" translatable="1">ST_UN server</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkEntry" id="stun_server">
                <property name="halign">fill</property>
                <property name="hexpand">1</property>
                <property name="valign">center</property>
                <property name="focusable">1</property>
                <property name="placeholder-text" translatable="1">Example: stunserver.org</property>
                <property name="input-purpose">url</property>
                <child>
                  <object class="GtkEventControllerFocus">
                    <signal name="leave" handler="network_stun_server_changed_cb" object="stun_server" swapped="no"/>
                  </object>
                </child>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwActionRow" id="auto_ip_row">
            <property name="activatable-widget">auto_ip</property>
            <property name="title" translatable="1">Use _automatically detected IP address</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkSwitch" id="auto_ip">
                <property name="focusable">1</property>
                <property name="valign">center</property>
                <signal name="notify::active" handler="auto_ip_button_clicked_cb" after="yes" swapped="no"/>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwActionRow" id="public_ip_row">
            <property name="activatable-widget">public_ip</property>
            <property name="title" translatable="1">Public _IP</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkEntry" id="public_ip">
                <property name="focusable">1</property>
                <property name="hexpand">1</property>
                <property name="valign">center</property>
                <signal name="changed" handler="network_ip_changed" swapped="no"/>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
    <child>
      <object class="AdwPreferencesGroup">
        <property name="title" translatable="1">Ports</property>
        <child>
          <object class="AdwActionRow">
            <property name="activatable-widget">map_ports</property>
            <property name="title" translatable="1">_Enable automatic router port forwarding</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkSwitch" id="map_ports">
                <property name="focusable">1</property>
                <property name="valign">center</property>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwExpanderRow" id="ports_range_use">
            <property name="title" translatable="1">_Manually specify range of ports to listen on</property>
            <property name="show-enable-switch">1</property>
            <property name="use-underline">1</property>
            <child>
              <object class="AdwActionRow">
                <property name="activatable-widget">ports_range_start</property>
                <property name="title" translatable="1">_Start</property>
                <property name="use-underline">1</property>
                <child>
                  <object class="GtkSpinButton" id="ports_range_start">
                    <property name="focusable">1</property>
                    <property name="valign">center</property>
                    <property name="text" translatable="1">0</property>
                    <property name="adjustment">ports_range_start.adjustment</property>
                    <property name="numeric">1</property>
                  </object>
                </child>
              </object>
            </child>
            <child>
              <object class="AdwActionRow">
                <property name="activatable-widget">ports_range_end</property>
                <property name="title" translatable="1">_End</property>
                <property name="use-underline">1</property>
                <child>
                  <object class="GtkSpinButton" id="ports_range_end">
                    <property name="focusable">1</property>
                    <property name="valign">center</property>
                    <property name="text" translatable="1">0</property>
                    <property name="adjustment">ports_range_end.adjustment</property>
                    <property name="numeric">1</property>
                  </object>
                </child>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
    <child>
      <object class="AdwPreferencesGroup">
        <property name="title" translatable="1">Relay Server (TURN)</property>
        <child>
          <object class="AdwActionRow">
            <property name="activatable-widget">turn_server</property>
            <property name="title" translatable="1">_TURN server</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkEntry" id="turn_server">
                <property name="focusable">1</property>
                <property name="hexpand">1</property>
                <property name="valign">center</property>
                <child>
                  <object class="GtkEventControllerFocus">
                    <signal name="leave" handler="network_turn_server_changed_cb" object="turn_server" swapped="no"/>
                  </object>
                </child>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwActionRow">
            <property name="activatable-widget">turn_port_udp</property>
            <property name="title" translatable="1">_UDP Port</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkSpinButton" id="turn_port_udp">
                <property name="focusable">1</property>
                <property name="hexpand">1</property>
                <property name="valign">center</property>
                <property name="adjustment">turn_port_udp.adjustment</property>
                <property name="numeric">1</property>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwActionRow">
            <property name="activatable-widget">turn_port_tcp</property>
            <property name="title" translatable="1">T_CP Port</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkSpinButton" id="turn_port_tcp">
                <property name="focusable">1</property>
                <property name="hexpand">1</property>
                <property name="valign">center</property>
                <property name="adjustment">turn_port_tcp.adjustment</property>
                <property name="numeric">1</property>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwActionRow">
            <property name="activatable-widget">turn_username</property>
            <property name="title" translatable="1">Use_rname</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkEntry" id="turn_username">
                <property name="focusable">1</property>
                <property name="hexpand">1</property>
                <property name="valign">center</property>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwActionRow">
            <property name="activatable-widget">turn_password</property>
            <property name="title" translatable="1">Pass_word</property>
            <property name="use-underline">1</property>
            <child>
              <object class="GtkPasswordEntry" id="turn_password">
                <property name="focusable">1</property>
                <property name="hexpand">1</property>
                <property name="show-peek-icon">1</property>
                <property name="valign">center</property>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
  </template>
</interface>

mercurial