Remove all usage of get_gtk_builder()

This commit is contained in:
Philipp Hörist 2018-11-18 22:13:24 +01:00
parent 3c32d51174
commit b98f0a3f76
12 changed files with 87 additions and 122 deletions

View File

@ -33,7 +33,6 @@ from gi.repository import GObject
from gajim.common import app from gajim.common import app
from gajim.common.i18n import _ from gajim.common.i18n import _
from gajim import gtkgui_helpers
from gajim import dialogs from gajim import dialogs
from gajim import gui_menu_builder from gajim import gui_menu_builder
@ -41,6 +40,7 @@ from gajim import gui_menu_builder
from gajim.gtk.dialogs import ConfirmationDialog from gajim.gtk.dialogs import ConfirmationDialog
from gajim.gtk.dialogs import ConfirmationDialogDoubleRadio from gajim.gtk.dialogs import ConfirmationDialogDoubleRadio
from gajim.gtk.dialogs import ErrorDialog from gajim.gtk.dialogs import ErrorDialog
from gajim.gtk.util import get_builder
class FakeDataForm(Gtk.Table): class FakeDataForm(Gtk.Table):
@ -110,7 +110,7 @@ class RemoveAccountWindow:
def __init__(self, account): def __init__(self, account):
self.account = account self.account = account
xml = gtkgui_helpers.get_gtk_builder('remove_account_window.ui') xml = get_builder('remove_account_window.ui')
self.window = xml.get_object('remove_account_window') self.window = xml.get_object('remove_account_window')
active_window = app.app.get_active_window() active_window = app.app.get_active_window()
self.window.set_transient_for(active_window) self.window.set_transient_for(active_window)

View File

