update SetLocationPlugin to py3,use libchamplain instead of python-osmgpsmap
This commit is contained in:
@@ -1 +1 @@
|
|||||||
from set_location import SetLocationPlugin
|
from .set_location import SetLocationPlugin
|
||||||
|
|||||||
@@ -1,21 +1,24 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="2.16"/>
|
<!-- interface-requires gtk+ 3.0 -->
|
||||||
<!-- interface-naming-policy toplevel-contextual -->
|
|
||||||
<object class="GtkWindow" id="window1">
|
<object class="GtkWindow" id="window1">
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkHBox" id="hbox1">
|
<object class="GtkHBox" id="hbox1">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkVBox" id="vbox2">
|
<object class="GtkVBox" id="vbox2">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkHBox" id="hbox2">
|
<object class="GtkHBox" id="hbox2">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="preset">
|
<object class="GtkLabel" id="preset">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">Preset:</property>
|
<property name="label" translatable="yes">Preset:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -29,38 +32,50 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkComboBox" id="preset_combobox">
|
<object class="GtkComboBox" id="preset_combobox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<signal name="changed" handler="on_preset_combobox_changed"/>
|
<property name="can_focus">False</property>
|
||||||
|
<signal name="changed" handler="on_preset_combobox_changed" swapped="no"/>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="preset_button">
|
<object class="GtkButton" id="preset_button">
|
||||||
|
<property name="use_action_appearance">False</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="receives_default">True</property>
|
<property name="receives_default">True</property>
|
||||||
|
<property name="use_action_appearance">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<signal name="clicked" handler="on_preset_button_clicked"/>
|
<signal name="clicked" handler="on_preset_button_clicked" swapped="no"/>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkHBox" id="hbox3">
|
<object class="GtkHBox" id="hbox3">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage" id="image1">
|
<object class="GtkImage" id="image1">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="stock">gtk-save</property>
|
<property name="stock">gtk-save</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
<property name="position">0</property>
|
<property name="position">0</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label17">
|
<object class="GtkLabel" id="label17">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">Save preset</property>
|
<property name="label" translatable="yes">Save preset</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
@@ -76,29 +91,38 @@
|
|||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="del_preset">
|
<object class="GtkButton" id="del_preset">
|
||||||
|
<property name="use_action_appearance">False</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="sensitive">False</property>
|
<property name="sensitive">False</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="receives_default">True</property>
|
<property name="receives_default">True</property>
|
||||||
<signal name="clicked" handler="on_del_preset_clicked"/>
|
<property name="use_action_appearance">False</property>
|
||||||
|
<signal name="clicked" handler="on_del_preset_clicked" swapped="no"/>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkHBox" id="hbox4">
|
<object class="GtkHBox" id="hbox4">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage" id="image2">
|
<object class="GtkImage" id="image2">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="stock">gtk-delete</property>
|
<property name="stock">gtk-delete</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
<property name="position">0</property>
|
<property name="position">0</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label18">
|
<object class="GtkLabel" id="label18">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="label" translatable="yes">Delete preset</property>
|
<property name="label" translatable="yes">Delete preset</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
@@ -121,6 +145,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkTable" id="config_table">
|
<object class="GtkTable" id="config_table">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="border_width">6</property>
|
<property name="border_width">6</property>
|
||||||
<property name="n_rows">16</property>
|
<property name="n_rows">16</property>
|
||||||
<property name="n_columns">2</property>
|
<property name="n_columns">2</property>
|
||||||
@@ -129,6 +154,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label1">
|
<object class="GtkLabel" id="label1">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">alt:</property>
|
<property name="label" translatable="yes">alt:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -140,6 +166,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label2">
|
<object class="GtkLabel" id="label2">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">area:</property>
|
<property name="label" translatable="yes">area:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -153,6 +180,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label3">
|
<object class="GtkLabel" id="label3">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">building:</property>
|
<property name="label" translatable="yes">building:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -166,6 +194,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label4">
|
<object class="GtkLabel" id="label4">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">country:</property>
|
<property name="label" translatable="yes">country:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -177,6 +206,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label5">
|
<object class="GtkLabel" id="label5">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">countrycode:</property>
|
<property name="label" translatable="yes">countrycode:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -188,6 +218,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label6">
|
<object class="GtkLabel" id="label6">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">description:</property>
|
<property name="label" translatable="yes">description:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -199,6 +230,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label7">
|
<object class="GtkLabel" id="label7">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">floor:</property>
|
<property name="label" translatable="yes">floor:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -210,6 +242,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label8">
|
<object class="GtkLabel" id="label8">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">locality:</property>
|
<property name="label" translatable="yes">locality:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -221,6 +254,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label9">
|
<object class="GtkLabel" id="label9">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">lat:</property>
|
<property name="label" translatable="yes">lat:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -232,6 +266,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label10">
|
<object class="GtkLabel" id="label10">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">lon:</property>
|
<property name="label" translatable="yes">lon:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -243,6 +278,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label11">
|
<object class="GtkLabel" id="label11">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">postalcode:</property>
|
<property name="label" translatable="yes">postalcode:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -254,6 +290,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label12">
|
<object class="GtkLabel" id="label12">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">region:</property>
|
<property name="label" translatable="yes">region:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -265,6 +302,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label13">
|
<object class="GtkLabel" id="label13">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">room:</property>
|
<property name="label" translatable="yes">room:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -276,6 +314,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label14">
|
<object class="GtkLabel" id="label14">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">street:</property>
|
<property name="label" translatable="yes">street:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -287,6 +326,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label15">
|
<object class="GtkLabel" id="label15">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">text:</property>
|
<property name="label" translatable="yes">text:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -298,6 +338,7 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label16">
|
<object class="GtkLabel" id="label16">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">uri:</property>
|
<property name="label" translatable="yes">uri:</property>
|
||||||
</object>
|
</object>
|
||||||
@@ -312,7 +353,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">Altitude in meters above or below sea level</property>
|
<property name="tooltip_text" translatable="yes">Altitude in meters above or below sea level</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -325,7 +366,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A named area such as a campus or neighborhood</property>
|
<property name="tooltip_text" translatable="yes">A named area such as a campus or neighborhood</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -340,7 +381,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A specific building on a street or in an area</property>
|
<property name="tooltip_text" translatable="yes">A specific building on a street or in an area</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -355,7 +396,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">The nation where the user is located</property>
|
<property name="tooltip_text" translatable="yes">The nation where the user is located</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -370,7 +411,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">The ISO 3166 two-letter country code</property>
|
<property name="tooltip_text" translatable="yes">The ISO 3166 two-letter country code</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -385,7 +426,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A natural-language name for or description of the location</property>
|
<property name="tooltip_text" translatable="yes">A natural-language name for or description of the location</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -400,7 +441,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A particular floor in a building</property>
|
<property name="tooltip_text" translatable="yes">A particular floor in a building</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -415,7 +456,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A locality within the administrative region, such as a town or city</property>
|
<property name="tooltip_text" translatable="yes">A locality within the administrative region, such as a town or city</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -430,7 +471,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">Latitude in decimal degrees North</property>
|
<property name="tooltip_text" translatable="yes">Latitude in decimal degrees North</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -445,7 +486,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">Longitude in decimal degrees East</property>
|
<property name="tooltip_text" translatable="yes">Longitude in decimal degrees East</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -460,7 +501,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A code used for postal delivery</property>
|
<property name="tooltip_text" translatable="yes">A code used for postal delivery</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -475,7 +516,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">An administrative region of the nation, such as a state or province</property>
|
<property name="tooltip_text" translatable="yes">An administrative region of the nation, such as a state or province</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -490,7 +531,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A particular room in a building</property>
|
<property name="tooltip_text" translatable="yes">A particular room in a building</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -505,7 +546,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A thoroughfare within the locality, or a crossing of two thoroughfares</property>
|
<property name="tooltip_text" translatable="yes">A thoroughfare within the locality, or a crossing of two thoroughfares</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -520,7 +561,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A catch-all element that captures any other information about the location</property>
|
<property name="tooltip_text" translatable="yes">A catch-all element that captures any other information about the location</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -535,7 +576,7 @@
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="has_tooltip">True</property>
|
<property name="has_tooltip">True</property>
|
||||||
<property name="tooltip_text" translatable="yes">A URI or URL pointing to information about the location</property>
|
<property name="tooltip_text" translatable="yes">A URI or URL pointing to information about the location</property>
|
||||||
<property name="invisible_char">●</property>
|
<property name="invisible_char">●</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">1</property>
|
<property name="left_attach">1</property>
|
||||||
@@ -561,9 +602,8 @@
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkVBox" id="vbox1">
|
<object class="GtkVBox" id="vbox1">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="extension_events">all</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="resize_mode">immediate</property>
|
<property name="resize_mode">immediate</property>
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
<child>
|
||||||
<placeholder/>
|
<placeholder/>
|
||||||
</child>
|
</child>
|
||||||
@@ -572,6 +612,8 @@
|
|||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
<property name="padding">6</property>
|
<property name="padding">6</property>
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: Set Location
|
|||||||
short_name: set_location
|
short_name: set_location
|
||||||
version: 0.7.2
|
version: 0.7.2
|
||||||
description: Set information about the current geographical or physical location.
|
description: Set information about the current geographical or physical location.
|
||||||
To be able to specify a location on the built-in card, you must install python-osmgpsmap > 0.5
|
To be able to specify a location on the built-in card, you must install gir1.2-gtkchamplain
|
||||||
authors: Denis Fomin <fominde@gmail.com>
|
authors: Denis Fomin <fominde@gmail.com>
|
||||||
homepage: http://trac-plugins.gajim.org/wiki/SetLocalitionPlugin
|
homepage: http://trac-plugins.gajim.org/wiki/SetLocalitionPlugin
|
||||||
max_gajim_version: 0.15.9
|
min_gajim_version: 0.15.10
|
||||||
|
|||||||
@@ -2,13 +2,14 @@
|
|||||||
##
|
##
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import time
|
from gi.repository import Gtk
|
||||||
import gtk
|
from gi.repository import GdkPixbuf
|
||||||
import os
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
from plugins.gui import GajimPluginConfigDialog
|
from plugins.gui import GajimPluginConfigDialog
|
||||||
from plugins import GajimPlugin
|
from plugins import GajimPlugin
|
||||||
from plugins.helpers import log, log_calls
|
from plugins.helpers import log_calls
|
||||||
from common import gajim
|
from common import gajim
|
||||||
from common import ged
|
from common import ged
|
||||||
import gtkgui_helpers
|
import gtkgui_helpers
|
||||||
@@ -21,7 +22,7 @@ class SetLocationPlugin(GajimPlugin):
|
|||||||
self.description = _('Set information about the current geographical '
|
self.description = _('Set information about the current geographical '
|
||||||
'or physical location.\n'
|
'or physical location.\n'
|
||||||
'To be able to specify a location on the built-in card, '
|
'To be able to specify a location on the built-in card, '
|
||||||
'you must install python-osmgpsmap > 0.5')
|
'you must install gir1.2-gtkchamplain')
|
||||||
self.config_dialog = SetLocationPluginConfigDialog(self)
|
self.config_dialog = SetLocationPluginConfigDialog(self)
|
||||||
self.config_default_values = {
|
self.config_default_values = {
|
||||||
'alt': (1609, ''),
|
'alt': (1609, ''),
|
||||||
@@ -81,20 +82,20 @@ class SetLocationPluginConfigDialog(GajimPluginConfigDialog):
|
|||||||
def init(self):
|
def init(self):
|
||||||
self.GTK_BUILDER_FILE_PATH = self.plugin.local_file_path(
|
self.GTK_BUILDER_FILE_PATH = self.plugin.local_file_path(
|
||||||
'config_dialog.ui')
|
'config_dialog.ui')
|
||||||
self.xml = gtk.Builder()
|
self.xml = Gtk.Builder()
|
||||||
self.xml.set_translation_domain('gajim_plugins')
|
self.xml.set_translation_domain('gajim_plugins')
|
||||||
self.xml.add_objects_from_file(self.GTK_BUILDER_FILE_PATH,
|
self.xml.add_objects_from_file(self.GTK_BUILDER_FILE_PATH,
|
||||||
['hbox1'])
|
['hbox1'])
|
||||||
hbox = self.xml.get_object('hbox1')
|
hbox = self.xml.get_object('hbox1')
|
||||||
self.child.pack_start(hbox)
|
self.get_child().pack_start(hbox, True, True, 0)
|
||||||
self.xml.connect_signals(self)
|
self.xml.connect_signals(self)
|
||||||
self.connect('hide', self.on_hide)
|
self.connect('hide', self.on_hide)
|
||||||
self.is_active = None
|
self.is_active = None
|
||||||
|
|
||||||
self.preset_combo = self.xml.get_object('preset_combobox')
|
self.preset_combo = self.xml.get_object('preset_combobox')
|
||||||
self.preset_liststore = gtk.ListStore(str)
|
self.preset_liststore = Gtk.ListStore(str)
|
||||||
self.preset_combo.set_model(self.preset_liststore)
|
self.preset_combo.set_model(self.preset_liststore)
|
||||||
cellrenderer = gtk.CellRendererText()
|
cellrenderer = Gtk.CellRendererText()
|
||||||
self.preset_combo.pack_start(cellrenderer, True)
|
self.preset_combo.pack_start(cellrenderer, True)
|
||||||
self.preset_combo.add_attribute(cellrenderer, 'text', 0)
|
self.preset_combo.add_attribute(cellrenderer, 'text', 0)
|
||||||
#self.plugin.config['presets'] = {'default': {}}
|
#self.plugin.config['presets'] = {'default': {}}
|
||||||
@@ -114,47 +115,62 @@ class SetLocationPluginConfigDialog(GajimPluginConfigDialog):
|
|||||||
widget.set_text(str(self.plugin.config[name]))
|
widget.set_text(str(self.plugin.config[name]))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import osmgpsmap
|
from gi.repository import GtkClutter, Clutter
|
||||||
if osmgpsmap.__version__ < '0.6':
|
GtkClutter.init([]) # Must be initialized before importing those:
|
||||||
no_map = True
|
from gi.repository import Champlain, GtkChamplain
|
||||||
log.debug('python-osmgpsmap < 0.6 detected')
|
|
||||||
except:
|
except:
|
||||||
no_map = True
|
no_map = True
|
||||||
log.debug('python-osmgpsmap not detected')
|
|
||||||
|
|
||||||
log.debug('python-osmgpsmap > 0.5 detected')
|
|
||||||
if not no_map and not self.is_active:
|
if not no_map and not self.is_active:
|
||||||
from layers import DummyLayer
|
#from layers import DummyLayer
|
||||||
|
|
||||||
vbox = self.xml.get_object('vbox1')
|
vbox = self.xml.get_object('vbox1')
|
||||||
vbox.set_size_request(400, -1)
|
vbox.set_size_request(400, -1)
|
||||||
|
|
||||||
self.osm = osmgpsmap.GpsMap()
|
embed = GtkChamplain.Embed()
|
||||||
self.osm.layer_add(osmgpsmap.GpsMapOsd(show_dpad=True,
|
|
||||||
show_zoom=True))
|
self.view = embed.get_view()
|
||||||
self.osm.layer_add(DummyLayer())
|
self.view.set_reactive(True)
|
||||||
|
self.view.set_property('kinetic-mode', True)
|
||||||
|
self.view.set_property('zoom-level', 12)
|
||||||
|
self.view.connect('button-release-event', self.map_clicked,
|
||||||
|
self.view)
|
||||||
|
|
||||||
|
scale = Champlain.Scale()
|
||||||
|
scale.connect_view(self.view)
|
||||||
|
self.view.bin_layout_add(scale, Clutter.BinAlignment.START,
|
||||||
|
Clutter.BinAlignment.END)
|
||||||
|
|
||||||
|
#license = self.view.get_license_actor()
|
||||||
|
#license.set_extra_text("Don't eat cereals with orange juice\nIt tastes bad")
|
||||||
|
|
||||||
lat = self.plugin.config['lat']
|
lat = self.plugin.config['lat']
|
||||||
lon = self.plugin.config['lon']
|
lon = self.plugin.config['lon']
|
||||||
if not self.is_valid_coord(lat, lon):
|
if not self.is_valid_coord(lat, lon):
|
||||||
self.lat = self.lon = 0.0
|
self.lat = self.lon = 0.0
|
||||||
self.xml.get_object('lat').set_text('0.0')
|
self.xml.get_object('lat').set_text('0.0')
|
||||||
self.xml.get_object('lon').set_text('0.0')
|
self.xml.get_object('lon').set_text('0.0')
|
||||||
self.osm.set_center_and_zoom(self.lat, self.lon, 12)
|
self.view.center_on(self.lat, self.lon)
|
||||||
|
|
||||||
self.path_to_image = os.path.abspath(gtkgui_helpers.get_icon_path(
|
self.path_to_image = os.path.abspath(gtkgui_helpers.get_icon_path(
|
||||||
'gajim', 16))
|
'gajim', 16))
|
||||||
self.icon = gtk.gdk.pixbuf_new_from_file_at_size(
|
vbox.pack_start(embed, expand=True, fill=True, padding=6)
|
||||||
self.path_to_image, 16, 16)
|
label = Gtk.Label(_(
|
||||||
self.osm.connect('button_release_event', self.map_clicked)
|
|
||||||
vbox.pack_start(self.osm, expand=True, fill=True, padding=6)
|
|
||||||
label = gtk.Label(_(
|
|
||||||
'Click the right mouse button to specify the location, \n'\
|
'Click the right mouse button to specify the location, \n'\
|
||||||
'middle mouse button to show / hide the contacts on the map'))
|
'middle mouse button to show / hide the contacts on the map'))
|
||||||
vbox.pack_start(label, expand=False, fill=False, padding=6)
|
vbox.pack_start(label, expand=False, fill=False, padding=6)
|
||||||
self.is_active = True
|
self.is_active = True
|
||||||
self.images = []
|
self.layer = Champlain.MarkerLayer()
|
||||||
self.osm_image = self.osm.image_add(self.lat, self.lon, self.icon)
|
self.marker = Champlain.Label.new_from_file(self.path_to_image)
|
||||||
|
self.marker.set_text("I am")
|
||||||
|
self.marker.set_location(self.lat, self.lon)
|
||||||
|
self.view.add_layer(self.layer)
|
||||||
|
self.layer.add_marker(self.marker)
|
||||||
|
self.markers_is_visible = False
|
||||||
self.xml.get_object('lat').connect('changed', self.on_lon_changed)
|
self.xml.get_object('lat').connect('changed', self.on_lon_changed)
|
||||||
self.xml.get_object('lon').connect('changed', self.on_lon_changed)
|
self.xml.get_object('lon').connect('changed', self.on_lon_changed)
|
||||||
|
self.layer.animate_in_all_markers()
|
||||||
|
self.show_contacts()
|
||||||
|
|
||||||
def on_hide(self, widget):
|
def on_hide(self, widget):
|
||||||
for name in self.plugin.config_default_values:
|
for name in self.plugin.config_default_values:
|
||||||
@@ -175,21 +191,25 @@ class SetLocationPluginConfigDialog(GajimPluginConfigDialog):
|
|||||||
error_text = 'lat or lon field contains wrong value.'
|
error_text = 'lat or lon field contains wrong value.'
|
||||||
WarningDialog(_('Wrong coordinates'), error_text, self)
|
WarningDialog(_('Wrong coordinates'), error_text, self)
|
||||||
|
|
||||||
def map_clicked(self, osm, event):
|
def map_clicked(self, actor, event, view):
|
||||||
lat, lon = self.osm.get_event_location(event).get_degrees()
|
x, y = event.x, event.y
|
||||||
|
lat, lon = view.x_to_longitude(x), view.y_to_latitude(y)
|
||||||
if event.button == 3:
|
if event.button == 3:
|
||||||
self.osm.image_remove(self.osm_image)
|
self.marker.set_location(lat, lon)
|
||||||
self.osm_image = self.osm.image_add(lat, lon, self.icon)
|
self.xml.get_object('lon').set_text(str(lat))
|
||||||
self.xml.get_object('lat').set_text(str(lat))
|
self.xml.get_object('lat').set_text(str(lon))
|
||||||
self.xml.get_object('lon').set_text(str(lon))
|
|
||||||
if event.button == 2:
|
if event.button == 2:
|
||||||
self.show_contacts()
|
if self.markers_is_visible:
|
||||||
|
self.contacts_layer.animate_out_all_markers()
|
||||||
|
else:
|
||||||
|
self.contacts_layer.animate_in_all_markers()
|
||||||
|
self.markers_is_visible = not self.markers_is_visible
|
||||||
|
|
||||||
def is_valid_coord(self, lat, lon):
|
def is_valid_coord(self, lat, lon):
|
||||||
try:
|
try:
|
||||||
self.lat = float(lat)
|
self.lat = float(lat)
|
||||||
self.lon = float(lon)
|
self.lon = float(lon)
|
||||||
except ValueError, e:
|
except ValueError as e:
|
||||||
return
|
return
|
||||||
if not -85 < self.lat < 85 or not -180 < self.lon < 180:
|
if not -85 < self.lat < 85 or not -180 < self.lon < 180:
|
||||||
return
|
return
|
||||||
@@ -199,12 +219,12 @@ class SetLocationPluginConfigDialog(GajimPluginConfigDialog):
|
|||||||
lat = self.xml.get_object('lat').get_text()
|
lat = self.xml.get_object('lat').get_text()
|
||||||
lon = self.xml.get_object('lon').get_text()
|
lon = self.xml.get_object('lon').get_text()
|
||||||
if self.is_valid_coord(lat, lon):
|
if self.is_valid_coord(lat, lon):
|
||||||
self.osm.image_remove(self.osm_image)
|
#self.view.center_on(self.lat, self.lon)
|
||||||
self.osm_image = self.osm.image_add(self.lat, self.lon, self.icon)
|
self.marker.set_location(self.lat, self.lon)
|
||||||
self.osm.set_center(self.lat, self.lon)
|
|
||||||
|
|
||||||
def show_contacts(self):
|
def show_contacts(self):
|
||||||
if not self.images:
|
from gi.repository import Champlain
|
||||||
|
if not self.markers_is_visible:
|
||||||
data = {}
|
data = {}
|
||||||
accounts = gajim.contacts._accounts
|
accounts = gajim.contacts._accounts
|
||||||
for account in accounts:
|
for account in accounts:
|
||||||
@@ -218,18 +238,44 @@ class SetLocationPluginConfigDialog(GajimPluginConfigDialog):
|
|||||||
lon = pep['location']._pep_specific_data.get('lon', None)
|
lon = pep['location']._pep_specific_data.get('lon', None)
|
||||||
if not lat or not lon:
|
if not lat or not lon:
|
||||||
continue
|
continue
|
||||||
data[contact] = (lat, lon)
|
name = accounts[account].contacts.get_first_contact_from_jid(
|
||||||
|
contact).name
|
||||||
|
data[contact] = (lat, lon, name)
|
||||||
for jid in data:
|
for jid in data:
|
||||||
path = gtkgui_helpers.get_path_to_generic_or_avatar(None,
|
path = self.get_path_to_generic_or_avatar(None,
|
||||||
jid=jid, suffix='')
|
jid=jid, suffix='')
|
||||||
icon = gtk.gdk.pixbuf_new_from_file_at_size(path, 24, 24)
|
marker = Champlain.Label.new_from_file(path)
|
||||||
image = self.osm.image_add(float(data[jid][0]),
|
marker.set_text(data[jid][2])
|
||||||
float(data[jid][1]), icon)
|
self.contacts_layer = Champlain.MarkerLayer()
|
||||||
self.images.append(image)
|
|
||||||
else:
|
marker.set_location(float(data[jid][0]), float(data[jid][1]))
|
||||||
for image in self.images:
|
self.view.add_layer(self.contacts_layer)
|
||||||
self.osm.image_remove(image)
|
self.contacts_layer.add_marker(marker)
|
||||||
self.images = []
|
self.contacts_layer.animate_in_all_markers()
|
||||||
|
self.markers_is_visible = True
|
||||||
|
|
||||||
|
def get_path_to_generic_or_avatar(self, generic, jid=None, suffix=None):
|
||||||
|
"""
|
||||||
|
Choose between avatar image and default image
|
||||||
|
|
||||||
|
Returns full path to the avatar image if it exists, otherwise returns full
|
||||||
|
path to the image. generic must be with extension and suffix without
|
||||||
|
"""
|
||||||
|
if jid:
|
||||||
|
from common import helpers
|
||||||
|
# we want an avatar
|
||||||
|
puny_jid = helpers.sanitize_filename(jid)
|
||||||
|
path_to_file = os.path.join(gajim.AVATAR_PATH, puny_jid) + suffix
|
||||||
|
path_to_local_file = path_to_file + '_local'
|
||||||
|
for extension in ('.png', '.jpeg'):
|
||||||
|
path_to_local_file_full = path_to_local_file + extension
|
||||||
|
if os.path.exists(path_to_local_file_full):
|
||||||
|
return path_to_local_file_full
|
||||||
|
for extension in ('.png', '.jpeg'):
|
||||||
|
path_to_file_full = path_to_file + extension
|
||||||
|
if os.path.exists(path_to_file_full):
|
||||||
|
return path_to_file_full
|
||||||
|
return os.path.abspath(generic)
|
||||||
|
|
||||||
def on_preset_button_clicked(self, widget):
|
def on_preset_button_clicked(self, widget):
|
||||||
def on_ok(preset_name):
|
def on_ok(preset_name):
|
||||||
@@ -242,9 +288,9 @@ class SetLocationPluginConfigDialog(GajimPluginConfigDialog):
|
|||||||
widget = self.xml.get_object(name)
|
widget = self.xml.get_object(name)
|
||||||
preset[name] = widget.get_text()
|
preset[name] = widget.get_text()
|
||||||
preset = {preset_name: preset}
|
preset = {preset_name: preset}
|
||||||
presets = dict(self.plugin.config['presets'].items() + \
|
presets = dict(list(self.plugin.config['presets'].items()) + \
|
||||||
preset.items())
|
list(preset.items()))
|
||||||
if preset_name not in self.plugin.config['presets'].keys():
|
if preset_name not in list(self.plugin.config['presets'].keys()):
|
||||||
iter_ = self.preset_liststore.append((preset_name,))
|
iter_ = self.preset_liststore.append((preset_name,))
|
||||||
self.plugin.config['presets'] = presets
|
self.plugin.config['presets'] = presets
|
||||||
self.set_modal(False)
|
self.set_modal(False)
|
||||||
@@ -257,8 +303,8 @@ class SetLocationPluginConfigDialog(GajimPluginConfigDialog):
|
|||||||
if active < 0:
|
if active < 0:
|
||||||
self.xml.get_object('del_preset').set_sensitive(False)
|
self.xml.get_object('del_preset').set_sensitive(False)
|
||||||
return
|
return
|
||||||
pres_name = model[active][0].decode('utf-8')
|
pres_name = model[active][0]
|
||||||
for name in self.plugin.config['presets'][pres_name].keys():
|
for name in list(self.plugin.config['presets'][pres_name].keys()):
|
||||||
widget = self.xml.get_object(name)
|
widget = self.xml.get_object(name)
|
||||||
widget.set_text(str(self.plugin.config['presets'][pres_name][name]))
|
widget.set_text(str(self.plugin.config['presets'][pres_name][name]))
|
||||||
|
|
||||||
@@ -267,7 +313,7 @@ class SetLocationPluginConfigDialog(GajimPluginConfigDialog):
|
|||||||
def on_del_preset_clicked(self, widget):
|
def on_del_preset_clicked(self, widget):
|
||||||
active = self.preset_combo.get_active()
|
active = self.preset_combo.get_active()
|
||||||
active_iter = self.preset_combo.get_active_iter()
|
active_iter = self.preset_combo.get_active_iter()
|
||||||
name = self.preset_liststore[active][0].decode('utf-8')
|
name = self.preset_liststore[active][0]
|
||||||
presets = self.plugin.config['presets']
|
presets = self.plugin.config['presets']
|
||||||
del presets[name]
|
del presets[name]
|
||||||
self.plugin.config['presets'] = presets
|
self.plugin.config['presets'] = presets
|
||||||
|
|||||||
Reference in New Issue
Block a user