コード例 #1
0
 def __init__(self, **kwargs):
     super(Container, self).__init__(**kwargs)
     self.previous_text = open(self.kv_file).read()
     parser = Parser(content=self.previous_text)
     widget = Factory.get(parser.root.name)()
     Builder._apply_rule(widget, parser.root, parser.root)
     self.add_widget(widget)
コード例 #2
0
ファイル: main.py プロジェクト: saurabhiiit/kivy
 def __init__(self, **kwargs):
     super(Container, self).__init__(**kwargs)
     self.previous_text = open(self.kv_file).read()
     parser = Parser(content=self.previous_text)
     widget = Factory.get(parser.root.name)()
     Builder._apply_rule(widget, parser.root, parser.root)
     self.add_widget(widget)
コード例 #3
0
ファイル: mmain.py プロジェクト: markx2008/Ponerine
 def BuildConnectTitle(self, *largs):
   t1 = time.time()
   if t1 - self.timecontitle < 30.0: #allow update every 30seconds
     return
   txt = self.GetConnectTitle()
   #print txt
   #print "BuildConnectTitle"
   kv_container = self.current_screen.children[0]
   for child in kv_container.children[:]:
     if isinstance(child, BoxLayout):
       kv_widget = child
       break
   try:
     parser = Parser(content=txt)
     kv_container.remove_widget(kv_widget)
     widget = Factory.get(parser.root.name)()
     Builder._apply_rule(widget, parser.root, parser.root)
     for child in widget.children[:]:
       if isinstance(child, Button):
         if isinstance(child, Spinner):
           print "Spinner", child
           child.bind(text=self.ConfigPopupOpen)
           self.btncamsetup = child
         else:
           print "Button", child
           child.bind(on_release=self.RefreshAllControls)
     kv_container.add_widget(widget)
     #self.current_screen.ids['btnCamSetup'].bind(text=self.ConfigPopupOpen) #.btnCamSetup.text #bind(on_text=self.ConfigPopupOpen)
     self.timecontitle = t1
   except (SyntaxError, ParserException) as e:
     print "SyntaxError, ParserException", e
   except Exception as e:
     print "Exception", e
コード例 #4
0
ファイル: mmain.py プロジェクト: markx2008/Ponerine
 def BuildConnectControl(self, *largs):
   txt = self.GetConnectControl()
   if txt == self.textctrlbtn:
     return
   kv_container = self.current_screen.children[0]
   kv_widget = kv_container.children[0]
   for child in kv_container.children[:]:
     if isinstance(child, AnchorLayout):
       kv_widget = child
       break
   try:
     parser = Parser(content=txt)
     if isinstance(kv_widget, AnchorLayout):
       kv_container.remove_widget(kv_widget)
     widget = Factory.get(parser.root.name)()
     Builder._apply_rule(widget, parser.root, parser.root)
     widget.children[0].children[2].bind(on_release=self.Connect)
     widget.children[0].children[1].bind(on_release=self.Record)
     widget.children[0].children[0].bind(on_release=self.Buzzer)
     self.btnphoto = widget.children[0].children[0]
     self.btnrecord = widget.children[0].children[1]
     self.btnconnect = widget.children[0].children[2]
     self.lblrecordtime = widget.children[0].children[4]
     #print "self.lblrecordtime.text",self.lblrecordtime.text
     kv_container.add_widget(widget)
     self.textctrlbtn = txt
   except (SyntaxError, ParserException) as e:
     print "SyntaxError, ParserException", e
   except Exception as e:
     print "BuildConnectControl Exception", e
コード例 #5
0
ファイル: main.py プロジェクト: tuxcanfly/kivy
    def change_kv(self, *largs):
        '''Called when the update button is clicked. Needs to update the
        interface for the currently active kv widget, if there is one based
        on the kv file the user entered. If there is an error in their kv
        syntax, show a nice popup.'''

        kv_container = self.screen_manager.current_screen.content.children[0]
        try:
            parser = Parser(content=self.language_box.text.encode('utf8'))
            kv_container.clear_widgets()
            widget = Factory.get(parser.root.name)()
            Builder._apply_rule(widget, parser.root, parser.root)
            kv_container.add_widget(widget)
        except (SyntaxError, ParserException) as e:
            self.info_label.text = str(e)
            self.anim = Animation(top=190.0, opacity=1, d=2, t='in_back') +\
                Animation(top=190.0, d=2) +\
                Animation(top=0, opacity=0, d=2)
            self.anim.start(self.info_label)
        except:
            import traceback
            traceback.print_exc()
            popup = Popup(
                title="Boom",
                content=Label(
                    text='Something horrible happened while parsing' +
                    'your Kivy Language',
                    text_size=(350, None),
                    size_hint=(None, None),
                    size=(400, 400)))
            popup.open()
コード例 #6
0
ファイル: main.py プロジェクト: jtobard/kivy
    def change_kv(self, *largs):
        '''Called when the update button is clicked. Needs to update the
        interface for the currently active kv widget, if there is one based
        on the kv file the user entered. If there is an error in their kv
        syntax, show a nice popup.'''

        kv_container = self.screen_manager.current_screen.content.children[0]
        try:
            parser = Parser(content=self.language_box.text.encode('utf8'))
            kv_container.clear_widgets()
            widget = Factory.get(parser.root.name)()
            Builder._apply_rule(widget, parser.root, parser.root)
            kv_container.add_widget(widget)
        except (SyntaxError, ParserException) as e:
            self.info_label.text = str(e)
            self.anim = Animation(top=190.0, opacity=1, d=2, t='in_back') +\
                Animation(top=190.0, d=2) +\
                Animation(top=0, opacity=0, d=2)
            self.anim.start(self.info_label)
        except:
            import traceback
            traceback.print_exc()
            popup = Popup(title="Boom",
                content=Label(text='Something horrible happened while parsing'
                        + 'your Kivy Language', text_size=(350, None),
                size_hint=(None, None), size=(400, 400)))
            popup.open()
コード例 #7
0
ファイル: main.py プロジェクト: planset/samples
    def change_kv(self, *largs):
        """Called when the update button is clicked. Needs to update the
        interface for the currently active kv widget, if there is one based
        on the kv file the user entered. If there is an error in their kv
        syntax, show a nice popup."""

        kv_container = self.screen_manager.current_screen.children[0]
        try:
            parser = Parser(content=self.language_box.text.encode("utf8"))
            kv_container.clear_widgets()
            widget = Factory.get(parser.root.name)()
            Builder._apply_rule(widget, parser.root, parser.root)
            kv_container.add_widget(widget)
        except (SyntaxError, ParserException) as e:
            self.show_error(e)
        except Exception, e:
            self.show_error(e)
コード例 #8
0
ファイル: csdent.py プロジェクト: hellth/kivy-login-test
    def change_kv(self, *largs):
        '''Called when the update button is clicked. Needs to update the
        interface for the currently active kv widget, if there is one based
        on the kv file the user entered. If there is an error in their kv
        syntax, show a nice popup.'''

        txt = self.language_box.text
        kv_container = self.screen_manager.current_screen.children[0]
        try:
            parser = Parser(content=txt)
            kv_container.clear_widgets()
            widget = Factory.get(parser.root.name)()
            Builder._apply_rule(widget, parser.root, parser.root)
            kv_container.add_widget(widget)
        except (SyntaxError, ParserException) as e:
            self.show_error(e)
        except Exception as e:
            self.show_error(e)
コード例 #9
0
ファイル: mmain.py プロジェクト: markx2008/Ponerine
 def BuildCameraInformation(self, *largs):
   txt = self.GetCameraInformation()
   if txt == self.textcaminfo:
     return
   kv_container = self.current_screen.children[0]
   for child in kv_container.children[:]:
     if isinstance(child, GridLayout):
       kv_widget = child
       break
   try:
     parser = Parser(content=txt)
     kv_container.remove_widget(kv_widget)
     widget = Factory.get(parser.root.name)()
     Builder._apply_rule(widget, parser.root, parser.root)
     kv_container.add_widget(widget)
     self.textcaminfo = txt
   except (SyntaxError, ParserException) as e:
     print "SyntaxError, ParserException", e
   except Exception as e:
     print "Exception", e
コード例 #10
0
 def change_kv(self, *largs):
     kv_container = self.screen_manager.current_screen.content.children[0]
     try:
         parser = Parser(content=self._kv_text.encode('utf8'))
         kv_container.clear_widgets()
         widget = Factory.get(parser.root.name)()
         Builder._apply_rule(widget, parser.root, parser.root)
         kv_container.add_widget(widget)
     except (SyntaxError, ParserException) as e:
         self.info_label.text = str(e)
         self.anim = Animation(top=190.0, opacity=1, d=2, t='in_back') +\
             Animation(top=190.0, d=2) +\
             Animation(top=0, opacity=0, d=2)
         self.anim.start(self.info_label)
     except:
         import traceback
         traceback.print_exc()
         popup = Popup(title="Boom",
             content=Label(text='Something horrible happened while parsing'
                     + 'your Kivy Language', text_size=(350, None),
             size_hint=(None, None), size=(400, 400)))
         popup.open()
