Changeset 7933


Ignore:
Timestamp:
Aug 8, 2018, 10:39:36 AM (16 months ago)
Author:
Juanma
Message:

add options

Location:
n4dgtklogin/trunk/fuentes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • n4dgtklogin/trunk/fuentes/debian/changelog

    r7509 r7933  
     1python-n4dgtklogin (0.4.5) xenial; urgency=medium
     2
     3  * Add more options to vertical orientation
     4
     5 -- Juanma Navarro Mañez <juanma1980@gmail.com>  Wed, 08 Aug 2018 10:39:09 +0200
     6
    17python-n4dgtklogin (0.4.4) xenial; urgency=medium
    28
  • n4dgtklogin/trunk/fuentes/python-n4dgtklogin.install/edupals/ui/n4dgtklogin.py

    r7510 r7933  
    1 #!/usr/bin/env python3
     1#!/usr/bin/env python
    22###
    33#This class returns a login_grid whith a standarized login form
     
    2828        def __init__(self,*args,**kwds):
    2929                super(Gtk.Box,self).__init__(*args,**kwds)
     30                self.dbg=True
    3031                self.vertical=False
    3132                if 'orientation' in kwds.keys():
     
    5152                self.render_form()
    5253        #def __init__
    53        
     54
     55        def _debug(self,msg):
     56                if self.dbg:
     57                        print("%s",msg)
     58
    5459        def set_allowed_groups(self,groups):
    5560                self.allowed_groups=groups
     
    6065                        self.main_grid.remove(child)
    6166                if self.vertical:
    62                         self.main_grid.attach(self.info_box,0,0,1,left_panel)
    63                         self.main_grid.attach(self.form_box,0,0+left_panel,1,right_panel)
     67#                       self.main_grid.attach(self.info_box,0,0,1,left_panel)
     68#                       self.main_grid.attach(self.form_box,0,0+left_panel,1,right_panel)
     69                        self.main_grid.attach(self.form_box,0,0,1,left_panel)
     70                        self.main_grid.attach(self.info_box,0,0+left_panel,1,right_panel)
     71                        self.main_grid.set_margin_bottom(12)
    6472                else:
    6573                        self.main_grid.attach(self.info_box,0,0,left_panel,1)
     
    101109                                bg='background-image:url("'+image+'"); background-repeat:no-repeat;'
    102110                elif image:
     111                        self._debug("%s not found. Searching..."%image)
    103112                        #try to locate the image in the default theme
    104113                        icon_theme=Gtk.IconTheme.get_default()
     
    141150        #def _lookup_user_face
    142151
    143         def set_login_banner(self,banner):
    144                 self.login_banner.set_from_pixbuf(self._get_image(banner))
     152        def set_login_banner(self,image=None):
     153                if image:
     154                        self.login_banner.set_from_pixbuf(self._get_image(image))
    145155        #def set_banner
    146156
     
    166176                try:
    167177                        msg="<b><big>"+title+"</big></b>"
    168                         info_msg=msg+'\n'+subtitle+'\n\n'+text
     178                        info_msg=msg+'\n'+subtitle+'\n'+text
    169179                except Exception as e:
    170180                        sw_ok=False
     
    197207                self._render_info_form()
    198208                if self.vertical:
    199                         self.main_grid.attach(self.info_box,1,1,1,1)
    200                         self.main_grid.attach(self.form_box,1,3,1,1)
     209                        self.main_grid.attach(self.form_box,1,1,1,1)
     210                        self.main_grid.attach(self.info_box,1,3,1,1)
     211                        self.main_grid.set_margin_bottom(12)
    201212                else:
    202213                        self.main_grid.attach(self.info_box,1,1,2,1)
     
    223234                self.btn_sign=Gtk.Button(stock=Gtk.STOCK_OK)
    224235                self.btn_sign.connect('clicked',self._validate)
     236                self.btn_sign.set_halign(Gtk.Align.CENTER)
    225237                self.frame=Gtk.Frame()
    226238               
    227239                self.frame.set_shadow_type(Gtk.ShadowType.OUT)   
    228240                login_grid=Gtk.Grid()
     241                login_grid.set_column_spacing(6)
     242                login_grid.set_row_spacing(6)
    229243                login_grid.set_margin_left(self.default_spacing)
    230244                login_grid.set_margin_right(self.default_spacing)
     
    235249                self.spinner.modify_bg(Gtk.StateType.NORMAL,color)
    236250                login_grid.attach(self.spinner,0,1,1,5)
    237                 login_grid.attach(self.login_banner,0,0,1,1)
     251                if self.vertical:
     252                        position=Gtk.PositionType.RIGHT
     253                else:
     254                        position=Gtk.PositionType.BOTTOM
     255
    238256                login_grid.attach(self.txt_username,0,1,1,1)
    239257                self._set_widget_default_props(self.txt_username,_("Username"))
    240258                self.txt_username.connect('activate',self._validate)
    241                 login_grid.attach(self.txt_password,0,2,1,1)
     259                login_grid.attach_next_to(self.txt_password,self.txt_username,position,1,1)
    242260                self._set_widget_default_props(self.txt_password,_("Password"))
    243261                self.txt_password.set_visibility(False)
    244262                self.txt_password.props.caps_lock_warning=True
    245263                self.txt_password.connect('activate',self._validate)
    246                 login_grid.attach(self.txt_server,0,3,1,1)
    247264                self._set_widget_default_props(self.txt_server,_("Master Server IP"))
     265                if self.vertical:
     266                        self.txt_server.set_halign(Gtk.Align.FILL)
     267                        self.txt_server.set_hexpand(True)
     268                        login_grid.attach_next_to(self.txt_server,self.txt_username,Gtk.PositionType.BOTTOM,2,1)
     269                else:
     270                        login_grid.attach_next_to(self.txt_server,self.txt_password,Gtk.PositionType.BOTTOM,1,1)
    248271                self.txt_server.connect('activate',self._validate)
    249272                self.btn_sign.set_margin_top(self.default_spacing)
    250                 login_grid.attach(self.btn_sign,0,4,1,1)
     273                login_grid.attach_next_to(self.btn_sign,self.txt_server,Gtk.PositionType.BOTTOM,3,1)
     274                login_grid.attach(self.login_banner,0,0,3,1)
    251275                self.sta_info=Gtk.InfoBar()
    252276                self.sta_info.set_show_close_button(True)
     
    257281                self.sta_info.set_no_show_all(True)
    258282                self.sta_info.connect('response',self._status_info_hide)
    259                 self.sta_info.set_valign(True)
    260                 login_grid.props.valign=Gtk.Align.CENTER
     283                if self.vertical:
     284                        login_grid.props.valign=Gtk.Align.END
     285                        login_grid.set_margin_bottom(0)
     286                        self.btn_sign.set_margin_bottom(0)
     287                else:
     288                        login_grid.props.valign=Gtk.Align.CENTER
    261289                login_grid.props.halign=Gtk.Align.CENTER
    262290                self.form_box.pack_start(self.sta_info,False,True,0)
     
    273301                self.lbl_info_msg.set_line_wrap(True)
    274302                info_detail_box.pack_start(self.lbl_info_msg,True,True,0)
    275                 self.css_classes['#label']='{background-color:rgba(200,200,200,0.8);;}'
     303                if not '#label' in self.css_classes.keys():
     304                        self.css_classes['#label']='{background-color:rgba(200,200,200,0.8);;}'
    276305                self.lbl_info_msg.set_name("label")
    277306                self.lbl_info_msg.set_no_show_all(True)
    278307                self.lbl_info_msg.hide()
    279308                self.info_box.set_name("info")
    280                 info_detail_box.props.valign=Gtk.Align.CENTER
    281                 info_detail_box.props.halign=Gtk.Align.CENTER
    282                 self.info_box.pack_start(info_detail_box,True,True,0)
     309                if self.vertical:
     310#                       self.lbl_info_msg.props.halign=Gtk.Align.FILL
     311                        self.lbl_info_msg.set_justify(Gtk.Justification.CENTER)
     312                        self.lbl_info_msg.set_margin_left(12)
     313                        self.lbl_info_msg.set_margin_right(12)
     314                        info_detail_box.props.valign=Gtk.Align.START
     315                else:
     316                        info_detail_box.props.valign=Gtk.Align.CENTER
     317                        info_detail_box.props.halign=Gtk.Align.CENTER
     318                if self.vertical:
     319                        self.info_box.pack_start(info_detail_box,False,False,0)
     320                else:
     321                        self.info_box.pack_start(info_detail_box,True,True,0)
    283322                self._set_css()
    284323        #def _render_info_form
     324
     325        def set_label_background(self,r,g,b,a):
     326                self.css_classes['#label']='{background-color:rgba(%s,%s,%s,%s);;}'%(r,g,b,a)
    285327
    286328        def _set_widget_default_props(self,widget,tooltip=None):
     
    319361                                ret=self.n4dclient.validate_user(user,pwd)
    320362                        except socket.error as e:
    321                                 self.lbl_error.set_text(_("Unknown host")+' '+str(server))
     363                                self.lbl_error.set_text(_("Unknown host"))
    322364                                ret=[False,str(e)]
    323365
  • n4dgtklogin/trunk/fuentes/python3-n4dgtklogin.install/edupals/ui/n4dgtklogin.py

    r7509 r7933  
    2929        def __init__(self,*args,**kwds):
    3030                super().__init__(*args,**kwds)
     31                self.dbg=True
    3132                self.vertical=False
    3233                if 'orientation' in kwds.keys():
     
    5354        #def __init__
    5455
     56        def _debug(self,msg):
     57                if self.dbg:
     58                        print("%s",msg)
     59
    5560        def set_allowed_groups(self,groups):
    5661                self.allowed_groups=groups
     
    6166                        self.main_grid.remove(child)
    6267                if self.vertical:
    63                         self.main_grid.attach(self.info_box,0,0,1,left_panel)
    64                         self.main_grid.attach(self.form_box,0,0+left_panel,1,right_panel)
     68#                       self.main_grid.attach(self.info_box,0,0,1,left_panel)
     69#                       self.main_grid.attach(self.form_box,0,0+left_panel,1,right_panel)
     70                        self.main_grid.attach(self.form_box,0,0,1,left_panel)
     71                        self.main_grid.attach(self.info_box,0,0+left_panel,1,right_panel)
     72                        self.main_grid.set_margin_bottom(12)
    6573                else:
    6674                        self.main_grid.attach(self.info_box,0,0,left_panel,1)
     
    102110                                bg='background-image:url("'+image+'"); background-repeat:no-repeat;'
    103111                elif image:
     112                        self._debug("%s not found. Searching..."%image)
    104113                        #try to locate the image in the default theme
    105114                        icon_theme=Gtk.IconTheme.get_default()
     
    142151        #def _lookup_user_face
    143152
    144         def set_login_banner(self,banner):
    145                 self.login_banner.set_from_pixbuf(self._get_image(banner))
     153        def set_login_banner(self,image=None):
     154                if image:
     155                        self.login_banner.set_from_pixbuf(self._get_image(image))
    146156        #def set_banner
    147157
     
    167177                try:
    168178                        msg="<b><big>"+title+"</big></b>"
    169                         info_msg=msg+'\n'+subtitle+'\n\n'+text
     179                        info_msg=msg+'\n'+subtitle+'\n'+text
    170180                except Exception as e:
    171181                        sw_ok=False
     
    198208                self._render_info_form()
    199209                if self.vertical:
    200                         self.main_grid.attach(self.info_box,1,1,1,1)
    201                         self.main_grid.attach(self.form_box,1,3,1,1)
     210                        self.main_grid.attach(self.form_box,1,1,1,1)
     211                        self.main_grid.attach(self.info_box,1,3,1,1)
     212                        self.main_grid.set_margin_bottom(12)
    202213                else:
    203214                        self.main_grid.attach(self.info_box,1,1,2,1)
     
    224235                self.btn_sign=Gtk.Button(stock=Gtk.STOCK_OK)
    225236                self.btn_sign.connect('clicked',self._validate)
     237                self.btn_sign.set_halign(Gtk.Align.CENTER)
    226238                self.frame=Gtk.Frame()
    227239               
    228240                self.frame.set_shadow_type(Gtk.ShadowType.OUT)   
    229241                login_grid=Gtk.Grid()
     242                login_grid.set_column_spacing(6)
     243                login_grid.set_row_spacing(6)
    230244                login_grid.set_margin_left(self.default_spacing)
    231245                login_grid.set_margin_right(self.default_spacing)
     
    236250                self.spinner.modify_bg(Gtk.StateType.NORMAL,color)
    237251                login_grid.attach(self.spinner,0,1,1,5)
    238                 login_grid.attach(self.login_banner,0,0,1,1)
     252                if self.vertical:
     253                        position=Gtk.PositionType.RIGHT
     254                else:
     255                        position=Gtk.PositionType.BOTTOM
     256
    239257                login_grid.attach(self.txt_username,0,1,1,1)
    240258                self._set_widget_default_props(self.txt_username,_("Username"))
    241259                self.txt_username.connect('activate',self._validate)
    242                 login_grid.attach(self.txt_password,0,2,1,1)
     260                login_grid.attach_next_to(self.txt_password,self.txt_username,position,1,1)
    243261                self._set_widget_default_props(self.txt_password,_("Password"))
    244262                self.txt_password.set_visibility(False)
    245263                self.txt_password.props.caps_lock_warning=True
    246264                self.txt_password.connect('activate',self._validate)
    247                 login_grid.attach(self.txt_server,0,3,1,1)
    248265                self._set_widget_default_props(self.txt_server,_("Master Server IP"))
     266                if self.vertical:
     267                        self.txt_server.set_halign(Gtk.Align.FILL)
     268                        self.txt_server.set_hexpand(True)
     269                        login_grid.attach_next_to(self.txt_server,self.txt_username,Gtk.PositionType.BOTTOM,2,1)
     270                else:
     271                        login_grid.attach_next_to(self.txt_server,self.txt_password,Gtk.PositionType.BOTTOM,1,1)
    249272                self.txt_server.connect('activate',self._validate)
    250273                self.btn_sign.set_margin_top(self.default_spacing)
    251                 login_grid.attach(self.btn_sign,0,4,1,1)
     274                login_grid.attach_next_to(self.btn_sign,self.txt_server,Gtk.PositionType.BOTTOM,3,1)
     275                login_grid.attach(self.login_banner,0,0,3,1)
    252276                self.sta_info=Gtk.InfoBar()
    253277                self.sta_info.set_show_close_button(True)
     
    258282                self.sta_info.set_no_show_all(True)
    259283                self.sta_info.connect('response',self._status_info_hide)
    260                 self.sta_info.set_valign(True)
    261                 login_grid.props.valign=Gtk.Align.CENTER
     284                if self.vertical:
     285                        login_grid.props.valign=Gtk.Align.END
     286                        login_grid.set_margin_bottom(0)
     287                        self.btn_sign.set_margin_bottom(0)
     288                else:
     289                        login_grid.props.valign=Gtk.Align.CENTER
    262290                login_grid.props.halign=Gtk.Align.CENTER
    263291                self.form_box.pack_start(self.sta_info,False,True,0)
     
    274302                self.lbl_info_msg.set_line_wrap(True)
    275303                info_detail_box.pack_start(self.lbl_info_msg,True,True,0)
    276                 self.css_classes['#label']='{background-color:rgba(200,200,200,0.8);;}'
     304                if not '#label' in self.css_classes.keys():
     305                        self.css_classes['#label']='{background-color:rgba(200,200,200,0.8);;}'
    277306                self.lbl_info_msg.set_name("label")
    278307                self.lbl_info_msg.set_no_show_all(True)
    279308                self.lbl_info_msg.hide()
    280309                self.info_box.set_name("info")
    281                 info_detail_box.props.valign=Gtk.Align.CENTER
    282                 info_detail_box.props.halign=Gtk.Align.CENTER
    283                 self.info_box.pack_start(info_detail_box,True,True,0)
     310                if self.vertical:
     311#                       self.lbl_info_msg.props.halign=Gtk.Align.FILL
     312                        self.lbl_info_msg.set_justify(Gtk.Justification.CENTER)
     313                        self.lbl_info_msg.set_margin_left(12)
     314                        self.lbl_info_msg.set_margin_right(12)
     315                        info_detail_box.props.valign=Gtk.Align.START
     316                else:
     317                        info_detail_box.props.valign=Gtk.Align.CENTER
     318                        info_detail_box.props.halign=Gtk.Align.CENTER
     319                if self.vertical:
     320                        self.info_box.pack_start(info_detail_box,False,False,0)
     321                else:
     322                        self.info_box.pack_start(info_detail_box,True,True,0)
    284323                self._set_css()
    285324        #def _render_info_form
     325
     326        def set_label_background(self,r,g,b,a):
     327                self.css_classes['#label']='{background-color:rgba(%s,%s,%s,%s);;}'%(r,g,b,a)
    286328
    287329        def _set_widget_default_props(self,widget,tooltip=None):
Note: See TracChangeset for help on using the changeset viewer.