Example #1
0
    def show_confirm_dialog(self, title, msg, on_confirm, on_cancel=None,
                            cancel_btn_text='Cancel',
                            confirm_btn_text='Confirm',
                            on_open=None):
        confirm_popup = None

        def dismiss_confirm_dialog():
            if confirm_popup and hasattr(confirm_popup, 'dismiss'):
                confirm_popup.dismiss()

        def on_confirm_wrapper():
            dismiss_confirm_dialog()
            on_confirm()

        def on_cancel_wrapper():
            dismiss_confirm_dialog()
            if callable(on_cancel):
                on_cancel()

        content = ConfirmDialog(confirm_callback=on_confirm_wrapper,
                                cancel_callback=on_cancel_wrapper,
                                cancel_btn_text=cancel_btn_text,
                                confirm_btn_text=confirm_btn_text)
        content.message_label.text = msg
        confirm_popup = Popup(
            title=title, content=content,
            auto_dismiss=False, size_hint=(0.9, None), height=200)
        if on_open:
            confirm_popup.on_open = on_open
        confirm_popup.open()
        return confirm_popup
Example #2
0
 def show_loading_dialog(self, on_open=None):
     content = LoadingDialog()
     loading_popup = Popup(
         title='', auto_dismiss=False, content=content,
         size_hint=(0.9, None), height=200)
     if on_open:
         loading_popup.on_open = on_open
     loading_popup.open()
     return loading_popup
Example #3
0
 def show_loading_dialog(self, on_open=None):
     content = LoadingDialog()
     loading_popup = Popup(title='',
                           auto_dismiss=False,
                           content=content,
                           size_hint=(0.9, None),
                           height=200)
     if on_open:
         loading_popup.on_open = on_open
     loading_popup.open()
     return loading_popup
Example #4
0
    def show_info_dialog(self, title, msg, on_open=None):
        info_popup = None

        def dismiss_info_dialog():
            if info_popup and hasattr(info_popup, 'dismiss'):
                info_popup.dismiss()

        content = InfoDialog(close=dismiss_info_dialog)
        content.message_label.text = msg
        info_popup = Popup(
            title=title, content=content, auto_dismiss=False,
            size_hint=(0.9, None), height=200)
        if on_open:
            info_popup.on_open = on_open
        info_popup.open()
        return info_popup
Example #5
0
    def show_info_dialog(self, title, msg, on_open=None, on_close=None):
        info_popup = None

        def dismiss_info_dialog():
            if info_popup and hasattr(info_popup, 'dismiss'):
                info_popup.dismiss()
            if callable(on_close):
                on_close()

        content = InfoDialog(close=dismiss_info_dialog)
        content.message_label.text = msg
        info_popup = Popup(title=title,
                           content=content,
                           auto_dismiss=False,
                           size_hint=(0.9, None),
                           height=200)
        if callable(on_open):
            info_popup.on_open = on_open
        info_popup.open()
        return info_popup
Example #6
0
    def show_dir_chooser_dialog(self, on_selection, path=None, on_open=None):
        dir_chooser_popup = None

        def dismiss_dir_chooser_dialog():
            if dir_chooser_popup and hasattr(dir_chooser_popup, 'dismiss'):
                dir_chooser_popup.dismiss()

        def on_selection_wrapper(path, selection, new_dir_name):
            dir_path = path
            if new_dir_name:
                dir_path = os.path.join(path, new_dir_name)
                try:
                    os.mkdir(dir_path)
                except OSError as e:
                    if e.errno == 17:  # File exists
                        msg = 'Directory "%s" already exists' % new_dir_name
                    else:
                        msg = 'Invalid filename'
                    self.show_info_dialog('Error', msg)
                    return
            elif selection:
                if selection[0].startswith(
                        '..'):  # disallow selection of the parent directory
                    return
                else:
                    dir_path = selection[0]
            dismiss_dir_chooser_dialog()
            on_selection(dir_path)

        content = DirChooserDialog(select=on_selection_wrapper,
                                   cancel=dismiss_dir_chooser_dialog)
        file_chooser = content.file_chooser
        file_chooser.path = path or self._get_last_dir()
        file_chooser.bind(path=lambda instance, path: self._set_last_dir(path))
        dir_chooser_popup = Popup(title="Choose directory",
                                  content=content,
                                  size_hint=(0.9, 0.9))
        if on_open:
            dir_chooser_popup.on_open = on_open
        dir_chooser_popup.open()
        return dir_chooser_popup
Example #7
0
    def show_dir_chooser_dialog(self, on_selection, path=None, on_open=None):
        dir_chooser_popup = None

        def dismiss_dir_chooser_dialog():
            if dir_chooser_popup and hasattr(dir_chooser_popup, 'dismiss'):
                dir_chooser_popup.dismiss()

        def on_selection_wrapper(path, selection, new_dir_name):
            dir_path = path
            if new_dir_name:
                dir_path = os.path.join(path, new_dir_name)
                try:
                    os.mkdir(dir_path)
                except OSError as e:
                    if e.errno == 17:  # File exists
                        msg = 'Directory "%s" already exists' % new_dir_name
                    else:
                        msg = 'Invalid filename'
                    self.show_info_dialog('Error', msg)
                    return
            elif selection:
                if selection[0].startswith('..'):  # disallow selection of the parent directory
                    return
                else:
                    dir_path = selection[0]
            dismiss_dir_chooser_dialog()
            on_selection(dir_path)

        content = DirChooserDialog(
            select=on_selection_wrapper, cancel=dismiss_dir_chooser_dialog)
        file_chooser = content.file_chooser
        file_chooser.path = path or self._get_last_dir()
        file_chooser.bind(path=lambda instance, path: self._set_last_dir(path))
        dir_chooser_popup = Popup(
            title="Choose directory", content=content, size_hint=(0.9, 0.9))
        if on_open:
            dir_chooser_popup.on_open = on_open
        dir_chooser_popup.open()
        return dir_chooser_popup
Example #8
0
    def show_confirm_dialog(self,
                            title,
                            msg,
                            on_confirm,
                            on_cancel=None,
                            cancel_btn_text='Cancel',
                            confirm_btn_text='Confirm',
                            on_open=None):
        confirm_popup = None

        def dismiss_confirm_dialog():
            if confirm_popup and hasattr(confirm_popup, 'dismiss'):
                confirm_popup.dismiss()

        def on_confirm_wrapper():
            dismiss_confirm_dialog()
            on_confirm()

        def on_cancel_wrapper():
            dismiss_confirm_dialog()
            if callable(on_cancel):
                on_cancel()

        content = ConfirmDialog(confirm_callback=on_confirm_wrapper,
                                cancel_callback=on_cancel_wrapper,
                                cancel_btn_text=cancel_btn_text,
                                confirm_btn_text=confirm_btn_text)
        content.message_label.text = msg
        confirm_popup = Popup(title=title,
                              content=content,
                              auto_dismiss=False,
                              size_hint=(0.9, None),
                              height=200)
        if on_open:
            confirm_popup.on_open = on_open
        confirm_popup.open()
        return confirm_popup