コード例 #11
0
    def change_kv_open_file(self, *largs):
        txt = self.language_box.text
        kv_container = self.screen_manager.current_screen.children[0]
        try:
            parser = Parser(content=txt)
            kv_container.clear_widgets()
            widget = Factory.get(parser.root.name)()
            Builder._apply_rule(widget, parser.root, parser.root)
            kv_container.add_widget(widget)

            name = self.ids.ui_name.text
            save_path = name
            dump = pickle.dumps(save_path)
            all = self.db.get_kvs()
            kvs = [x[0] for x in all]

            if dump not in kvs:
                self.db.add_kv(dump)

            with open(save_path, 'w') as f:
                f.write(txt)
        except:
            pass
コード例 #12
0
    def change_kv(self, *largs):
        '''Called when the update button is clicked. Needs to update the
        interface for the currently active kv widget, if there is one based
        on the kv file the user entered. If there is an error in their kv
        syntax, show a nice popup.'''

        txt = self.language_box.text
        kv_container = self.screen_manager.current_screen.children[0]
        try:
            parser = Parser(content=txt)
            kv_container.clear_widgets()
            widget = Factory.get(parser.root.name)()
            Builder._apply_rule(widget, parser.root, parser.root)
            kv_container.add_widget(widget)

            name = self.ids.ui_name.text
            print(f'The whatever name is {name}')
            if name == 'Untitled*':
                m = ModalView(size_hint=[.6, .7])
                box = BoxLayout(orientation='vertical')
                m.add_widget(box)

                # Function to get user's current home directory
                from os.path import expanduser
                users_home = expanduser('~')
                user_home_dir = os.path.join(users_home, 'Desktop')
                try:
                    os.mkdir(os.path.join(user_home_dir, 'KivyEditor'))
                    user_home_dir = os.path.join(user_home_dir, 'KivyEditor')
                except FileExistsError:
                    # user_home_dir = os.path.join(user_home_dir, 'KivyEditor')
                    pass

                name_box = BoxLayout(size_hint_y=.1)
                fc = FileChooserListView(size_hint_y=.9,
                                         filters=['*kv'],
                                         rootpath=user_home_dir)

                box.add_widget(name_box)
                box.add_widget(fc)

                tinput = TextInput(multiline=False, size_hint_x=.8)
                submit = Button(text='Save',
                                background_color=[1, 1, 1, 1],
                                background_normal='',
                                color=[0, 0, 0, 1],
                                size_hint_x=.2)

                tinput.bind(on_text_validate=lambda x: self.update_name(
                    os.path.join(fc.path, tinput.text), m))
                submit.bind(on_release=lambda x: self.update_name(
                    os.path.join(fc.path, tinput.text), m))

                name_box.add_widget(tinput)
                name_box.add_widget(submit)
                m.open()

            else:
                save_path = name
                dump = pickle.dumps(save_path)
                all = self.db.get_kvs()
                kvs = [x[0] for x in all]

                if dump not in kvs:
                    self.db.add_kv(dump)

                with open(save_path, 'w') as f:
                    f.write(txt)

        except (SyntaxError, ParserException) as e:
            self.show_error(e)
        except Exception as e:
            self.show_error(e)
コード例 #13
0
ファイル: main.py プロジェクト: RedXBeard/gitwatcher-ui
 def __init__(self, **kwargs):
     super(Menu, self).__init__(**kwargs)
     parser = Parser(content=open(self.kv_file).read())
     widget = Factory.get(parser.root.name)()
     Builder._apply_rule(widget, parser.root, parser.root)
     self.add_widget(widget)
コード例 #14
0
ファイル: main.py プロジェクト: dpkm95/DSApp
DS_KVS = os.path.join(DS_ROOT,'ds_kvs')
DS_CLASSES = [c[:-3] for c in os.listdir(DS_KVS)

class Root(FloatLayout):
	screen_manager = ObjectProperty(None)	
	child = ObjectProperty(None) 

	def change_kv(self,*largs):
		child = self.screen_manager.current_screen.children[0]
		with open(child.kv_file, 'rb') as file:
			text = file.read().decode('utf8')
		kv_container = self.screen_manager.current_screen
		try:
			parser = Parser(content = txt)
			kv_container.clear_widgets()
			widget = Factory.get(parser.root.name)()
			Builder._apply_rule(widget,parser.root,parser.root)
			kv_container.add_widget(widget)
		except (SyntaxError, ParserException) as e:
			self.show_error(e)
		except Exception as e:
			self.show_error(e)	 

class DS(App):
	pass

Factory.register('Root', cls=Root)
	
if __name__=='__main__':
    DS().run()