2025.01.10 03:40:07

This commit is contained in:
Christian Moser 2025-01-10 03:40:07 +01:00
parent 7b886c2b41
commit e7daf3c047
2 changed files with 87 additions and 64 deletions

View File

@ -480,14 +480,15 @@ class Application(Gtk.Application):
def on_action_quit(self,action,param): def on_action_quit(self,action,param):
self.quit() self.quit()
def on_action_new_game(self,action,param): def _on_dialog_response_refresh(self,dialog,response,check_response):
def on_reponse(dialog,response): if response == check_response:
print("APPLICATION") self.appwindow.refresh()
if response == Gtk.ResponseType.APPLY:
self.appwindow.resfresh()
def on_action_new_game(self,action,param):
dialog = GameDialog(self.appwindow) dialog = GameDialog(self.appwindow)
dialog.connect('response',on_reponse) dialog.connect('response',
self._on_dialog_response_refresh,
Gtk.ResponseType.APPLY)
dialog.present() dialog.present()
def new_settings_dialog(self): def new_settings_dialog(self):

View File

@ -16,7 +16,8 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>. # # along with this program. If not, see <https://www.gnu.org/licenses/>. #
############################################################################### ###############################################################################
from gi.repository import GObject,Gio,GLib,Gtk,Pango from gi.repository import Gio,GLib,Gtk,Pango
from gi.repository.GObject import Property,Signal,GObject
from ..game import ( from ..game import (
Game, Game,
GameFileMatcher, GameFileMatcher,
@ -32,7 +33,7 @@ from ..game import (
) )
class GameVariableData(GObject.GObject): class GameVariableData(GObject):
""" """
GameVariableData The Gio.ListStore data for Variables. GameVariableData The Gio.ListStore data for Variables.
""" """
@ -54,25 +55,35 @@ class GameVariableData(GObject.GObject):
.. py:property:: value .. py:property:: value
:type: str :type: str
""" """
GObject.GObject.__init__(self) GObject.__init__(self)
self.name = name self.name = name
self.value = value self.value = value
@GObject.Property(type=str) @Property(type=str)
def name(self)->str: def name(self)->str:
"""
name The variable name.
:type: str
"""
return self.__name return self.__name
@name.setter @name.setter
def name(self,name): def name(self,name):
self.__name = name self.__name = name
@GObject.Property(type=str) @Property(type=str)
def value(self)->str: def value(self)->str:
"""
value The variable value
:type: str
"""
return self.__value return self.__value
@value.setter @value.setter
def value(self,value:str): def value(self,value:str):
self.__value = value self.__value = value
class RegistryKeyData(GObject.GObject): class RegistryKeyData(GObject):
""" """
RegistyKeyData The data for Windows registry keys. RegistyKeyData The data for Windows registry keys.
""" """
@ -82,18 +93,18 @@ class RegistryKeyData(GObject.GObject):
:param regkey: The registry key ot set, defaults to None :param regkey: The registry key ot set, defaults to None
:type regkey: str | None, optional :type regkey: str | None, optional
Properties
__________
.. py:property:: regkey
:type: str
""" """
GObject.GObject.__init__(self) GObject.__init__(self)
if not regkey: if not regkey:
self.__regkey = "" self.__regkey = ""
@GObject.Property(type=str) @Property(type=str)
def regkey(self)->str: def regkey(self)->str:
"""
regkey The registry key to set.
:type: str
"""
return self.__regkey return self.__regkey
@regkey.setter @regkey.setter
def regkey(self,key:str): def regkey(self,key:str):
@ -103,7 +114,7 @@ class RegistryKeyData(GObject.GObject):
return bool(self.__regkey) return bool(self.__regkey)
class GameFileMatcherData(GObject.GObject): class GameFileMatcherData(GObject):
""" """
GameFileMatcherData The data for the file matcher. GameFileMatcherData The data for the file matcher.
""" """
@ -116,35 +127,39 @@ class GameFileMatcherData(GObject.GObject):
:param match_value: The value to match the file. :param match_value: The value to match the file.
:type match_value: str :type match_value: str
Properties
__________
.. py:property:: match_type
:type: GameFileType
.. py:property:: match_value
:type: str
""" """
GObject.GObject.__init__(self) GObject.__init__(self)
self.match_type = match_type self.match_type = match_type
self.match_value = match_value self.match_value = match_value
@GObject.Property @Property
def match_type(self)->GameFileType: def match_type(self)->GameFileType:
"""
match_type The type of the matcher
:type: GameFileType
"""
return self.__match_type return self.__match_type
@match_type.setter @match_type.setter
def match_type(self,type:GameFileType): def match_type(self,type:GameFileType):
self.__match_type = type self.__match_type = type
@GObject.Property(type=str) @Property(type=str)
def match_value(self)->str: def match_value(self)->str:
"""
match_value The value to match files against.
:type: str
"""
return self.__match_value return self.__match_value
@match_value.setter @match_value.setter
def match_value(self,value:str): def match_value(self,value:str):
self.__match_value = value self.__match_value = value
class GameFileTypeData(GObject.GObject): class GameFileTypeData(GObject):
""" GameFileTypeData The *Gio.Liststore* data for GameFileType *Gtk.DropDown* widgets.""" """ GameFileTypeData The *Gio.Liststore* data for GameFileType *Gtk.DropDown* widgets."""
def __init__(self,match_type:GameFileType,name:str): def __init__(self,match_type:GameFileType,name:str):
""" """
@ -154,28 +169,30 @@ class GameFileTypeData(GObject.GObject):
:type match_type: GameFileType :type match_type: GameFileType
:param name: The name of the matcher type :param name: The name of the matcher type
:type name: str :type name: str
Properties:
___________
.. py:property:: match_type
:type: GameFileType
.. py:property:: name
:type: str
""" """
GObject.GObject.__init__(self) GObject.__init__(self)
self.__match_type = match_type self.__match_type = match_type
self.__name = name self.__name = name
@GObject.Property @Property
def match_type(self)->GameFileType: def match_type(self)->GameFileType:
"""
match_type The match type
:type: GameFileType
"""
return self.__match_type return self.__match_type
@GObject.Property(type=str) @Property(type=str)
def name(self)->str: def name(self)->str:
"""
name The name of the match type.
:type: str
"""
return self.__name return self.__name
class SavegameTypeData(GObject.GObject): class SavegameTypeData(GObject):
""" """
SavegameTypeData Holds the data for the SavegameType *Gtk.DropDown*. SavegameTypeData Holds the data for the SavegameType *Gtk.DropDown*.
""" """
@ -190,35 +207,38 @@ class SavegameTypeData(GObject.GObject):
:type name: str :type name: str
:param icon_name: The Icon name to display for the SavegameType :param icon_name: The Icon name to display for the SavegameType
:type icon_name: str :type icon_name: str
Properties
__________
.. py:property:: savegame_type
:type: SavegameType
.. py:property:: name
:type: str
.. py:property:: icon_name
:type: str
""" """
GObject.GObject.__init__(self) GObject.__init__(self)
self.__sgtype = type self.__sgtype = type
self.__name = name self.__name = name
self.__icon_name = icon_name self.__icon_name = icon_name
@GObject.Property @Property
def savegame_type(self): def savegame_type(self)->SavegameType:
"""
savegame_type The savegane type to select.
:type: SavegameType
"""
return self.__sgtype return self.__sgtype
@GObject.Property @Property
def name(self): def name(self)->str:
"""
name The name of the SavegameType
:type: str
"""
return self.__name return self.__name
@GObject.Property @Property
def icon_name(self)->str: def icon_name(self)->str:
"""
icon_name The icon name for the savegame type.
:type: str
"""
return self.__icon_name return self.__icon_name
@ -1222,8 +1242,10 @@ class GameDialog(Gtk.Dialog):
""" """
get_is_valid Check if the configuration is valid for saving. get_is_valid Check if the configuration is valid for saving.
:returns: bool :returns: `True` if the game data is valid.
:rtype: bool
""" """
if (self.__key_entry.get_text() and self.__name_entry.get_text() and self.__sgname_entry.get_text()): if (self.__key_entry.get_text() and self.__name_entry.get_text() and self.__sgname_entry.get_text()):
sgtype_data = self.__savegame_type_dropdown.get_selected_item() sgtype_data = self.__savegame_type_dropdown.get_selected_item()
return self.get_is_valid_savegame_type(sgtype_data.savegame_type) return self.get_is_valid_savegame_type(sgtype_data.savegame_type)
@ -1237,6 +1259,7 @@ class GameDialog(Gtk.Dialog):
:type: sgbackup.game.SavegameType :type: sgbackup.game.SavegameType
:returns: bool :returns: bool
""" """
def check_is_valid(widget): def check_is_valid(widget):
return (bool(widget.sgroot_entry.get_text()) and bool(widget.sgdir_entry.get_text())) return (bool(widget.sgroot_entry.get_text()) and bool(widget.sgdir_entry.get_text()))
@ -1411,7 +1434,6 @@ class GameDialog(Gtk.Dialog):
i += 1 i += 1
def do_response(self,response): def do_response(self,response):
print("DIALOG")
if (response == Gtk.ResponseType.APPLY): if (response == Gtk.ResponseType.APPLY):
self.save() self.save()
self.hide() self.hide()