Subversion Repositories basico

Compare Revisions

Ignore whitespace Rev 366 → Rev 367

/branches/BR-0.4/basico/core/mod_win.py
272,16 → 272,23
notebook_menuview.set_show_tabs(False)
notebook_menuview.set_hexpand(True)
 
# Menuview for SAP Notes
menuview_sapnotes_page = self.setup_tab_menuview_sapnotes()
menuview_sapnotes_page.set_hexpand(True)
tab_widget = self.srvuif.create_notebook_tab_label('basico-sapnote', '<b>SAP Notes</b>')
notebook_menuview.append_page(menuview_sapnotes_page, tab_widget)
 
menuview_annotation_page = self.setup_tab_menuview_annotations()
# Menuview for Annotations (I - Visor)
menuview_annotation_page = self.setup_tab_menuview_annotations_visor()
menuview_annotation_page.set_hexpand(True)
tab_widget = self.srvuif.create_notebook_tab_label('basico-annotation', '<b>Annotations</b>')
tab_widget = self.srvuif.create_notebook_tab_label('basico-annotation', '<b>Annotations Visor</b>')
notebook_menuview.append_page(menuview_annotation_page, tab_widget)
 
# Menuview for Annotations (II - Preview)
# ~ menuview_annotation_page = self.setup_tab_menuview_annotations_preview()
# ~ menuview_annotation_page.set_hexpand(True)
# ~ tab_widget = self.srvuif.create_notebook_tab_label('basico-annotation', '<b>Annotations Preview</b>')
# ~ notebook_menuview.append_page(menuview_annotation_page, tab_widget)
 
# Paned
## left pane
595,7 → 602,7
return box
 
 
def setup_tab_menuview_annotations(self):
def setup_tab_menuview_annotations_visor(self):
vbox_main = Gtk.VBox()
vbox_main.set_hexpand(False)
vbox_main.set_property('margin-top', 6)
695,6 → 702,11
return vbox_main
 
 
def setup_tab_menuview_annotations_preview(self):
vbox_main = Gtk.VBox()
return vbox_main
def setup_stack_about(self):
box = Gtk.VBox()
box.set_hexpand(True)
/branches/BR-0.4/basico/data/icons/basico-arrow-down.svg
0,0 → 1,75
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
x="0.00000000"
y="0.00000000"
width="90"
height="90"
id="svg548"
sodipodi:version="0.32"
sodipodi:docname="arrow-down.svg"
sodipodi:docbase="/home/tweenk/GNUtoon/actions"
inkscape:version="0.46+devel"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata23">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
id="base"
inkscape:zoom="3.8026632"
inkscape:cx="26.556376"
inkscape:cy="48.600042"
inkscape:window-width="1014"
inkscape:window-height="724"
inkscape:window-x="0"
inkscape:window-y="1"
showguides="true"
snaptoguides="true"
inkscape:current-layer="svg548"
width="90px"
height="90px"
showgrid="false" />
<defs
id="defs550" />
<g
transform="matrix(-2.6263269,-1.9132615,-1.9132615,2.6263269,250.22133,68.654861)"
style="font-size:12px"
id="g584">
<path
d="M 52.452961,36.20181 C 54.446661,37.19861 65.4724,34.7713 65.7572,32.6353 66.172581,27.312501 55.6307,20.7151 54.0642,20.1455 c -1.5665,-0.5696 -2.9521,-0.0821 -3.3793,0.9147 -0.877798,1.003909 -0.843794,14.434771 1.768061,15.14161 z"
transform="matrix(1.369638,0,0,1.207417,-21.85404,-4.997635)"
style="fill:#0d3c07;fill-rule:evenodd;stroke-width:1pt"
id="path582"
sodipodi:nodetypes="ccscc" />
<path
d="M 51.924259,35.908114 C 54.071582,36.839822 64.2247,34.8892 64.5095,32.7532 64.7943,30.6171 61.090249,29.483133 61.517449,28.059133 56.748645,23.519512 50.6962,21.3608 50.269,22.3576 c -1.002813,1.240697 -1.206217,13.085473 1.655259,13.550514 z"
style="fill:#2aaf18;fill-rule:evenodd;stroke-width:1pt"
id="path581"
sodipodi:nodetypes="ccccc" />
<path
d="m 61.9462,28.3386 c 1.5664,1.2816 3.4177,4.4145 2.4209,5.269 C 62.6583,35.174 53.046636,36.746578 51.922195,36.010796 50.782995,35.441096 60.0949,33.4652 60.2373,31.0443 60.3797,28.6234 57.458082,27.995128 58.312482,26.571028 58.897311,25.517067 61.519,27.769 61.9462,28.3386 z"
style="fill:#208c11;fill-rule:evenodd;stroke-width:1pt"
id="path583"
sodipodi:nodetypes="cccccc" />
</g>
<path
d="m 52.612977,57.467172 c 0,0 15.151013,-15.296811 16.208798,-19.106348 1.0575699,-3.809291 -6.2242792,-1.6720205 -6.2242792,-1.6720205 0,0 -7.2278359,19.351801 -9.9845196,20.778369 z"
style="font-size:12px;fill:#ffffff;fill-rule:evenodd;stroke-width:1pt"
id="path589" />
</svg>
/branches/BR-0.4/basico/data/icons/basico-arrow-up.svg
0,0 → 1,75
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
x="0.00000000"
y="0.00000000"
width="90"
height="90"
id="svg548"
sodipodi:version="0.32"
sodipodi:docname="arrow-up.svg"
sodipodi:docbase="/home/tweenk/GNUtoon/actions"
inkscape:version="0.46+devel"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata23">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
id="base"
inkscape:zoom="3.8026632"
inkscape:cx="26.556376"
inkscape:cy="48.600042"
inkscape:window-width="1014"
inkscape:window-height="724"
inkscape:window-x="0"
inkscape:window-y="1"
showguides="true"
snaptoguides="true"
inkscape:current-layer="svg548"
width="90px"
height="90px"
showgrid="false" />
<defs
id="defs550" />
<g
transform="matrix(-2.6263269,1.9132615,-1.9132615,-2.6263269,250.22133,22.790856)"
style="font-size:12px"
id="g584">
<path
d="M 52.452961,36.20181 C 54.446661,37.19861 65.4724,34.7713 65.7572,32.6353 66.172581,27.312501 55.6307,20.7151 54.0642,20.1455 52.4977,19.5759 51.1121,20.0634 50.6849,21.0602 49.807102,22.064109 49.841106,35.494971 52.452961,36.20181 z"
transform="matrix(1.369638,0,0,1.207417,-21.85404,-4.997635)"
style="fill:#0d3c07;fill-rule:evenodd;stroke-width:1pt"
id="path582"
sodipodi:nodetypes="ccscc" />
<path
d="M 51.924259,35.908114 C 54.071582,36.839822 64.2247,34.8892 64.5095,32.7532 64.7943,30.6171 61.090249,29.483133 61.517449,28.059133 56.748645,23.519512 50.6962,21.3608 50.269,22.3576 49.266187,23.598297 49.062783,35.443073 51.924259,35.908114 z"
style="fill:#2aaf18;fill-rule:evenodd;stroke-width:1pt"
id="path581"
sodipodi:nodetypes="ccccc" />
<path
d="m 61.9462,28.3386 c 1.5664,1.2816 3.4177,4.4145 2.4209,5.269 C 62.6583,35.174 53.046636,36.746578 51.922195,36.010796 50.782995,35.441096 60.0949,33.4652 60.2373,31.0443 60.3797,28.6234 57.458082,27.995128 58.312482,26.571028 58.897311,25.517067 61.519,27.769 61.9462,28.3386 z"
style="fill:#208c11;fill-rule:evenodd;stroke-width:1pt"
id="path583"
sodipodi:nodetypes="cccccc" />
</g>
<path
d="m 52.612977,33.978545 c 0,0 15.151013,15.296811 16.208798,19.106348 1.0575699,3.809291 -6.2242792,1.6720205 -6.2242792,1.6720205 0,0 -7.2278359,-19.351801 -9.9845196,-20.778369 z"
style="font-size:12px;fill:#ffffff;fill-rule:evenodd;stroke-width:1pt"
id="path589" />
</svg>
/branches/BR-0.4/basico/data/res/css/custom-asciidoc.css
0,0 → 1,58
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
 