@ -36,6 +36,8 @@ from gajim.common import helpers
from gajim.common import app from gajim.common import app
from gajim.common.i18n import _ from gajim.common.i18n import _
from gajim.gtk.util import get_builder
class DataFormWidget(Gtk.Alignment): class DataFormWidget(Gtk.Alignment):
# "public" interface # "public" interface
@ -54,8 +56,7 @@ class DataFormWidget(Gtk.Alignment):
self.selectable = False self.selectable = False
self.clean_cb = None self.clean_cb = None
self.xml = gtkgui_helpers.get_gtk_builder('data_form_window.ui', self.xml = get_builder('data_form_window.ui', ['data_form_vbox'])
'data_form_vbox')
self.xml.connect_signals(self) self.xml.connect_signals(self)
for name in ('instructions_label', 'instructions_hseparator', for name in ('instructions_label', 'instructions_hseparator',
'single_form_viewport', 'data_form_types_notebook', 'single_form_viewport', 'data_form_types_notebook',
@ -453,8 +454,7 @@ class SingleForm(Gtk.Table):
elif field.type_ == 'jid-multi': elif field.type_ == 'jid-multi':
commonwidget = False commonwidget = False
xml = gtkgui_helpers.get_gtk_builder('data_form_window.ui', xml = get_builder('data_form_window.ui', ['multiple_form_hbox'])
'multiple_form_hbox')
widget = xml.get_object('multiple_form_hbox') widget = xml.get_object('multiple_form_hbox')
treeview = xml.get_object('records_treeview') treeview = xml.get_object('records_treeview')

View File

@ -57,6 +57,7 @@ from gajim.gtk.dialogs import *
from gajim.gtk.add_contact import AddNewContactWindow from gajim.gtk.add_contact import AddNewContactWindow
from gajim.gtk.util import get_icon_name from gajim.gtk.util import get_icon_name
from gajim.gtk.util import resize_window from gajim.gtk.util import resize_window
from gajim.gtk.util import get_builder
log = logging.getLogger('gajim.dialogs') log = logging.getLogger('gajim.dialogs')
@ -71,7 +72,7 @@ class EditGroupsDialog:
""" """
list_ is a list of (contact, account) tuples list_ is a list of (contact, account) tuples
""" """
self.xml = gtkgui_helpers.get_gtk_builder('edit_groups_dialog.ui') self.xml = get_builder('edit_groups_dialog.ui')
self.dialog = self.xml.get_object('edit_groups_dialog') self.dialog = self.xml.get_object('edit_groups_dialog')
self.dialog.set_transient_for(app.interface.roster.window) self.dialog.set_transient_for(app.interface.roster.window)
self.list_ = list_ self.list_ = list_
@ -221,7 +222,7 @@ class PassphraseDialog:
""" """
def __init__(self, titletext, labeltext, checkbuttontext=None, def __init__(self, titletext, labeltext, checkbuttontext=None,
ok_handler=None, cancel_handler=None, transient_for=None): ok_handler=None, cancel_handler=None, transient_for=None):
self.xml = gtkgui_helpers.get_gtk_builder('passphrase_dialog.ui') self.xml = get_builder('passphrase_dialog.ui')
self.window = self.xml.get_object('passphrase_dialog') self.window = self.xml.get_object('passphrase_dialog')
self.passphrase_entry = self.xml.get_object('passphrase_entry') self.passphrase_entry = self.xml.get_object('passphrase_entry')
self.passphrase = -1 self.passphrase = -1
@ -287,7 +288,7 @@ class ChooseGPGKeyDialog:
selected=None, transient_for=None): selected=None, transient_for=None):
'''secret_keys : {keyID: userName, ...}''' '''secret_keys : {keyID: userName, ...}'''
self.on_response = on_response self.on_response = on_response
xml = gtkgui_helpers.get_gtk_builder('choose_gpg_key_dialog.ui') xml = get_builder('choose_gpg_key_dialog.ui')
self.window = xml.get_object('choose_gpg_key_dialog') self.window = xml.get_object('choose_gpg_key_dialog')
self.window.set_title(title_text) self.window.set_title(title_text)
self.window.set_transient_for(transient_for) self.window.set_transient_for(transient_for)
@ -356,7 +357,7 @@ class ChangeActivityDialog:
self.activity = activity_ self.activity = activity_
self.subactivity = subactivity_ self.subactivity = subactivity_
self.text = text self.text = text
self.xml = gtkgui_helpers.get_gtk_builder('change_activity_dialog.ui') self.xml = get_builder('change_activity_dialog.ui')
self.window = self.xml.get_object('change_activity_dialog') self.window = self.xml.get_object('change_activity_dialog')
self.window.set_transient_for(app.interface.roster.window) self.window.set_transient_for(app.interface.roster.window)
@ -477,7 +478,7 @@ class ChangeMoodDialog:
self.on_response = on_response self.on_response = on_response
self.mood = mood_ self.mood = mood_
self.text = text self.text = text
self.xml = gtkgui_helpers.get_gtk_builder('change_mood_dialog.ui') self.xml = get_builder('change_mood_dialog.ui')
self.window = self.xml.get_object('change_mood_dialog') self.window = self.xml.get_object('change_mood_dialog')
self.window.set_transient_for(app.interface.roster.window) self.window.set_transient_for(app.interface.roster.window)
@ -595,7 +596,7 @@ class ChangeStatusMessageDialog(TimeoutDialog):
self.pep_dict = {} self.pep_dict = {}
self.show_pep = show_pep self.show_pep = show_pep
self.on_response = on_response self.on_response = on_response
self.xml = gtkgui_helpers.get_gtk_builder('change_status_message_dialog.ui') self.xml = get_builder('change_status_message_dialog.ui')
self.dialog = self.xml.get_object('change_status_message_dialog') self.dialog = self.xml.get_object('change_status_message_dialog')
self.dialog.set_transient_for(app.interface.roster.window) self.dialog.set_transient_for(app.interface.roster.window)
msg = None msg = None
@ -848,7 +849,7 @@ class SubscriptionRequestWindow(Gtk.ApplicationWindow):
self.set_position(Gtk.WindowPosition.CENTER) self.set_position(Gtk.WindowPosition.CENTER)
self.set_title(_('Subscription Request')) self.set_title(_('Subscription Request'))
xml = gtkgui_helpers.get_gtk_builder('subscription_request_window.ui') xml = get_builder('subscription_request_window.ui')
self.add(xml.get_object('subscription_box')) self.add(xml.get_object('subscription_box'))
self.jid = jid self.jid = jid
self.account = account self.account = account
@ -929,7 +930,7 @@ class SynchroniseSelectAccountDialog:
_('Without a connection, you can not synchronise your contacts.')) _('Without a connection, you can not synchronise your contacts.'))
raise GajimGeneralException('You are not connected to the server') raise GajimGeneralException('You are not connected to the server')
self.account = account self.account = account
self.xml = gtkgui_helpers.get_gtk_builder('synchronise_select_account_dialog.ui') self.xml = get_builder('synchronise_select_account_dialog.ui')
self.dialog = self.xml.get_object('synchronise_select_account_dialog') self.dialog = self.xml.get_object('synchronise_select_account_dialog')
self.dialog.set_transient_for(app.get_app_window('AccountsWindow')) self.dialog.set_transient_for(app.get_app_window('AccountsWindow'))
self.accounts_treeview = self.xml.get_object('accounts_treeview') self.accounts_treeview = self.xml.get_object('accounts_treeview')
@ -995,8 +996,7 @@ class SynchroniseSelectContactsDialog:
def __init__(self, account, remote_account): def __init__(self, account, remote_account):
self.local_account = account self.local_account = account
self.remote_account = remote_account self.remote_account = remote_account
self.xml = gtkgui_helpers.get_gtk_builder( self.xml = get_builder('synchronise_select_contacts_dialog.ui')
'synchronise_select_contacts_dialog.ui')
self.dialog = self.xml.get_object('synchronise_select_contacts_dialog') self.dialog = self.xml.get_object('synchronise_select_contacts_dialog')
self.contacts_treeview = self.xml.get_object('contacts_treeview') self.contacts_treeview = self.xml.get_object('contacts_treeview')
model = Gtk.ListStore(bool, str) model = Gtk.ListStore(bool, str)
@ -1081,8 +1081,7 @@ class RosterItemExchangeWindow:
show_dialog = False show_dialog = False
# Connect to gtk builder # Connect to gtk builder
self.xml = gtkgui_helpers.get_gtk_builder( self.xml = get_builder('roster_item_exchange_window.ui')
'roster_item_exchange_window.ui')
self.window = self.xml.get_object('roster_item_exchange_window') self.window = self.xml.get_object('roster_item_exchange_window')
# Add Widgets. # Add Widgets.
@ -1345,7 +1344,7 @@ class ProgressDialog:
During text is what to show during the procedure, messages_queue has the During text is what to show during the procedure, messages_queue has the
message to show in the textview message to show in the textview
""" """
self.xml = gtkgui_helpers.get_gtk_builder('progress_dialog.ui') self.xml = get_builder('progress_dialog.ui')
self.dialog = self.xml.get_object('progress_dialog') self.dialog = self.xml.get_object('progress_dialog')
self.label = self.xml.get_object('label') self.label = self.xml.get_object('label')
self.label.set_markup('<big>' + during_text + '</big>') self.label.set_markup('<big>' + during_text + '</big>')
@ -1382,7 +1381,7 @@ class TransformChatToMUC:
self.auto_jids = jids self.auto_jids = jids
self.preselected_jids = preselected self.preselected_jids = preselected
self.xml = gtkgui_helpers.get_gtk_builder('chat_to_muc_window.ui') self.xml = get_builder('chat_to_muc_window.ui')
self.window = self.xml.get_object('chat_to_muc_window') self.window = self.xml.get_object('chat_to_muc_window')
for widget_to_add in ('invite_button', 'cancel_button', for widget_to_add in ('invite_button', 'cancel_button',
@ -1600,7 +1599,7 @@ class VoIPCallReceivedDialog:
self.sid = sid self.sid = sid
self.content_types = content_types self.content_types = content_types
xml = gtkgui_helpers.get_gtk_builder('voip_call_received_dialog.ui') xml = get_builder('voip_call_received_dialog.ui')
xml.connect_signals(self) xml.connect_signals(self)
jid = app.get_jid_without_resource(self.fjid) jid = app.get_jid_without_resource(self.fjid)
@ -1740,8 +1739,7 @@ class ProgressWindow(Gtk.ApplicationWindow):
self.event = file.event self.event = file.event
self.file = file self.file = file
self.xml = gtkgui_helpers.get_gtk_builder( self.xml = get_builder('httpupload_progress_dialog.ui')
'httpupload_progress_dialog.ui')
self.label = self.xml.get_object('label') self.label = self.xml.get_object('label')
self.progressbar = self.xml.get_object('progressbar') self.progressbar = self.xml.get_object('progressbar')

View File

@ -77,6 +77,7 @@ from gajim.gtk.groupchat_config import GroupchatConfig
from gajim.gtk.adhoc_commands import CommandWindow from gajim.gtk.adhoc_commands import CommandWindow
from gajim.gtk.util import get_icon_name from gajim.gtk.util import get_icon_name
from gajim.gtk.util import get_affiliation_surface from gajim.gtk.util import get_affiliation_surface
from gajim.gtk.util import get_builder
log = logging.getLogger('gajim.groupchat_control') log = logging.getLogger('gajim.groupchat_control')
@ -2635,7 +2636,7 @@ class GroupchatControl(ChatControlBase):
user_role = self.get_role(user_nick) user_role = self.get_role(user_nick)
# making menu from gtk builder # making menu from gtk builder
xml = gtkgui_helpers.get_gtk_builder('gc_occupants_menu.ui') xml = get_builder('gc_occupants_menu.ui')
# these conditions were taken from JEP 0045 # these conditions were taken from JEP 0045
item = xml.get_object('kick_menuitem') item = xml.get_object('kick_menuitem')

View File

@ -29,7 +29,6 @@ from gajim.common.const import Option
from gajim.common.const import OptionKind from gajim.common.const import OptionKind
from gajim.common.const import OptionType from gajim.common.const import OptionType
from gajim import gtkgui_helpers
from gajim import gui_menu_builder from gajim import gui_menu_builder
from gajim import config from gajim import config
@ -39,6 +38,7 @@ from gajim.options_dialog import OptionsBox
from gajim.gtk.dialogs import ConfirmationDialog from gajim.gtk.dialogs import ConfirmationDialog
from gajim.gtk.dialogs import YesNoDialog from gajim.gtk.dialogs import YesNoDialog
from gajim.gtk.util import get_icon_name from gajim.gtk.util import get_icon_name
from gajim.gtk.util import get_builder
class AccountsWindow(Gtk.ApplicationWindow): class AccountsWindow(Gtk.ApplicationWindow):
@ -53,14 +53,11 @@ class AccountsWindow(Gtk.ApplicationWindow):
self.set_title(_('Accounts')) self.set_title(_('Accounts'))
self.need_relogin = {} self.need_relogin = {}
glade_objects = ['stack', 'box', 'account_list'] self._ui = get_builder('accounts_window.ui')
self.builder = gtkgui_helpers.get_gtk_builder('accounts_window.ui')
for obj in glade_objects:
setattr(self, obj, self.builder.get_object(obj))
self.account_list.add(Preferences(self)) self._ui.account_list.add(Preferences(self))
account_item = AddAccount() account_item = AddAccount()
self.account_list.add(account_item) self._ui.account_list.add(account_item)
account_item.set_activatable() account_item.set_activatable()
accounts = app.config.get_per('accounts') accounts = app.config.get_per('accounts')
@ -68,11 +65,11 @@ class AccountsWindow(Gtk.ApplicationWindow):
for account in accounts: for account in accounts:
self.need_relogin[account] = self.get_relogin_options(account) self.need_relogin[account] = self.get_relogin_options(account)
account_item = Account(account, self) account_item = Account(account, self)
self.account_list.add(account_item) self._ui.account_list.add(account_item)
account_item.set_activatable() account_item.set_activatable()
self.add(self.box) self.add(self._ui.box)
self.builder.connect_signals(self) self._ui.connect_signals(self)
self.connect('destroy', self.on_destroy) self.connect('destroy', self.on_destroy)
self.connect('key-press-event', self.on_key_press) self.connect('key-press-event', self.on_key_press)
@ -87,9 +84,9 @@ class AccountsWindow(Gtk.ApplicationWindow):
self.update_accounts() self.update_accounts()
def _activate_preferences_page(self): def _activate_preferences_page(self):
row = self.account_list.get_row_at_index(0) row = self._ui.account_list.get_row_at_index(0)
self.account_list.select_row(row) self._ui.account_list.select_row(row)
self.account_list.emit('row-activated', row) self._ui.account_list.emit('row-activated', row)
def on_key_press(self, widget, event): def on_key_press(self, widget, event):
if event.keyval == Gdk.KEY_Escape: if event.keyval == Gdk.KEY_Escape:
@ -108,7 +105,7 @@ class AccountsWindow(Gtk.ApplicationWindow):
self.check_relogin() self.check_relogin()
def update_accounts(self): def update_accounts(self):
for row in self.account_list.get_children(): for row in self._ui.account_list.get_children():
row.get_child().update() row.get_child().update()
@staticmethod @staticmethod
@ -116,18 +113,18 @@ class AccountsWindow(Gtk.ApplicationWindow):
row.get_child().on_row_activated() row.get_child().on_row_activated()
def remove_all_pages(self): def remove_all_pages(self):
for page in self.stack.get_children(): for page in self._ui.stack.get_children():
self.stack.remove(page) self._ui.stack.remove(page)
def set_page(self, page, name): def set_page(self, page, name):
self.remove_all_pages() self.remove_all_pages()
self.stack.add_named(page, name) self._ui.stack.add_named(page, name)
page.update() page.update()
page.show_all() page.show_all()
self.stack.set_visible_child(page) self._ui.stack.set_visible_child(page)
def update_proxy_list(self): def update_proxy_list(self):
page = self.stack.get_child_by_name('connection') page = self._ui.stack.get_child_by_name('connection')
if page is None: if page is None:
return return
page.listbox.get_option('proxy').update_values() page.listbox.get_option('proxy').update_values()
@ -231,26 +228,26 @@ class AccountsWindow(Gtk.ApplicationWindow):
remove(account) remove(account)
def remove_account(self, account): def remove_account(self, account):
for row in self.account_list.get_children(): for row in self._ui.account_list.get_children():
if row.get_child().account == account: if row.get_child().account == account:
self.account_list.remove(row) self._ui.account_list.remove(row)
del self.need_relogin[account] del self.need_relogin[account]
break break
self._activate_preferences_page() self._activate_preferences_page()
def add_account(self, account): def add_account(self, account):
account_item = Account(account, self) account_item = Account(account, self)
self.account_list.add(account_item) self._ui.account_list.add(account_item)
account_item.set_activatable() account_item.set_activatable()
self.account_list.show_all() self._ui.account_list.show_all()
self.stack.show_all() self._ui.stack.show_all()
self.need_relogin[account] = self.get_relogin_options(account) self.need_relogin[account] = self.get_relogin_options(account)
def select_account(self, account): def select_account(self, account):
for row in self.account_list.get_children(): for row in self._ui.account_list.get_children():
if row.get_child().account == account: if row.get_child().account == account:
self.account_list.select_row(row) self._ui.account_list.select_row(row)
self.account_list.emit('row-activated', row) self._ui.account_list.emit('row-activated', row)
break break
@staticmethod @staticmethod

View File

@ -1015,20 +1015,16 @@ class SendFileDialog(Gtk.ApplicationWindow):
self._send_callback = send_callback self._send_callback = send_callback
xml = gtkgui_helpers.get_gtk_builder('send_file_dialog.ui') self._ui = get_builder('send_file_dialog.ui')
grid = xml.get_object('send_file_grid')
self._filebox = xml.get_object('listbox') self.add(self._ui.send_file_grid)
self._description = xml.get_object('description')
self.add(grid)
self.connect('key-press-event', self._key_press_event) self.connect('key-press-event', self._key_press_event)
xml.connect_signals(self) self._ui.connect_signals(self)
self.show_all() self.show_all()
def _send(self, button): def _send(self, button):
for file in self._filebox.get_children(): for file in self._ui.listbox.get_children():
self._send_callback(str(file.path), self._get_description()) self._send_callback(str(file.path), self._get_description())
self.destroy() self.destroy()
@ -1040,22 +1036,22 @@ class SendFileDialog(Gtk.ApplicationWindow):
def _set_files(self, filenames): def _set_files(self, filenames):
# Clear the ListBox # Clear the ListBox
self._filebox.foreach(self._remove_widget, None) self._ui.listbox.foreach(self._remove_widget, None)
for file in filenames: for file in filenames:
row = FileRow(file) row = FileRow(file)
if row.path.is_dir(): if row.path.is_dir():
continue continue
last_dir = row.path.parent last_dir = row.path.parent
self._filebox.add(row) self._ui.listbox.add(row)
self._filebox.show_all() self._ui.listbox.show_all()
app.config.set('last_send_dir', str(last_dir)) app.config.set('last_send_dir', str(last_dir))
def _remove_widget(self, widget, data): def _remove_widget(self, widget, data):
self._filebox.remove(widget) self._ui.listbox.remove(widget)
def _get_description(self): def _get_description(self):
buffer_ = self._description.get_buffer() buffer_ = self._ui.description.get_buffer()
start, end = buffer_.get_bounds() start, end = buffer_.get_bounds()
return buffer_.get_text(start, end, False) return buffer_.get_text(start, end, False)

View File

@ -24,11 +24,9 @@
# along with Gajim. If not, see <http://www.gnu.org/licenses/>. # along with Gajim. If not, see <http://www.gnu.org/licenses/>.
import os import os
import sys
import math import math
import logging import logging
from io import BytesIO from io import BytesIO
import xml.etree.ElementTree as ET
from gi.repository import Gtk from gi.repository import Gtk
from gi.repository import Gdk from gi.repository import Gdk
@ -41,11 +39,21 @@ try:
except Exception: except Exception:
pass pass
from gajim.common import i18n
from gajim.common.i18n import _ from gajim.common.i18n import _
from gajim.common import app from gajim.common import app
from gajim.common import configpaths from gajim.common import helpers
from gajim.common.const import PEPEventType, ACTIVITIES, MOODS from gajim.common.const import PEPEventType
from gajim.common.const import ACTIVITIES
from gajim.common.const import MOODS
HAS_PYWIN32 = True
if os.name == 'nt':
try:
import win32file
import win32con
import pywintypes
except ImportError:
HAS_PYWIN32 = False
log = logging.getLogger('gajim.gtkgui_helpers') log = logging.getLogger('gajim.gtkgui_helpers')
@ -58,48 +66,6 @@ class Color:
ORANGE = Gdk.RGBA(red=245/255, green=121/255, blue=0/255, alpha=1) ORANGE = Gdk.RGBA(red=245/255, green=121/255, blue=0/255, alpha=1)
HAS_PYWIN32 = True
if os.name == 'nt':
try:
import win32file
import win32con
import pywintypes
except ImportError:
HAS_PYWIN32 = False
from gajim.common import helpers
def get_gtk_builder(file_name, widget=None):
file_path = os.path.join(configpaths.get('GUI'), file_name)
builder = Gtk.Builder()
builder.set_translation_domain(i18n.DOMAIN)
if sys.platform == "win32":
# This is a workaround for non working translation on Windows
tree = ET.parse(file_path)
for node in tree.iter():
if 'translatable' in node.attrib and node.text is not None:
node.text = _(node.text)
xml_text = ET.tostring(tree.getroot(),
encoding='unicode',
method='xml')
if widget is not None:
builder.add_objects_from_string(xml_text, [widget])
else:
# Workaround
# https://gitlab.gnome.org/GNOME/pygobject/issues/255
Gtk.Builder.__mro__[1].add_from_string(
builder, xml_text, len(xml_text.encode("utf-8")))
else:
if widget is not None:
builder.add_objects_from_file(file_path, [widget])
else:
builder.add_from_file(file_path)
return builder
def set_unset_urgency_hint(window, unread_messages_no): def set_unset_urgency_hint(window, unread_messages_no):
""" """
Sets/unset urgency hint in window argument depending if we have unread Sets/unset urgency hint in window argument depending if we have unread

View File

@ -26,6 +26,8 @@ from gajim.common import helpers
from gajim.common.i18n import ngettext from gajim.common.i18n import ngettext
from gajim.common.i18n import _ from gajim.common.i18n import _
from gajim.gtk.util import get_builder
def build_resources_submenu(contacts, account, action, room_jid=None, def build_resources_submenu(contacts, account, action, room_jid=None,
room_account=None, cap=None): room_account=None, cap=None):
@ -208,7 +210,7 @@ control=None, gc_contact=None, is_anonymous=True):
our_jid = jid == app.get_jid_from_account(account) our_jid = jid == app.get_jid_from_account(account)
roster = app.interface.roster roster = app.interface.roster
xml = gtkgui_helpers.get_gtk_builder('contact_context_menu.ui') xml = get_builder('contact_context_menu.ui')
contact_context_menu = xml.get_object('contact_context_menu') contact_context_menu = xml.get_object('contact_context_menu')
start_chat_menuitem = xml.get_object('start_chat_menuitem') start_chat_menuitem = xml.get_object('start_chat_menuitem')

View File

@ -22,13 +22,14 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Gajim. If not, see <http://www.gnu.org/licenses/>. # along with Gajim. If not, see <http://www.gnu.org/licenses/>.
from gajim import gtkgui_helpers
import uuid import uuid
from gajim.common import app from gajim.common import app
from gajim.common import helpers from gajim.common import helpers
from gajim.common import ged from gajim.common import ged
from gajim.gtk.util import get_builder
# Derived types MUST register their type IDs here if custom behavor is required # Derived types MUST register their type IDs here if custom behavor is required
TYPE_CHAT = 'chat' TYPE_CHAT = 'chat'
TYPE_GC = 'gc' TYPE_GC = 'gc'
@ -60,7 +61,7 @@ class MessageControl:
app.last_message_time[self.account][self.get_full_jid()] = 0 app.last_message_time[self.account][self.get_full_jid()] = 0
self.xml = gtkgui_helpers.get_gtk_builder('%s.ui' % widget_name) self.xml = get_builder('%s.ui' % widget_name)
self.xml.connect_signals(self) self.xml.connect_signals(self)
self.widget = self.xml.get_object('%s_hbox' % widget_name) self.widget = self.xml.get_object('%s_hbox' % widget_name)

View File

@ -45,6 +45,7 @@ from gajim.gtk.util import get_icon_name
from gajim.gtk.util import resize_window from gajim.gtk.util import resize_window
from gajim.gtk.util import move_window from gajim.gtk.util import move_window
from gajim.gtk.util import get_app_icon_list from gajim.gtk.util import get_app_icon_list
from gajim.gtk.util import get_builder
#################### ####################
@ -80,7 +81,7 @@ class MessageWindow:
self.dont_warn_on_delete = False self.dont_warn_on_delete = False
self.widget_name = 'message_window' self.widget_name = 'message_window'
self.xml = gtkgui_helpers.get_gtk_builder('%s.ui' % self.widget_name) self.xml = get_builder('%s.ui' % self.widget_name)
self.window = self.xml.get_object(self.widget_name) self.window = self.xml.get_object(self.widget_name)
self.window.set_application(app.app) self.window.set_application(app.app)
self.notebook = self.xml.get_object('notebook') self.notebook = self.xml.get_object('notebook')
@ -300,7 +301,7 @@ class MessageWindow:
ctrl.scroll_to_end() ctrl.scroll_to_end()
# Add notebook page and connect up to the tab's close button # Add notebook page and connect up to the tab's close button
xml = gtkgui_helpers.get_gtk_builder('message_window.ui', 'chat_tab_ebox') xml = get_builder('message_window.ui', ['chat_tab_ebox'])
tab_label_box = xml.get_object('chat_tab_ebox') tab_label_box = xml.get_object('chat_tab_ebox')
widget = xml.get_object('tab_close_button') widget = xml.get_object('tab_close_button')
# this reduces the size of the button # this reduces the size of the button

View File

@ -84,6 +84,7 @@ from gajim.gtk.util import get_icon_name
from gajim.gtk.util import resize_window from gajim.gtk.util import resize_window
from gajim.gtk.util import move_window from gajim.gtk.util import move_window
from gajim.gtk.util import get_metacontact_surface from gajim.gtk.util import get_metacontact_surface
from gajim.gtk.util import get_builder
log = logging.getLogger('gajim.roster') log = logging.getLogger('gajim.roster')
@ -4873,7 +4874,7 @@ class RosterWindow:
# we have to create our own set of icons for the menu # we have to create our own set of icons for the menu
# using self.jabber_status_images is poopoo # using self.jabber_status_images is poopoo
if not app.config.get_per('accounts', account, 'is_zeroconf'): if not app.config.get_per('accounts', account, 'is_zeroconf'):
xml = gtkgui_helpers.get_gtk_builder('account_context_menu.ui') xml = get_builder('account_context_menu.ui')
account_context_menu = xml.get_object('account_context_menu') account_context_menu = xml.get_object('account_context_menu')
status_menuitem = xml.get_object('status_menuitem') status_menuitem = xml.get_object('status_menuitem')
@ -4982,7 +4983,7 @@ class RosterWindow:
pep_menuitem): pep_menuitem):
widget.set_sensitive(False) widget.set_sensitive(False)
else: else:
xml = gtkgui_helpers.get_gtk_builder('zeroconf_context_menu.ui') xml = get_builder('zeroconf_context_menu.ui')
account_context_menu = xml.get_object('zeroconf_context_menu') account_context_menu = xml.get_object('zeroconf_context_menu')
status_menuitem = xml.get_object('status_menuitem') status_menuitem = xml.get_object('status_menuitem')
@ -5368,7 +5369,7 @@ class RosterWindow:
""" """
Add FOR ACCOUNT options Add FOR ACCOUNT options
""" """
xml = gtkgui_helpers.get_gtk_builder('advanced_menuitem_menu.ui') xml = get_builder('advanced_menuitem_menu.ui')
advanced_menuitem_menu = xml.get_object('advanced_menuitem_menu') advanced_menuitem_menu = xml.get_object('advanced_menuitem_menu')
xml_console_menuitem = xml.get_object('xml_console_menuitem') xml_console_menuitem = xml.get_object('xml_console_menuitem')
@ -5618,7 +5619,7 @@ class RosterWindow:
GdkPixbuf.Pixbuf, GdkPixbuf.Pixbuf, str, str, GdkPixbuf.Pixbuf, GdkPixbuf.Pixbuf, str, str,
Gtk.Image, str, bool] Gtk.Image, str, bool]
self.xml = gtkgui_helpers.get_gtk_builder('roster_window.ui') self.xml = get_builder('roster_window.ui')
self.window = self.xml.get_object('roster_window') self.window = self.xml.get_object('roster_window')
application.add_window(self.window) application.add_window(self.window)
self.add_actions() self.add_actions()

View File

@ -43,6 +43,8 @@ from gajim.common.i18n import Q_
from gajim.common.i18n import _ from gajim.common.i18n import _
from gajim.common.const import AvatarSize from gajim.common.const import AvatarSize
from gajim.gtk.util import get_builder
# log = logging.getLogger('gajim.vcard') # log = logging.getLogger('gajim.vcard')
@ -53,7 +55,7 @@ class VcardWindow:
def __init__(self, contact, account, gc_contact=None): def __init__(self, contact, account, gc_contact=None):
# the contact variable is the jid if vcard is true # the contact variable is the jid if vcard is true
self.xml = gtkgui_helpers.get_gtk_builder('vcard_information_window.ui') self.xml = get_builder('vcard_information_window.ui')
self.window = self.xml.get_object('vcard_information_window') self.window = self.xml.get_object('vcard_information_window')
self.progressbar = self.xml.get_object('progressbar') self.progressbar = self.xml.get_object('progressbar')
@ -479,7 +481,7 @@ class VcardWindow:
class ZeroconfVcardWindow: class ZeroconfVcardWindow:
def __init__(self, contact, account, is_fake=False): def __init__(self, contact, account, is_fake=False):
# the contact variable is the jid if vcard is true # the contact variable is the jid if vcard is true
self.xml = gtkgui_helpers.get_gtk_builder('zeroconf_information_window.ui') self.xml = get_builder('zeroconf_information_window.ui')
self.window = self.xml.get_object('zeroconf_information_window') self.window = self.xml.get_object('zeroconf_information_window')
self.contact = contact self.contact = contact