Пример #1
0
from kivy.uix.label import Label
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.treeview import TreeViewLabel
from kivy.clock import Clock
from kivy.app import App

from util import KeyboardListener
from data.entry import Entry, EntryException
from widgets.common import SingleLabel
from widgets.status_bar import status
from widgets.popup import question_dialog

from widgets.util import widget_path

Builder.load_file(widget_path('widgets/entry_widget.kv'))


class EntryWidget(BoxLayout):
    entry = ObjectProperty(None)

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.app = App.get_running_app()
        self.ids.image_widget.load_entry(self.entry)

    def on_touch_down(self, touch):
        if super().on_touch_down(touch):
            return True
        if self.collide_point(*touch.pos):
            self.app.set_widget('edit', self.entry)
Пример #2
0
import weakref
from kivy.uix.boxlayout  import BoxLayout
from kivy.uix.popup  import Popup
from kivy.properties import StringProperty
from kivy.lang import Builder

from widgets.util import widget_path

Builder.load_file(widget_path('widgets/popup.kv'))


class PopupWidget(BoxLayout):

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.popup = None

    def set_popup(self, popup):
        self.popup = weakref.proxy(popup)

class NotificationWidget(PopupWidget):
    text = StringProperty()

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.text = kwargs.get('text', '')
    
    def on_close(self):
        if self.popup:
            self.popup.dismiss()
Пример #3
0
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.treeview import TreeViewLabel
from kivy.clock import Clock
from kivy.app import App

from util import KeyboardListener
from data.entry import Entry, EntryException
from linktypes import manager
from linktypes.settings import LinktypeException
from widgets.common import SingleLabel
from widgets.status_bar import status

from widgets.util import widget_path

Builder.load_file(widget_path('widgets/pyles_edit.kv'))


class PylesEdit(BoxLayout):

    def __init__(self, entry = None, **kwargs):
        super(PylesEdit, self).__init__(**kwargs)
        self.app = App.get_running_app()
        self.linktypeconfig = None
        self.entry = entry
        if self.entry is None:
            self.on_linktypename(self.ids.linktype_selection.text)
        else:
            self.ids.linktype_selection.text = self.entry.linktype.name
            self.ids.name_input.text = self.entry.name
            self.ids.image_widget.load_entry(self.entry)
Пример #4
0
from kivy.graphics import Rectangle
from kivy.properties import ObjectProperty
from kivy.lang import Builder

from widgets.common import DropWidget
from data.icon import Icon, from_file, IconLoadError

from widgets.util import widget_path
from widgets.loading_widget import LoadingWidget


Builder.load_file(widget_path('widgets/image_widget.kv'))

class ImageWidget(DropWidget):
    icon = ObjectProperty(allownone = True)
    
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.bind(size=self.layout_callback)
        self.bind(pos=self.layout_callback)
        
    def layout_callback(self, instance, value):
        self.draw()
            
    def draw(self):
        if self.icon is not None:
            if self.icon.state == Icon.READY:
                self.canvas.clear()
                with self.canvas:
                    self.icon.draw(self.pos, self.size)
        else:
Пример #5
0
import inspect
from collections import namedtuple
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty, ListProperty
from kivy.lang import Builder
from kivy.clock import Clock
from kivy.logger import Logger

from widgets.util import widget_path

Builder.load_file(widget_path('widgets/status_bar.kv'))

DEFAULT_COLOR = [1, 1, 1, 1]
ERROR_COLOR = [1, 0.2, 0.2, 1]

Message = namedtuple('Message', ['text', 'duration', 'type', 'weak'])


def get_caller():
    frm = inspect.stack()[2]
    mod = inspect.getmodule(frm[0])
    if mod:
        return mod.__name__.split('.')[-1]
    return 'Pyles'


class StatusManager():
    DEFAULT_INFO_DURATION = 5

    def __init__(self):
        self.bar = None
Пример #6
0
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.spinner import Spinner, SpinnerOption
from kivy.lang import Builder

from widgets.util import widget_path
import widgets.definitions

Builder.load_file(widget_path('widgets/common.kv'))


class SingleLabel(Label):
    pass


class SingleTextinput(TextInput):
    pass


class SingleSpinnerOption(SpinnerOption):
    pass


class SingleSpinner(Spinner):
    def __init__(self, **kwargs):
        super().__init__(option_cls=SingleSpinnerOption, **kwargs)

Пример #7
0
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.treeview import TreeViewLabel
from kivy.clock import Clock
from kivy.app import App

from widgets.util import widget_path

Builder.load_file(widget_path('widgets/settings_widget.kv'))


class SettingsWidget(GridLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.app = App.get_running_app()