make error diaogs in accounts window transient for ccounts window. See #7185
This commit is contained in:
		
							parent
							
								
									a8d831b6de
								
							
						
					
					
						commit
						4a5e2385b5
					
				
					 2 changed files with 30 additions and 19 deletions
				
			
		| 
						 | 
					@ -2011,7 +2011,8 @@ class AccountsWindow:
 | 
				
			||||||
        account = self.current_account
 | 
					        account = self.current_account
 | 
				
			||||||
        if len(gajim.events.get_events(account)):
 | 
					        if len(gajim.events.get_events(account)):
 | 
				
			||||||
            dialogs.ErrorDialog(_('Unread events'),
 | 
					            dialogs.ErrorDialog(_('Unread events'),
 | 
				
			||||||
                _('Read all pending events before removing this account.'))
 | 
					                _('Read all pending events before removing this account.'),
 | 
				
			||||||
 | 
					                transient_for=self.window)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if gajim.config.get_per('accounts', account, 'is_zeroconf'):
 | 
					        if gajim.config.get_per('accounts', account, 'is_zeroconf'):
 | 
				
			||||||
| 
						 | 
					@ -2054,27 +2055,30 @@ class AccountsWindow:
 | 
				
			||||||
        if active and gajim.connections[self.current_account].connected != 0:
 | 
					        if active and gajim.connections[self.current_account].connected != 0:
 | 
				
			||||||
            dialogs.ErrorDialog(
 | 
					            dialogs.ErrorDialog(
 | 
				
			||||||
                _('You are currently connected to the server'),
 | 
					                _('You are currently connected to the server'),
 | 
				
			||||||
                _('To change the account name, you must be disconnected.'))
 | 
					                _('To change the account name, you must be disconnected.'),
 | 
				
			||||||
 | 
					                transient_for=self.window)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        if len(gajim.events.get_events(self.current_account)):
 | 
					        if len(gajim.events.get_events(self.current_account)):
 | 
				
			||||||
            dialogs.ErrorDialog(_('Unread events'),
 | 
					            dialogs.ErrorDialog(_('Unread events'),
 | 
				
			||||||
                _('To change the account name, you must read all pending '
 | 
					                _('To change the account name, you must read all pending '
 | 
				
			||||||
                'events.'))
 | 
					                'events.'), transient_for=self.window)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        # Get the new name
 | 
					        # Get the new name
 | 
				
			||||||
        def on_renamed(new_name, old_name):
 | 
					        def on_renamed(new_name, old_name):
 | 
				
			||||||
            if new_name in gajim.connections:
 | 
					            if new_name in gajim.connections:
 | 
				
			||||||
                dialogs.ErrorDialog(_('Account Name Already Used'),
 | 
					                dialogs.ErrorDialog(_('Account Name Already Used'),
 | 
				
			||||||
                    _('This name is already used by another of your accounts. '
 | 
					                    _('This name is already used by another of your accounts. '
 | 
				
			||||||
                    'Please choose another name.'))
 | 
					                    'Please choose another name.'), transient_for=self.window)
 | 
				
			||||||
                return
 | 
					                return
 | 
				
			||||||
            if (new_name == ''):
 | 
					            if (new_name == ''):
 | 
				
			||||||
                dialogs.ErrorDialog(_('Invalid account name'),
 | 
					                dialogs.ErrorDialog(_('Invalid account name'),
 | 
				
			||||||
                    _('Account name cannot be empty.'))
 | 
					                    _('Account name cannot be empty.'),
 | 
				
			||||||
 | 
					                    transient_for=self.window)
 | 
				
			||||||
                return
 | 
					                return
 | 
				
			||||||
            if new_name.find(' ') != -1:
 | 
					            if new_name.find(' ') != -1:
 | 
				
			||||||
                dialogs.ErrorDialog(_('Invalid account name'),
 | 
					                dialogs.ErrorDialog(_('Invalid account name'),
 | 
				
			||||||
                    _('Account name cannot contain spaces.'))
 | 
					                    _('Account name cannot contain spaces.'),
 | 
				
			||||||
 | 
					                    transient_for=self.window)
 | 
				
			||||||
                return
 | 
					                return
 | 
				
			||||||
            if active:
 | 
					            if active:
 | 
				
			||||||
                # update variables
 | 
					                # update variables
 | 
				
			||||||
| 
						 | 
					@ -2174,7 +2178,7 @@ class AccountsWindow:
 | 
				
			||||||
        except helpers.InvalidFormat as s:
 | 
					        except helpers.InvalidFormat as s:
 | 
				
			||||||
            if not widget.is_focus():
 | 
					            if not widget.is_focus():
 | 
				
			||||||
                pritext = _('Invalid Jabber ID')
 | 
					                pritext = _('Invalid Jabber ID')
 | 
				
			||||||
                dialogs.ErrorDialog(pritext, str(s))
 | 
					                dialogs.ErrorDialog(pritext, str(s), transient_for=self.window)
 | 
				
			||||||
                GLib.idle_add(lambda: widget.grab_focus())
 | 
					                GLib.idle_add(lambda: widget.grab_focus())
 | 
				
			||||||
            return True
 | 
					            return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2185,7 +2189,7 @@ class AccountsWindow:
 | 
				
			||||||
                pritext = _('Invalid Jabber ID')
 | 
					                pritext = _('Invalid Jabber ID')
 | 
				
			||||||
                sectext = \
 | 
					                sectext = \
 | 
				
			||||||
                    _('A Jabber ID must be in the form "user@servername".')
 | 
					                    _('A Jabber ID must be in the form "user@servername".')
 | 
				
			||||||
                dialogs.ErrorDialog(pritext, sectext)
 | 
					                dialogs.ErrorDialog(pritext, sectext, transient_for=self.window)
 | 
				
			||||||
                GLib.idle_add(lambda: widget.grab_focus())
 | 
					                GLib.idle_add(lambda: widget.grab_focus())
 | 
				
			||||||
            return True
 | 
					            return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2251,7 +2255,7 @@ class AccountsWindow:
 | 
				
			||||||
        except helpers.InvalidFormat as s:
 | 
					        except helpers.InvalidFormat as s:
 | 
				
			||||||
            if not widget.is_focus():
 | 
					            if not widget.is_focus():
 | 
				
			||||||
                pritext = _('Invalid Jabber ID')
 | 
					                pritext = _('Invalid Jabber ID')
 | 
				
			||||||
                dialogs.ErrorDialog(pritext, str(s))
 | 
					                dialogs.ErrorDialog(pritext, str(s), transient_for=self.window)
 | 
				
			||||||
                GLib.idle_add(lambda: widget.grab_focus())
 | 
					                GLib.idle_add(lambda: widget.grab_focus())
 | 
				
			||||||
            return True
 | 
					            return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2409,7 +2413,8 @@ class AccountsWindow:
 | 
				
			||||||
        except Exception:
 | 
					        except Exception:
 | 
				
			||||||
            if not widget.is_focus():
 | 
					            if not widget.is_focus():
 | 
				
			||||||
                dialogs.ErrorDialog(_('Invalid entry'),
 | 
					                dialogs.ErrorDialog(_('Invalid entry'),
 | 
				
			||||||
                    _('Custom port must be a port number.'))
 | 
					                    _('Custom port must be a port number.'),
 | 
				
			||||||
 | 
					                    transient_for=self.window)
 | 
				
			||||||
                GLib.idle_add(lambda: widget.grab_focus())
 | 
					                GLib.idle_add(lambda: widget.grab_focus())
 | 
				
			||||||
            return True
 | 
					            return True
 | 
				
			||||||
        if self.option_changed('custom_port', custom_port):
 | 
					        if self.option_changed('custom_port', custom_port):
 | 
				
			||||||
| 
						 | 
					@ -2431,7 +2436,8 @@ class AccountsWindow:
 | 
				
			||||||
                secret_keys = []
 | 
					                secret_keys = []
 | 
				
			||||||
        if not secret_keys:
 | 
					        if not secret_keys:
 | 
				
			||||||
            dialogs.ErrorDialog(_('Failed to get secret keys'),
 | 
					            dialogs.ErrorDialog(_('Failed to get secret keys'),
 | 
				
			||||||
                _('There is no OpenPGP secret key available.'))
 | 
					                _('There is no OpenPGP secret key available.'),
 | 
				
			||||||
 | 
					                transient_for=self.window)
 | 
				
			||||||
        secret_keys[_('None')] = _('None')
 | 
					        secret_keys[_('None')] = _('None')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        def on_key_selected(keyID):
 | 
					        def on_key_selected(keyID):
 | 
				
			||||||
| 
						 | 
					@ -2446,7 +2452,7 @@ class AccountsWindow:
 | 
				
			||||||
            gpg_name_label = self.xml.get_object('gpg_name_label' + \
 | 
					            gpg_name_label = self.xml.get_object('gpg_name_label' + \
 | 
				
			||||||
                wiget_name_ext)
 | 
					                wiget_name_ext)
 | 
				
			||||||
            use_gpg_agent_checkbutton = self.xml.get_object(
 | 
					            use_gpg_agent_checkbutton = self.xml.get_object(
 | 
				
			||||||
                    'use_gpg_agent_checkbutton' + wiget_name_ext)
 | 
					                'use_gpg_agent_checkbutton' + wiget_name_ext)
 | 
				
			||||||
            if keyID[0] == _('None'):
 | 
					            if keyID[0] == _('None'):
 | 
				
			||||||
                gpg_key_label.set_text(_('No key selected'))
 | 
					                gpg_key_label.set_text(_('No key selected'))
 | 
				
			||||||
                gpg_name_label.set_text('')
 | 
					                gpg_name_label.set_text('')
 | 
				
			||||||
