Philipp Hörist pushed to branch master at gajim / gajim
Commits:
-
746c4987
by lovetox at 2020-08-12T17:31:01+02:00
-
2f57f62d
by lovetox at 2020-08-12T17:34:15+02:00
-
d9b60f8e
by lovetox at 2020-08-12T18:11:49+02:00
5 changed files:
- gajim/common/config.py
- gajim/data/gui/preferences_window.ui
- gajim/data/gui/status_change_window.ui
- gajim/gtk/preferences.py
- gajim/gtk/status_change.py
Changes:
| ... | ... | @@ -370,12 +370,6 @@ class Config: |
| 370 | 370 |
_('Working'): [_('I\'m working.'), 'working', 'other', '', '', ''],
|
| 371 | 371 |
_('Phone'): [_('I\'m on the phone.'), 'talking', 'on_the_phone', '', '', ''],
|
| 372 | 372 |
_('Out'): [_('I\'m out enjoying life.'), 'relaxing', 'going_out', '', '', ''],
|
| 373 |
- '_last_online': ['', '', '', '', '', ''],
|
|
| 374 |
- '_last_chat': ['', '', '', '', '', ''],
|
|
| 375 |
- '_last_away': ['', '', '', '', '', ''],
|
|
| 376 |
- '_last_xa': ['', '', '', '', '', ''],
|
|
| 377 |
- '_last_dnd': ['', '', '', '', '', ''],
|
|
| 378 |
- '_last_offline': ['', '', '', '', '', ''],
|
|
| 379 | 373 |
}
|
| 380 | 374 |
|
| 381 | 375 |
soundevents_default = {
|
| ... | ... | @@ -1575,148 +1575,7 @@ $T will be replaced by auto-not-available timeout.</property> |
| 1575 | 1575 |
</packing>
|
| 1576 | 1576 |
</child>
|
| 1577 | 1577 |
<child>
|
| 1578 |
- <object class="GtkFrame">
|
|
| 1579 |
- <property name="visible">True</property>
|
|
| 1580 |
- <property name="can_focus">False</property>
|
|
| 1581 |
- <property name="label_xalign">0</property>
|
|
| 1582 |
- <property name="shadow_type">none</property>
|
|
| 1583 |
- <child>
|
|
| 1584 |
- <object class="GtkGrid">
|
|
| 1585 |
- <property name="visible">True</property>
|
|
| 1586 |
- <property name="can_focus">False</property>
|
|
| 1587 |
- <property name="margin_top">6</property>
|
|
| 1588 |
- <property name="row_spacing">6</property>
|
|
| 1589 |
- <property name="column_spacing">12</property>
|
|
| 1590 |
- <child>
|
|
| 1591 |
- <object class="GtkScrolledWindow" id="scrolledwindow1">
|
|
| 1592 |
- <property name="height_request">250</property>
|
|
| 1593 |
- <property name="visible">True</property>
|
|
| 1594 |
- <property name="can_focus">True</property>
|
|
| 1595 |
- <property name="hexpand">True</property>
|
|
| 1596 |
- <property name="vexpand">True</property>
|
|
| 1597 |
- <property name="shadow_type">in</property>
|
|
| 1598 |
- <child>
|
|
| 1599 |
- <object class="GtkTreeView" id="msg_treeview">
|
|
| 1600 |
- <property name="visible">True</property>
|
|
| 1601 |
- <property name="can_focus">True</property>
|
|
| 1602 |
- <property name="model">status_message_liststore</property>
|
|
| 1603 |
- <property name="headers_visible">False</property>
|
|
| 1604 |
- <property name="search_column">0</property>
|
|
| 1605 |
- <signal name="cursor-changed" handler="on_msg_treeview_cursor_changed" swapped="no"/>
|
|
| 1606 |
- <signal name="key-press-event" handler="on_msg_treeview_key_press_event" swapped="no"/>
|
|
| 1607 |
- <child internal-child="selection">
|
|
| 1608 |
- <object class="GtkTreeSelection"/>
|
|
| 1609 |
- </child>
|
|
| 1610 |
- </object>
|
|
| 1611 |
- </child>
|
|
| 1612 |
- </object>
|
|
| 1613 |
- <packing>
|
|
| 1614 |
- <property name="left_attach">0</property>
|
|
| 1615 |
- <property name="top_attach">0</property>
|
|
| 1616 |
- </packing>
|
|
| 1617 |
- </child>
|
|
| 1618 |
- <child>
|
|
| 1619 |
- <object class="GtkScrolledWindow" id="scrolledwindow2">
|
|
| 1620 |
- <property name="visible">True</property>
|
|
| 1621 |
- <property name="can_focus">True</property>
|
|
| 1622 |
- <property name="hexpand">True</property>
|
|
| 1623 |
- <property name="hscrollbar_policy">never</property>
|
|
| 1624 |
- <property name="vscrollbar_policy">never</property>
|
|
| 1625 |
- <property name="shadow_type">in</property>
|
|
| 1626 |
- <child>
|
|
| 1627 |
- <object class="GtkTextView" id="msg_textview">
|
|
| 1628 |
- <property name="height_request">21</property>
|
|
| 1629 |
- <property name="visible">True</property>
|
|
| 1630 |
- <property name="can_focus">True</property>
|
|
| 1631 |
- <property name="wrap_mode">word</property>
|
|
| 1632 |
- </object>
|
|
| 1633 |
- </child>
|
|
| 1634 |
- </object>
|
|
| 1635 |
- <packing>
|
|
| 1636 |
- <property name="left_attach">0</property>
|
|
| 1637 |
- <property name="top_attach">1</property>
|
|
| 1638 |
- </packing>
|
|
| 1639 |
- </child>
|
|
| 1640 |
- <child>
|
|
| 1641 |
- <object class="GtkButtonBox">
|
|
| 1642 |
- <property name="visible">True</property>
|
|
| 1643 |
- <property name="can_focus">False</property>
|
|
| 1644 |
- <property name="halign">start</property>
|
|
| 1645 |
- <property name="valign">start</property>
|
|
| 1646 |
- <property name="orientation">vertical</property>
|
|
| 1647 |
- <property name="spacing">12</property>
|
|
| 1648 |
- <property name="layout_style">start</property>
|
|
| 1649 |
- <child>
|
|
| 1650 |
- <object class="GtkButton" id="new_msg_button">
|
|
| 1651 |
- <property name="visible">True</property>
|
|
| 1652 |
- <property name="can_focus">True</property>
|
|
| 1653 |
- <property name="can_default">True</property>
|
|
| 1654 |
- <property name="receives_default">False</property>
|
|
| 1655 |
- <signal name="clicked" handler="on_new_msg_button_clicked" swapped="no"/>
|
|
| 1656 |
- <child>
|
|
| 1657 |
- <object class="GtkImage" id="status-message-add">
|
|
| 1658 |
- <property name="visible">True</property>
|
|
| 1659 |
- <property name="can_focus">False</property>
|
|
| 1660 |
- <property name="icon_name">list-add-symbolic</property>
|
|
| 1661 |
- </object>
|
|
| 1662 |
- </child>
|
|
| 1663 |
- </object>
|
|
| 1664 |
- <packing>
|
|
| 1665 |
- <property name="expand">False</property>
|
|
| 1666 |
- <property name="fill">False</property>
|
|
| 1667 |
- <property name="position">0</property>
|
|
| 1668 |
- </packing>
|
|
| 1669 |
- </child>
|
|
| 1670 |
- <child>
|
|
| 1671 |
- <object class="GtkButton" id="delete_msg_button">
|
|
| 1672 |
- <property name="visible">True</property>
|
|
| 1673 |
- <property name="can_focus">True</property>
|
|
| 1674 |
- <property name="can_default">True</property>
|
|
| 1675 |
- <property name="receives_default">False</property>
|
|
| 1676 |
- <signal name="clicked" handler="on_delete_msg_button_clicked" swapped="no"/>
|
|
| 1677 |
- <child>
|
|
| 1678 |
- <object class="GtkImage" id="status-message-remove">
|
|
| 1679 |
- <property name="visible">True</property>
|
|
| 1680 |
- <property name="can_focus">False</property>
|
|
| 1681 |
- <property name="icon_name">list-remove-symbolic</property>
|
|
| 1682 |
- </object>
|
|
| 1683 |
- </child>
|
|
| 1684 |
- </object>
|
|
| 1685 |
- <packing>
|
|
| 1686 |
- <property name="expand">False</property>
|
|
| 1687 |
- <property name="fill">False</property>
|
|
| 1688 |
- <property name="position">1</property>
|
|
| 1689 |
- </packing>
|
|
| 1690 |
- </child>
|
|
| 1691 |
- </object>
|
|
| 1692 |
- <packing>
|
|
| 1693 |
- <property name="left_attach">1</property>
|
|
| 1694 |
- <property name="top_attach">0</property>
|
|
| 1695 |
- </packing>
|
|
| 1696 |
- </child>
|
|
| 1697 |
- <child>
|
|
| 1698 |
- <placeholder/>
|
|
| 1699 |
- </child>
|
|
| 1700 |
- </object>
|
|
| 1701 |
- </child>
|
|
| 1702 |
- <child type="label">
|
|
| 1703 |
- <object class="GtkLabel">
|
|
| 1704 |
- <property name="visible">True</property>
|
|
| 1705 |
- <property name="can_focus">False</property>
|
|
| 1706 |
- <property name="label" translatable="yes">Preset Status Messages</property>
|
|
| 1707 |
- <property name="use_markup">True</property>
|
|
| 1708 |
- <style>
|
|
| 1709 |
- <class name="bold"/>
|
|
| 1710 |
- <class name="margin-top6"/>
|
|
| 1711 |
- </style>
|
|
| 1712 |
- </object>
|
|
| 1713 |
- </child>
|
|
| 1714 |
- </object>
|
|
| 1715 |
- <packing>
|
|
| 1716 |
- <property name="expand">True</property>
|
|
| 1717 |
- <property name="fill">True</property>
|
|
| 1718 |
- <property name="position">2</property>
|
|
| 1719 |
- </packing>
|
|
| 1578 |
+ <placeholder/>
|
|
| 1720 | 1579 |
</child>
|
| 1721 | 1580 |
</object>
|
| 1722 | 1581 |
<packing>
|
| 1 | 1 |
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
-<!-- Generated with glade 3.36.0 -->
|
|
| 2 |
+<!-- Generated with glade 3.22.1 -->
|
|
| 3 | 3 |
<interface>
|
| 4 | 4 |
<requires lib="gtk+" version="3.22"/>
|
| 5 | 5 |
<object class="GtkPopover" id="preset_popover">
|
| ... | ... | @@ -116,7 +116,7 @@ |
| 116 | 116 |
</packing>
|
| 117 | 117 |
</child>
|
| 118 | 118 |
<child>
|
| 119 |
- <object class="GtkGrid">
|
|
| 119 |
+ <object class="GtkGrid" id="pep_grid">
|
|
| 120 | 120 |
<property name="visible">True</property>
|
| 121 | 121 |
<property name="can_focus">False</property>
|
| 122 | 122 |
<property name="halign">center</property>
|
| ... | ... | @@ -270,17 +270,6 @@ class Preferences(Gtk.ApplicationWindow): |
| 270 | 270 |
st = app.config.get('ask_offline_status')
|
| 271 | 271 |
self._ui.prompt_offline_status_message_checkbutton.set_active(st)
|
| 272 | 272 |
|
| 273 |
- # Status messages
|
|
| 274 |
- renderer = Gtk.CellRendererText()
|
|
| 275 |
- renderer.connect('edited', self.on_msg_cell_edited)
|
|
| 276 |
- renderer.set_property('editable', True)
|
|
| 277 |
- col = Gtk.TreeViewColumn('name', renderer, text=0)
|
|
| 278 |
- self._ui.msg_treeview.append_column(col)
|
|
| 279 |
- self.fill_msg_treeview()
|
|
| 280 |
- |
|
| 281 |
- buf = self._ui.msg_textview.get_buffer()
|
|
| 282 |
- buf.connect('end-user-action', self.on_msg_textview_changed)
|
|
| 283 |
- |
|
| 284 | 273 |
### Style tab ###
|
| 285 | 274 |
# Themes
|
| 286 | 275 |
self.changed_id = self._ui.theme_combobox.connect(
|
| ... | ... | @@ -427,11 +416,6 @@ class Preferences(Gtk.ApplicationWindow): |
| 427 | 416 |
self._ui.connect_signals(self)
|
| 428 | 417 |
self.connect('key-press-event', self._on_key_press)
|
| 429 | 418 |
|
| 430 |
- self._ui.msg_treeview.get_model().connect('row-changed',
|
|
| 431 |
- self.on_msg_treemodel_row_changed)
|
|
| 432 |
- self._ui.msg_treeview.get_model().connect('row-deleted',
|
|
| 433 |
- self.on_msg_treemodel_row_deleted)
|
|
| 434 |
- |
|
| 435 | 419 |
self.sounds_preferences = None
|
| 436 | 420 |
self.theme_preferences = None
|
| 437 | 421 |
|
| ... | ... | @@ -687,111 +671,6 @@ class Preferences(Gtk.ApplicationWindow): |
| 687 | 671 |
def on_prompt_offline_status_message_checkbutton_toggled(self, widget):
|
| 688 | 672 |
self.on_checkbutton_toggled(widget, 'ask_offline_status')
|
| 689 | 673 |
|
| 690 |
- def save_status_messages(self, model):
|
|
| 691 |
- for msg in app.config.get_per('statusmsg'):
|
|
| 692 |
- app.config.del_per('statusmsg', msg)
|
|
| 693 |
- iter_ = model.get_iter_first()
|
|
| 694 |
- while iter_:
|
|
| 695 |
- val = model[iter_][0]
|
|
| 696 |
- if model[iter_][1]: # We have a preset message
|
|
| 697 |
- if not val: # No title, use message text for title
|
|
| 698 |
- val = model[iter_][1]
|
|
| 699 |
- app.config.add_per('statusmsg', val)
|
|
| 700 |
- msg = helpers.to_one_line(model[iter_][1])
|
|
| 701 |
- app.config.set_per('statusmsg', val, 'message', msg)
|
|
| 702 |
- i = 2
|
|
| 703 |
- # Store mood / activity
|
|
| 704 |
- for subname in ('activity', 'subactivity', 'activity_text',
|
|
| 705 |
- 'mood', 'mood_text'):
|
|
| 706 |
- val2 = model[iter_][i]
|
|
| 707 |
- if not val2:
|
|
| 708 |
- val2 = ''
|
|
| 709 |
- app.config.set_per('statusmsg', val, subname, val2)
|
|
| 710 |
- i += 1
|
|
| 711 |
- iter_ = model.iter_next(iter_)
|
|
| 712 |
- |
|
| 713 |
- def on_msg_treemodel_row_changed(self, model, path, iter_):
|
|
| 714 |
- self.save_status_messages(model)
|
|
| 715 |
- |
|
| 716 |
- def on_msg_treemodel_row_deleted(self, model, path):
|
|
| 717 |
- self.save_status_messages(model)
|
|
| 718 |
- |
|
| 719 |
- def fill_msg_treeview(self):
|
|
| 720 |
- self._ui.delete_msg_button.set_sensitive(False)
|
|
| 721 |
- model = self._ui.msg_treeview.get_model()
|
|
| 722 |
- model.clear()
|
|
| 723 |
- preset_status = []
|
|
| 724 |
- for msg_name in app.config.get_per('statusmsg'):
|
|
| 725 |
- if msg_name.startswith('_last_'):
|
|
| 726 |
- continue
|
|
| 727 |
- preset_status.append(msg_name)
|
|
| 728 |
- preset_status.sort()
|
|
| 729 |
- for msg_name in preset_status:
|
|
| 730 |
- msg_text = app.config.get_per('statusmsg', msg_name, 'message')
|
|
| 731 |
- msg_text = helpers.from_one_line(msg_text)
|
|
| 732 |
- activity = app.config.get_per('statusmsg', msg_name, 'activity')
|
|
| 733 |
- subactivity = app.config.get_per('statusmsg', msg_name,
|
|
| 734 |
- 'subactivity')
|
|
| 735 |
- activity_text = app.config.get_per('statusmsg', msg_name,
|
|
| 736 |
- 'activity_text')
|
|
| 737 |
- mood = app.config.get_per('statusmsg', msg_name, 'mood')
|
|
| 738 |
- mood_text = app.config.get_per('statusmsg', msg_name, 'mood_text')
|
|
| 739 |
- iter_ = model.append()
|
|
| 740 |
- model.set(iter_, 0, msg_name, 1, msg_text, 2, activity, 3,
|
|
| 741 |
- subactivity, 4, activity_text, 5, mood, 6, mood_text)
|
|
| 742 |
- |
|
| 743 |
- def on_msg_cell_edited(self, cell, row, new_text):
|
|
| 744 |
- model = self._ui.msg_treeview.get_model()
|
|
| 745 |
- iter_ = model.get_iter_from_string(row)
|
|
| 746 |
- model.set_value(iter_, 0, new_text)
|
|
| 747 |
- |
|
| 748 |
- def on_msg_treeview_cursor_changed(self, widget, data=None):
|
|
| 749 |
- sel = self._ui.msg_treeview.get_selection()
|
|
| 750 |
- if not sel:
|
|
| 751 |
- return
|
|
| 752 |
- (model, iter_) = sel.get_selected()
|
|
| 753 |
- if not iter_:
|
|
| 754 |
- return
|
|
| 755 |
- self._ui.delete_msg_button.set_sensitive(True)
|
|
| 756 |
- buf = self._ui.msg_textview.get_buffer()
|
|
| 757 |
- msg = model[iter_][1]
|
|
| 758 |
- buf.set_text(msg)
|
|
| 759 |
- |
|
| 760 |
- def on_new_msg_button_clicked(self, widget, data=None):
|
|
| 761 |
- model = self._ui.msg_treeview.get_model()
|
|
| 762 |
- iter_ = model.append()
|
|
| 763 |
- model.set(
|
|
| 764 |
- iter_, 0, _('status message title'), 1,
|
|
| 765 |
- _('status message text'))
|
|
| 766 |
- self._ui.msg_treeview.set_cursor(model.get_path(iter_))
|
|
| 767 |
- |
|
| 768 |
- def on_delete_msg_button_clicked(self, widget, data=None):
|
|
| 769 |
- sel = self._ui.msg_treeview.get_selection()
|
|
| 770 |
- if not sel:
|
|
| 771 |
- return
|
|
| 772 |
- (model, iter_) = sel.get_selected()
|
|
| 773 |
- if not iter_:
|
|
| 774 |
- return
|
|
| 775 |
- buf = self._ui.msg_textview.get_buffer()
|
|
| 776 |
- model.remove(iter_)
|
|
| 777 |
- buf.set_text('')
|
|
| 778 |
- self._ui.delete_msg_button.set_sensitive(False)
|
|
| 779 |
- |
|
| 780 |
- def on_msg_textview_changed(self, widget, data=None):
|
|
| 781 |
- sel = self._ui.msg_treeview.get_selection()
|
|
| 782 |
- if not sel:
|
|
| 783 |
- return
|
|
| 784 |
- (model, iter_) = sel.get_selected()
|
|
| 785 |
- if not iter_:
|
|
| 786 |
- return
|
|
| 787 |
- buf = self._ui.msg_textview.get_buffer()
|
|
| 788 |
- first_iter, end_iter = buf.get_bounds()
|
|
| 789 |
- model.set_value(iter_, 1, buf.get_text(first_iter, end_iter, True))
|
|
| 790 |
- |
|
| 791 |
- def on_msg_treeview_key_press_event(self, widget, event):
|
|
| 792 |
- if event.keyval == Gdk.KEY_Delete:
|
|
| 793 |
- self.on_delete_msg_button_clicked(widget)
|
|
| 794 |
- |
|
| 795 | 674 |
### Style ###
|
| 796 | 675 |
@staticmethod
|
| 797 | 676 |
def on_theme_combobox_changed(combobox):
|
| ... | ... | @@ -57,6 +57,7 @@ class StatusChange(Gtk.ApplicationWindow, TimeoutWindow): |
| 57 | 57 |
self.set_name('StatusChange')
|
| 58 | 58 |
self.set_application(app.app)
|
| 59 | 59 |
self.set_position(Gtk.WindowPosition.CENTER)
|
| 60 |
+ self.set_default_size(400, 350)
|
|
| 60 | 61 |
self.set_show_menubar(False)
|
| 61 | 62 |
self.set_transient_for(app.interface.roster.window)
|
| 62 | 63 |
self.title_text = _('Status Message') # TimeoutWindow
|
| ... | ... | @@ -96,14 +97,8 @@ class StatusChange(Gtk.ApplicationWindow, TimeoutWindow): |
| 96 | 97 |
self._draw_mood()
|
| 97 | 98 |
self._init_moods()
|
| 98 | 99 |
else:
|
| 99 |
- self._ui.activity_label.set_no_show_all(True)
|
|
| 100 |
- self._ui.activity_button.set_no_show_all(True)
|
|
| 101 |
- self._ui.mood_label.set_no_show_all(True)
|
|
| 102 |
- self._ui.mood_button.set_no_show_all(True)
|
|
| 103 |
- self._ui.activity_label.hide()
|
|
| 104 |
- self._ui.activity_button.hide()
|
|
| 105 |
- self._ui.mood_label.hide()
|
|
| 106 |
- self._ui.mood_button.hide()
|
|
| 100 |
+ self._ui.pep_grid.set_no_show_all(True)
|
|
| 101 |
+ self._ui.pep_grid.hide()
|
|
| 107 | 102 |
|
| 108 | 103 |
self._message_buffer.connect('changed', self._stop_timeout)
|
| 109 | 104 |
self.connect('key-press-event', self._on_key_press)
|
| ... | ... | @@ -161,7 +156,7 @@ class StatusChange(Gtk.ApplicationWindow, TimeoutWindow): |
| 161 | 156 |
activities = []
|
| 162 | 157 |
subactivities = []
|
| 163 | 158 |
moods = []
|
| 164 |
- for account in app.get_connected_accounts():
|
|
| 159 |
+ for account in app.connections:
|
|
| 165 | 160 |
status_messages.append(app.connections[account].status_message)
|
| 166 | 161 |
activity_data = app.connections[account].pep.get(
|
| 167 | 162 |
PEPEventType.ACTIVITY)
|