def __init__(self, ui, vcs): Dialog.__init__(self, ui, _('Save Version'), # T: dialog title button=(None, 'gtk-save'), help='Plugins:Version Control') self.vcs = vcs self.add_text(_("Please enter a comment for this version")) # T: Dialog text vpaned = gtk.VPaned() self.vbox.add(vpaned) window, self.textview = scrolled_text_view(_('Saved version from zim')) # T: default version comment in the "save version" dialog self.textview.set_editable(True) vpaned.add1(window) vbox = gtk.VBox() vpaned.add2(vbox) label = gtk.Label('<b>'+_('Details')+'</b>') # T: section for version details in "save version" dialog label.set_use_markup(True) label.set_alignment(0, 0.5) vbox.pack_start(label, False) status = self.vcs.get_status() window, textview = scrolled_text_view(text=''.join(status), monospace=True) vbox.add(window)
def __init__(self, ui, title, lines): Dialog.__init__(self, ui, title, buttons=gtk.BUTTONS_CLOSE) self.set_default_size(600, 300) window, textview = scrolled_text_view(''.join(lines), monospace=True) self.vbox.add(window)
def __init__(self, ui, vcs): Dialog.__init__(self, ui, _('Versions'), # T: dialog title buttons=gtk.BUTTONS_CLOSE, help='Plugins:Version Control') self.vcs = vcs self.uistate.setdefault('windowsize', (600, 500), check=self.uistate.is_coord) self.uistate.setdefault('vpanepos', 300) self.vpaned = gtk.VPaned() self.vpaned.set_position(self.uistate['vpanepos']) self.vbox.add(self.vpaned) vbox = gtk.VBox(spacing=5) self.vpaned.pack1(vbox, resize=True) # Choice between whole notebook or page label = gtk.Label('<b>'+_('Versions')+':</b>') # section label label.set_use_markup(True) label.set_alignment(0, 0.5) vbox.pack_start(label, False) self.notebook_radio = gtk.RadioButton(None, _('Complete _notebook')) # T: Option in versions dialog to show version for complete notebook self.page_radio = gtk.RadioButton(self.notebook_radio, _('_Page')+':') # T: Option in versions dialog to show version for single page #~ recursive_box = gtk.CheckButton('Recursive') vbox.pack_start(self.notebook_radio, False) # Page entry hbox = gtk.HBox(spacing=5) vbox.pack_start(hbox, False) hbox.pack_start(self.page_radio, False) self.page_entry = PageEntry(self.ui.notebook) self.page_entry.set_path(ui.page) hbox.pack_start(self.page_entry, False) # View annotated button ann_button = gtk.Button(_('View _Annotated')) # T: Button label ann_button.connect('clicked', lambda o: self.show_annotated()) hbox.pack_start(ann_button, False) # Help text label = gtk.Label('<i>\n'+_( '''\ Select a version to see changes between that version and the current state. Or select multiple versions to see changes between those versions. ''' ).strip()+'</i>') # T: Help text in versions dialog label.set_use_markup(True) #~ label.set_alignment(0, 0.5) vbox.pack_start(label, False) # Version list self.versionlist = VersionsTreeView() self.versionlist.load_versions(vcs.list_versions()) scrolled = gtk.ScrolledWindow() scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scrolled.set_shadow_type(gtk.SHADOW_IN) scrolled.add(self.versionlist) vbox.add(scrolled) # ----- vbox = gtk.VBox(spacing=5) self.vpaned.pack2(vbox, resize=False) frame = gtk.Frame() label = gtk.Label('<b>'+_('Comment')+'</b>') # T: version details label.set_use_markup(True) frame.set_label_widget(label) vbox.add(frame) # Comment text window, textview = scrolled_text_view() self.comment_textview = textview window.set_border_width(10) frame.add(window) buttonbox = gtk.HButtonBox() buttonbox.set_layout(gtk.BUTTONBOX_END) vbox.pack_start(buttonbox, False) # Restore version button revert_button = gtk.Button(_('_Restore Version')) # T: Button label revert_button.connect('clicked', lambda o: self.restore_version()) buttonbox.add(revert_button) # Notebook Changes button diff_button = gtk.Button(_('Show _Changes')) # T: button in versions dialog for diff diff_button.connect('clicked', lambda o: self.show_changes()) buttonbox.add(diff_button) # Compare page button comp_button = gtk.Button(_('_Side by Side')) # T: button in versions dialog for side by side comparison comp_button.connect('clicked', lambda o: self.show_side_by_side()) buttonbox.add(comp_button) # UI interaction between selections and buttons def on_row_activated(o, iter, path): model = self.versionlist.get_model() comment = model[iter][3] buffer = textview.get_buffer() buffer.set_text(comment) self.versionlist.connect('row-activated', on_row_activated) def on_ui_change(o): usepage = self.page_radio.get_active() self.page_entry.set_sensitive(usepage) ann_button.set_sensitive(usepage) # side by side comparison can only be done for one page # revert can only be done to one version, not multiple selection = self.versionlist.get_selection() model, rows = selection.get_selected_rows() if not rows: revert_button.set_sensitive(False) diff_button.set_sensitive(False) comp_button.set_sensitive(False) elif len(rows) == 1: revert_button.set_sensitive(usepage) diff_button.set_sensitive(True) comp_button.set_sensitive(usepage) else: revert_button.set_sensitive(False) diff_button.set_sensitive(True) comp_button.set_sensitive(usepage) self.page_radio.connect('toggled', on_ui_change) selection = self.versionlist.get_selection() selection.connect('changed', on_ui_change) # select last version self.versionlist.get_selection().select_path((0,)) col = self.versionlist.get_column(0) self.versionlist.row_activated(0, col)
def __init__(self, ui, file): Dialog.__init__(self, ui, _('Log file'), buttons=gtk.BUTTONS_CLOSE) # T: dialog title for log view dialog - e.g. for Equation Editor self.set_default_size(600, 300) window, textview = scrolled_text_view(file.read(), monospace=True) self.vbox.add(window)