def construct_preview(self, filename): if filename is None: return gtk.Label() view = gtk.TextView() buffer = view.get_buffer() view.set_editable(False) view.show() tag_main = buffer.create_tag(family="Courier") tag_linenr = buffer.create_tag(family="Courier", weight=pango.WEIGHT_HEAVY) # fill preview buffer with at most 100 lines try: fd = open(filename, 'r') except IOError: raise RuntimeError("Could not open file %s for preview!" % filename) iter = buffer.get_start_iter() try: for j in range(1,100): line = fd.readline() if len(line) == 0: break buffer.insert_with_tags(iter, u"%3d\t" % j, tag_linenr) try: buffer.insert_with_tags(iter, unicode(line), tag_main) except UnicodeDecodeError: buffer.insert_with_tags(iter, u"<unreadable line>\n", tag_main) finally: fd.close() return uihelper.new_section("Preview", uihelper.add_scrollbars(view))
def __init__(self, template_key, previewfile=None, gladefile=None): gtk.Dialog.__init__(self, "Importing %s" % template_key, None, gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) self.set_size_request(520,480) # create a new importer based on the template self.template = dataio.import_templates[template_key] self.importer = self.template.new_instance() # # set up connectors # self.connectors = pwglade.construct_connectors(self.importer) table_options = pwglade.construct_table(self.connectors) widget = uihelper.new_section("Import Options", table_options) self.vbox.pack_start(widget,False,True) for c in self.connectors: c.check_in() # # add preview widget # preview = self.construct_preview(previewfile) self.vbox.pack_start(preview,True,True) hint = gtk.Label() hint.set_markup("<i>Hint: These importer settings can later on be retrieved\nas 'recently used' template in the Edit|Preferences dialog.</i>") hint.set_use_markup(True) self.vbox.pack_start(hint,False,True) self.vbox.show_all()
def __init__(self): ConfigurationPage.__init__(self) vbox = gtk.VBox() vbox.set_spacing(uihelper.SECTION_SPACING) vbox.set_border_width(uihelper.SECTION_SPACING) label = gtk.Label("Version: xxx") label.set_alignment(0.0,0.0) vbox.pack_start(label,False,True) label = gtk.Label("Whatever: yyy") label.set_alignment(0.0,0.0) vbox.pack_start(label,False,True) frame = uihelper.new_section("About SloppyPlot", vbox) self.add(frame)
def __init__(self, owner, title="Edit Options", parent=None): """ owner: instance of HasProps that owns the properties parent: parent window @note: 'parent' is currently ignored, since it produces a silly window placement! """ gtk.Dialog.__init__(self, title, None, gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) self.owner = owner self.connectors = pwglade.construct_connectors(owner) if len(self.connectors) == 0: raise NoOptionsError table = pwglade.construct_table(self.connectors) frame = uihelper.new_section(title, table) self.vbox.pack_start(frame, False, True) self.show_all()