| 
						 | 
					@ -2479,7 +2485,7 @@ class AccountsWindow:
 | 
				
			||||||
        if self.current_account not in gajim.interface.instances:
 | 
					        if self.current_account not in gajim.interface.instances:
 | 
				
			||||||
            dlg = dialogs.ErrorDialog(_('No such account available'),
 | 
					            dlg = dialogs.ErrorDialog(_('No such account available'),
 | 
				
			||||||
                _('You must create your account before editing your personal '
 | 
					                _('You must create your account before editing your personal '
 | 
				
			||||||
                'information.'))
 | 
					                'information.'), transient_for=self.window)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # show error dialog if account is newly created (not in gajim.connections)
 | 
					        # show error dialog if account is newly created (not in gajim.connections)
 | 
				
			||||||
| 
						 | 
					@ -2487,12 +2493,13 @@ class AccountsWindow:
 | 
				
			||||||
        gajim.connections[self.current_account].connected < 2:
 | 
					        gajim.connections[self.current_account].connected < 2:
 | 
				
			||||||
            dialogs.ErrorDialog(_('You are not connected to the server'),
 | 
					            dialogs.ErrorDialog(_('You are not connected to the server'),
 | 
				
			||||||
                _('Without a connection, you can not edit your personal '
 | 
					                _('Without a connection, you can not edit your personal '
 | 
				
			||||||
                'information.'))
 | 
					                'information.'), transient_for=self.window)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if not gajim.connections[self.current_account].vcard_supported:
 | 
					        if not gajim.connections[self.current_account].vcard_supported:
 | 
				
			||||||
            dialogs.ErrorDialog(_("Your server doesn't support vCard"),
 | 
					            dialogs.ErrorDialog(_("Your server doesn't support vCard"),
 | 
				
			||||||
                _("Your server can't save your personal information."))
 | 
					                _("Your server can't save your personal information."),
 | 
				
			||||||
 | 
					                transient_for=self.window)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        jid = gajim.get_jid_from_account(self.current_account)
 | 
					        jid = gajim.get_jid_from_account(self.current_account)
 | 
				
			||||||
| 
						 | 
					@ -2608,7 +2615,8 @@ class AccountsWindow:
 | 
				
			||||||
            self.ignore_events = False
 | 
					            self.ignore_events = False
 | 
				
			||||||
            dialogs.ErrorDialog(
 | 
					            dialogs.ErrorDialog(
 | 
				
			||||||
                _('You are currently connected to the server'),
 | 
					                _('You are currently connected to the server'),
 | 
				
			||||||
                _('To disable the account, you must be disconnected.'))
 | 
					                _('To disable the account, you must be disconnected.'),
 | 
				
			||||||
 | 
					                transient_for=self.window)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        if gajim.ZEROCONF_ACC_NAME in gajim.connections and not \
 | 
					        if gajim.ZEROCONF_ACC_NAME in gajim.connections and not \
 | 
				
			||||||
        gajim.connections[gajim.ZEROCONF_ACC_NAME].is_zeroconf:
 | 
					        gajim.connections[gajim.ZEROCONF_ACC_NAME].is_zeroconf:
 | 
				
			||||||
| 
						 | 
					@ -2645,7 +2653,8 @@ class AccountsWindow:
 | 
				
			||||||
            self.ignore_events = False
 | 
					            self.ignore_events = False
 | 
				
			||||||
            dialogs.ErrorDialog(
 | 
					            dialogs.ErrorDialog(
 | 
				
			||||||
                _('You are currently connected to the server'),
 | 
					                _('You are currently connected to the server'),
 | 
				
			||||||
                _('To disable the account, you must be disconnected.'))
 | 
					                _('To disable the account, you must be disconnected.'),
 | 
				
			||||||
 | 
					                transient_for=self.window)
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        # add/remove account in roster and all variables
 | 
					        # add/remove account in roster and all variables
 | 
				
			||||||
        if widget.get_active():
 | 
					        if widget.get_active():
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1628,8 +1628,10 @@ class ErrorDialog(HigDialog):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, pritext, sectext='', on_response_ok=None,
 | 
					    def __init__(self, pritext, sectext='', on_response_ok=None,
 | 
				
			||||||
    on_response_cancel=None):
 | 
					    on_response_cancel=None, transient_for=None):
 | 
				
			||||||
        if hasattr(gajim.interface, 'roster') and gajim.interface.roster:
 | 
					        if transient_for:
 | 
				
			||||||
 | 
					            parent = transient_for
 | 
				
			||||||
 | 
					        elif hasattr(gajim.interface, 'roster') and gajim.interface.roster:
 | 
				
			||||||
            parent = gajim.interface.roster.window
 | 
					            parent = gajim.interface.roster.window
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            parent = None
 | 
					            parent = None
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue