KV directory added
This commit is contained in:
parent
9c872ef676
commit
153b4dc1b2
26
src/bitmessagekivy/kv/addressbook.kv
Normal file
26
src/bitmessagekivy/kv/addressbook.kv
Normal file
|
@ -0,0 +1,26 @@
|
|||
<AddressBook>:
|
||||
name: 'addressbook'
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
spacing: dp(5)
|
||||
SearchBar:
|
||||
id: address_search
|
||||
GridLayout:
|
||||
id: identi_tag
|
||||
padding: [20, 0, 0, 5]
|
||||
cols: 1
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
MDLabel:
|
||||
id: tag_label
|
||||
text: ''
|
||||
font_style: 'Subtitle2'
|
||||
BoxLayout:
|
||||
orientation:'vertical'
|
||||
ScrollView:
|
||||
id: scroll_y
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
Loader:
|
||||
ComposerButton:
|
25
src/bitmessagekivy/kv/allmails.kv
Normal file
25
src/bitmessagekivy/kv/allmails.kv
Normal file
|
@ -0,0 +1,25 @@
|
|||
<Allmails>:
|
||||
name: 'allmails'
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
spacing: dp(5)
|
||||
GridLayout:
|
||||
id: identi_tag
|
||||
padding: [20, 20, 0, 5]
|
||||
spacing: dp(5)
|
||||
cols: 1
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
MDLabel:
|
||||
id: tag_label
|
||||
text: ''
|
||||
font_style: 'Subtitle2'
|
||||
BoxLayout:
|
||||
orientation:'vertical'
|
||||
ScrollView:
|
||||
id: scroll_y
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
Loader:
|
||||
ComposerButton:
|
58
src/bitmessagekivy/kv/chat_list.kv
Normal file
58
src/bitmessagekivy/kv/chat_list.kv
Normal file
|
@ -0,0 +1,58 @@
|
|||
<ChatList>:
|
||||
name: 'chlist'
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: 1,1,1,1
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
MDTabs:
|
||||
id: chat_panel
|
||||
tab_display_mode:'text'
|
||||
|
||||
Tab:
|
||||
text: app.tr._("Chats")
|
||||
BoxLayout:
|
||||
id: chat_box
|
||||
orientation: 'vertical'
|
||||
ScrollView:
|
||||
id: scroll_y
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
MDLabel:
|
||||
font_style: 'Caption'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._('No Chat')
|
||||
halign: 'center'
|
||||
size_hint_y: None
|
||||
bold: True
|
||||
valign: 'top'
|
||||
# OneLineAvatarListItem:
|
||||
# text: "Single-line item with avatar"
|
||||
# divider: None
|
||||
# _no_ripple_effect: True
|
||||
# ImageLeftWidget:
|
||||
# source: './images/text_images/A.png'
|
||||
# OneLineAvatarListItem:
|
||||
# text: "Single-line item with avatar"
|
||||
# divider: None
|
||||
# _no_ripple_effect: True
|
||||
# ImageLeftWidget:
|
||||
# source: './images/text_images/B.png'
|
||||
# OneLineAvatarListItem:
|
||||
# text: "Single-line item with avatar"
|
||||
# divider: None
|
||||
# _no_ripple_effect: True
|
||||
# ImageLeftWidget:
|
||||
# source: './images/text_images/A.png'
|
||||
Tab:
|
||||
text: app.tr._("Contacts")
|
||||
BoxLayout:
|
||||
id: contact_box
|
||||
orientation: 'vertical'
|
||||
ScrollView:
|
||||
id: scroll_y
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
45
src/bitmessagekivy/kv/chat_room.kv
Normal file
45
src/bitmessagekivy/kv/chat_room.kv
Normal file
|
@ -0,0 +1,45 @@
|
|||
#:import C kivy.utils.get_color_from_hex
|
||||
|
||||
<ChatRoom>:
|
||||
name: 'chroom'
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: 1,1,1,1
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
ScrollView:
|
||||
Label:
|
||||
id: chat_logs
|
||||
text: ''
|
||||
color: C('#101010')
|
||||
text_size: (self.width, None)
|
||||
halign: 'left'
|
||||
valign: 'top'
|
||||
padding: (0, 0) # fixed in Kivy 1.8.1
|
||||
size_hint: (1, None)
|
||||
height: self.texture_size[1]
|
||||
markup: True
|
||||
font_size: sp(20)
|
||||
BoxLayout:
|
||||
height: 50
|
||||
orientation: 'horizontal'
|
||||
padding: 0
|
||||
size_hint: (1, None)
|
||||
|
||||
TextInput:
|
||||
id: message
|
||||
size_hint: (1, 1)
|
||||
multiline: False
|
||||
font_size: sp(20)
|
||||
on_text_validate: root.send_msg()
|
||||
|
||||
MDRaisedButton:
|
||||
text: app.tr._("Send")
|
||||
elevation_normal: 2
|
||||
opposite_colors: True
|
||||
size_hint: (0.3, 1)
|
||||
pos_hint: {"center_x": .5}
|
||||
on_press: root.send_msg()
|
62
src/bitmessagekivy/kv/common_widgets.kv
Normal file
62
src/bitmessagekivy/kv/common_widgets.kv
Normal file
|
@ -0,0 +1,62 @@
|
|||
<ArrowImg@Image>:
|
||||
source: app.image_path +('/down-arrow.png' if self.parent.is_open == True else '/right-arrow.png')
|
||||
size: 15, 15
|
||||
x: self.parent.x + self.parent.width - self.width - 5
|
||||
y: self.parent.y + self.parent.height/2 - self.height + 5
|
||||
|
||||
<SearchBar@BoxLayout>:
|
||||
# id: search_bar
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
|
||||
MDIconButton:
|
||||
icon: 'magnify'
|
||||
|
||||
MDTextField:
|
||||
id: search_field
|
||||
hint_text: 'Search'
|
||||
on_text: app.searchQuery(self)
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
|
||||
<Loader@MDSpinner>:
|
||||
id: spinner
|
||||
size_hint: None, None
|
||||
size: dp(46), dp(46)
|
||||
pos_hint: {'center_x': 0.5, 'center_y': 0.5}
|
||||
active: False
|
||||
|
||||
<ComposerButton@BoxLayout>:
|
||||
size_hint_y: None
|
||||
height: dp(56)
|
||||
spacing: '10dp'
|
||||
pos_hint: {'center_x':0.45, 'center_y': .1}
|
||||
|
||||
Widget:
|
||||
|
||||
MDFloatingActionButton:
|
||||
icon: 'plus'
|
||||
opposite_colors: True
|
||||
elevation_normal: 8
|
||||
md_bg_color: [0.941, 0, 0,1]
|
||||
on_press: app.root.ids.scr_mngr.current = 'create'
|
||||
on_press: app.clear_composer()
|
||||
|
||||
|
||||
|
||||
<ToggleBtn>:
|
||||
size_hint: None, None
|
||||
size: dp(36), dp(48)
|
||||
pos_hint: {'center_x': .95, 'center_y': .4}
|
||||
on_active: app.root.ids.sc10.toggleAction(self)
|
||||
|
||||
<CustomTwoLineAvatarIconListItem>:
|
||||
canvas:
|
||||
Color:
|
||||
id: set_clr
|
||||
# rgba: 0.5, 0.5, 0.5, 0.5
|
||||
rgba: 0,0,0,0
|
||||
Rectangle: #woohoo!!!
|
||||
size: self.size
|
||||
pos: self.pos
|
28
src/bitmessagekivy/kv/credits.kv
Normal file
28
src/bitmessagekivy/kv/credits.kv
Normal file
|
@ -0,0 +1,28 @@
|
|||
<Credits>:
|
||||
name: 'credits'
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
OneLineListTitle:
|
||||
id: cred
|
||||
text: app.tr._("Available Credits")
|
||||
divider: None
|
||||
theme_text_color: 'Primary'
|
||||
_no_ripple_effect: True
|
||||
long_press_time: 1
|
||||
|
||||
OneLineListTitle:
|
||||
id: cred
|
||||
text: app.tr._(root.available_credits)
|
||||
divider: None
|
||||
font_style: 'H5'
|
||||
theme_text_color: 'Primary'
|
||||
_no_ripple_effect: True
|
||||
long_press_time: 1
|
||||
AnchorLayout:
|
||||
MDRaisedButton:
|
||||
height: dp(38)
|
||||
text: app.tr._("+Add more credits")
|
||||
on_press: app.root.ids.scr_mngr.current = 'payment'
|
23
src/bitmessagekivy/kv/draft.kv
Normal file
23
src/bitmessagekivy/kv/draft.kv
Normal file
|
@ -0,0 +1,23 @@
|
|||
<Draft>:
|
||||
name: 'draft'
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
spacing: dp(5)
|
||||
GridLayout:
|
||||
id: identi_tag
|
||||
padding: [20, 20, 0, 5]
|
||||
cols: 1
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
MDLabel:
|
||||
id: tag_label
|
||||
text: ''
|
||||
font_style: 'Subtitle2'
|
||||
BoxLayout:
|
||||
orientation:'vertical'
|
||||
ScrollView:
|
||||
id: scroll_y
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
ComposerButton:
|
39
src/bitmessagekivy/kv/inbox.kv
Normal file
39
src/bitmessagekivy/kv/inbox.kv
Normal file
|
@ -0,0 +1,39 @@
|
|||
<Inbox>:
|
||||
name: 'inbox'
|
||||
#transition: NoTransition()
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
spacing: dp(5)
|
||||
SearchBar:
|
||||
id:inbox_search
|
||||
GridLayout:
|
||||
id: identi_tag
|
||||
padding: [20, 0, 0, 5]
|
||||
cols: 1
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
MDLabel:
|
||||
id: tag_label
|
||||
text: ''
|
||||
font_style: 'Subtitle2'
|
||||
#FloatLayout:
|
||||
# MDScrollViewRefreshLayout:
|
||||
# id: refresh_layout
|
||||
# refresh_callback: root.refresh_callback
|
||||
# root_layout: root.set_root_layout()
|
||||
# MDList:
|
||||
# id: ml
|
||||
BoxLayout:
|
||||
orientation:'vertical'
|
||||
ScrollView:
|
||||
id: scroll_y
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
Loader:
|
||||
ComposerButton:
|
||||
|
||||
<TimeTagRightSampleWidget>:
|
||||
size_hint:(None, None)
|
||||
font_style: 'Caption'
|
||||
halign: 'center'
|
264
src/bitmessagekivy/kv/login.kv
Normal file
264
src/bitmessagekivy/kv/login.kv
Normal file
|
@ -0,0 +1,264 @@
|
|||
#:import SlideTransition kivy.uix.screenmanager.SlideTransition
|
||||
<Login>:
|
||||
name:"login"
|
||||
BoxLayout:
|
||||
orientation: "vertical"
|
||||
|
||||
#buttons-area-outer
|
||||
BoxLayout:
|
||||
size_hint_y: .53
|
||||
canvas:
|
||||
Color:
|
||||
rgba: 1,1,1,1
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
|
||||
ScreenManager:
|
||||
id: check_screenmgr
|
||||
Screen:
|
||||
name: "check_screen"
|
||||
BoxLayout:
|
||||
orientation: "vertical"
|
||||
padding: 0, dp(5), 0, dp(5)
|
||||
spacing: dp(5)
|
||||
|
||||
#label area
|
||||
AnchorLayout:
|
||||
size_hint_y: None
|
||||
height: dp(50)
|
||||
MDLabel:
|
||||
text: app.tr._("Select method to make an address:")
|
||||
bold: True
|
||||
halign: "center"
|
||||
theme_text_color: "Custom"
|
||||
text_color: .4,.4,.4,1
|
||||
|
||||
#upper-checkbor-area
|
||||
AnchorLayout:
|
||||
size_hint_y: None
|
||||
height: dp(40)
|
||||
BoxLayout:
|
||||
size_hint_x: None
|
||||
width: self.minimum_width
|
||||
|
||||
#check-container
|
||||
AnchorLayout:
|
||||
size_hint_x: None
|
||||
width: dp(40)
|
||||
Check:
|
||||
active: True
|
||||
|
||||
#text-container
|
||||
AnchorLayout:
|
||||
size_hint_x: None
|
||||
width: dp(200)
|
||||
MDLabel:
|
||||
text: app.tr._("Random Number Generator")
|
||||
|
||||
AnchorLayout:
|
||||
size_hint_y: None
|
||||
height: dp(40)
|
||||
BoxLayout:
|
||||
size_hint_x: None
|
||||
width: self.minimum_width
|
||||
|
||||
#check-container
|
||||
AnchorLayout:
|
||||
size_hint_x: None
|
||||
width: dp(40)
|
||||
Check:
|
||||
|
||||
#text-container
|
||||
AnchorLayout:
|
||||
size_hint_x: None
|
||||
width: dp(200)
|
||||
MDLabel:
|
||||
text: app.tr._("Pseudo Number Generator")
|
||||
AnchorLayout:
|
||||
MDFillRoundFlatIconButton:
|
||||
icon: "chevron-double-right"
|
||||
text: app.tr._("Proceed Next")
|
||||
on_release:
|
||||
app.root.ids.scr_mngr.current = 'random'
|
||||
on_press:
|
||||
app.root.ids.sc7.reset_address_label()
|
||||
|
||||
#info-area-outer
|
||||
BoxLayout:
|
||||
size_hint_y: .47
|
||||
padding: dp(7)
|
||||
InfoLayout:
|
||||
orientation:"vertical"
|
||||
padding: 0, dp(5), 0, dp(5)
|
||||
canvas:
|
||||
Color:
|
||||
rgba:1,1,1,1
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
Color:
|
||||
rgba: app.theme_cls.primary_color
|
||||
Line:
|
||||
rounded_rectangle: (self.pos[0]+4, self.pos[1]+4, self.width-8,self.height-8, 10, 10, 10, 10, 50)
|
||||
width: dp(1)
|
||||
ScreenManager:
|
||||
id: info_screenmgr
|
||||
|
||||
Screen:
|
||||
name: "info1"
|
||||
ScrollView:
|
||||
bar_width:0
|
||||
do_scroll_x: False
|
||||
|
||||
BoxLayout:
|
||||
orientation: "vertical"
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
|
||||
#note area
|
||||
ContentHead:
|
||||
section_name: "NOTE:"
|
||||
ContentBody:
|
||||
section_text: ("You may generate addresses by using either random numbers or by using a pass-phrase.If you use a pass-phrase, the address is called a deterministic address. The Random Number option is selected by default but deterministic addresses may have several pros and cons.")
|
||||
|
||||
|
||||
#pros area
|
||||
ContentHead:
|
||||
section_name: "PROS:"
|
||||
ContentBody:
|
||||
section_text: ("You can re-create your addresses on any computer from memory you need-not-to worry about backing up your keys.dat file as long as you can remember your pass-phrase.")
|
||||
|
||||
#cons area
|
||||
ContentHead:
|
||||
section_name: "CONS:"
|
||||
ContentBody:
|
||||
section_text: ("You must remember (or write down) your address version number and the stream number along with your pass-phrase.If you choose a weak pass-phrase and someone on the internet can brute-force it, they can read your messages and send messages as you.")
|
||||
|
||||
<Random>:
|
||||
name:"random"
|
||||
ScrollView:
|
||||
id:add_random_bx
|
||||
|
||||
<RandomBoxlayout>:
|
||||
orientation: "vertical"
|
||||
#buttons-area-outer
|
||||
BoxLayout:
|
||||
orientation: "vertical"
|
||||
# padding: 0, dp(5), 0, dp(5)
|
||||
# spacing: dp(5)
|
||||
size_hint_y: .53
|
||||
canvas:
|
||||
Color:
|
||||
rgba: 1,1,1,1
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
|
||||
#label area
|
||||
AnchorLayout:
|
||||
size_hint_y: None
|
||||
height: dp(50)
|
||||
MDLabel:
|
||||
text: app.tr._("Enter a label to generate address for:")
|
||||
bold: True
|
||||
halign: "center"
|
||||
theme_text_color: "Custom"
|
||||
text_color: .4,.4,.4,1
|
||||
|
||||
AnchorLayout:
|
||||
size_hint_y: None
|
||||
height: dp(40)
|
||||
MDTextField:
|
||||
id:lab
|
||||
hint_text: "Label"
|
||||
required: True
|
||||
size_hint_x: None
|
||||
width: dp(190)
|
||||
helper_text_mode: "on_error"
|
||||
# helper_text: "Please enter your label name"
|
||||
on_text: app.root.ids.sc7.add_validation(self)
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
|
||||
AnchorLayout:
|
||||
MDFillRoundFlatIconButton:
|
||||
icon: "chevron-double-right"
|
||||
text: app.tr._("Proceed Next")
|
||||
on_release: app.root.ids.sc7.generateaddress()
|
||||
|
||||
Widget:
|
||||
|
||||
#info-area-outer
|
||||
BoxLayout:
|
||||
size_hint_y: .47
|
||||
padding: dp(7)
|
||||
InfoLayout:
|
||||
orientation:"vertical"
|
||||
padding: 0, dp(5), 0, dp(5)
|
||||
canvas:
|
||||
Color:
|
||||
rgba:1,1,1,1
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
Color:
|
||||
rgba: app.theme_cls.primary_color
|
||||
Line:
|
||||
rounded_rectangle: (self.pos[0]+4, self.pos[1]+4, self.width-8,self.height-8, 10, 10, 10, 10, 50)
|
||||
width: dp(1)
|
||||
ScreenManager:
|
||||
id: info_screenmgr
|
||||
|
||||
Screen:
|
||||
name: "info2"
|
||||
ScrollView:
|
||||
bar_width:0
|
||||
do_scroll_x: False
|
||||
|
||||
BoxLayout:
|
||||
orientation: "vertical"
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
|
||||
#note area
|
||||
ContentHead:
|
||||
section_name: "NOTE:"
|
||||
ContentBody:
|
||||
section_text: ("Here you may generate as many addresses as you like..Indeed creating and abandoning addresses is not encouraged.")
|
||||
|
||||
<Check@MDCheckbox>:
|
||||
group: 'group'
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(48)
|
||||
|
||||
<ContentHead@BoxLayout>:
|
||||
section_name: ""
|
||||
orientation: "vertical"
|
||||
size_hint_y: None
|
||||
height: dp(50)
|
||||
padding: dp(20), 0, 0, 0
|
||||
Widget:
|
||||
size_hint_y: None
|
||||
height: dp(25)
|
||||
MDLabel:
|
||||
theme_text_color: "Custom"
|
||||
text_color: .1,.1,.1,.9
|
||||
text: app.tr._(root.section_name)
|
||||
bold: True
|
||||
font_style: "Button"
|
||||
|
||||
<ContentBody@BoxLayout>:
|
||||
section_text: ""
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
padding: dp(50), 0, dp(10), 0
|
||||
|
||||
MDLabel:
|
||||
size_hint_y: None
|
||||
height: self.texture_size[1]+dp(10)
|
||||
theme_text_color: "Custom"
|
||||
text_color: 0.3,0.3,0.3,1
|
||||
font_style: "Body1"
|
||||
text: app.tr._(root.section_text)
|
87
src/bitmessagekivy/kv/maildetail.kv
Normal file
87
src/bitmessagekivy/kv/maildetail.kv
Normal file
|
@ -0,0 +1,87 @@
|
|||
<MailDetail>:
|
||||
name: 'mailDetail'
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
# height: dp(bod.height) + self.minimum_height
|
||||
height: self.minimum_height
|
||||
padding: dp(10)
|
||||
# MDLabel:
|
||||
# size_hint_y: None
|
||||
# id: subj
|
||||
# text: root.subject
|
||||
# theme_text_color: 'Primary'
|
||||
# halign: 'left'
|
||||
# font_style: 'H5'
|
||||
# height: dp(40)
|
||||
# on_touch_down: root.allclick(self)
|
||||
OneLineListTitle:
|
||||
id: subj
|
||||
text: app.tr._(root.subject)
|
||||
divider: None
|
||||
font_style: 'H5'
|
||||
theme_text_color: 'Primary'
|
||||
_no_ripple_effect: True
|
||||
long_press_time: 1
|
||||
TwoLineAvatarIconListItem:
|
||||
id: subaft
|
||||
text: app.tr._(root.from_addr)
|
||||
secondary_text: app.tr._('to ' + root.to_addr)
|
||||
divider: None
|
||||
on_press: root.detailedPopup()
|
||||
BadgeText:
|
||||
size_hint:(None, None)
|
||||
size:[120, 140] if app.app_platform == 'android' else [64, 80]
|
||||
text: app.tr._(root.time_tag)
|
||||
halign:'center'
|
||||
font_style:'Caption'
|
||||
pos_hint: {'center_y': .8}
|
||||
_txt_right_pad: dp(70)
|
||||
font_size: '11sp'
|
||||
MDChip:
|
||||
size_hint: (.16 if app.app_platform == 'android' else .08 , None)
|
||||
text: app.tr._(root.page_type)
|
||||
icon: ''
|
||||
text_color: (1,1,1,1)
|
||||
pos_hint: {'center_x': .91 if app.app_platform == 'android' else .95, 'center_y': .3}
|
||||
radius: [8]
|
||||
height: self.parent.height/4
|
||||
AvatarSampleWidget:
|
||||
source: root.avatarImg
|
||||
MDLabel:
|
||||
text: root.status
|
||||
disabled: True
|
||||
font_style: 'Body2'
|
||||
halign:'left'
|
||||
padding_x: 20
|
||||
# MDLabel:
|
||||
# id: bod
|
||||
# font_style: 'Subtitle2'
|
||||
# theme_text_color: 'Primary'
|
||||
# text: root.message
|
||||
# halign: 'left'
|
||||
# height: self.texture_size[1]
|
||||
MyMDTextField:
|
||||
id: bod
|
||||
size_hint_y: None
|
||||
font_style: 'Subtitle2'
|
||||
text: root.message
|
||||
multiline: True
|
||||
readonly: True
|
||||
line_color_normal: [0,0,0,0]
|
||||
_current_line_color: [0,0,0,0]
|
||||
line_color_focus: [0,0,0,0]
|
||||
markup: True
|
||||
font_size: '15sp'
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
Loader:
|
||||
|
||||
|
||||
<MyMDTextField@MDTextField>:
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
178
src/bitmessagekivy/kv/msg_composer.kv
Normal file
178
src/bitmessagekivy/kv/msg_composer.kv
Normal file
|
@ -0,0 +1,178 @@
|
|||
<Create>:
|
||||
name: 'create'
|
||||
Loader:
|
||||
|
||||
|
||||
<DropDownWidget>:
|
||||
ScrollView:
|
||||
id: id_scroll
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
size_hint_y: None
|
||||
height: self.minimum_height + 3 * self.parent.height/5
|
||||
padding: dp(20)
|
||||
spacing: 15
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
MDTextField:
|
||||
id: ti
|
||||
size_hint_y: None
|
||||
hint_text: 'Type or Select sender address'
|
||||
icon_right: 'account'
|
||||
icon_right_color: app.theme_cls.primary_light
|
||||
font_size: '15sp'
|
||||
multiline: False
|
||||
required: True
|
||||
# height: self.parent.height/2
|
||||
height: 100
|
||||
current_hint_text_color: 0,0,0,0.5
|
||||
helper_text_mode: "on_error"
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
|
||||
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
height: dp(40)
|
||||
CustomSpinner:
|
||||
id: btn
|
||||
background_color: app.theme_cls.primary_dark
|
||||
values: app.variable_1
|
||||
on_text: root.auto_fill_fromaddr() if self.text != 'Select' else ''
|
||||
option_cls: Factory.get("ComposerSpinnerOption")
|
||||
#background_color: color_button if self.state == 'normal' else color_button_pressed
|
||||
#background_down: 'atlas://data/images/defaulttheme/spinner'
|
||||
background_normal: ''
|
||||
background_color: app.theme_cls.primary_color
|
||||
color: color_font
|
||||
font_size: '13.5sp'
|
||||
ArrowImg:
|
||||
|
||||
|
||||
RelativeLayout:
|
||||
orientation: 'horizontal'
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
txt_input: txt_input
|
||||
rv: rv
|
||||
size : (890, 60)
|
||||
MyTextInput:
|
||||
id: txt_input
|
||||
size_hint_y: None
|
||||
font_size: '15sp'
|
||||
color: color_font
|
||||
# height: self.parent.height/2
|
||||
current_hint_text_color: 0,0,0,0.5
|
||||
height: 100
|
||||
hint_text: app.tr._('Type or Scan QR code for recipients address')
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
|
||||
RV:
|
||||
id: rv
|
||||
MDIconButton:
|
||||
icon: 'qrcode-scan'
|
||||
pos_hint: {'center_x': 0.95, 'y': 0.6}
|
||||
on_release:
|
||||
if root.is_camara_attached(): app.root.ids.scr_mngr.current = 'scanscreen'
|
||||
else: root.camera_alert()
|
||||
on_press:
|
||||
app.root.ids.sc23.get_screen('composer')
|
||||
|
||||
MyMDTextField:
|
||||
id: subject
|
||||
hint_text: 'Subject'
|
||||
height: 100
|
||||
font_size: '15sp'
|
||||
icon_right: 'notebook-outline'
|
||||
icon_right_color: app.theme_cls.primary_light
|
||||
current_hint_text_color: 0,0,0,0.5
|
||||
font_color_normal: 0, 0, 0, 1
|
||||
size_hint_y: None
|
||||
required: True
|
||||
multiline: False
|
||||
helper_text_mode: "on_focus"
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
|
||||
# MyMDTextField:
|
||||
# id: body
|
||||
# multiline: True
|
||||
# hint_text: 'body'
|
||||
# size_hint_y: None
|
||||
# font_size: '15sp'
|
||||
# required: True
|
||||
# helper_text_mode: "on_error"
|
||||
# canvas.before:
|
||||
# Color:
|
||||
# rgba: (0,0,0,1)
|
||||
ScrollView:
|
||||
id: scrlv
|
||||
MDTextField:
|
||||
id: body
|
||||
hint_text: 'Body'
|
||||
mode: "fill"
|
||||
fill_color: 1/255, 144/255, 254/255, 0.1
|
||||
multiline: True
|
||||
font_color_normal: 0, 0, 0, .4
|
||||
icon_right: 'grease-pencil'
|
||||
icon_right_color: app.theme_cls.primary_light
|
||||
size_hint: 1, 1
|
||||
height: app.window_size[1]/4
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: 125/255, 125/255, 125/255, 1
|
||||
BoxLayout:
|
||||
spacing:50
|
||||
|
||||
<MyTextInput>:
|
||||
readonly: False
|
||||
multiline: False
|
||||
|
||||
|
||||
<SelectableLabel>:
|
||||
# Draw a background to indicate selection
|
||||
color: 0,0,0,1
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: app.theme_cls.primary_dark if self.selected else (1, 1, 1, 0)
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
|
||||
<RV>:
|
||||
canvas:
|
||||
Color:
|
||||
rgba: 0,0,0,.2
|
||||
|
||||
Line:
|
||||
rectangle: self.x +1 , self.y, self.width - 2, self.height -2
|
||||
bar_width: 10
|
||||
scroll_type:['bars']
|
||||
viewclass: 'SelectableLabel'
|
||||
SelectableRecycleBoxLayout:
|
||||
default_size: None, dp(20)
|
||||
default_size_hint: 1, None
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
orientation: 'vertical'
|
||||
multiselect: False
|
||||
|
||||
|
||||
<MyMDTextField@MDTextField>:
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
|
||||
|
||||
|
||||
<ComposerSpinnerOption@SpinnerOption>:
|
||||
font_size: '13.5sp'
|
||||
#background_color: color_button if self.state == 'down' else color_button_pressed
|
||||
#background_down: 'atlas://data/images/defaulttheme/button'
|
||||
background_normal: 'atlas://data/images/defaulttheme/textinput_active'
|
||||
background_color: app.theme_cls.primary_color
|
||||
color: color_font
|
33
src/bitmessagekivy/kv/myaddress.kv
Normal file
33
src/bitmessagekivy/kv/myaddress.kv
Normal file
|
@ -0,0 +1,33 @@
|
|||
<MyAddress>:
|
||||
name: 'myaddress'
|
||||
BoxLayout:
|
||||
id: main_box
|
||||
orientation: 'vertical'
|
||||
spacing: dp(5)
|
||||
SearchBar:
|
||||
id: search_bar
|
||||
GridLayout:
|
||||
id: identi_tag
|
||||
padding: [20, 0, 0, 5]
|
||||
cols: 1
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
MDLabel:
|
||||
id: tag_label
|
||||
text: app.tr._('My Addresses')
|
||||
font_style: 'Subtitle2'
|
||||
FloatLayout:
|
||||
MDScrollViewRefreshLayout:
|
||||
id: refresh_layout
|
||||
refresh_callback: root.refresh_callback
|
||||
root_layout: root
|
||||
MDList:
|
||||
id: ml
|
||||
Loader:
|
||||
|
||||
|
||||
<ToggleBtn>:
|
||||
size_hint: None, None
|
||||
size: dp(36), dp(48)
|
||||
pos_hint: {'center_x': .95, 'center_y': .4}
|
||||
on_active: app.root.ids.sc10.toggleAction(self)
|
131
src/bitmessagekivy/kv/network.kv
Normal file
131
src/bitmessagekivy/kv/network.kv
Normal file
|
@ -0,0 +1,131 @@
|
|||
<NetworkStat>:
|
||||
name: 'networkstat'
|
||||
MDTabs:
|
||||
id: tab_panel
|
||||
tab_display_mode:'text'
|
||||
|
||||
Tab:
|
||||
text: app.tr._("Total connections")
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
size_hint_y: None
|
||||
height: dp(200)
|
||||
OneLineListItem:
|
||||
text: app.tr._("Total Connections")
|
||||
_no_ripple_effect: True
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
size_hint_y: None
|
||||
height: dp(58)
|
||||
MDRaisedButton:
|
||||
_no_ripple_effect: True
|
||||
# size_hint: .6, 0
|
||||
# height: dp(40)
|
||||
text: app.tr._(root.text_variable_1)
|
||||
elevation_normal: 2
|
||||
opposite_colors: True
|
||||
pos_hint: {'center_x': .5}
|
||||
# MDLabel:
|
||||
# font_style: 'H6'
|
||||
# text: app.tr._(root.text_variable_1)
|
||||
# font_size: '13sp'
|
||||
# color: (1,1,1,1)
|
||||
# halign: 'center'
|
||||
Tab:
|
||||
text: app.tr._('Processes')
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
size_hint_y: None
|
||||
height: dp(500)
|
||||
OneLineListItem:
|
||||
text: app.tr._("person-to-person")
|
||||
_no_ripple_effect: True
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
size_hint_y: None
|
||||
height: dp(58)
|
||||
MDRaisedButton:
|
||||
_no_ripple_effect: True
|
||||
# size_hint: .6, 0
|
||||
# height: dp(40)
|
||||
text: app.tr._(root.text_variable_2)
|
||||
elevation_normal: 2
|
||||
opposite_colors: True
|
||||
pos_hint: {'center_x': .5}
|
||||
# MDLabel:
|
||||
# font_style: 'H6'
|
||||
# text: app.tr._(root.text_variable_2)
|
||||
# font_size: '13sp'
|
||||
# color: (1,1,1,1)
|
||||
# halign: 'center'
|
||||
OneLineListItem:
|
||||
text: app.tr._("Brodcast")
|
||||
_no_ripple_effect: True
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
size_hint_y: None
|
||||
height: dp(58)
|
||||
MDRaisedButton:
|
||||
_no_ripple_effect: True
|
||||
# size_hint: .6, 0
|
||||
# height: dp(40)
|
||||
text: app.tr._(root.text_variable_3)
|
||||
elevation_normal: 2
|
||||
opposite_colors: True
|
||||
pos_hint: {'center_x': .5}
|
||||
# MDLabel:
|
||||
# font_style: 'H6'
|
||||
# text: app.tr._(root.text_variable_3)
|
||||
# font_size: '13sp'
|
||||
# color: (1,1,1,1)
|
||||
# halign: 'center'
|
||||
OneLineListItem:
|
||||
text: app.tr._("publickeys")
|
||||
_no_ripple_effect: True
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
size_hint_y: None
|
||||
height: dp(58)
|
||||
MDRaisedButton:
|
||||
_no_ripple_effect: True
|
||||
# size_hint: .6, 0
|
||||
# height: dp(40)
|
||||
text: app.tr._(root.text_variable_4)
|
||||
elevation_normal: 2
|
||||
opposite_colors: True
|
||||
pos_hint: {'center_x': .5}
|
||||
# MDLabel:
|
||||
# font_style: 'H6'
|
||||
# text: app.tr._(root.text_variable_4)
|
||||
# font_size: '13sp'
|
||||
# color: (1,1,1,1)
|
||||
# halign: 'center'
|
||||
OneLineListItem:
|
||||
text: app.tr._("objects")
|
||||
_no_ripple_effect: True
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
size_hint_y: None
|
||||
height: dp(58)
|
||||
MDRaisedButton:
|
||||
_no_ripple_effect: True
|
||||
# size_hint: .6, 0
|
||||
#height: dp(40)
|
||||
text: app.tr._(root.text_variable_5)
|
||||
elevation_normal: 2
|
||||
opposite_colors: True
|
||||
pos_hint: {'center_x': .5}
|
||||
# MDLabel:
|
||||
# font_style: 'H6'
|
||||
# text: app.tr._(root.text_variable_5)
|
||||
# font_size: '13sp'
|
||||
# color: (1,1,1,1)
|
||||
# halign: 'center'
|
253
src/bitmessagekivy/kv/payment.kv
Normal file
253
src/bitmessagekivy/kv/payment.kv
Normal file
|
@ -0,0 +1,253 @@
|
|||
#:import get_color_from_hex kivy.utils.get_color_from_hex
|
||||
|
||||
<Payment>:
|
||||
name: "payment"
|
||||
BoxLayout:
|
||||
ScrollView:
|
||||
bar_width:0
|
||||
do_scroll_x: False
|
||||
#scroll_y:0
|
||||
|
||||
BoxLayout:
|
||||
spacing: dp(8)
|
||||
padding: dp(5)
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
orientation: "vertical"
|
||||
|
||||
ProductCategoryLayout:
|
||||
category_text: "Monthly-Subscriptions"
|
||||
|
||||
ProductLayout:
|
||||
heading_text: "Gas (Play Billing Codelab)"
|
||||
price_text: "$0.99"
|
||||
source: app.image_path + "/payment/buynew1.png"
|
||||
description_text: "Buy gasoline to ride!"
|
||||
product_id: "SKUGASBILLING"
|
||||
|
||||
ProductLayout:
|
||||
heading_text: "Upgrade your car (Play Billing Codelab)"
|
||||
price_text: "$1.49"
|
||||
source: app.image_path + "/payment/buynew1.png"
|
||||
description_text: "Buy a premium outfit for your car!"
|
||||
product_id: "SKUUPGRADECAR"
|
||||
|
||||
ProductLayout:
|
||||
heading_text: "Month in gold status (Play Billing Codelab)"
|
||||
price_text: "$0.99"
|
||||
source: app.image_path + "/payment/buynew1.png"
|
||||
description_text: "Enjoy a gold status for a month!"
|
||||
product_id: "SKUMONTHLYGOLD"
|
||||
|
||||
ProductCategoryLayout:
|
||||
category_text: "One-time payment"
|
||||
|
||||
ProductLayout:
|
||||
heading_text: "Gas (Play Billing Codelab)"
|
||||
price_text: "$0.99"
|
||||
source: app.image_path + "/payment/buynew1.png"
|
||||
description_text: "Buy gasoline to ride!"
|
||||
product_id: "SKUONETIMEGAS"
|
||||
|
||||
ProductCategoryLayout:
|
||||
category_text: "Annual-Subscriptions"
|
||||
|
||||
ProductLayout:
|
||||
heading_text: "Gas (Play Billing Codelab)"
|
||||
price_text: "$0.99"
|
||||
source: app.image_path + "/payment/buynew1.png"
|
||||
description_text: "Buy gasoline to ride!"
|
||||
product_id: "SKUANNUALGAS"
|
||||
|
||||
ProductLayout:
|
||||
heading_text: "Year in gold status (Play Billing Codelab)"
|
||||
price_text: "$10.99"
|
||||
source: app.image_path + "/payment/buynew1.png"
|
||||
description_text: "Enjoy a gold status for a year!"
|
||||
product_id: "SKUANNUALGOLD"
|
||||
|
||||
<ProductCategoryLayout@BoxLayout>:
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
category_text:""
|
||||
|
||||
orientation: "vertical"
|
||||
spacing: 2
|
||||
|
||||
#category area
|
||||
Category:
|
||||
text_: root.category_text
|
||||
|
||||
<Category>:
|
||||
canvas:
|
||||
Color:
|
||||
rgba: 1,1,1,1
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
text_: ""
|
||||
size_hint_y: None
|
||||
height: dp(30)
|
||||
Widget:
|
||||
size_hint_x: None
|
||||
width: dp(20)
|
||||
MDLabel:
|
||||
text: root.text_
|
||||
font_size: sp(15)
|
||||
|
||||
<ProductLayout>:
|
||||
heading_text: ""
|
||||
price_text: ""
|
||||
source: ""
|
||||
description_text: ""
|
||||
|
||||
product_id: ""
|
||||
|
||||
canvas:
|
||||
Color:
|
||||
rgba: 1,1,1,1
|
||||
Rectangle:
|
||||
pos: self.pos
|
||||
size: self.size
|
||||
|
||||
size_hint_y: None
|
||||
height: dp(200)
|
||||
orientation: "vertical"
|
||||
|
||||
#heading area
|
||||
BoxLayout:
|
||||
size_hint_y: 0.3
|
||||
|
||||
#text heading
|
||||
BoxLayout:
|
||||
Widget:
|
||||
size_hint_x: None
|
||||
width: dp(20)
|
||||
MDLabel:
|
||||
text: root.heading_text
|
||||
bold: True
|
||||
|
||||
#price text
|
||||
BoxLayout:
|
||||
size_hint_x:.3
|
||||
MDLabel:
|
||||
text: root.price_text
|
||||
bold: True
|
||||
halign: "right"
|
||||
theme_text_color: "Custom"
|
||||
text_color: 0,0,1,1
|
||||
Widget:
|
||||
size_hint_x: None
|
||||
width: dp(20)
|
||||
|
||||
#details area
|
||||
BoxLayout:
|
||||
size_hint_y: 0.3
|
||||
Widget:
|
||||
size_hint_x: None
|
||||
width: dp(20)
|
||||
|
||||
#image area
|
||||
AnchorLayout:
|
||||
size_hint_x: None
|
||||
width: self.height
|
||||
BoxLayout:
|
||||
canvas:
|
||||
Color:
|
||||
rgba: 1,1,1,1
|
||||
Ellipse:
|
||||
size: self.size
|
||||
pos: self.pos
|
||||
source: root.source
|
||||
Widget:
|
||||
size_hint_x: None
|
||||
width: dp(10)
|
||||
|
||||
#description text
|
||||
BoxLayout:
|
||||
#size_hint_x: 1
|
||||
MDLabel:
|
||||
text: root.description_text
|
||||
font_size: sp(15)
|
||||
|
||||
#Button Area
|
||||
BoxLayout:
|
||||
size_hint_y: 0.4
|
||||
Widget:
|
||||
|
||||
AnchorLayout:
|
||||
anchor_x: "right"
|
||||
MDRaisedButton:
|
||||
elevation_normal: 5
|
||||
text: "BUY"
|
||||
on_release:
|
||||
#print(app)
|
||||
app.open_payment_layout(root.product_id)
|
||||
|
||||
Widget:
|
||||
size_hint_x: None
|
||||
width: dp(20)
|
||||
|
||||
<ListItemWithLabel>:
|
||||
on_release: app.initiate_purchase(self.method_name)
|
||||
recent: False
|
||||
source: ""
|
||||
method_name: ""
|
||||
right_label_text: "Recent" if self.recent else ""
|
||||
|
||||
ImageLeftWidget:
|
||||
source: root.source
|
||||
|
||||
RightLabel:
|
||||
text: root.right_label_text
|
||||
theme_text_color: "Custom"
|
||||
text_color: 0,0,0,.4
|
||||
font_size: sp(12)
|
||||
|
||||
<PaymentMethodLayout>:
|
||||
orientation: "vertical"
|
||||
size_hint_y: None
|
||||
height: "200dp"
|
||||
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
height: dp(40)
|
||||
|
||||
Widget:
|
||||
size_hint_x: None
|
||||
width: dp(20)
|
||||
MDLabel:
|
||||
text: "Select Payment Method"
|
||||
font_size: sp(14)
|
||||
bold: True
|
||||
theme_text_color: "Custom"
|
||||
text_color: 0,0,0,.5
|
||||
|
||||
|
||||
ScrollView:
|
||||
|
||||
GridLayout:
|
||||
cols: 1
|
||||
size_hint_y:None
|
||||
height:self.minimum_height
|
||||
|
||||
ListItemWithLabel:
|
||||
source: app.image_path + "/payment/gplay.png"
|
||||
text: "Google Play"
|
||||
method_name: "gplay"
|
||||
recent: True
|
||||
|
||||
ListItemWithLabel:
|
||||
source: app.image_path + "/payment/btc.png"
|
||||
text: "BTC"
|
||||
method_name: "btc"
|
||||
|
||||
ListItemWithLabel:
|
||||
source: app.image_path + "/payment/paypal.png"
|
||||
text: "Paypal"
|
||||
method_name: "som"
|
||||
|
||||
ListItemWithLabel:
|
||||
source: app.image_path + "/payment/buy.png"
|
||||
text: "One more method"
|
||||
method_name: "omm"
|
333
src/bitmessagekivy/kv/popup.kv
Normal file
333
src/bitmessagekivy/kv/popup.kv
Normal file
|
@ -0,0 +1,333 @@
|
|||
<LoadingPopup>:
|
||||
separator_color: 1, 1, 1, 1
|
||||
background: "White.png"
|
||||
Button:
|
||||
id: btn
|
||||
disabled: True
|
||||
background_disabled_normal: "White.png"
|
||||
Image:
|
||||
source: app.image_path + '/loader.zip'
|
||||
anim_delay: 0
|
||||
#mipmap: True
|
||||
size: root.size
|
||||
|
||||
|
||||
<GrashofPopup>:
|
||||
id: popup_box
|
||||
orientation: 'vertical'
|
||||
# spacing:dp(20)
|
||||
# spacing: "12dp"
|
||||
size_hint_y: None
|
||||
# height: "120dp"
|
||||
height: label.height+address.height
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
MDTextField:
|
||||
id: label
|
||||
multiline: False
|
||||
hint_text: app.tr._("Label")
|
||||
required: True
|
||||
icon_right: 'label'
|
||||
helper_text_mode: "on_error"
|
||||
on_text: root.checkLabel_valid(self)
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
MDTextField:
|
||||
id: address
|
||||
hint_text: app.tr._("Address")
|
||||
required: True
|
||||
icon_right: 'book-plus'
|
||||
helper_text_mode: "on_error"
|
||||
multiline: False
|
||||
on_text: root.checkAddress_valid(self)
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
|
||||
<AddbookDetailPopup>:
|
||||
id: addbook_popup_box
|
||||
size_hint_y: None
|
||||
height: 2.5*(add_label.height)
|
||||
orientation: 'vertical'
|
||||
spacing:dp(5)
|
||||
MDLabel
|
||||
font_style: 'Subtitle2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Label")
|
||||
font_size: '17sp'
|
||||
halign: 'left'
|
||||
MDTextField:
|
||||
id: add_label
|
||||
font_style: 'Body1'
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
||||
text: app.tr._(root.address_label)
|
||||
theme_text_color: 'Primary'
|
||||
required: True
|
||||
helper_text_mode: "on_error"
|
||||
on_text: root.checkLabel_valid(self)
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
MDLabel:
|
||||
font_style: 'Subtitle2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Address")
|
||||
font_size: '17sp'
|
||||
halign: 'left'
|
||||
Widget:
|
||||
size_hint_y: None
|
||||
height: dp(1)
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
id: address
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._(root.address)
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
||||
IconRightSampleWidget:
|
||||
pos_hint: {'center_x': 0, 'center_y': 1}
|
||||
icon: 'content-copy'
|
||||
on_press: app.copy_composer_text(root.address)
|
||||
|
||||
|
||||
<MyaddDetailPopup>:
|
||||
id: myadd_popup
|
||||
size_hint_y: None
|
||||
height: "130dp"
|
||||
spacing:dp(25)
|
||||
|
||||
#height: dp(1.5*(myaddr_label.height))
|
||||
orientation: 'vertical'
|
||||
MDLabel:
|
||||
id: myaddr_label
|
||||
font_style: 'Subtitle2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Label")
|
||||
font_size: '17sp'
|
||||
halign: 'left'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: root.address_label
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
||||
MDLabel:
|
||||
font_style: 'Subtitle2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Address")
|
||||
font_size: '17sp'
|
||||
halign: 'left'
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
id: label_address
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._(root.address)
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
||||
IconRightSampleWidget:
|
||||
pos_hint: {'center_x': 0, 'center_y': 1}
|
||||
icon: 'content-copy'
|
||||
on_press: app.copy_composer_text(root.address)
|
||||
BoxLayout:
|
||||
id: my_add_btn
|
||||
spacing:5
|
||||
orientation: 'horizontal'
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
MDRaisedButton:
|
||||
size_hint: 2, None
|
||||
height: dp(40)
|
||||
on_press: root.send_message_from()
|
||||
MDLabel:
|
||||
font_style: 'H6'
|
||||
text: app.tr._('Send message from')
|
||||
font_size: '13sp'
|
||||
color: (1,1,1,1)
|
||||
halign: 'center'
|
||||
MDRaisedButton:
|
||||
size_hint: 1.5, None
|
||||
height: dp(40)
|
||||
on_press: app.root.ids.scr_mngr.current = 'showqrcode'
|
||||
on_press: app.root.ids.sc15.qrdisplay(root, root.address)
|
||||
MDLabel:
|
||||
font_style: 'H6'
|
||||
text: app.tr._('Show QR code')
|
||||
font_size: '13sp'
|
||||
color: (1,1,1,1)
|
||||
halign: 'center'
|
||||
MDRaisedButton:
|
||||
size_hint: 1.5, None
|
||||
height: dp(40)
|
||||
on_press: root.close_pop()
|
||||
MDLabel:
|
||||
font_style: 'H6'
|
||||
text: app.tr._('Cancel')
|
||||
font_size: '13sp'
|
||||
color: (1,1,1,1)
|
||||
halign: 'center'
|
||||
|
||||
<AppClosingPopup>:
|
||||
id: closing_popup
|
||||
size_hint : (None,None)
|
||||
height: 1.4*(popup_label.height+ my_add_btn.children[0].height)
|
||||
width :app.window_size[0] - (app.window_size[0]/10 if app.app_platform == 'android' else app.window_size[0]/4)
|
||||
background: app.image_path + '/popup.jpeg'
|
||||
auto_dismiss: False
|
||||
separator_height: 0
|
||||
BoxLayout:
|
||||
id: myadd_popup_box
|
||||
size_hint_y: None
|
||||
spacing:dp(70)
|
||||
orientation: 'vertical'
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
spacing:dp(25)
|
||||
MDLabel:
|
||||
id: popup_label
|
||||
font_style: 'Subtitle2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Bitmessage isn't connected to the network.\n If you quit now, it may cause delivery delays.\n Wait until connected and the synchronisation finishes?")
|
||||
font_size: '17sp'
|
||||
halign: 'center'
|
||||
BoxLayout:
|
||||
id: my_add_btn
|
||||
spacing:5
|
||||
orientation: 'horizontal'
|
||||
MDRaisedButton:
|
||||
size_hint: 1.5, None
|
||||
height: dp(40)
|
||||
on_press: root.closingAction(self.children[0].text)
|
||||
on_press: app.stop()
|
||||
MDLabel:
|
||||
font_style: 'H6'
|
||||
text: app.tr._('Yes')
|
||||
font_size: '13sp'
|
||||
color: (1,1,1,1)
|
||||
halign: 'center'
|
||||
MDRaisedButton:
|
||||
size_hint: 1.5, None
|
||||
height: dp(40)
|
||||
on_press: root.closingAction(self.children[0].text)
|
||||
MDLabel:
|
||||
font_style: 'H6'
|
||||
text: app.tr._('No')
|
||||
font_size: '13sp'
|
||||
color: (1,1,1,1)
|
||||
halign: 'center'
|
||||
MDRaisedButton:
|
||||
size_hint: 1.5, None
|
||||
height: dp(40)
|
||||
#on_press: root.dismiss()
|
||||
on_press: root.closingAction(self.children[0].text)
|
||||
MDLabel:
|
||||
font_style: 'H6'
|
||||
text: app.tr._('Cancel')
|
||||
font_size: '13sp'
|
||||
color: (1,1,1,1)
|
||||
halign: 'center'
|
||||
|
||||
<SenderDetailPopup>:
|
||||
id: myadd_popup
|
||||
size_hint : (None,None)
|
||||
# height: 2*(sd_label.height+ sd_btn.children[0].height)
|
||||
width :app.window_size[0] - (app.window_size[0]/10 if app.app_platform == 'android' else app.window_size[0]/4)
|
||||
background: app.image_path + '/popup.jpeg'
|
||||
auto_dismiss: False
|
||||
separator_height: 0
|
||||
BoxLayout:
|
||||
id: myadd_popup_box
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
spacing:dp(8 if app.app_platform == 'android' else 3)
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
MDLabel:
|
||||
id: from_add_label
|
||||
font_style: 'Subtitle2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("From :")
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
||||
Widget:
|
||||
size_hint_y: None
|
||||
height: dp(1 if app.app_platform == 'android' else 0)
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
height: 50
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
id: sd_label
|
||||
font_style: 'Body2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("[b]" + root.from_addr + "[/b]")
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
||||
markup: True
|
||||
IconRightSampleWidget:
|
||||
icon: 'content-copy'
|
||||
on_press: app.copy_composer_text(root.from_addr)
|
||||
Widget:
|
||||
id: space_1
|
||||
size_hint_y: None
|
||||
height: dp(2 if app.app_platform == 'android' else 0)
|
||||
BoxLayout:
|
||||
id: to_addtitle
|
||||
Widget:
|
||||
id:space_2
|
||||
size_hint_y: None
|
||||
height: dp(1 if app.app_platform == 'android' else 0)
|
||||
BoxLayout:
|
||||
id: to_addId
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: 50
|
||||
MDLabel:
|
||||
font_style: 'Body2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Date : " + root.time_tag)
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
||||
BoxLayout:
|
||||
id: sd_btn
|
||||
orientation: 'vertical'
|
||||
MDRaisedButton:
|
||||
id: dismiss_btn
|
||||
on_press: root.dismiss()
|
||||
size_hint: .2, 0
|
||||
pos_hint: {'x': 0.8, 'y': 0}
|
||||
MDLabel:
|
||||
font_style: 'H6'
|
||||
text: app.tr._('Cancel')
|
||||
font_size: '13sp'
|
||||
color: (1,1,1,1)
|
||||
halign: 'center'
|
||||
|
||||
<ToAddrBoxlayout>:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body2'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._(root.to_addr)
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
||||
IconRightSampleWidget:
|
||||
icon: 'content-copy'
|
||||
on_press: app.copy_composer_text(root.to_addr)
|
||||
|
||||
<ToAddressTitle>:
|
||||
orientation: 'vertical'
|
||||
MDLabel:
|
||||
id: to_add_label
|
||||
font_style: 'Subtitle2'
|
||||
theme_text_color: 'Primary'
|
||||
text: "To :"
|
||||
font_size: '15sp'
|
||||
halign: 'left'
|
33
src/bitmessagekivy/kv/qrcode.kv
Normal file
33
src/bitmessagekivy/kv/qrcode.kv
Normal file
|
@ -0,0 +1,33 @@
|
|||
<ShowQRCode>:
|
||||
name: 'showqrcode'
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
size_hint: (None, None)
|
||||
pos_hint:{'center_x': .5, 'top': 0.9}
|
||||
size: (app.window_size[0]/1.8, app.window_size[0]/1.8)
|
||||
id: qr
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
MyMDTextField:
|
||||
size_hint_y: None
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._(root.address)
|
||||
multiline: True
|
||||
readonly: True
|
||||
line_color_normal: [0,0,0,0]
|
||||
_current_line_color: [0,0,0,0]
|
||||
line_color_focus: [0,0,0,0]
|
||||
halign: 'center'
|
||||
font_size: dp(15)
|
||||
bold: True
|
||||
canvas.before:
|
||||
Color:
|
||||
rgba: (0,0,0,1)
|
||||
# MDLabel:
|
||||
# size_hint_y: None
|
||||
# font_style: 'Body1'
|
||||
# theme_text_color: 'Primary'
|
||||
# text: "[b]BM-2cV7Y8imvAevK6z6YmhYRcj2t7rghBtDSZ[/b]"
|
||||
# markup: True
|
||||
# pos_hint: {'x': .28, 'y': 0.6}
|
2
src/bitmessagekivy/kv/scan_screen.kv
Normal file
2
src/bitmessagekivy/kv/scan_screen.kv
Normal file
|
@ -0,0 +1,2 @@
|
|||
<ScanScreen>:
|
||||
name:'scanscreen'
|
37
src/bitmessagekivy/kv/scanner.kv
Normal file
37
src/bitmessagekivy/kv/scanner.kv
Normal file
|
@ -0,0 +1,37 @@
|
|||
#:import ZBarSymbol pyzbar.pyzbar.ZBarSymbol
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
ZBarCam:
|
||||
id: zbarcam
|
||||
# optional, by default checks all types
|
||||
code_types: ZBarSymbol.QRCODE, ZBarSymbol.EAN13
|
||||
scan_callback: app._after_scan
|
||||
scanner_line_y_initial: self.size[1]/2 +self.qrwidth/2
|
||||
scanner_line_y_final: self.size[1]/2-self.qrwidth/2
|
||||
|
||||
canvas:
|
||||
Color:
|
||||
rgba: 0,0,0,.25
|
||||
|
||||
#left rect
|
||||
Rectangle:
|
||||
pos: self.pos[0], self.pos[1]
|
||||
size: self.size[0]/2-self.qrwidth/2, self.size[1]
|
||||
|
||||
#right rect
|
||||
Rectangle:
|
||||
pos: self.size[0]/2+self.qrwidth/2, 0
|
||||
size: self.size[0]/2-self.qrwidth/2, self.size[1]
|
||||
|
||||
#top rect
|
||||
Rectangle:
|
||||
pos: self.size[0]/2-self.qrwidth/2, self.size[1]/2+self.qrwidth/2
|
||||
size: self.qrwidth, self.size[1]/2-self.qrwidth/2
|
||||
|
||||
#bottom rect
|
||||
Rectangle:
|
||||
pos: self.size[0]/2-self.qrwidth/2, 0
|
||||
size: self.qrwidth, self.size[1]/2-self.qrwidth/2
|
||||
|
||||
|
26
src/bitmessagekivy/kv/sent.kv
Normal file
26
src/bitmessagekivy/kv/sent.kv
Normal file
|
@ -0,0 +1,26 @@
|
|||
<Sent>:
|
||||
name: 'sent'
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
spacing: dp(5)
|
||||
SearchBar:
|
||||
id: sent_search
|
||||
GridLayout:
|
||||
id: identi_tag
|
||||
padding: [20, 0, 0, 5]
|
||||
cols: 1
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
MDLabel:
|
||||
id: tag_label
|
||||
text: ''
|
||||
font_style: 'Subtitle2'
|
||||
BoxLayout:
|
||||
orientation:'vertical'
|
||||
ScrollView:
|
||||
id: scroll_y
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
Loader:
|
||||
ComposerButton:
|
964
src/bitmessagekivy/kv/settings.kv
Normal file
964
src/bitmessagekivy/kv/settings.kv
Normal file
|
@ -0,0 +1,964 @@
|
|||
<Setting>:
|
||||
name: 'set'
|
||||
MDTabs:
|
||||
id: tab_panel
|
||||
tab_display_mode:'text'
|
||||
|
||||
Tab:
|
||||
text: app.tr._("User Interface")
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(250) + self.minimum_height
|
||||
padding: 10
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'horizontal'
|
||||
height: self.minimum_height
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
disabled: True
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Start-on-login not yet supported on your OS")
|
||||
halign: 'left'
|
||||
pos_hint: {'center_x': 0, 'center_y': 0.6}
|
||||
disabled: True
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
padding: [20, 0, 0, 0]
|
||||
spacing: dp(10)
|
||||
height: dp(100) + self.minimum_height
|
||||
# pos_hint: {'center_x': 0, 'center_y': 0.6}
|
||||
BoxLayout:
|
||||
id: box_height
|
||||
orientation: 'vertical'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Tray")
|
||||
halign: 'left'
|
||||
bold: True
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Start Bitmessage in the tray(don't show main window)")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': .5}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Minimize to tray")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': .5}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Close to tray")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': .5}
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(100) + self.minimum_height
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Hide connection notifications")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0.2}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Show notification when message received")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0.2}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Run in Portable Mode")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0.2}
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._('In portable Mode, messages and config files are stored in the same directory as the program rather then the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.')
|
||||
# text: 'huiiiii'
|
||||
halign: 'left'
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(100) + self.minimum_height
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Willingly include unencrypted destination address when sending to a mobile device")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0.2}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Use identicons")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0.2}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Reply below Quote")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0.2}
|
||||
Widget:
|
||||
size_hint_y: None
|
||||
height: 10
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
# padding: [0, 10, 0, 0]
|
||||
spacing: 10
|
||||
padding: [20, 0, 0, 0]
|
||||
height: dp(20) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Interface Language")
|
||||
# halign: 'right'
|
||||
bold: True
|
||||
MDDropDownItem:
|
||||
id: dropdown_item
|
||||
text: "System Setting"
|
||||
# pos_hint: {"center_x": .5, "center_y": .6}
|
||||
# current_item: "Item 0"
|
||||
# on_release: root.menu.open()
|
||||
BoxLayout:
|
||||
spacing:5
|
||||
orientation: 'horizontal'
|
||||
# pos_hint: {'x':.76}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
spacing: 10
|
||||
MDRaisedButton:
|
||||
text: app.tr._('Apply')
|
||||
# on_press: root.change_language()
|
||||
Tab:
|
||||
text: 'Network Settings'
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(500) + self.minimum_height
|
||||
padding: 10
|
||||
BoxLayout:
|
||||
id: box_height
|
||||
orientation: 'vertical'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Listening port")
|
||||
halign: 'left'
|
||||
bold: True
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
padding: [10, 0, 0, 0]
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Listen for connections on port:")
|
||||
halign: 'left'
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(100), dp(30)
|
||||
text: app.tr._('8444')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
padding_left: 10
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("UPnP")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0}
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Proxy server / Tor")
|
||||
halign: 'left'
|
||||
bold: True
|
||||
|
||||
GridLayout:
|
||||
cols: 2
|
||||
padding: [10, 0, 0, 0]
|
||||
MDLabel:
|
||||
size_hint_x: None
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Type:")
|
||||
halign: 'left'
|
||||
MDDropDownItem:
|
||||
id: dropdown_item2
|
||||
dropdown_bg: [1, 1, 1, 1]
|
||||
text: 'none'
|
||||
pos_hint: {'x': 0.9, 'y': 0}
|
||||
items: [f"{i}" for i in ['System Setting','U.S. English']]
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
padding: [30, 0, 0, 0]
|
||||
spacing: 10
|
||||
height: dp(100) + self.minimum_height
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Server hostname:")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
hint_text: app.tr._('localhost')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Port:")
|
||||
halign: 'left'
|
||||
# TextInput:
|
||||
# size_hint: None, None
|
||||
# hint_text: '9050'
|
||||
# size: dp(app.window_size[0]/4), dp(30)
|
||||
# input_filter: "int"
|
||||
# readonly: False
|
||||
# multiline: False
|
||||
# font_size: '15sp'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
hint_text: app.tr._('9050')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Username:")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Pass:")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
padding: [30, 0, 0, 0]
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Authentication")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
padding: [30, 0, 0, 0]
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Listen for incoming connections when using proxy")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
padding: [30, 0, 0, 0]
|
||||
MDCheckbox:
|
||||
id: chkbox
|
||||
size_hint: None, None
|
||||
size: dp(48), dp(50)
|
||||
# active: True
|
||||
halign: 'center'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Only connect to onion services(*.onion)")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0}
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Bandwidth limit")
|
||||
halign: 'left'
|
||||
bold: True
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'horizontal'
|
||||
padding: [30, 0, 0, 0]
|
||||
height: dp(30) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Maximum download rate (kB/s):[0:unlimited]")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: app.window_size[0]/2, dp(30)
|
||||
hint_text: app.tr._('0')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'horizontal'
|
||||
padding: [30, 0, 0, 0]
|
||||
height: dp(30) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Maximum upload rate (kB/s):[0:unlimited]")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: app.window_size[0]/2, dp(30)
|
||||
hint_text: '0'
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'horizontal'
|
||||
padding: [30, 0, 0, 0]
|
||||
height: dp(30) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Maximum outbound connections:[0:none]")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: app.window_size[0]/2, dp(30)
|
||||
hint_text: '8'
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
BoxLayout:
|
||||
spacing:5
|
||||
orientation: 'horizontal'
|
||||
# pos_hint: {'x':.76}
|
||||
|
||||
MDRaisedButton:
|
||||
text: app.tr._('Apply')
|
||||
Tab:
|
||||
text: 'Demanded Difficulty'
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(300) + self.minimum_height
|
||||
padding: 10
|
||||
BoxLayout:
|
||||
id: box_height
|
||||
orientation: 'vertical'
|
||||
# MDLabel:
|
||||
# font_style: 'Body1'
|
||||
# theme_text_color: 'Primary'
|
||||
# text: app.tr._("Listening port")
|
||||
# halign: 'left'
|
||||
# bold: True
|
||||
|
||||
# BoxLayout:
|
||||
# size_hint_y: None
|
||||
# orientation: 'vertical'
|
||||
# height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height
|
||||
# padding: 20
|
||||
# # spacing: 10
|
||||
# BoxLayout:
|
||||
# # size_hint_y: None
|
||||
# id: box1_height
|
||||
# # orientation: 'vertical'
|
||||
# # height: dp(100) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
# text: app.tr._(root.exp_text)
|
||||
text: "\n\n\nWhen someone sends you a message, their computer must first complete some work. The difficulty of this work, by default, is 1. You may raise this default for new addresses you create by changing the values here. Any new addresses you create will require senders to meet the higher difficulty. There is one exception: if you add a friend or acquaintance to your address book, Bitmessage will automatically notify them when you next send a message that they need only complete the minimum amount of work: difficulty 1.\n\n"
|
||||
halign: 'left'
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
padding: 5
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Total difficulty:")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
hint_text: app.tr._('00000.0')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
|
||||
BoxLayout:
|
||||
# size_hint_y: None
|
||||
id: box1_height
|
||||
orientation: 'vertical'
|
||||
padding: 5
|
||||
# height: dp(100) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
# text: app.tr._(root.exp_text)
|
||||
text: "The 'Total difficulty' affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work."
|
||||
halign: 'left'
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
spacing: 0
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Small message difficulty:")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
hint_text: app.tr._('00000.0')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
|
||||
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
padding: 0
|
||||
id: box1_height
|
||||
orientation: 'vertical'
|
||||
# height: dp(100) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
# text: app.tr._(root.exp_text)
|
||||
text: "The 'Small message difficulty' mostly only affects the difficulty of sending small messages. Doubling this value makes it almost twice as difficult to send a small message but doesn't really affect large messages."
|
||||
halign: 'left'
|
||||
|
||||
|
||||
# BoxLayout:
|
||||
# id: box2_height
|
||||
# size_hint_y: None
|
||||
# orientation: 'vertical'
|
||||
# height: dp(30) + self.minimum_height
|
||||
# MDLabel:
|
||||
# font_style: 'Body1'
|
||||
# theme_text_color: 'Primary'
|
||||
# text: app.tr._("Leave these input fields blank for the default behavior.")
|
||||
# halign: 'left'
|
||||
# BoxLayout:
|
||||
# size_hint_y: None
|
||||
# orientation: 'vertical'
|
||||
# padding: [10, 0, 0, 0]
|
||||
# height: dp(50) + self.minimum_height
|
||||
# BoxLayout:
|
||||
# orientation: 'horizontal'
|
||||
# MDLabel:
|
||||
# font_style: 'Body1'
|
||||
# theme_text_color: 'Primary'
|
||||
# text: app.tr._("Give up after")
|
||||
# halign: 'left'
|
||||
# MDTextFieldRect:
|
||||
# size_hint: None, None
|
||||
# size: dp(70), dp(30)
|
||||
# text: app.tr._('0')
|
||||
# # pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
# input_filter: "int"
|
||||
# MDLabel:
|
||||
# font_style: 'Body1'
|
||||
# theme_text_color: 'Primary'
|
||||
# text: app.tr._("days and")
|
||||
# halign: 'left'
|
||||
# MDTextFieldRect:
|
||||
# size_hint: None, None
|
||||
# size: dp(70), dp(30)
|
||||
# text: '0'
|
||||
# # pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
# input_filter: "int"
|
||||
# MDLabel:
|
||||
# font_style: 'Body1'
|
||||
# theme_text_color: 'Primary'
|
||||
# text: "months"
|
||||
# halign: 'left'
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
spacing:10
|
||||
orientation: 'horizontal'
|
||||
# pos_hint: {'left': 0}
|
||||
# pos_hint: {'x':.75}
|
||||
height: dp(10) + self.minimum_height
|
||||
MDRaisedButton:
|
||||
text: app.tr._('Cancel')
|
||||
MDRaisedButton:
|
||||
text: app.tr._('Apply')
|
||||
|
||||
Tab:
|
||||
text: 'Max acceptable Difficulty'
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height
|
||||
padding: 20
|
||||
|
||||
# spacing: 10
|
||||
BoxLayout:
|
||||
# size_hint_y: None
|
||||
id: box1_height
|
||||
orientation: 'vertical'
|
||||
spacing: 10
|
||||
|
||||
# pos_hint: {'x': 0, 'y': 0.2}
|
||||
# height: dp(100) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
# text: app.tr._(root.exp_text)
|
||||
text: "\n\n\nHere you may set the maximum amount of work you are willing to do to send a message to another person. Setting these values to 0 means that any value is acceptable."
|
||||
halign: 'left'
|
||||
# BoxLayout:
|
||||
# id: box2_height
|
||||
# size_hint_y: None
|
||||
# orientation: 'vertical'
|
||||
# height: dp(40) + self.minimum_height
|
||||
# BoxLayout:
|
||||
# size_hint_y: None
|
||||
# orientation: 'vertical'
|
||||
# padding: [10, 0, 0, 0]
|
||||
# height: dp(50) + self.minimum_height
|
||||
|
||||
GridLayout:
|
||||
cols: 2
|
||||
padding: [10, 0, 0, 0]
|
||||
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
padding: [10, 0, 0, 0]
|
||||
spacing: 10
|
||||
height: dp(50) + self.minimum_height
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Maximum acceptable total difficulty:")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
hint_text: app.tr._('00000.0')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Hardware GPU acceleration (OpenCL):")
|
||||
halign: 'left'
|
||||
MDDropDownItem:
|
||||
id: dropdown_item
|
||||
text: "None"
|
||||
pos_hint: {"center_x": 0, "center_y": 0}
|
||||
# current_item: "Item 0"
|
||||
# on_release: root.menu.open()
|
||||
|
||||
# BoxLayout:
|
||||
# size_hint_y: None
|
||||
# spacing:5
|
||||
# orientation: 'horizontal'
|
||||
# pos_hint: {'center_y': .4, 'center_x': 1.15}
|
||||
# halign: 'right'
|
||||
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
spacing:5
|
||||
orientation: 'horizontal'
|
||||
pos_hint: {'center_y': 1, 'center_x': 1.15}
|
||||
halign: 'right'
|
||||
# pos_hint: {'left': 0}
|
||||
# pos_hint: {'x':.75}
|
||||
height: dp(50) + self.minimum_height
|
||||
MDRaisedButton:
|
||||
text: app.tr._('Cancel')
|
||||
MDRaisedButton:
|
||||
text: app.tr._('OK')
|
||||
Tab:
|
||||
text: 'Resends Expire'
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height
|
||||
padding: 20
|
||||
# spacing: 10
|
||||
BoxLayout:
|
||||
# size_hint_y: None
|
||||
id: box1_height
|
||||
orientation: 'vertical'
|
||||
# height: dp(100) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
# text: app.tr._(root.exp_text)
|
||||
text: "By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months."
|
||||
halign: 'left'
|
||||
BoxLayout:
|
||||
id: box2_height
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(30) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Leave these input fields blank for the default behavior.")
|
||||
halign: 'left'
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
padding: [10, 0, 0, 0]
|
||||
height: dp(50) + self.minimum_height
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Give up after")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(70), dp(30)
|
||||
text: app.tr._('0')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("days and")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(70), dp(30)
|
||||
text: '0'
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: "months"
|
||||
halign: 'left'
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
spacing:5
|
||||
orientation: 'horizontal'
|
||||
# pos_hint: {'left': 0}
|
||||
# pos_hint: {'x':.75}
|
||||
height: dp(50) + self.minimum_height
|
||||
# MDRaisedButton:
|
||||
# text: app.tr._('Cancel')
|
||||
MDRaisedButton:
|
||||
text: app.tr._('Apply')
|
||||
|
||||
Tab:
|
||||
text: 'Namecoin Integration'
|
||||
ScrollView:
|
||||
do_scroll_x: False
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height
|
||||
padding: 20
|
||||
|
||||
# spacing: 10
|
||||
BoxLayout:
|
||||
# size_hint_y: None
|
||||
id: box1_height
|
||||
orientation: 'vertical'
|
||||
spacing: 10
|
||||
|
||||
# pos_hint: {'x': 0, 'y': 0.2}
|
||||
# height: dp(100) + self.minimum_height
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
# text: app.tr._(root.exp_text)
|
||||
text: "\n\n\n\n\n\nBitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to test.\n\n(Getting your own Bitmessage address into Namecoin is still rather difficult).\n\nBitmessage can use either namecoind directly or a running nmcontrol instance\n\n"
|
||||
halign: 'left'
|
||||
|
||||
BoxLayout:
|
||||
id: box2_height
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
height: dp(40) + self.minimum_height
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
padding: [10, 0, 0, 0]
|
||||
height: dp(50) + self.minimum_height
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
padding: [10, 0, 0, 0]
|
||||
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
|
||||
# padding_left: 10
|
||||
# MDCheckbox:
|
||||
# id: chkbox
|
||||
# size_hint: None, None
|
||||
# size: dp(48), dp(50)
|
||||
# # active: True
|
||||
# halign: 'center'
|
||||
# MDLabel:
|
||||
# font_style: 'Body1'
|
||||
# theme_text_color: 'Primary'
|
||||
# text: app.tr._("UPnP")
|
||||
# halign: 'left'
|
||||
# pos_hint: {'x': 0, 'y': 0}
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Connect to:")
|
||||
halign: 'left'
|
||||
|
||||
# MDCheckbox:
|
||||
# id: chkbox
|
||||
# size_hint: None, None
|
||||
# size: dp(48), dp(50)
|
||||
# # active: True
|
||||
# halign: 'center'
|
||||
Check:
|
||||
active: True
|
||||
pos_hint: {'x': 0, 'y': -0.2}
|
||||
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Namecoind")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0}
|
||||
|
||||
Check:
|
||||
active: False
|
||||
pos_hint: {'x': 0, 'y': -0.2}
|
||||
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("NMControl")
|
||||
halign: 'left'
|
||||
pos_hint: {'x': 0, 'y': 0}
|
||||
|
||||
GridLayout:
|
||||
cols: 2
|
||||
padding: [10, 0, 0, 0]
|
||||
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
orientation: 'vertical'
|
||||
padding: [30, 0, 0, 0]
|
||||
spacing: 10
|
||||
height: dp(100) + self.minimum_height
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("hostname:")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
hint_text: app.tr._('localhost')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Port:")
|
||||
halign: 'left'
|
||||
# TextInput:
|
||||
# size_hint: None, None
|
||||
# hint_text: '9050'
|
||||
# size: dp(app.window_size[0]/4), dp(30)
|
||||
# input_filter: "int"
|
||||
# readonly: False
|
||||
# multiline: False
|
||||
# font_size: '15sp'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
hint_text: app.tr._('9050')
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
input_filter: "int"
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Username:")
|
||||
halign: 'left'
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
BoxLayout:
|
||||
orientation: 'horizontal'
|
||||
MDLabel:
|
||||
font_style: 'Body1'
|
||||
theme_text_color: 'Primary'
|
||||
text: app.tr._("Password:")
|
||||
halign: 'left'
|
||||
|
||||
MDTextFieldRect:
|
||||
size_hint: None, None
|
||||
size: dp(app.window_size[0]/4), dp(30)
|
||||
pos_hint: {'center_y': .5, 'center_x': .5}
|
||||
password: True
|
||||
|
||||
|
||||
BoxLayout:
|
||||
size_hint_y: None
|
||||
spacing:5
|
||||
orientation: 'horizontal'
|
||||
pos_hint: {'center_y': .4, 'center_x': 1.15}
|
||||
halign: 'right'
|
||||
# pos_hint: {'left': 0}
|
||||
# pos_hint: {'x':.75}
|
||||
height: dp(50) + self.minimum_height
|
||||
MDRaisedButton:
|
||||
text: app.tr._('Cancel')
|
||||
MDRaisedButton:
|
||||
text: app.tr._('Apply')
|
||||
MDRaisedButton:
|
||||
text: app.tr._('OK')
|
||||
Loader:
|
25
src/bitmessagekivy/kv/trash.kv
Normal file
25
src/bitmessagekivy/kv/trash.kv
Normal file
|
@ -0,0 +1,25 @@
|
|||
<Trash>:
|
||||
name: 'trash'
|
||||
BoxLayout:
|
||||
orientation: 'vertical'
|
||||
spacing: dp(5)
|
||||
GridLayout:
|
||||
id: identi_tag
|
||||
padding: [20, 20, 0, 5]
|
||||
spacing: dp(5)
|
||||
cols: 1
|
||||
size_hint_y: None
|
||||
height: self.minimum_height
|
||||
MDLabel:
|
||||
id: tag_label
|
||||
text: ''
|
||||
font_style: 'Subtitle2'
|
||||
BoxLayout:
|
||||
orientation:'vertical'
|
||||
ScrollView:
|
||||
id: scroll_y
|
||||
do_scroll_x: False
|
||||
MDList:
|
||||
id: ml
|
||||
Loader:
|
||||
ComposerButton:
|
Reference in New Issue
Block a user