@import url(https://fonts.googleapis.com/css?family=Cabin+Sketch|Architects+Daughter);
@import "asciidoctor.css"; /* Default asciidoc style framework - important */
 
/* CUSTOMISATIONS */
/* Change the values in root for quick customisation. If you want even more fine grain... venture further. */
:root{
--maincolor:#FFFFFF;
--primarycolor:#000000;
--secondarycolor:#1a237e;
--tertiarycolor:#CCCCCC;
--highlightcolor: #ffd600;
--sidebarbackground:#CACACA;
--linkcolor:#0D47A1;
--linkcoloralternate:#B71C1C;
--stickynote: #f9a825;
--white:#FFFFFF;
--black:#000000;
}
 
/* Text styles */
 
/*
body{font-family: "Architects Daughter",sans-serif;background-color: #fff;background-image:linear-gradient(90deg, transparent 79px, #abced4 79px, #abced4 81px, transparent 81px),linear-gradient(#eee .15em, transparent .15em);background-size: 100% 1.2em;}
*/
 
h1{color:var(--primarycolor) !important;font-family:"Cabin Sketch",sans-serif;}
h2,h3,h4,h5,h6{color:var(--secondarycolor) !important;font-family:"Cabin Sketch",sans-serif;}
.title{color:var(--black) !important;font-family:"Architects Daughter",sans-serif;font-style: normal; font-weight: normal;}
/*a{text-decoration: none;}*/
p{font-family: "Architects Daughter",sans-serif; font-size: 12pt; ! important}
#toc.toc2 a:link{color:var(--linkcolor); font-size: 14pt; font-family: "Cabin Sketch",sans-serif; !important}
blockquote{color:var(--secondarycolor) !important}
.quoteblock{color:var(--black)}
.quoteblock blockquote:before{color:var(--black)}
code{color:var(--highlightcolor);background-color: var(--black) !important}
mark{background-color: var(--highlightcolor)} /* Text highlighting color */
pre{background-color: var(--stickynote) !important;color:var(--secondarycolor);font-family: monospace;}
 
/* Table styles */
th{background-color: var(--maincolor);color:var(--black) !important;}
td{background-color: var(--maincolor);color: var(--black) !important}
 
 
#toc.toc2{background-color:var(--sidebarbackground);font-family: "Architects Daughter",sans-serif;}
#toctitle{color:var(--white); font-family: "Cabin Sketch"}
 
/* Responsiveness fixes */
video {
max-width: 100%;
}
 
@media all and (max-width: 600px) {
table {
width: 55vw!important;
font-size: 3vw;
}
/branches/BR-0.4/basico/services/srv_annotations.py
10,6 → 10,7
import os
import json
import uuid
from html import escape
import glob
from os.path import sep as SEP
 
191,7 → 192,7
ANNOTATION_FILE = LPATH['ANNOTATIONS'] + aid + '.json'
with open(ANNOTATION_FILE, 'r') as fa:
metadata = json.load(fa)
return metadata['Title']
return escape(metadata['Title'])
 
 
def get_content_file(self, aid):
/branches/BR-0.4/basico/services/srv_asciidoctor.py
9,27 → 9,19
 
import os
from basico.core.mod_srv import Service
from basico.core.mod_env import FILE, LPATH, ATYPES, APP
from basico.core.mod_env import FILE, LPATH, ATYPES, APP, GPATH
 
CMD_ASCIIDOCTOR = "%s %s -b html5 -D %s %s"
ADOCPROPS = {
# ~ 'stylesheet' : 'custom-asciidoc.css',
# ~ 'stylesdir' : GPATH['CSS'],
'imagesdir' : LPATH['ATTACHMENTS'],
'source-highlighter' : 'coderay',
# ~ 'stylesheet' : 'kb4it.css',
# ~ 'stylesdir' : 'resources/css',
# ~ 'imagesdir' : 'resources/images',
# ~ 'scriptsdir' : 'resources/js',
'toc' : 'left',
'toclevels' : '6',
'icons' : 'font',
'iconfont-remote!' : None,
# ~ 'iconfont-name' : 'fontawesome-4.7.0',
'experimental' : None,
'linkcss' : None,
# ~ 'docinfo1' : 'shared-header',
# ~ 'docinfo2' : 'shared-footer',
# ~ 'docinfodir' : 'resources/docinfo',
#~ 'noheader' : None,
#~ 'nofooter' : None,
}
 
class Asciidoctor(Service):
55,16 → 47,21
adocprops += '-a %s=%s \\\n' % (prop, ADOCPROPS[prop])
else:
adocprops += '-a %s \\\n' % prop
self.log.debug("\tParameters passed to Asciidoc:\n%s" % adocprops)
# ~ self.log.debug("\tParameters passed to Asciidoc:\n%s" % adocprops)
 
source = self.srvant.get_content_file(aid)
atitle = self.srvant.get_title(aid)
tmp_content = "= %s\n\n%s" % (atitle, open(source, 'r').read())
tmp_file = LPATH['TMP'] + os.path.basename(source)
with open(tmp_file, 'w') as tmp:
tmp.write(tmp_content)
target_dir = LPATH['CACHE_HTML']
target_file = os.path.basename(source).replace('.adoc', '.html')
target = "file://" + target_dir + target_file
asciidoctor = self.srvutl.which('asciidoctor')
cmd = CMD_ASCIIDOCTOR % (asciidoctor, adocprops, target_dir, source)
self.log.debug(cmd)
cmd = CMD_ASCIIDOCTOR % (asciidoctor, adocprops, target_dir, tmp_file)
# ~ self.log.debug(cmd)
res = os.system(cmd)
self.log.debug("Asciidoctor result: %s", res)
self.log.debug("Preview in: %s", target)
# ~ self.log.debug("Asciidoctor result: %s", res)
# ~ self.log.debug("Preview in: %s", target)
return target
/branches/BR-0.4/basico/services/srv_callbacks.py
71,13 → 71,13
visor_annotations.populate()
paned.set_position(400)
notebook_viewmenu.set_current_page(1)
elif page_num == 2:
else:
self.srvuif.set_widget_visibility('gtk_button_menu_views', False)
self.srvuif.set_widget_visibility('gtk_label_total_notes', True)
visor_attachments = self.srvgui.get_widget('visor_attachments')
visor_attachments.populate()
paned.set_position(400)
notebook_viewmenu.set_current_page(2)
paned.set_position(0)
# ~ notebook_viewmenu.set_current_page(2)
 
def gui_show_visor_sapnotes(self):
notebook = self.srvgui.get_widget('gtk_notebook_visor')
808,6 → 808,15
self.srvuif.set_widget_visibility('gtk_vbox_container_annotations', False)
 
 
def gui_annotation_previous_row(self, *args):
visor_annotations = self.srvgui.get_widget('visor_annotations')
visor_annotations.row_previous()
 
def gui_annotation_next_row(self, *args):
visor_annotations = self.srvgui.get_widget('visor_annotations')
visor_annotations.row_next()
 
def gui_copy_to_clipboard_sapnote(self, widget, lsid, popover):
visor_sapnotes = self.srvgui.get_widget('visor_sapnotes')
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
/branches/BR-0.4/basico/services/srv_uif.py
277,3 → 277,25
tool.set_draw(draw)
tool.set_expand(expand)
return tool
 
 
def tree_path_to_row(self, path):
"""
Convert `path` to a list row integer.
 
`path` can be either a :class:`Gtk.Treepath` instance or a string
representation of it (as commonly used by various callbacks).
"""
if path is None: return None
if isinstance(path, Gtk.TreePath):
return path.get_indices()[0]
if isinstance(path, str):
return int(path)
raise TypeError("Bad type {} for path {}"
.format(repr(type(path)), repr(path)))
 
 
def tree_row_to_path(self, row):
"""Convert list row integer to a :class:`Gtk.TreePath`."""
if row is None: return None
return Gtk.TreePath.new_from_string(str(row))
/branches/BR-0.4/basico/widgets/wdg_annot.py
130,10 → 130,10
self.tool_bar.insert(tool, -1)
 
# Attachment button
tool = Gtk.ToolButton()
tool = self.srvgui.add_widget('gtk_button_annotation_toolbar_attachment', Gtk.ToolButton())
tool.set_tooltip_markup('<b>Attach file(s) to this annotation</b>')
tool.set_icon_name('basico-attachment')
popover = self.srvgui.add_widget('gtk_button_annotation_toolbar_attachment', Gtk.Popover.new(tool))
# ~ popover = self.srvgui.add_widget('gtk_button_annotation_toolbar_attachment', Gtk.Popover.new(tool))
tool.connect('clicked', self.srvclb.gui_attachment_add_to_annotation)
self.tool_bar.insert(tool, -1)
 
187,6 → 187,24
# Separator
tool = self.srvuif.get_toolbar_separator(False, False)
self.tool_bar.insert(tool, -1)
 
# Arrow UP
tool = self.srvgui.add_widget('gtk_button_annotation_toolbar_previous_item', Gtk.ToolButton())
tool.set_tooltip_markup('<b>Previous annotation</b>')
tool.set_icon_name('basico-arrow-up')
tool.connect('clicked', self.srvclb.gui_annotation_previous_row)
self.tool_bar.insert(tool, -1)
 
# Arrow DOWN
tool = self.srvgui.add_widget('gtk_button_annotation_toolbar_next_item', Gtk.ToolButton())
tool.set_tooltip_markup('<b>Next annotation</b>')
tool.set_icon_name('basico-arrow-down')
tool.connect('clicked', self.srvclb.gui_annotation_next_row)
self.tool_bar.insert(tool, -1)
 
# Separator
tool = self.srvuif.get_toolbar_separator(False, False)
self.tool_bar.insert(tool, -1)
# Maximize toggle button
tool = Gtk.ToolItem()
230,8 → 248,9
self.sid = sid
self.get_services()
self.__setup()
# ~ self.stack_changed()
 
 
def get_services(self):
"""Load services to be used in this class
"""
297,6 → 316,10
stack_annotation.connect('notify::visible-child', self.stack_changed)
self.container_body.add(stack_annotation)
 
# ~ hpaned = self.srvgui.get_widget('gtk_hpaned')
# ~ hpaned.set_position(0)
# ~ self.log.debug("HPaned position: %d", hpaned.get_position())
# Add Annotation preview stack
preview = self.annotation_preview()
stack_annotation.add_titled(preview, "preview", "Preview annotation")
307,21 → 330,45
stack_annotation.add_titled(editor, "editor", "Edit annotation")
stack_annotation.child_set_property (editor, "icon-name", "basico-drafts")
 
stack_annotation.set_visible_child(editor)
stack_annotation.set_visible_child_full('editor', Gtk.StackTransitionType.CROSSFADE)
stack_annotation.set_property('visible-child', editor)
 
 
def stack_changed(self, stack, GParamObject):
# Add Annotation properties stack
properties = self.annotation_properties()
stack_annotation.add_titled(properties, "properties", "Edit properties")
stack_annotation.child_set_property (properties, "icon-name", "basico-tags")
stack_annotation.set_visible_child_name('editor')
# ~ stack_annotation.set_visible_child_full('editor', Gtk.StackTransitionType.CROSSFADE)
# ~ stack_annotation.set_property('visible-child', editor)
def stack_changed(self, *args):
stack = self.srvgui.get_widget('stack_annotation')
stack_name = stack.get_visible_child_name()
if stack_name == 'preview':
self.preview()
self.srvuif.set_widget_visibility('gtk_combobox_annotation_category', False)
self.srvuif.set_widget_visibility('gtk_combobox_annotation_type', False)
self.srvuif.set_widget_visibility('gtk_combobox_annotation_priority', False)
self.srvuif.set_widget_visibility('gtk_button_annotation_toolbar_attachment', False)
elif stack_name == 'properties':
self.srvuif.set_widget_visibility('gtk_combobox_annotation_category', False)
self.srvuif.set_widget_visibility('gtk_combobox_annotation_type', False)
self.srvuif.set_widget_visibility('gtk_combobox_annotation_priority', False)
self.srvuif.set_widget_visibility('gtk_button_annotation_toolbar_attachment', False)
elif stack_name == 'editor':
self.srvuif.set_widget_visibility('gtk_combobox_annotation_category', True)
self.srvuif.set_widget_visibility('gtk_combobox_annotation_type', True)
self.srvuif.set_widget_visibility('gtk_combobox_annotation_priority', True)
self.srvuif.set_widget_visibility('gtk_button_annotation_toolbar_attachment', True)
 
def annotation_preview(self):
browser = self.srvgui.add_widget('annotation_browser', BasicoBrowser(self.app))
return browser
 
def annotation_properties(self):
properties = self.srvgui.add_widget('annotation_properties', Gtk.Label('Properties'))
return properties
 
def annotation_editor(self):
vbox = Gtk.VBox()
503,7 → 550,8
human_timestamp = self.srvutl.get_human_date_from_timestamp(annotation['Timestamp'])
a_wdg_human_timestamp.set_markup('<b>%s</b>' % human_timestamp)
a_wdg_timestamp_created.set_text(annotation['Created'])
self.preview()
self.stack_changed()
# ~ self.preview()
 
 
def get_metadata_from_widget(self):
540,7 → 588,7
def preview(self):
aid = self.get_aid_from_widget()
browser = self.srvgui.get_widget('annotation_browser')
self.log.debug("Execute asciidoc for current annotation: %s", self.sid)
# ~ self.log.debug("Execute asciidoc for current annotation: %s", self.sid)
target = self.srvacd.generate_preview(aid)
browser.load_url(html.escape(target))
self.log.debug("Load preview from %s", target)
# ~ self.log.debug("Load preview from %s", target)
/branches/BR-0.4/basico/widgets/wdg_browser.py
27,12 → 27,11
self.webview = WebKit.WebView()
 
settings = self.webview.get_settings()
settings.set_property('enable-developer-extras', True)
settings.set_property('enable-default-context-menu', True)
 
settings.set_property('enable-developer-extras', False)
settings.set_property('enable-default-context-menu', False)
settings.set_property('default-encoding', 'utf-8')
settings.set_property('enable-private-browsing', True)
settings.set_property('enable-html5-local-storage', True)
settings.set_property('enable-private-browsing', False)
settings.set_property('enable-html5-local-storage', False)
 
# disable plugins, like Adobe Flash and Java
settings.set_property('enable-plugins', True)
/branches/BR-0.4/basico/widgets/wdg_visor_annotations.py
159,6 → 159,7
str, # Annotation created
str, # Timestamp created
)
self.srvgui.add_widget('gtk_model_annotation', self.model)
 
# Setup columns
def get_column_header_widget(title, icon_name=None, width=24, height=24):
428,6 → 429,34
return self.visible_filter
 
 
def row_current(self, *args):
selection = self.treeview.get_selection()
model, treeiter = selection.get_selected()
return treeiter
 
def row_previous(self, *args):
selection = self.treeview.get_selection()
model, iter_current = selection.get_selected()
if iter_current is not None:
iter_previous = model.iter_previous(iter_current)
if iter_previous:
selection.select_iter(iter_previous)
 
def row_next(self, *args):
selection = self.treeview.get_selection()
model, iter_current = selection.get_selected()
if iter_current is not None:
iter_next = model.iter_next(iter_current)
if iter_next:
selection.select_iter(iter_next)
path, col = self.treeview.get_cursor()
row = self.srvuif.tree_path_to_row(path)
self.treeview.scroll_to_cell(row, column=None, use_align=False, row_align=0.5, col_align=0)
 
 
def row_changed(self, selection):
try:
model, treeiter = selection.get_selected()
/branches/BR-0.4/setup.py
43,6 → 43,8
('basico/data/res/css',
[
'basico/data/res/css/basico.css',
'basico/data/res/css/asciidoctor.css',
'basico/data/res/css/custom-asciidoc.css',
]),
('basico/data/tpl', ['basico/data/tpl/report.html']),
('basico/data/icons',
61,6 → 63,8
'basico/data/icons/basico-annotation-type-todo.svg',
'basico/data/icons/basico-annotation-type-email.svg',
'basico/data/icons/basico-annotation-type-meeting.svg',
'basico/data/icons/basico-arrow-up.svg',
'basico/data/icons/basico-arrow-down.svg',
'basico/data/icons/basico-archived.svg',
'basico/data/icons/basico-attachment.svg',
'basico/data/icons/basico-backup.svg',