Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
eepm-play-gui
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Roman Alifanov
eepm-play-gui
Commits
e41d7d27
Commit
e41d7d27
authored
Oct 13, 2024
by
Roman Alifanov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added flags dialog
parent
cb09107a
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
274 additions
and
86 deletions
+274
-86
ru.po
po/ru.po
+55
-41
eepm-play-gui.gresource.xml
src/eepm-play-gui.gresource.xml
+1
-0
meson.build
src/meson.build
+1
-0
flagsdialog.cmb
src/widgets/flagsdialog.cmb
+49
-0
flagsdialog.py
src/widgets/flagsdialog.py
+22
-0
flagsdialog.ui
src/widgets/flagsdialog.ui
+65
-0
window.cmb
src/window.cmb
+26
-19
window.py
src/window.py
+28
-11
window.ui
src/window.ui
+27
-15
No files found.
po/ru.po
View file @
e41d7d27
...
@@ -2,8 +2,8 @@ msgid ""
...
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
msgstr ""
"Project-Id-Version: ru.eepm.PlayGUI\n"
"Project-Id-Version: ru.eepm.PlayGUI\n"
"Report-Msgid-Bugs-To: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-
08 12:09
+0300\n"
"POT-Creation-Date: 2024-10-
13 19:22
+0300\n"
"PO-Revision-Date: 2024-10-
07 19:17
+0300\n"
"PO-Revision-Date: 2024-10-
13 19:23
+0300\n"
"Last-Translator: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language-Team: \n"
"Language: ru\n"
"Language: ru\n"
...
@@ -14,77 +14,91 @@ msgstr ""
...
@@ -14,77 +14,91 @@ msgstr ""
"X-Poedit-Basepath: ../src\n"
"X-Poedit-Basepath: ../src\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPath-0: .\n"
#: data/ru.eepm.PlayGUI.desktop.in:3
#: gtk/help-overlay.ui:11
msgid "eepm play"
msgstr ""
#: data/ru.eepm.PlayGUI.desktop.in:7
#, fuzzy
msgid "Install applications from official sites"
msgstr "Установить программы"
#: data/ru.eepm.PlayGUI.metainfo.xml.in:7
msgid "No description"
msgstr ""
#: data/ui/help-overlay.ui:11
msgctxt "shortcut window"
msgctxt "shortcut window"
msgid "General"
msgid "General"
msgstr ""
msgstr ""
#:
data/ui
/help-overlay.ui:14
#:
gtk
/help-overlay.ui:14
msgctxt "shortcut window"
msgctxt "shortcut window"
msgid "Show Shortcuts"
msgid "Show Shortcuts"
msgstr ""
msgstr ""
#:
data/ui
/help-overlay.ui:20
#:
gtk
/help-overlay.ui:20
msgctxt "shortcut window"
msgctxt "shortcut window"
msgid "Quit"
msgid "Quit"
msgstr "Выйти"
msgstr "Выйти"
#: data/ui/window.ui:46
#: widgets/flagsdialog.ui:15
msgid "Getting packages list…"
msgid "select the flags"
msgstr "Получение списка пакетов…"
msgstr "выберите нужные флаги"
#: widgets/flagsdialog.ui:16
msgid "Flags"
msgstr "Флаги"
#: widgets/flagsdialog.ui:40
msgid "It helps to get resources that are unavailable from your network"
msgstr "Помогает получить доступ к ресурсам, которые недоступны в вашей сети"
#: widgets/flagsdialog.ui:48
msgid ""
"Sometimes it helps to get the latest version of the program. (Not "
"recommended)"
msgstr ""
"Иногда помогает получить последнюю версию программы. (Не рекомендуется)"
#: window.py:129
msgid "Remove and install applications"
msgstr "Удалить и установить программы"
#: window.py:130
msgid "Install applications"
msgstr "Установить программы"
#: data/ui/window.ui:47
#: window.py:131
msgid "Remove applications"
msgstr "Удалить программы"
#: window.py:132 window.ui:117
msgid "Update applications"
msgstr "Обновить программы"
#: window.ui:30
msgid "It could take a while"
msgid "It could take a while"
msgstr "Это может занять некоторое время"
msgstr "Это может занять некоторое время"
#: data/ui/window.ui:79
#: window.ui:31
msgid "Getting packages list…"
msgstr "Получение списка пакетов…"
#: window.ui:64
msgid "All"
msgid "All"
msgstr "Все"
msgstr "Все"
#:
data/ui/window.ui:80
#:
window.ui:65
msgid "Installed"
msgid "Installed"
msgstr "Установленные"
msgstr "Установленные"
#:
data/ui/window.ui:81
#:
window.ui:66
msgid "Uninstalled"
msgid "Uninstalled"
msgstr "Неустановленные"
msgstr "Неустановленные"
#:
data/ui/window.ui:82
#:
window.ui:67
msgid "Changed"
msgid "Changed"
msgstr "Изменённые"
msgstr "Изменённые"
#:
data/ui/window.ui:132 src/window.py:180
#:
window.ui:138
msgid "
Update applications
"
msgid "
Flag Selection dialog
"
msgstr "
Обновить программы
"
msgstr "
Диалог выбора флагов
"
#:
data/ui/window.ui:158
#:
window.ui:174
msgid "_About Eepm-play-gui"
msgid "_About Eepm-play-gui"
msgstr "_О программе"
msgstr "_О программе"
#: src/window.py:177
#, fuzzy
msgid "Remove and install applications"
#~ msgid "Install applications from official sites"
msgstr "Удалить и установить программы"
#~ msgstr "Установить программы"
#: src/window.py:178
msgid "Install applications"
msgstr "Установить программы"
#: src/window.py:179
msgid "Remove applications"
msgstr "Удалить программы"
#~ msgid "Apply"
#~ msgid "Apply"
#~ msgstr "Применить"
#~ msgstr "Применить"
src/eepm-play-gui.gresource.xml
View file @
e41d7d27
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
<file>
style.css
</file>
<file>
style.css
</file>
<file
preprocess=
"xml-stripblanks"
>
window.ui
</file>
<file
preprocess=
"xml-stripblanks"
>
window.ui
</file>
<file
preprocess=
"xml-stripblanks"
>
widgets/logdialog.ui
</file>
<file
preprocess=
"xml-stripblanks"
>
widgets/logdialog.ui
</file>
<file
preprocess=
"xml-stripblanks"
>
widgets/flagsdialog.ui
</file>
<file
preprocess=
"xml-stripblanks"
>
gtk/help-overlay.ui
</file>
<file
preprocess=
"xml-stripblanks"
>
gtk/help-overlay.ui
</file>
</gresource>
</gresource>
</gresources>
</gresources>
src/meson.build
View file @
e41d7d27
...
@@ -28,6 +28,7 @@ eepm_play_gui_main = [
...
@@ -28,6 +28,7 @@ eepm_play_gui_main = [
eepm_play_gui_widgets = [
eepm_play_gui_widgets = [
'__init__.py',
'__init__.py',
'widgets/logdialog.py',
'widgets/logdialog.py',
'widgets/flagsdialog.py',
'widgets/applicationrow.py',
'widgets/applicationrow.py',
]
]
eepm_play_gui_tools = [
eepm_play_gui_tools = [
...
...
src/widgets/flagsdialog.cmb
0 → 100644
View file @
e41d7d27
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd">
<cambalache-project
version=
"0.92.0"
target_tk=
"gtk-4.0"
>
<ui>
(1,1,"preferences.ui","flagsdialog.ui",None,None,None,None,None,None,None)
</ui>
<object>
(1,1,"AdwDialog","FlagsDialog",None,None,None,None,0,None,None),
(1,2,"AdwToolbarView",None,1,None,None,None,0,None,None),
(1,3,"AdwHeaderBar",None,2,None,"top",None,0,None,None),
(1,4,"AdwWindowTitle",None,3,None,None,None,0,None,None),
(1,5,"AdwClamp",None,2,None,None,None,1,None,None),
(1,6,"GtkBox",None,5,None,None,None,0,None,None),
(1,7,"GtkListBox",None,6,None,None,None,0,None,None),
(1,8,"AdwSwitchRow","force_row",7,None,None,None,1,None,None),
(1,9,"AdwSwitchRow","ipfs_row",7,None,None,None,0,None,None)
</object>
<object_property>
(1,1,"AdwDialog","presentation-mode","bottom-sheet",None,None,None,None,None,None,None,None,None),
(1,3,"AdwHeaderBar","title-widget",None,None,None,None,None,4,None,None,None,None),
(1,4,"AdwWindowTitle","subtitle","select the flags",1,None,None,None,None,None,None,None,None),
(1,4,"AdwWindowTitle","title","Flags",1,None,None,None,None,None,None,None,None),
(1,5,"AdwClamp","maximum-size","500",None,None,None,None,None,None,None,None,None),
(1,5,"GtkWidget","margin-bottom","12",None,None,None,None,None,None,None,None,None),
(1,5,"GtkWidget","margin-end","12",None,None,None,None,None,None,None,None,None),
(1,5,"GtkWidget","margin-start","12",None,None,None,None,None,None,None,None,None),
(1,5,"GtkWidget","margin-top","12",None,None,None,None,None,None,None,None,None),
(1,6,"GtkBox","spacing","12",None,None,None,None,None,None,None,None,None),
(1,6,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(1,6,"GtkWidget","vexpand","True",None,None,None,None,None,None,None,None,None),
(1,7,"GtkWidget","height-request","198",None,None,None,None,None,None,None,None,None),
(1,7,"GtkWidget","vexpand","True",None,None,None,None,None,None,None,None,None),
(1,8,"AdwActionRow","subtitle","Sometimes it helps to get the latest version of the program. (Not recommended)",1,None,None,None,None,None,None,None,None),
(1,8,"AdwActionRow","subtitle-lines","3",None,None,None,None,None,None,None,None,None),
(1,8,"AdwPreferencesRow","title","Force",None,None,None,None,None,None,None,None,None),
(1,8,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
(1,9,"AdwActionRow","subtitle","It helps to get resources that are unavailable from your network",1,None,None,None,None,None,None,None,None),
(1,9,"AdwActionRow","subtitle-lines","3",None,None,None,None,None,None,None,None,None),
(1,9,"AdwPreferencesRow","title","IPFS",None,None,None,None,None,None,None,None,None),
(1,9,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None)
</object_property>
<object_data>
(1,7,"GtkWidget",1,1,None,None,None,None,None,None),
(1,7,"GtkWidget",2,2,None,1,None,None,None,None)
</object_data>
<object_data_arg>
(1,7,"GtkWidget",2,2,"name","boxed-list-separate")
</object_data_arg>
</cambalache-project>
src/widgets/flagsdialog.py
0 → 100644
View file @
e41d7d27
from
gi.repository
import
Gtk
,
Adw
@Gtk.Template
(
resource_path
=
'/ru/eepm/PlayGUI/widgets/flagsdialog.ui'
)
class
FlagsDialog
(
Adw
.
Dialog
):
__gtype_name__
=
'FlagsDialog'
ipfs_row
=
Gtk
.
Template
.
Child
()
force_row
=
Gtk
.
Template
.
Child
()
def
__init__
(
self
,
**
kwargs
):
super
()
.
__init__
(
**
kwargs
)
def
ipfs
(
self
):
if
self
.
ipfs_row
.
get_active
():
return
"--ipfs"
else
:
return
""
def
force
(
self
):
if
self
.
force_row
.
get_active
():
return
"--force"
else
:
return
""
src/widgets/flagsdialog.ui
0 → 100644
View file @
e41d7d27
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.92.0 -->
<interface>
<!-- interface-name preferences.ui -->
<requires
lib=
"gtk"
version=
"4.12"
/>
<requires
lib=
"libadwaita"
version=
"1.5"
/>
<template
class=
"FlagsDialog"
parent=
"AdwDialog"
>
<property
name=
"presentation-mode"
>
bottom-sheet
</property>
<child>
<object
class=
"AdwToolbarView"
>
<child
type=
"top"
>
<object
class=
"AdwHeaderBar"
>
<property
name=
"title-widget"
>
<object
class=
"AdwWindowTitle"
>
<property
name=
"subtitle"
translatable=
"yes"
>
select the flags
</property>
<property
name=
"title"
translatable=
"yes"
>
Flags
</property>
</object>
</property>
</object>
</child>
<child>
<object
class=
"AdwClamp"
>
<property
name=
"margin-bottom"
>
12
</property>
<property
name=
"margin-end"
>
12
</property>
<property
name=
"margin-start"
>
12
</property>
<property
name=
"margin-top"
>
12
</property>
<property
name=
"maximum-size"
>
500
</property>
<child>
<object
class=
"GtkBox"
>
<property
name=
"orientation"
>
vertical
</property>
<property
name=
"spacing"
>
12
</property>
<property
name=
"vexpand"
>
True
</property>
<child>
<object
class=
"GtkListBox"
>
<property
name=
"height-request"
>
198
</property>
<property
name=
"vexpand"
>
True
</property>
<child>
<object
class=
"AdwSwitchRow"
id=
"ipfs_row"
>
<property
name=
"selectable"
>
False
</property>
<property
name=
"subtitle"
translatable=
"yes"
>
It helps to get resources that are unavailable from your network
</property>
<property
name=
"subtitle-lines"
>
3
</property>
<property
name=
"title"
>
IPFS
</property>
</object>
</child>
<child>
<object
class=
"AdwSwitchRow"
id=
"force_row"
>
<property
name=
"selectable"
>
False
</property>
<property
name=
"subtitle"
translatable=
"yes"
>
Sometimes it helps to get the latest version of the program. (Not recommended)
</property>
<property
name=
"subtitle-lines"
>
3
</property>
<property
name=
"title"
>
Force
</property>
</object>
</child>
<style>
<class
name=
"boxed-list-separate"
/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</template>
</interface>
src/window.cmb
View file @
e41d7d27
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
(1,5,"AdwStatusPage","status_page",4,None,None,None,0,None,None),
(1,5,"AdwStatusPage","status_page",4,None,None,None,0,None,None),
(1,6,"GtkStackPage",None,3,None,None,None,1,None,None),
(1,6,"GtkStackPage",None,3,None,None,None,1,None,None),
(1,7,"AdwToolbarView",None,6,None,None,None,0,None,None),
(1,7,"AdwToolbarView",None,6,None,None,None,0,None,None),
(1,8,"GtkBox",None,7,None,None,None,
0
,None,None),
(1,8,"GtkBox",None,7,None,None,None,
1
,None,None),
(1,9,"GtkSearchBar","search_bar",8,None,None,None,0,None,None),
(1,9,"GtkSearchBar","search_bar",8,None,None,None,0,None,None),
(1,10,"AdwClamp",None,9,None,None,None,0,None,None),
(1,10,"AdwClamp",None,9,None,None,None,0,None,None),
(1,11,"GtkBox",None,10,None,None,None,0,None,None),
(1,11,"GtkBox",None,10,None,None,None,0,None,None),
...
@@ -27,16 +27,18 @@
...
@@ -27,16 +27,18 @@
(1,15,"GtkScrolledWindow",None,8,None,None,None,1,None,None),
(1,15,"GtkScrolledWindow",None,8,None,None,None,1,None,None),
(1,16,"AdwClamp",None,15,None,None,None,0,None,None),
(1,16,"AdwClamp",None,15,None,None,None,0,None,None),
(1,17,"GtkListBox","choice_listbox",16,None,None,None,0,None,None),
(1,17,"GtkListBox","choice_listbox",16,None,None,None,0,None,None),
(1,18,"AdwClamp",None,7,None,"bottom",None,1,None,None),
(1,19,"GtkListBox",None,18,None,"center",None,0,None,None),
(1,20,"AdwButtonRow","apply_button",19,None,None,None,0,None,None),
(1,21,"AdwHeaderBar","header_bar",2,None,"top",None,1,None,None),
(1,21,"AdwHeaderBar","header_bar",2,None,"top",None,1,None,None),
(1,22,"GtkToggleButton","search_toggle_button",21,None,"start",None,0,None,None),
(1,22,"GtkToggleButton","search_toggle_button",21,None,"start",None,0,None,None),
(1,23,"GtkButton",None,21,None,"end",None,1,None,None),
(1,23,"GtkButton",None,21,None,"end",None,1,None,None),
(1,24,"(menu)","primary_menu",None,None,None,None,1,None,None),
(1,24,"(menu)","primary_menu",None,None,None,None,1,None,None),
(1,25,"(section)",None,24,None,None,None,0,None,None),
(1,25,"(section)",None,24,None,None,None,0,None,None),
(1,26,"(item)",None,25,None,None,None,0,None,None),
(1,26,"(item)",None,25,None,None,None,0,None,None),
(1,27,"AdwSpinner",None,5,None,None,None,0,None,None)
(1,27,"AdwSpinner",None,5,None,None,None,0,None,None),
(1,28,"GtkCenterBox",None,7,None,"bottom",None,0,None,None),
(1,29,"AdwClamp",None,28,None,None,None,0,None,None),
(1,30,"GtkListBox",None,29,None,None,None,0,None,None),
(1,31,"AdwButtonRow","apply_button",30,None,None,None,0,None,None),
(1,32,"GtkButton","flags_button",28,None,"end",None,1,None,None)
</object>
</object>
<object_property>
<object_property>
(1,1,"GtkWidget","height-request","294",0,None,None,None,None,None,None,None,None),
(1,1,"GtkWidget","height-request","294",0,None,None,None,None,None,None,None,None),
...
@@ -68,13 +70,6 @@
...
@@ -68,13 +70,6 @@
(1,16,"GtkWidget","margin-start","12",0,None,None,None,None,None,None,None,None),
(1,16,"GtkWidget","margin-start","12",0,None,None,None,None,None,None,None,None),
(1,16,"GtkWidget","margin-top","12",0,None,None,None,None,None,None,None,None),
(1,16,"GtkWidget","margin-top","12",0,None,None,None,None,None,None,None,None),
(1,17,"GtkListBox","selection-mode","none",0,None,None,None,None,None,None,None,None),
(1,17,"GtkListBox","selection-mode","none",0,None,None,None,None,None,None,None,None),
(1,18,"AdwClamp","maximum-size","360",0,None,None,None,None,None,None,None,None),
(1,18,"GtkWidget","margin-bottom","12",0,None,None,None,None,None,None,None,None),
(1,18,"GtkWidget","margin-end","12",0,None,None,None,None,None,None,None,None),
(1,18,"GtkWidget","margin-start","12",0,None,None,None,None,None,None,None,None),
(1,18,"GtkWidget","margin-top","12",0,None,None,None,None,None,None,None,None),
(1,19,"GtkListBox","selection-mode","none",0,None,None,None,None,None,None,None,None),
(1,20,"AdwPreferencesRow","title","Update applications",1,None,None,None,None,None,None,None,None),
(1,22,"GtkButton","icon-name","system-search-symbolic",0,None,None,None,None,None,None,None,None),
(1,22,"GtkButton","icon-name","system-search-symbolic",0,None,None,None,None,None,None,None,None),
(1,22,"GtkWidget","sensitive",None,0,None,None,None,None,1,"AdwApplicationWindow","is-loading","sync-create|invert-boolean"),
(1,22,"GtkWidget","sensitive",None,0,None,None,None,None,1,"AdwApplicationWindow","is-loading","sync-create|invert-boolean"),
(1,23,"GtkActionable","action-name","app.about",0,None,None,None,None,None,None,None,None),
(1,23,"GtkActionable","action-name","app.about",0,None,None,None,None,None,None,None,None),
...
@@ -84,7 +79,19 @@
...
@@ -84,7 +79,19 @@
(1,27,"GtkWidget","halign","center",None,None,None,None,None,None,None,None,None),
(1,27,"GtkWidget","halign","center",None,None,None,None,None,None,None,None,None),
(1,27,"GtkWidget","height-request","80",None,None,None,None,None,None,None,None,None),
(1,27,"GtkWidget","height-request","80",None,None,None,None,None,None,None,None,None),
(1,27,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(1,27,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(1,27,"GtkWidget","width-request","80",None,None,None,None,None,None,None,None,None)
(1,27,"GtkWidget","width-request","80",None,None,None,None,None,None,None,None,None),
(1,28,"GtkCenterBox","center-widget",None,None,None,None,None,29,None,None,None,None),
(1,28,"GtkWidget","halign","center",None,None,None,None,None,None,None,None,None),
(1,28,"GtkWidget","margin-bottom","12",None,None,None,None,None,None,None,None,None),
(1,28,"GtkWidget","margin-end","12",None,None,None,None,None,None,None,None,None),
(1,28,"GtkWidget","margin-start","12",None,None,None,None,None,None,None,None,None),
(1,28,"GtkWidget","margin-top","12",None,None,None,None,None,None,None,None,None),
(1,29,"AdwClamp","maximum-size","500",None,None,None,None,None,None,None,None,None),
(1,29,"GtkWidget","margin-end","12",None,None,None,None,None,None,None,None,None),
(1,29,"GtkWidget","margin-start","12",None,None,None,None,None,None,None,None,None),
(1,31,"AdwPreferencesRow","title","Update applications",1,None,None,None,None,None,None,None,None),
(1,32,"GtkButton","icon-name","emoji-flags-symbolic",None,None,None,None,None,None,None,None,None),
(1,32,"GtkWidget","tooltip-text","Flag Selection dialog",1,None,None,None,None,None,None,None,None)
</object_property>
</object_property>
<object_data>
<object_data>
(1,14,"GtkStringList",1,1,None,None,None,None,None,None),
(1,14,"GtkStringList",1,1,None,None,None,None,None,None),
...
@@ -96,15 +103,15 @@
...
@@ -96,15 +103,15 @@
(1,11,"GtkWidget",2,2,None,1,None,None,None,None),
(1,11,"GtkWidget",2,2,None,1,None,None,None,None),
(1,17,"GtkWidget",1,1,None,None,None,None,None,None),
(1,17,"GtkWidget",1,1,None,None,None,None,None,None),
(1,17,"GtkWidget",2,2,None,1,None,None,None,None),
(1,17,"GtkWidget",2,2,None,1,None,None,None,None),
(1,
2
0,"GtkWidget",1,1,None,None,None,None,None,None),
(1,
3
0,"GtkWidget",1,1,None,None,None,None,None,None),
(1,
2
0,"GtkWidget",2,2,None,1,None,None,None,None),
(1,
3
0,"GtkWidget",2,2,None,1,None,None,None,None),
(1,
19
,"GtkWidget",1,1,None,None,None,None,None,None),
(1,
31
,"GtkWidget",1,1,None,None,None,None,None,None),
(1,
19
,"GtkWidget",2,2,None,1,None,None,None,None)
(1,
31
,"GtkWidget",2,2,None,1,None,None,None,None)
</object_data>
</object_data>
<object_data_arg>
<object_data_arg>
(1,11,"GtkWidget",2,2,"name","linked"),
(1,11,"GtkWidget",2,2,"name","linked"),
(1,17,"GtkWidget",2,2,"name","boxed-list-separate"),
(1,17,"GtkWidget",2,2,"name","boxed-list-separate"),
(1,
20,"GtkWidget",2,2,"name","suggested-action
"),
(1,
30,"GtkWidget",2,2,"name","boxed-list
"),
(1,
19,"GtkWidget",2,2,"name","boxed-list
")
(1,
31,"GtkWidget",2,2,"name","suggested-action
")
</object_data_arg>
</object_data_arg>
</cambalache-project>
</cambalache-project>
src/window.py
View file @
e41d7d27
...
@@ -16,13 +16,15 @@
...
@@ -16,13 +16,15 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# SPDX-License-Identifier: AGPL-3.0-or-later
from
gi.repository
import
Gtk
,
Adw
,
GObject
from
gi.repository
import
Gtk
,
Adw
,
GObject
import
re
import
gettext
import
gettext
from
.widgets.applicationrow
import
ApplicationRow
from
.widgets.applicationrow
import
ApplicationRow
from
.widgets.logdialog
import
LogDialog
from
.widgets.logdialog
import
LogDialog
from
.widgets.flagsdialog
import
FlagsDialog
gettext
.
textdomain
(
'eepm-play-gui'
)
gettext
.
textdomain
(
'eepm-play-gui'
)
_
=
gettext
.
gettext
_
=
gettext
.
gettext
...
@@ -43,6 +45,7 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
...
@@ -43,6 +45,7 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
search_dropdown
=
Gtk
.
Template
.
Child
()
search_dropdown
=
Gtk
.
Template
.
Child
()
choice_listbox
=
Gtk
.
Template
.
Child
()
choice_listbox
=
Gtk
.
Template
.
Child
()
apply_button
=
Gtk
.
Template
.
Child
()
apply_button
=
Gtk
.
Template
.
Child
()
flags_button
=
Gtk
.
Template
.
Child
()
def
__init__
(
self
,
**
kwargs
):
def
__init__
(
self
,
**
kwargs
):
super
()
.
__init__
(
**
kwargs
)
super
()
.
__init__
(
**
kwargs
)
...
@@ -50,7 +53,10 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
...
@@ -50,7 +53,10 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
self
.
checkboxes
=
None
self
.
checkboxes
=
None
self
.
apply_button
.
connect
(
"activated"
,
self
.
on_apply_clicked
)
self
.
apply_button
.
connect
(
"activated"
,
self
.
on_apply_clicked
)
self
.
flagsdialog
=
FlagsDialog
()
self
.
flags_button
.
connect
(
"clicked"
,
lambda
_
:
self
.
flagsdialog
.
present
(
self
))
self
.
connect
(
"notify::is-loading"
,
self
.
on_is_loading_changed
)
self
.
connect
(
"notify::is-loading"
,
self
.
on_is_loading_changed
)
self
.
search_bar
.
connect_entry
(
self
.
search_entry
)
self
.
search_bar
.
connect_entry
(
self
.
search_entry
)
...
@@ -59,7 +65,8 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
...
@@ -59,7 +65,8 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
self
.
choice_listbox
.
set_filter_func
(
self
.
listbox_filter_func
)
self
.
choice_listbox
.
set_filter_func
(
self
.
listbox_filter_func
)
self
.
dialog
=
LogDialog
(
win
=
self
)
self
.
logdialog
=
LogDialog
(
win
=
self
)
self
.
update_ui
()
self
.
update_ui
()
...
@@ -168,18 +175,16 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
...
@@ -168,18 +175,16 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
return
matches_search
# All
return
matches_search
# All
def
on_apply_clicked
(
self
,
button
):
def
on_apply_clicked
(
self
,
button
):
commands
=
None
self
.
props
.
is_loading
=
True
# Show loading message before command execution
self
.
props
.
is_loading
=
True
# Показать сообщение о загрузке перед выполнением команды
to_install
,
to_remove
=
self
.
get_install_remove_lists
()
to_install
,
to_remove
=
self
.
get_install_remove_lists
()
commands
=
self
.
build_commands
(
to_install
,
to_remove
)
full_command
=
self
.
build_commands
(
to_install
,
to_remove
)
if
commands
:
if
full_command
:
full_command
=
" && "
.
join
(
commands
)
pkexec_command
=
f
'pkexec sh -c "{full_command}"'
pkexec_command
=
f
'pkexec sh -c "{full_command}"'
self
.
dialog
.
run
(
pkexec_command
,
on_done
=
self
.
update_ui
)
self
.
log
dialog
.
run
(
pkexec_command
,
on_done
=
self
.
update_ui
)
else
:
else
:
self
.
dialog
.
run
(
"pkexec epm play --update all"
,
on_done
=
self
.
update_ui
)
self
.
log
dialog
.
run
(
"pkexec epm play --update all"
,
on_done
=
self
.
update_ui
)
def
get_install_remove_lists
(
self
):
def
get_install_remove_lists
(
self
):
if
self
.
installed_apps
and
self
.
checkboxes
:
if
self
.
installed_apps
and
self
.
checkboxes
:
...
@@ -195,4 +200,16 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
...
@@ -195,4 +200,16 @@ class EepmPlayGuiWindow(Adw.ApplicationWindow):
commands
.
append
(
f
"epm play --auto {' '.join(to_install)}"
)
commands
.
append
(
f
"epm play --auto {' '.join(to_install)}"
)
if
to_remove
:
if
to_remove
:
commands
.
append
(
f
"epm play --auto --remove {' '.join(to_remove)}"
)
commands
.
append
(
f
"epm play --auto --remove {' '.join(to_remove)}"
)
return
commands
if
not
commands
:
return
None
full_command
=
" && "
.
join
(
commands
)
# Apply flags to the command
flags
=
[
self
.
flagsdialog
.
force
(),
self
.
flagsdialog
.
ipfs
()]
for
flag
in
flags
:
full_command
=
re
.
sub
(
r"\bepm play\b"
,
f
"epm play {flag}"
,
full_command
)
return
full_command
src/window.ui
View file @
e41d7d27
...
@@ -104,26 +104,38 @@
...
@@ -104,26 +104,38 @@
</object>
</object>
</property>
</property>
<child
type=
"bottom"
>
<child
type=
"bottom"
>
<object
class=
"AdwClamp"
>
<object
class=
"GtkCenterBox"
>
<property
name=
"margin-bottom"
>
12
</property>
<property
name=
"center-widget"
>
<property
name=
"margin-end"
>
12
</property>
<object
class=
"AdwClamp"
>
<property
name=
"margin-start"
>
12
</property>
<property
name=
"margin-end"
>
12
</property>
<property
name=
"margin-top"
>
12
</property>
<property
name=
"margin-start"
>
12
</property>
<property
name=
"maximum-size"
>
360
</property>
<property
name=
"maximum-size"
>
500
</property>
<child
type=
"center"
>
<object
class=
"GtkListBox"
>
<property
name=
"selection-mode"
>
none
</property>
<child>
<child>
<object
class=
"AdwButtonRow"
id=
"apply_button"
>
<object
class=
"GtkListBox"
>
<property
name=
"title"
translatable=
"yes"
>
Update applications
</property>
<child>
<object
class=
"AdwButtonRow"
id=
"apply_button"
>
<property
name=
"title"
translatable=
"yes"
>
Update applications
</property>
<style>
<class
name=
"suggested-action"
/>
</style>
</object>
</child>
<style>
<style>
<class
name=
"
suggested-action
"
/>
<class
name=
"
boxed-list
"
/>
</style>
</style>
</object>
</object>
</child>
</child>
<style>
</object>
<class
name=
"boxed-list"
/>
</property>
</style>
<property
name=
"halign"
>
center
</property>
<property
name=
"margin-bottom"
>
12
</property>
<property
name=
"margin-end"
>
12
</property>
<property
name=
"margin-start"
>
12
</property>
<property
name=
"margin-top"
>
12
</property>
<child
type=
"end"
>
<object
class=
"GtkButton"
id=
"flags_button"
>
<property
name=
"icon-name"
>
emoji-flags-symbolic
</property>
<property
name=
"tooltip-text"
translatable=
"yes"
>
Flag Selection dialog
</property>
</object>
</object>
</child>
</child>
</object>
</object>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment