refactor: use Pango for font scaling instead of CSS classes
- Replace CSS-based zoom (px1-px99 classes) with Pango.FontDescription - Fix bug in multi-insert: insert at start_itr instead of end_itr - Add Pango-based font setup for mini-view widget - Revamp stylesheet with Light Blue-Grey Glass theme
This commit is contained in:
@@ -6,6 +6,7 @@ import gi
|
||||
gi.require_version('GtkSource', '4')
|
||||
|
||||
from gi.repository import GtkSource
|
||||
from gi.repository import Pango
|
||||
|
||||
# Application imports
|
||||
|
||||
@@ -18,6 +19,9 @@ def execute(
|
||||
|
||||
ctx = view.get_style_context()
|
||||
if view.zoom_level < 99:
|
||||
ctx.remove_class(f"px{view.zoom_level}")
|
||||
view.zoom_level += 1
|
||||
ctx.add_class(f"px{view.zoom_level}")
|
||||
|
||||
font_desc = \
|
||||
Pango.FontDescription(f"Monospace {view.zoom_level}")
|
||||
|
||||
view.modify_font(font_desc)
|
||||
|
||||
@@ -6,6 +6,7 @@ import gi
|
||||
gi.require_version('GtkSource', '4')
|
||||
|
||||
from gi.repository import GtkSource
|
||||
from gi.repository import Pango
|
||||
|
||||
# Application imports
|
||||
|
||||
@@ -18,6 +19,9 @@ def execute(
|
||||
|
||||
ctx = view.get_style_context()
|
||||
if view.zoom_level > 1:
|
||||
ctx.remove_class(f"px{view.zoom_level}")
|
||||
view.zoom_level -= 1
|
||||
ctx.add_class(f"px{view.zoom_level}")
|
||||
|
||||
font_desc = \
|
||||
Pango.FontDescription(f"Monospace {view.zoom_level}")
|
||||
|
||||
view.modify_font(font_desc)
|
||||
|
||||
@@ -68,6 +68,8 @@ class CompletionController(ControllerBase):
|
||||
|
||||
def provider_process_file_load(self, event: Code_Event_Types.AddedNewFileEvent):
|
||||
for provider in self._providers.values():
|
||||
# if provider.get_name() == "Words Completion":
|
||||
# provider.register(event.file.buffer)
|
||||
provider.response_cache.process_file_load(event)
|
||||
|
||||
def provider_process_file_close(self, event: Code_Event_Types.RemovedFileEvent):
|
||||
|
||||
@@ -71,7 +71,7 @@ class SourceViewsMultiInsertState(MarkEventsMixin):
|
||||
end_itr.forward_word_end()
|
||||
|
||||
buffer.delete(start_itr, end_itr)
|
||||
buffer.insert(end_itr, text, -1)
|
||||
buffer.insert(start_itr, text, -1)
|
||||
|
||||
buffer.end_user_action()
|
||||
buffer.unblock_insert_after_signal()
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import gi
|
||||
gi.require_version('GtkSource', '4')
|
||||
from gi.repository.GtkSource import Map
|
||||
|
||||
from gi.repository import Pango
|
||||
|
||||
# Application imports
|
||||
|
||||
@@ -25,6 +25,7 @@ class MiniViewWidget(Map):
|
||||
ctx.add_class("mini-view")
|
||||
|
||||
self.set_hexpand(False)
|
||||
self._set_font_desc()
|
||||
|
||||
def _setup_signals(self):
|
||||
...
|
||||
@@ -35,5 +36,13 @@ class MiniViewWidget(Map):
|
||||
def _load_widgets(self):
|
||||
...
|
||||
|
||||
def _set_font_desc(self):
|
||||
default_font = 'Monospace 1'
|
||||
desc = Pango.FontDescription(default_font)
|
||||
|
||||
desc.set_size(Pango.SCALE) # Set size to 1pt
|
||||
desc.set_family('BuilderBlocks,' + desc.get_family())
|
||||
self.set_property('font-desc', desc)
|
||||
|
||||
def set_smini_view(self, source_view):
|
||||
self.set_view(source_view)
|
||||
@@ -39,7 +39,6 @@ class SourceView(GtkSource.View, SourceViewDnDMixin):
|
||||
ctx = self.get_style_context()
|
||||
|
||||
ctx.add_class("source-view")
|
||||
ctx.add_class(f"px{self.zoom_level}")
|
||||
|
||||
self.set_vexpand(True)
|
||||
self.set_bottom_margin(800)
|
||||
|
||||
Reference in New Issue
Block a user