Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package Setzer for openSUSE:Factory checked in at 2023-09-20 13:27:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/Setzer (Old) and /work/SRC/openSUSE:Factory/.Setzer.new.16627 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Setzer" Wed Sep 20 13:27:48 2023 rev:3 rq:1112064 version:59 Changes: -------- --- /work/SRC/openSUSE:Factory/Setzer/Setzer.changes 2023-09-08 21:17:13.770091611 +0200 +++ /work/SRC/openSUSE:Factory/.Setzer.new.16627/Setzer.changes 2023-09-20 13:29:31.931381811 +0200 @@ -1,0 +2,6 @@ +Sun Sep 17 12:47:00 UTC 2023 - Atri Bhattacharya <[email protected]> + +- Update to version 59: + * No release notes. + +------------------------------------------------------------------- Old: ---- Setzer-57.tar.gz New: ---- Setzer-59.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ Setzer.spec ++++++ --- /var/tmp/diff_new_pack.ewN7Eg/_old 2023-09-20 13:29:33.031421221 +0200 +++ /var/tmp/diff_new_pack.ewN7Eg/_new 2023-09-20 13:29:33.035421364 +0200 @@ -17,7 +17,7 @@ Name: Setzer -Version: 57 +Version: 59 Release: 0 Summary: Simple yet full-featured LaTeX editor for GTK/GNOME License: GPL-3.0-or-later ++++++ Setzer-57.tar.gz -> Setzer-59.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/data/org.cvfosammmm.Setzer.metainfo.xml.in new/Setzer-59/data/org.cvfosammmm.Setzer.metainfo.xml.in --- old/Setzer-57/data/org.cvfosammmm.Setzer.metainfo.xml.in 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/data/org.cvfosammmm.Setzer.metainfo.xml.in 2023-09-09 14:43:29.000000000 +0200 @@ -64,6 +64,16 @@ </requires> <releases> + <release version="59" date="2023-9-9"> + <description translatable="no"> + <p>Bug fix</p> + </description> + </release> + <release version="58" date="2023-9-9"> + <description translatable="no"> + <p>Force light mode, ...</p> + </description> + </release> <release version="57" date="2023-8-29"> <description translatable="no"> <p>Gtk4, ...</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/data/resources/style_gtk.css new/Setzer-59/data/resources/style_gtk.css --- old/Setzer-57/data/resources/style_gtk.css 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/data/resources/style_gtk.css 2023-09-09 14:43:29.000000000 +0200 @@ -7,6 +7,7 @@ @define-color ac_text #000000; @define-color ac_bg #fff895; @define-color ac_selection_bg #f8e45c; +@define-color line_highlighting_color #eef4ff; /* ** main_window @@ -236,7 +237,7 @@ } .sidebar box.tabs-box { background-color: @theme_base_color; - border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); + border-bottom: 1px solid mix(@theme_base_color, @borders, 0.8); padding-bottom: 0px; } .sidebar box.tabs-box.no-border { @@ -255,29 +256,28 @@ box-shadow: none; } box.sidebar-symbols { - background-color: mix(@theme_base_color, @theme_bg_color, 0.7); + background-color: @theme_base_color; } box.sidebar-symbols label { padding: 9px 8px 8px 9px; background-color: @theme_base_color; - border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); + border-bottom: 1px solid mix(@theme_base_color, @borders, 0.8); } box.sidebar-symbols label.overlay { border-bottom-width: 0px; } box.sidebar-symbols flowbox { - background-color: mix(@theme_base_color, @theme_bg_color, 0.7); + background-color: @theme_base_color; padding-bottom: 36px; - border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); } box.sidebar-symbols flowbox flowboxchild { padding: 0px; } box.sidebar-symbols flowbox flowboxchild image { color: @theme_fg_color; - background-color: mix(@theme_base_color, @theme_bg_color, 0.7); - border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); - border-right: 1px solid mix(@theme_base_color, @borders, 0.5); + background-color: @theme_base_color; + border-bottom: 1px solid mix(@theme_base_color, @borders, 0.8); + border-right: 1px solid mix(@theme_base_color, @borders, 0.8); margin: 0px; padding: 5px; } @@ -294,7 +294,7 @@ .sidebar-document-structure scrolledwindow label.headline { padding: 9px 8px 8px 9px; background-color: @theme_base_color; - border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); + border-bottom: 1px solid mix(@theme_base_color, @borders, 0.8); } .sidebar-document-structure label.overlay { padding: 9px 8px 8px 9px; @@ -321,7 +321,7 @@ box.shortcutsbar { background-color: @theme_base_color; - border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); + border-bottom: 1px solid mix(@theme_base_color, @borders, 0.8); } box.shortcutsbar button.scbar, box.shortcutsbar menubutton.scbar > button { border-width: 0px; @@ -347,7 +347,7 @@ } box.preview > box { background-color: @theme_base_color; - border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); + border-bottom: 1px solid mix(@theme_base_color, @borders, 0.8); } box.preview button.scbar, box.preview .scbar > button { border-width: 0px; @@ -416,7 +416,7 @@ } box.help > box { background-color: @theme_base_color; - border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); + border-bottom: 1px solid mix(@theme_base_color, @borders, 0.8); } box.help > box button { border-width: 0px; @@ -517,6 +517,10 @@ ** document wizard */ +label.wizard-button-label { + font-weight: normal; + text-decoration: underline; +} box.document-wizard-page checkbutton { padding-left: 0px; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/meson.build new/Setzer-59/meson.build --- old/Setzer-57/meson.build 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/meson.build 2023-09-09 14:43:29.000000000 +0200 @@ -1,6 +1,6 @@ project( 'Setzer', - version: '57', + version: '59', license: 'GPL-3.0-or-later', ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/org.cvfosammmm.Setzer.json new/Setzer-59/org.cvfosammmm.Setzer.json --- old/Setzer-57/org.cvfosammmm.Setzer.json 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/org.cvfosammmm.Setzer.json 2023-09-09 14:43:29.000000000 +0200 @@ -162,7 +162,7 @@ "config-opts": [ "-Ddocs=false", "-Dvapi=false", - "-Dbackends=gtk3" + "-Dbackends=gtk4" ], "sources": [ { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/app/font_manager.py new/Setzer-59/setzer/app/font_manager.py --- old/Setzer-57/setzer/app/font_manager.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/app/font_manager.py 2023-09-09 14:43:29.000000000 +0200 @@ -46,10 +46,10 @@ else: FontManager.main_window.css_provider_font_size.load_from_data(data.encode('utf-8')) - def get_char_width(text_view): + def get_char_width(text_view, char='A'): context = text_view.get_pango_context() layout = Pango.Layout.new(context) - layout.set_text('A', -1) + layout.set_text(char, -1) char_width, line_height_1 = layout.get_pixel_size() return char_width diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/document/code_folding/code_folding.py new/Setzer-59/setzer/document/code_folding/code_folding.py --- old/Setzer-57/setzer/document/code_folding/code_folding.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/document/code_folding/code_folding.py 2023-09-09 14:43:29.000000000 +0200 @@ -30,6 +30,7 @@ self.tag = self.source_buffer.create_tag('invisible_region', invisible=1) self.folding_regions = dict() + self.folding_regions_by_line = dict() self.initial_folded_regions = None self.document.parser.connect('finished_parsing', self.on_parser_update) @@ -78,6 +79,7 @@ last_line = -1 self.folding_regions = dict() + self.folding_regions_by_line = dict() for block in parser.symbols['blocks']: if block[1] != None: if block[2] != last_line: @@ -91,6 +93,7 @@ region['starting_line'] = block[2] region['ending_line'] = block[3] self.folding_regions[block[0]] = region + self.folding_regions_by_line[block[2]] = region last_line = block[2] # in a last step, the regions that are no longer @@ -102,9 +105,8 @@ self.initial_folding() def get_region_by_line(self, line): - offset = self.source_buffer.get_iter_at_line(line).iter.get_offset() - if offset in self.folding_regions: - return self.folding_regions[offset] + if line in self.folding_regions_by_line: + return self.folding_regions_by_line[line] return None def fold(self, region): @@ -129,7 +131,7 @@ if some_region['is_folded']: if some_region['starting_line'] >= region['starting_line'] and some_region['ending_line'] <= region['ending_line']: self.hide_region(some_region) - self.add_change_code('folding_state_changed', region) + self.add_change_code('folding_state_changed') def hide_region(self, region): offset_start = region['offset_start'] @@ -141,7 +143,7 @@ end_iter.forward_to_line_end() end_iter.forward_char() self.source_buffer.apply_tag(self.tag, start_iter, end_iter) - self.add_change_code('folding_state_changed', region) + self.add_change_code('folding_state_changed') def get_folded_regions(self): folded_regions = list() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/document/document.py new/Setzer-59/setzer/document/document.py --- old/Setzer-57/setzer/document/document.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/document/document.py 2023-09-09 14:43:29.000000000 +0200 @@ -32,6 +32,7 @@ import setzer.document.parser.parser_bibtex as parser_bibtex import setzer.document.parser.parser_dummy as parser_dummy import setzer.document.code_folding.code_folding as code_folding +import setzer.document.multiline_indentation.multiline_indentation as multiline_indentation import setzer.document.autocomplete.autocomplete as autocomplete from setzer.helpers.observable import Observable from setzer.app.service_locator import ServiceLocator @@ -72,6 +73,7 @@ elif self.is_bibtex_document(): self.parser = parser_bibtex.ParserBibTeX(self) else: self.parser = parser_dummy.ParserDummy(self) self.code_folding = code_folding.CodeFolding(self) + self.multiline_indentation = multiline_indentation.MultilineIndentation(self) self.gutter = gutter.Gutter(self, self.view) self.search = search.Search(self, self.view) if self.is_latex_document(): self.autocomplete = autocomplete.Autocomplete(self) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/document/document_presenter.py new/Setzer-59/setzer/document/document_presenter.py --- old/Setzer-57/setzer/document/document_presenter.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/document/document_presenter.py 2023-09-09 14:43:29.000000000 +0200 @@ -30,8 +30,6 @@ self.view = document_view self.settings = ServiceLocator.get_settings() - self.indentation_update = None - self.view.source_view.set_show_line_numbers(False) self.view.source_view.set_insert_spaces_instead_of_tabs(self.settings.get_value('preferences', 'spaces_instead_of_tabs')) self.view.source_view.set_tab_width(self.settings.get_value('preferences', 'tab_width')) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/document/gutter/gutter.py new/Setzer-59/setzer/document/gutter/gutter.py --- old/Setzer-57/setzer/document/gutter/gutter.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/document/gutter/gutter.py 2023-09-09 14:43:29.000000000 +0200 @@ -62,6 +62,7 @@ self.settings.connect('settings_changed', self.on_settings_changed) self.document.connect('changed', self.on_document_change) self.document.connect('cursor_position_changed', self.on_cursor_change) + self.document.code_folding.connect('folding_state_changed', self.on_folding_state_changed) self.document_view.scrolled_window.get_vadjustment().connect('changed', self.on_adjustment_changed) self.document_view.scrolled_window.get_vadjustment().connect('value-changed', self.on_adjustment_value_changed) @@ -117,6 +118,11 @@ self.update_size() self.drawing_area.queue_draw() + def on_folding_state_changed(self, code_folding): + self.update_hovered_folding_region() + self.update_size() + self.drawing_area.queue_draw() + def on_button_press(self, event_controller, n_press, x, y): if self.hovered_folding_region != None: if self.hovered_folding_region['is_folded']: @@ -215,7 +221,9 @@ current_line = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_line() line_iter, offset = self.source_view.get_line_at_y(self.adjustment.get_value()) prev_line = None - while offset <= self.adjustment.get_value() + height: + line = -1 + total_lines = self.source_buffer.get_end_iter().get_line() + while (offset <= self.adjustment.get_value() + height) and line < total_lines: line_iter, top = self.source_view.get_line_at_y(offset) line = line_iter.get_line() line_height = self.source_view.get_line_yrange(line_iter).height @@ -247,12 +255,22 @@ self.draw_folding_region(ctx, line, is_current, offset) def draw_line_number(self, ctx, line, is_current, offset): - if is_current: text = '<b>' + str(line + 1) + '</b>' - else: text = str(line + 1) + if is_current: + text = '<b>' + str(line + 1) + '</b>' + else: + text = str(line + 1) + + if is_current: + Gdk.cairo_set_source_rgba(ctx, ColorManager.get_ui_color('line_highlighting_color')) + yrange = self.source_view.get_line_yrange(self.source_buffer.get_iter_at_line(line).iter) + ctx.rectangle(0, yrange.y - self.adjustment.get_value(), self.total_width, yrange.height) + ctx.fill() + Gdk.cairo_set_source_rgba(ctx, ColorManager.get_ui_color('theme_fg_color')) if offset < 0: offset -= 1 offset = int(offset) ctx.move_to(0, offset) + self.layout.set_markup(text) PangoCairo.show_layout(ctx, self.layout) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/document/multiline_indentation/multiline_indentation.py new/Setzer-59/setzer/document/multiline_indentation/multiline_indentation.py --- old/Setzer-57/setzer/document/multiline_indentation/multiline_indentation.py 1970-01-01 01:00:00.000000000 +0100 +++ new/Setzer-59/setzer/document/multiline_indentation/multiline_indentation.py 2023-09-09 14:43:29.000000000 +0200 @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +# coding: utf-8 + +# Copyright (C) 2017-present Robert Griesel +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/> + +from setzer.app.service_locator import ServiceLocator +from setzer.app.font_manager import FontManager + + +class MultilineIndentation(object): + + def __init__(self, document): + self.document = document + self.source_buffer = self.document.source_buffer + self.adjustment = self.document.view.scrolled_window.get_vadjustment() + + self.char_width = FontManager.get_char_width(self.document.view.source_view, ' ') + self.indentation_update = None + self.indentation_tags = dict() + + self.document.parser.connect('finished_parsing', self.on_parser_update) + self.document.connect('changed', self.on_document_changed) + self.source_buffer.connect('notify::cursor-position', self.on_cursor_position_change) + self.adjustment.connect('changed', self.on_adjustment_change) + self.adjustment.connect('value-changed', self.on_adjustment_value_change) + + def on_parser_update(self, parser): + if parser.last_edit[0] == 'insert': + _, location_iter, text, text_length = parser.last_edit + self.indentation_update = {'line_start': location_iter.get_line(), 'text_length': text_length} + elif parser.last_edit[0] == 'delete': + _, start_iter, end_iter = parser.last_edit + self.indentation_update = {'line_start': start_iter.get_line(), 'text_length': 0} + + def on_document_changed(self, document): + if self.indentation_update != None: + _, start_iter = self.source_buffer.get_iter_at_line(self.indentation_update['line_start']) + end_iter = start_iter.copy() + end_iter.forward_chars(self.indentation_update['text_length']) + end_iter.forward_to_line_end() + start_iter.set_line_offset(0) + text = self.source_buffer.get_text(start_iter, end_iter, True) + for count, line in enumerate(text.splitlines()): + for tag in start_iter.get_tags(): + self.source_buffer.remove_tag(tag, start_iter, end_iter) + number_of_characters = len(line.replace('\t', ' ' * ServiceLocator.get_settings().get_value('preferences', 'tab_width'))) - len(line.lstrip()) + if number_of_characters > 0: + end_iter = start_iter.copy() + end_iter.forward_chars(1) + self.source_buffer.apply_tag(self.get_indentation_tag(number_of_characters), start_iter, end_iter) + start_iter.forward_line() + + self.indentation_update = None + self.update_tags() + + def on_cursor_position_change(self, buffer, position): + self.update_tags() + + def on_adjustment_change(self, adjustment): + self.update_tags() + + def on_adjustment_value_change(self, adjustment): + self.update_tags() + + def update_tags(self): + char_width = FontManager.get_char_width(self.document.view.source_view, ' ') + if char_width != self.char_width: + self.char_width = char_width + for number_of_characters, tag in self.indentation_tags.items(): + tag.set_property('indent', -1 * number_of_characters * self.char_width) + + def get_indentation_tag(self, number_of_characters): + try: + tag = self.indentation_tags[number_of_characters] + except KeyError: + tag = self.source_buffer.create_tag('indentation-' + str(number_of_characters)) + tag.set_property('indent', -1 * number_of_characters * self.char_width) + self.indentation_tags[number_of_characters] = tag + return tag + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/workspace/headerbar/headerbar_presenter.py new/Setzer-59/setzer/workspace/headerbar/headerbar_presenter.py --- old/Setzer-57/setzer/workspace/headerbar/headerbar_presenter.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/workspace/headerbar/headerbar_presenter.py 2023-09-09 14:43:29.000000000 +0200 @@ -75,20 +75,20 @@ self.view.get_style_context().remove_class('welcome') def hide_pane_toggles(self): - self.view.document_structure_toggle.hide() + self.view.sidebar_toggles_box.hide() self.view.document_structure_toggle.set_sensitive(False) - self.view.symbols_toggle.hide() self.view.symbols_toggle.set_sensitive(False) + self.view.preview_toggle.hide() self.view.preview_toggle.set_sensitive(False) self.view.help_toggle.hide() self.view.help_toggle.set_sensitive(False) def show_pane_toggles(self): - self.view.document_structure_toggle.show() + self.view.sidebar_toggles_box.show() self.view.document_structure_toggle.set_sensitive(True) - self.view.symbols_toggle.show() self.view.symbols_toggle.set_sensitive(True) + self.view.preview_toggle.show() self.view.preview_toggle.set_sensitive(True) self.view.help_toggle.show() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/workspace/headerbar/headerbar_viewgtk.py new/Setzer-59/setzer/workspace/headerbar/headerbar_viewgtk.py --- old/Setzer-57/setzer/workspace/headerbar/headerbar_viewgtk.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/workspace/headerbar/headerbar_viewgtk.py 2023-09-09 14:43:29.000000000 +0200 @@ -33,19 +33,22 @@ Gtk.HeaderBar.__init__(self) # sidebar toggles - box = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 0) self.document_structure_toggle = Gtk.ToggleButton() self.document_structure_toggle.set_child(Gtk.Image.new_from_icon_name('document-structure-symbolic')) self.document_structure_toggle.set_can_focus(False) self.document_structure_toggle.set_tooltip_text(_('Toggle document structure') + ' (F2)') - box.append(self.document_structure_toggle) + self.symbols_toggle = Gtk.ToggleButton() self.symbols_toggle.set_child(Gtk.Image.new_from_icon_name('own-symbols-misc-text-symbolic')) self.symbols_toggle.set_can_focus(False) self.symbols_toggle.set_tooltip_text(_('Toggle symbols') + ' (F3)') - box.append(self.symbols_toggle) - box.get_style_context().add_class('linked') - self.pack_start(box) + + self.sidebar_toggles_box = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 0) + self.sidebar_toggles_box.append(self.document_structure_toggle) + self.sidebar_toggles_box.append(self.symbols_toggle) + self.sidebar_toggles_box.get_style_context().add_class('linked') + + self.pack_start(self.sidebar_toggles_box) # open document buttons self.open_document_blank_button = Gtk.Button.new_with_label(_('Open') + '...') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/workspace/shortcutsbar/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py new/Setzer-59/setzer/workspace/shortcutsbar/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py --- old/Setzer-57/setzer/workspace/shortcutsbar/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/workspace/shortcutsbar/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py 2023-09-09 14:43:29.000000000 +0200 @@ -120,10 +120,11 @@ icon = Gtk.Image.new_from_icon_name('own-wizard-symbolic') icon.set_margin_start(4) icon_widget.append(icon) - self.wizard_button_revealer = Gtk.Revealer() label = Gtk.Label.new(_('New Document Wizard')) label.set_margin_start(6) label.set_margin_end(4) + label.get_style_context().add_class('wizard-button-label') + self.wizard_button_revealer = Gtk.Revealer() self.wizard_button_revealer.set_child(label) self.wizard_button_revealer.set_transition_type(Gtk.RevealerTransitionType.SLIDE_LEFT) self.wizard_button_revealer.set_reveal_child(True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/workspace/shortcutsbar/others_shortcutsbar/others_shortcutsbar_viewgtk.py new/Setzer-59/setzer/workspace/shortcutsbar/others_shortcutsbar/others_shortcutsbar_viewgtk.py --- old/Setzer-57/setzer/workspace/shortcutsbar/others_shortcutsbar/others_shortcutsbar_viewgtk.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/workspace/shortcutsbar/others_shortcutsbar/others_shortcutsbar_viewgtk.py 2023-09-09 14:43:29.000000000 +0200 @@ -27,6 +27,7 @@ Gtk.Box.__init__(self) self.set_orientation(Gtk.Orientation.HORIZONTAL) self.get_style_context().add_class('shortcutsbar') + self.set_can_focus(False) self.top_icons = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 0) self.right_icons = Gtk.Box() @@ -35,19 +36,8 @@ self.center_icons.set_orientation(Gtk.Orientation.HORIZONTAL) self.center_icons.set_hexpand(True) - self.populate_top_toolbar() - self.append(self.top_icons) self.append(self.center_icons) self.append(self.right_icons) - def create_top_toolbar(self): - self.top_icons = Gtk.Toolbar() - self.top_icons.set_style(Gtk.ToolbarStyle.ICONS) - self.top_icons.set_orientation(Gtk.Orientation.HORIZONTAL) - self.top_icons.set_icon_size(Gtk.IconSize.SMALL_TOOLBAR) - - def populate_top_toolbar(self): - pass - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/workspace/shortcutsbar/shortcutsbar.py new/Setzer-59/setzer/workspace/shortcutsbar/shortcutsbar.py --- old/Setzer-57/setzer/workspace/shortcutsbar/shortcutsbar.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/workspace/shortcutsbar/shortcutsbar.py 2023-09-09 14:43:29.000000000 +0200 @@ -15,6 +15,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/> +import gi +gi.require_version('Gtk', '4.0') +from gi.repository import Gtk + from setzer.app.service_locator import ServiceLocator @@ -32,34 +36,70 @@ self.latex_shortcutsbar.button_search.connect('clicked', self.on_find_button_clicked) self.latex_shortcutsbar.button_replace.connect('clicked', self.on_find_replace_button_clicked) - self.workspace.connect('document_removed', self.update_document) - self.workspace.connect('new_active_document', self.update_document) + self.workspace.connect('document_removed', self.on_document_removed) + self.workspace.connect('new_active_document', self.on_new_active_document) self.workspace.connect('show_build_log_state_change', self.update_buttons) - self.document = None - self.update_document() + self.preview_paned = ServiceLocator.get_main_window().preview_paned + self.width = 0 + self.preview_paned.connect('notify::position', self.on_paned_position_changed) - def update_document(self, workspace=None, parameter=None): + self.document = self.workspace.active_document if self.document != None: + self.document.connect('changed', self.on_document_changed) + self.document.search.connect('mode_changed', self.update_buttons) + self.update_wizard_button() + + def on_document_removed(self, workspace=None, parameter=None): + if self.workspace.active_document == None: self.document.disconnect('changed', self.update_buttons) self.document.search.disconnect('mode_changed', self.update_buttons) + self.document == None + + self.update_buttons() + + def on_new_active_document(self, workspace=None, parameter=None): + if self.document != None: + self.document.disconnect('changed', self.on_document_changed) + self.document.search.disconnect('mode_changed', self.update_buttons) self.document = self.workspace.active_document if self.document != None: - self.document.connect('changed', self.update_buttons) + self.document.connect('changed', self.on_document_changed) self.document.search.connect('mode_changed', self.update_buttons) + self.update_wizard_button() self.update_buttons() - def update_buttons(self, workspace=None, parameter=None): + def on_paned_position_changed(self, paned, position=None): + self.width = paned.get_position() + self.update_wizard_button(animate=True) + + def on_document_changed(self, workspace=None, parameter=None): + self.update_wizard_button(animate=True) + + def update_wizard_button(self, animate=False): if self.document == None: return if self.document.is_latex_document(): - if self.document.source_buffer.get_char_count() > 0: - self.latex_shortcutsbar.wizard_button_revealer.set_reveal_child(False) - else: + is_visible = self.document.source_buffer.get_char_count() == 0 and self.width > 675 + if is_visible and animate == False: + self.latex_shortcutsbar.wizard_button_revealer.set_transition_type(Gtk.RevealerTransitionType.NONE) self.latex_shortcutsbar.wizard_button_revealer.set_reveal_child(True) + self.latex_shortcutsbar.wizard_button_revealer.set_transition_type(Gtk.RevealerTransitionType.SLIDE_LEFT) + self.latex_shortcutsbar.wizard_button_revealer.show() + elif is_visible: + self.latex_shortcutsbar.wizard_button_revealer.show() + self.latex_shortcutsbar.wizard_button_revealer.set_reveal_child(True) + elif animate == False: + self.latex_shortcutsbar.wizard_button_revealer.hide() + else: + self.latex_shortcutsbar.wizard_button_revealer.set_reveal_child(False) + def update_buttons(self, workspace=None, parameter=None): + if self.document == None: return + + if self.document.is_latex_document(): self.latex_shortcutsbar.button_more.set_popover(self.document.context_menu.popover_more) self.latex_shortcutsbar.button_search.set_active(self.document.search.search_bar_mode == 'search') self.latex_shortcutsbar.button_replace.set_active(self.document.search.search_bar_mode == 'replace') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/workspace/sidebar/symbols_page/symbols_page.py new/Setzer-59/setzer/workspace/sidebar/symbols_page/symbols_page.py --- old/Setzer-57/setzer/workspace/sidebar/symbols_page/symbols_page.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/workspace/sidebar/symbols_page/symbols_page.py 2023-09-09 14:43:29.000000000 +0200 @@ -158,7 +158,7 @@ if margin_top > 1 and margin_top <= label.get_allocated_height(): self.view.tabs_box.get_style_context().add_class('no-border') if len(symbols_view.visible_symbols) > 0: - offset += symbols_view.get_allocated_height() + placeholder.get_allocated_height() + offset += symbols_view.get_allocated_height() + self.view.tabs.get_allocated_height() def on_next_button_clicked(self, button): offset = self.view.symbols_view_recent.get_allocated_height() + self.view.label_recent.get_allocated_height() + 2 @@ -255,6 +255,9 @@ symbols_view.hide() self.view.labels[i].hide() self.view.placeholders[i].hide() + adjustment = self.view.scrolled_window.get_vadjustment() + if adjustment.get_upper() <= self.view.scrolled_window.get_allocated_height(): + self.view.labels[i].hide() def on_symbols_view_size_allocate(self, *arguments): for symbols_view in self.view.symbols_views: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer/workspace/sidebar/symbols_page/symbols_page_viewgtk.py new/Setzer-59/setzer/workspace/sidebar/symbols_page/symbols_page_viewgtk.py --- old/Setzer-57/setzer/workspace/sidebar/symbols_page/symbols_page_viewgtk.py 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer/workspace/sidebar/symbols_page/symbols_page_viewgtk.py 2023-09-09 14:43:29.000000000 +0200 @@ -141,6 +141,7 @@ self.labels.append(label) placeholder = Gtk.Label.new(symbols_list[2]) placeholder.set_xalign(0) + placeholder.get_style_context().add_class('placeholder') self.placeholders.append(placeholder) self.vbox.append(placeholder) self.symbols_views.append(symbols_list_view) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Setzer-57/setzer.in new/Setzer-59/setzer.in --- old/Setzer-57/setzer.in 2023-08-29 15:41:32.000000000 +0200 +++ new/Setzer-59/setzer.in 2023-09-09 14:43:29.000000000 +0200 @@ -91,6 +91,7 @@ # get settings self.settings = ServiceLocator.get_settings() + Adw.StyleManager.get_default().set_color_scheme(Adw.ColorScheme.FORCE_LIGHT) # init static variables ServiceLocator.set_setzer_version('@setzer_version@')
