Created more events to use; restructured plugin listing
This commit is contained in:
@@ -32,6 +32,7 @@ class TabWidget(Gtk.Box):
|
|||||||
self.set_orientation(0)
|
self.set_orientation(0)
|
||||||
self.set_hexpand(False)
|
self.set_hexpand(False)
|
||||||
self.set_vexpand(False)
|
self.set_vexpand(False)
|
||||||
|
self.set_can_focus(False)
|
||||||
self.set_size_request(-1, 12)
|
self.set_size_request(-1, 12)
|
||||||
|
|
||||||
def _setup_signals(self):
|
def _setup_signals(self):
|
||||||
@@ -43,6 +44,10 @@ class TabWidget(Gtk.Box):
|
|||||||
self.close_bttn = Gtk.Button()
|
self.close_bttn = Gtk.Button()
|
||||||
icon = Gtk.Image(stock = Gtk.STOCK_CLOSE)
|
icon = Gtk.Image(stock = Gtk.STOCK_CLOSE)
|
||||||
|
|
||||||
|
self.event_box.set_can_focus(False)
|
||||||
|
self.label.set_can_focus(False)
|
||||||
|
self.close_bttn.set_can_focus(False)
|
||||||
|
|
||||||
self.event_box.set_above_child(True)
|
self.event_box.set_above_child(True)
|
||||||
ctx = self.label.get_style_context()
|
ctx = self.label.get_style_context()
|
||||||
ctx.add_class("tab-label")
|
ctx.add_class("tab-label")
|
||||||
@@ -21,7 +21,13 @@ class CompletionController(ControllerBase):
|
|||||||
self._providers: dict[str, GtkSource.CompletionProvider] = {}
|
self._providers: dict[str, GtkSource.CompletionProvider] = {}
|
||||||
|
|
||||||
def _controller_message(self, event: Code_Event_Types.CodeEvent):
|
def _controller_message(self, event: Code_Event_Types.CodeEvent):
|
||||||
if isinstance(event, Code_Event_Types.RegisterProviderEvent):
|
if isinstance(event, Code_Event_Types.RegisterCompleterEvent):
|
||||||
|
self.register_completer(event.completer)
|
||||||
|
elif isinstance(event, Code_Event_Types.UnregisterCompleterEvent):
|
||||||
|
self.unregister_completer(event.completer)
|
||||||
|
elif isinstance(event, Code_Event_Types.UnregisterProviderEvent):
|
||||||
|
self.unregister_provider(event.provider_name)
|
||||||
|
elif isinstance(event, Code_Event_Types.RegisterProviderEvent):
|
||||||
self.register_provider(
|
self.register_provider(
|
||||||
event.provider_name,
|
event.provider_name,
|
||||||
event.provider,
|
event.provider,
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
from libs.controllers.controller_base import ControllerBase
|
from libs.controllers.controller_base import ControllerBase
|
||||||
from libs.event_factory import Event_Factory, Code_Event_Types
|
from libs.event_factory import Event_Factory, Code_Event_Types
|
||||||
|
|
||||||
|
from libs.dto.states import SourceViewStates
|
||||||
|
|
||||||
from ...source_view import SourceView
|
from ...source_view import SourceView
|
||||||
|
|
||||||
from .state_manager import SourceViewStateManager
|
from .state_manager import SourceViewStateManager
|
||||||
@@ -25,7 +27,9 @@ class SourceViewsController(ControllerBase, list):
|
|||||||
|
|
||||||
|
|
||||||
def _controller_message(self, event: Code_Event_Types.CodeEvent):
|
def _controller_message(self, event: Code_Event_Types.CodeEvent):
|
||||||
if isinstance(event, Code_Event_Types.RemovedFileEvent):
|
if isinstance(event, Code_Event_Types.CreateSourceViewEvent):
|
||||||
|
event.response = self.create_source_view(event.state)
|
||||||
|
elif isinstance(event, Code_Event_Types.RemovedFileEvent):
|
||||||
self._remove_file(event)
|
self._remove_file(event)
|
||||||
elif isinstance(event, Code_Event_Types.RegisterCommandEvent):
|
elif isinstance(event, Code_Event_Types.RegisterCommandEvent):
|
||||||
self._register_command(event)
|
self._register_command(event)
|
||||||
@@ -74,8 +78,8 @@ class SourceViewsController(ControllerBase, list):
|
|||||||
|
|
||||||
source_view.set_buffer(event.next_file.buffer)
|
source_view.set_buffer(event.next_file.buffer)
|
||||||
|
|
||||||
def create_source_view(self):
|
def create_source_view(self, state: SourceViewStates = SourceViewStates.INSERT):
|
||||||
source_view: SourceView = SourceView()
|
source_view: SourceView = SourceView(state)
|
||||||
source_view.command = self._get_command_system()
|
source_view.command = self._get_command_system()
|
||||||
source_view.command.set_data(source_view)
|
source_view.command.set_data(source_view)
|
||||||
|
|
||||||
@@ -86,6 +90,7 @@ class SourceViewsController(ControllerBase, list):
|
|||||||
|
|
||||||
def first_map_load(self):
|
def first_map_load(self):
|
||||||
for source_view in self:
|
for source_view in self:
|
||||||
|
if source_view.state == SourceViewStates.INDEPENDENT: continue
|
||||||
source_view.command.exec("new_file")
|
source_view.command.exec("new_file")
|
||||||
if not source_view.sibling_left: continue
|
if not source_view.sibling_left: continue
|
||||||
source_view.get_parent().hide()
|
source_view.get_parent().hide()
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class SourceViewStateManager:
|
|||||||
SourceViewStates.INSERT: SourceViewsInsertState(),
|
SourceViewStates.INSERT: SourceViewsInsertState(),
|
||||||
SourceViewStates.MULTIINSERT: SourceViewsMultiInsertState(),
|
SourceViewStates.MULTIINSERT: SourceViewsMultiInsertState(),
|
||||||
SourceViewStates.COMMAND: SourceViewsCommandState(),
|
SourceViewStates.COMMAND: SourceViewsCommandState(),
|
||||||
SourceViewStates.READONLY: SourceViewsReadOnlyState()
|
SourceViewStates.READONLY: SourceViewsReadOnlyState(),
|
||||||
|
SourceViewStates.INDEPENDENT: SourceViewsIndependentState()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from .source_view_insert_state import SourceViewsInsertState
|
from .source_view_insert_state import SourceViewsInsertState
|
||||||
|
from .source_view_independent_state import SourceViewsIndependentState
|
||||||
from .source_view_multi_insert_state import SourceViewsMultiInsertState
|
from .source_view_multi_insert_state import SourceViewsMultiInsertState
|
||||||
from .source_view_command_state import SourceViewsCommandState
|
from .source_view_command_state import SourceViewsCommandState
|
||||||
from .source_view_read_only_state import SourceViewsReadOnlyState
|
from .source_view_read_only_state import SourceViewsReadOnlyState
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class SourceViewsBaseState:
|
|||||||
source_view.command.exec("update_info_bar")
|
source_view.command.exec("update_info_bar")
|
||||||
|
|
||||||
def button_press_event(self, source_view, eve):
|
def button_press_event(self, source_view, eve):
|
||||||
source_view.command.exec("update_info_bar")
|
...
|
||||||
|
|
||||||
def button_release_event(self, source_view, eve):
|
def button_release_event(self, source_view, eve):
|
||||||
source_view.command.exec("update_info_bar")
|
source_view.command.exec("update_info_bar")
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# Python imports
|
||||||
|
|
||||||
|
# Lib imports
|
||||||
|
|
||||||
|
# Application imports
|
||||||
|
from libs.event_factory import Event_Factory, Code_Event_Types
|
||||||
|
|
||||||
|
from libs.dto.states import SourceViewStates
|
||||||
|
|
||||||
|
from .source_view_base_state import SourceViewsBaseState
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class SourceViewsIndependentState(SourceViewsBaseState):
|
||||||
|
def __init__(self):
|
||||||
|
super(SourceViewsIndependentState, self).__init__()
|
||||||
@@ -4,7 +4,11 @@
|
|||||||
|
|
||||||
|
|
||||||
from .code_event import CodeEvent
|
from .code_event import CodeEvent
|
||||||
|
from .create_source_view_event import CreateSourceViewEvent
|
||||||
|
from .register_completer_event import RegisterCompleterEvent
|
||||||
|
from .unregister_completer_event import UnregisterCompleterEvent
|
||||||
from .register_provider_event import RegisterProviderEvent
|
from .register_provider_event import RegisterProviderEvent
|
||||||
|
from .unregister_provider_event import UnregisterProviderEvent
|
||||||
from .register_command_event import RegisterCommandEvent
|
from .register_command_event import RegisterCommandEvent
|
||||||
from .file_externally_modified_event import FileExternallyModifiedEvent
|
from .file_externally_modified_event import FileExternallyModifiedEvent
|
||||||
from .file_externally_deleted_event import FileExternallyDeletedEvent
|
from .file_externally_deleted_event import FileExternallyDeletedEvent
|
||||||
|
|||||||
14
src/libs/dto/code/create_source_view_event.py
Normal file
14
src/libs/dto/code/create_source_view_event.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Python imports
|
||||||
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
# Lib imports
|
||||||
|
|
||||||
|
# Application imports
|
||||||
|
from .code_event import CodeEvent
|
||||||
|
from libs.dto.states.source_view_states import SourceViewStates
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class CreateSourceViewEvent(CodeEvent):
|
||||||
|
state: SourceViewStates = SourceViewStates.INSERT
|
||||||
17
src/libs/dto/code/register_completer_event.py
Normal file
17
src/libs/dto/code/register_completer_event.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Python imports
|
||||||
|
from dataclasses import dataclass, field
|
||||||
|
|
||||||
|
# Lib imports
|
||||||
|
import gi
|
||||||
|
gi.require_version('GtkSource', '4')
|
||||||
|
|
||||||
|
from gi.repository import GtkSource
|
||||||
|
|
||||||
|
# Application imports
|
||||||
|
from .code_event import CodeEvent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class RegisterCompleterEvent(CodeEvent):
|
||||||
|
completer: GtkSource.Completion = None
|
||||||
17
src/libs/dto/code/unregister_completer_event.py
Normal file
17
src/libs/dto/code/unregister_completer_event.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Python imports
|
||||||
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
# Lib imports
|
||||||
|
import gi
|
||||||
|
gi.require_version('GtkSource', '4')
|
||||||
|
|
||||||
|
from gi.repository import GtkSource
|
||||||
|
|
||||||
|
# Application imports
|
||||||
|
from .code_event import CodeEvent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class UnregisterCompleterEvent(CodeEvent):
|
||||||
|
completer: GtkSource.Completion = None
|
||||||
13
src/libs/dto/code/unregister_provider_event.py
Normal file
13
src/libs/dto/code/unregister_provider_event.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Python imports
|
||||||
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
# Lib imports
|
||||||
|
|
||||||
|
# Application imports
|
||||||
|
from .code_event import CodeEvent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class UnregisterProviderEvent(CodeEvent):
|
||||||
|
provider_name: str = ""
|
||||||
@@ -12,3 +12,4 @@ class SourceViewStates(Enum):
|
|||||||
MULTIINSERT = 1
|
MULTIINSERT = 1
|
||||||
COMMAND = 2
|
COMMAND = 2
|
||||||
READONLY = 3
|
READONLY = 3
|
||||||
|
INDEPENDENT = 4
|
||||||
|
|||||||
Reference in New Issue
Block a user