diff --git a/gresource.xml b/gresource.xml
index 6f162c0..27a572a 100644
--- a/gresource.xml
+++ b/gresource.xml
@@ -28,7 +28,6 @@
ubinstall-gtk.css
- modules.csv
kernel-list.csv
kernel-list-addon.csv
services-list.csv
diff --git a/locale/ubinstall-gtk.pot b/locale/ubinstall-gtk.pot
index 7ba8133..8aa54a8 100644
--- a/locale/ubinstall-gtk.pot
+++ b/locale/ubinstall-gtk.pot
@@ -482,12 +482,8 @@ msgstr ""
msgid "Section"
msgstr ""
-#: source/ubl-strings.h:119
-msgid "Capacity"
-msgstr ""
-
#: source/ubl-strings.h:120
-msgid "Free space"
+msgid "Free (%)"
msgstr ""
#: source/ubl-strings.h:121
@@ -1009,6 +1005,14 @@ msgstr ""
msgid "Group"
msgstr ""
+#: source/ubl-strings.h:292
+msgid "Chosen size:"
+msgstr ""
+
+#: source/ubl-strings.h:292
+msgid "Overall size:"
+msgstr ""
+
#: source/ubl-strings.h:292
msgid "Select your language:"
msgstr ""
@@ -1903,9 +1907,30 @@ msgid ""
"network or the Internet (even over slow connection channels)."
msgstr ""
+msgid "File system label"
+msgstr ""
+
+msgid "Flags"
+msgstr ""
+
+msgid "Mount point"
+msgstr ""
+
msgid "About"
msgstr ""
+msgid "Local system"
+msgstr ""
+
+msgid "Source:"
+msgstr ""
+
+msgid "Version:"
+msgstr ""
+
+msgid "Size:"
+msgstr ""
+
msgid "Documentation"
msgstr ""
diff --git a/locale/ubinstall-gtk_ru.po b/locale/ubinstall-gtk_ru.po
index a5743d3..07a08ca 100644
--- a/locale/ubinstall-gtk_ru.po
+++ b/locale/ubinstall-gtk_ru.po
@@ -251,7 +251,7 @@ msgstr "Метка"
#: source/ubl-strings.h:63
msgid "Size"
-msgstr "Общий размер"
+msgstr "Размер"
#: source/ubl-strings.h:64
msgid "Free"
@@ -502,13 +502,10 @@ msgstr "Серийный номер"
msgid "Section"
msgstr "Раздел"
-#: source/ubl-strings.h:119
-msgid "Capacity"
-msgstr "Объём"
#: source/ubl-strings.h:120
-msgid "Free space"
-msgstr "Свободно"
+msgid "Free (%)"
+msgstr "Свободно (%)"
#: source/ubl-strings.h:121
msgid "File system"
@@ -1028,6 +1025,14 @@ msgstr "Приложение"
msgid "Group"
msgstr "Группа"
+#: source/ubl-strings.h:292
+msgid "Chosen size:"
+msgstr "Выбрано:"
+
+#: source/ubl-strings.h:292
+msgid "Overall size:"
+msgstr "Общий размер:"
+
#: source/ubl-strings.h:292
msgid "Select your language:"
msgstr "Выберите язык:"
@@ -1056,10 +1061,6 @@ msgstr "\"/ublinux-data/\" раздел данных пользователя"
msgid "\"/ublinux/\" system section"
msgstr "\"/ublinux/\" раздел системы"
-#: source/ubl-strings.h:299
-msgid "Size:"
-msgstr "Размер:"
-
#: source/ubl-strings.h:300
msgid "Part label:"
msgstr "Метка раздела:"
@@ -2047,6 +2048,27 @@ msgstr ""
msgid "About"
msgstr "О программе"
+msgid "Local system"
+msgstr "Локальная система"
+
+msgid "Source:"
+msgstr "Источник:"
+
+msgid "Version:"
+msgstr "Версия:"
+
+msgid "Size:"
+msgstr "Размер:"
+
+msgid "File system label"
+msgstr "Метка файловой системы"
+
+msgid "Flags"
+msgstr "Флаги"
+
+msgid "Mount point"
+msgstr "Точка монтирования"
+
msgid "Documentation"
msgstr "Справка"
diff --git a/modules-list.csv b/modules-list.csv
deleted file mode 100644
index c09728f..0000000
--- a/modules-list.csv
+++ /dev/null
@@ -1,208 +0,0 @@
-OS_VERSION_ID;PACKAGE_UBM;NAME_UBM;TAG_UBM;DESCRIPTION_UBM
-2405;ubm-001-linux515;001-linux515-*-*-*.ubm;base;UBLinux module the kernel and modules
-2405;ubm-001-linux61;001-linux61-*-*-*.ubm;base;UBLinux module the kernel and modules
-2405;ubm-001-linux66;001-linux66-*-*-*.ubm;base;UBLinux module the kernel and modules
-2405;ubm-002-linux515-headers;002-linux515-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules
-2405;ubm-002-linux61-headers;002-linux61-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules
-2405;ubm-002-linux66-headers;002-linux66-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules
-2405;ubm-003-linux515-docs;003-linux515-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel
-2405;ubm-003-linux61-docs;003-linux61-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel
-2405;ubm-003-linux66-docs;003-linux66-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel
-2405;ubm-004-linux-firmware;004-linux-firmware-*-*-*.ubm;base;UBLinux module firmwares
-2405;ubm-010-core;010-core-*-*-*.ubm;base;UBLinux module includes the core developer components
-2405;ubm-010-core-devel;010-core-devel-*-*-*.ubm;base;UBLinux module includes the core developer components
-2405;ubm-020-xorg-base;020-xorg-base-*-*-*.ubm;base;UBLinux module includes basic components Xorg
-2405;ubm-021-xorg-fonts;021-xorg-fonts-*-*-*.ubm;base;UBLinux module includes basic fonts
-2405;ubm-025-xorg-gl;025-xorg-gl-*-*-*.ubm;base;UBLinux module includes graphics accelerators
-2405;ubm-030-xorg-gtk;030-xorg-gtk-*-*-*.ubm;base;UBLinux module includes GTK libs
-2405;ubm-035-xorg-qt;035-xorg-qt-*-*-*.ubm;base;UBLinux module includes Qt5 and Qt6 libs
-2405;ubm-036-xorg-qt5;036-xorg-qt5-*-*-*.ubm;base;UBLinux module includes QT5 libs
-2405;ubm-037-xorg-qt6;037-xorg-qt6-*-*-*.ubm;base;UBLinux module includes QT6 libs
-2405;ubm-040-xorg-xfce;040-xorg-xfce-*-*-*.ubm;base;UBLinux module includes Xfce applications
-2405;ubm-041-xorg-plasma;041-xorg-plasma-*-*-*.ubm;base;UBLinux module includes KDE Plasma applications
-2405;ubm-042-xorg-gnome;042-xorg-gnome-*-*-*.ubm;base;UBLinux module includes GNOME next generation desktop shell
-2405;ubm-043-xorg-mate;043-xorg-mate-*-*-*.ubm;base;UBLinux module includes MATE desktop shell
-2405;ubm-045-xorg-pantheon;045-xorg-pantheon-*-*-*.ubm;base;UBLinux module includes Pantheon desktop shell
-2405;ubm-050-xorg-gtk-app;050-xorg-gtk-app-*-*-*.ubm;base;UBLinux module includes GTK applications
-2405;ubm-055-xorg-qt-app;055-xorg-qt-app-*-*-*.ubm;base;UBLinux module includes QT applications
-2405;ubm-060-xorg-theme;060-xorg-theme-*-*-*.ubm;base;UBLinux module includes GTK and icons themes
-2405;ubm-070-dm-lightdm;070-dm-lightdm-*-*-*.ubm;base;UBLinux module includes Lightdm display manager
-2405;ubm-080-multimedia;080-multimedia-*-*-*.ubm;base;UBLinux module includes multimedia applications
-2405;ubm-100-ublinux;100-ublinux-*-*-*.ubm;base;UBLinux module include system utilites
-2405;ubm-anydesk;anydesk-*-*-*.ubm;extra;UBLinux module include AnyDesk
-2405;ubm-backgrounds;backgrounds-*-*-*.ubm;extra;UBLinux module include desktop backgrounds
-2405;ubm-blender;blender-*-*-*.ubm;extra;UBLinux module include blender and utilities
-2405;ubm-chromium;chromium-*-*-*.ubm;extra;UBLinux module includes Chromium and some plugins
-2405;ubm-chromium-gost;chromium-gost-*-*-*.ubm;extra;UBLinux module includes Chromium and some plugins
-2405;ubm-database;database-*-*-*.ubm;extra;UBLinux module includes postgresql, mariadb database and utilities
-2405;ubm-docker;docker-*-*-*.ubm;extra;UBLinux module includes docker and webmanager and utils
-2405;ubm-drv-brother;drv-brother-*-*-*.ubm;extra;UBLinux module include Brother printer drivers
-2405;ubm-drv-canon-capt;drv-canon-capt-*-*-*.ubm;extra;UBLinux module include Canon CAPT Printer Driver
-2405;ubm-drv-canon-ufrii;drv-canon-ufrii-*-*-*.ubm;extra;UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver
-2405;ubm-drv-epson;drv-epson-*-*-*.ubm;extra;UBLinux module include Epson printer drivers
-2405;ubm-drv-kyocera;drv-kyocera-*-*-*.ubm;extra;UBLinux module include Kyocera printer drivers
-2405;ubm-drv-lexmark;drv-lexmark-*-*-*.ubm;extra;UBLinux module include Lexmark drivers
-2405;ubm-drv-pantum;drv-pantum-*-*-*.ubm;extra;UBLinux module include Pantum printer drivers
-2405;ubm-drv-printer;drv-printer-*-*-*.ubm;extra;UBLinux module include hplip, gutenprint, foomatic
-2405;ubm-drv-ricoh;drv-ricoh-*-*-*.ubm;extra;UBLinux module include Ricoh drivers
-2405;ubm-drv-samsung;drv-samsung-*-*-*.ubm;extra;UBLinux module include Samsung drivers
-2405;ubm-drv-xerox;drv-xerox-*-*-*.ubm;extra;UBLinux module include Xerox drivers
-2405;ubm-education;education-*-*-*.ubm;extra;UBLinux module includes education soft
-2405;ubm-firefox;firefox-*-*-*.ubm;extra;UBLinux module includes Firefox and some plugins
-2405;ubm-java17-openjfx;java17-openjfx-*-*-*.ubm;extra;UBLinux module include Java OpenJFX 17 client application platform
-2405;ubm-jdk11;jdk11-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 11 development kit
-2405;ubm-jdk17;jdk17-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 17 development kit
-2405;ubm-jdk21;jdk21-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 21 development kit
-2405;ubm-jdk8;jdk8-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 8 development kit
-2405;ubm-lib32;lib32-*-*-*.ubm;extra;UBLinux module includes some library 32-bit
-2405;ubm-libreoffice;libreoffice-*-*-*.ubm;extra;UBLinux module include LibreOffice
-2405;ubm-linux515-dkms;linux515-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules
-2405;ubm-linux515-nvidia;linux515-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2405;ubm-linux515-nvidia-390xx;linux515-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux
-2405;ubm-linux515-nvidia-470xx;linux515-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2405;ubm-linux61-dkms;linux61-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules
-2405;ubm-linux61-nvidia;linux61-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2405;ubm-linux61-nvidia-390xx;linux61-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux
-2405;ubm-linux61-nvidia-470xx;linux61-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2405;ubm-linux61-r8168-8136;linux61-r8168-8136-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules
-2405;ubm-linux66-dkms;linux66-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules
-2405;ubm-onlyoffice;onlyoffice-*-*-*.ubm;extra;UBLinux module includes OnlyOffice suite
-2405;ubm-patch;patch-*-*-*.ubm;extra;UBLinux module include apps patch
-2405;ubm-podman;podman-*-*-*.ubm;extra;UBLinux module includes podman and webmanager and utils
-2405;ubm-pycharm;pycharm-*-*-*.ubm;extra;UBLinux module include pycharm-community-edition and utilities
-2405;ubm-qaratms-ru;qaratms-ru-*-*-*.ubm;extra;UBLinux module include pycharm-community-edition and utilities
-2405;ubm-qemu;qemu-*-*-*.ubm;extra;UBLinux module includes QEMU, manager and utils
-2405;ubm-r7-office;r7-office-*-*-*.ubm;extra;UBLinux module includes R7 Office
-2405;ubm-realvnc;realvnc-*-*-*.ubm;extra;UBLinux module includes realvnc viewer and server
-2405;ubm-rustdesk;rustdesk-*-*-*.ubm;extra;UBLinux module includes rustdesk
-2405;ubm-rustdesk-server;rustdesk-server-*-*-*.ubm;extra;UBLinux module includes rustdesk
-2405;ubm-telegram;telegram-*-*-*.ubm;extra;UBLinux module includes Telegram
-2405;ubm-ubpile-workflow;ubpile-workflow-*-*-*.ubm;extra;UBLinux module include UBPile Workflow
-2405;ubm-virtual-guest;virtual-guest-*-*-*.ubm;extra;UBLinux module includes agents for Linux guest
-2405;ubm-virtualbox-host;virtualbox-host-*-*-*.ubm;extra;UBLinux module includes VirtualBox and extension packs
-2405;ubm-web;web-*-*-*.ubm;extra;UBLinux module includes Web servers
-2405;ubm-webmin;webmin-*-*-*.ubm;extra;UBLinux module includes Webmin and Usermin
-2405;ubm-whiteboard;whiteboard-*-*-*.ubm;extra;UBLinux module includes interactive whiteboard soft
-2405;ubm-winbox;winbox-*-*-*.ubm;extra;UBLinux module include Winbox
-2405;ubm-wine;wine-*-*-*.ubm;extra;UBLinux module includes wine and utilities
-2405;ubm-wps-office;wps-office-*-*-*.ubm;extra;UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite
-2405;ubm-yandex-browser;yandex-browser-*-*-*.ubm;extra;UBLinux module includes Yandex Browser and some utils
-2204;ubm-001-linux;001-linux-*-*-*.ubm;base;UBLinux module the kernel and modules
-2204;ubm-001-linux515;001-linux515-*-*-*.ubm;base;UBLinux module the kernel and modules
-2204;ubm-001-linux61;001-linux61-*-*-*.ubm;base;UBLinux module the kernel and modules
-2204;ubm-001-linux66;001-linux66-*-*-*.ubm;base;UBLinux module the kernel and modules
-2204;ubm-002-linux-headers;002-linux-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules for the Meta UBlinux kernel, modules, headers and documentation
-2204;ubm-002-linux515-headers;002-linux515-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules
-2204;ubm-002-linux61-headers;002-linux61-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules
-2204;ubm-002-linux66-headers;002-linux66-headers-*-*-*.ubm;base;UBLinux module headers and scripts for building modules
-2204;ubm-003-linux-docs;003-linux-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel
-2204;ubm-003-linux515-docs;003-linux515-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel
-2204;ubm-003-linux61-docs;003-linux61-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel
-2204;ubm-003-linux66-docs;003-linux66-docs-*-*-*.ubm;base;UBLinux module documentation for the UBLinux kernel
-2204;ubm-004-linux-firmware;004-linux-firmware-*-*-*.ubm;base;UBLinux module firmwares
-2204;ubm-010-core;010-core-*-*-*.ubm;base;UBLinux module includes the core developer components
-2204;ubm-010-core-devel;010-core-devel-*-*-*.ubm;base;UBLinux module includes the core developer components
-2204;ubm-020-xorg-base;020-xorg-base-*-*-*.ubm;base;UBLinux module includes basic components Xorg
-2204;ubm-021-xorg-fonts;021-xorg-fonts-*-*-*.ubm;base;UBLinux module includes basic fonts
-2204;ubm-025-xorg-gl;025-xorg-gl-*-*-*.ubm;base;UBLinux module includes graphics accelerators
-2204;ubm-030-xorg-gtk;030-xorg-gtk-*-*-*.ubm;base;UBLinux module includes GTK libs
-2204;ubm-035-xorg-qt5;035-xorg-qt5-*-*-*.ubm;base;UBLinux module includes QT5 libs
-2204;ubm-036-xorg-qt6;036-xorg-qt6-*-*-*.ubm;base;UBLinux module includes QT6 libs
-2204;ubm-040-xorg-xfce;040-xorg-xfce-*-*-*.ubm;base;UBLinux module includes Xfce applications
-2204;ubm-041-xorg-plasma;041-xorg-plasma-*-*-*.ubm;base;UBLinux module includes KDE Plasma applications
-2204;ubm-042-xorg-gnome;042-xorg-gnome-*-*-*.ubm;base;UBLinux module includes GNOME next generation desktop shell
-2204;ubm-043-xorg-mate;043-xorg-mate-*-*-*.ubm;base;UBLinux module includes MATE desktop shell
-2204;ubm-045-xorg-pantheon;045-xorg-pantheon-*-*-*.ubm;base;UBLinux module includes Pantheon desktop shell
-2204;ubm-049-xorg-liquidshell;049-xorg-liquidshell-*-*-*.ubm;base;UBLinux module includes Liquidshell basic desktop shell using QtWidgets
-2204;ubm-050-xorg-gtk-app;050-xorg-gtk-app-*-*-*.ubm;base;UBLinux module includes GTK applications
-2204;ubm-055-xorg-qt-app;055-xorg-qt-app-*-*-*.ubm;base;UBLinux module includes QT applications
-2204;ubm-060-xorg-theme;060-xorg-theme-*-*-*.ubm;base;UBLinux module includes GTK and icons themes
-2204;ubm-070-dm-lightdm;070-dm-lightdm-*-*-*.ubm;base;UBLinux module includes Lightdm display manager
-2204;ubm-080-multimedia;080-multimedia-*-*-*.ubm;base;UBLinux module includes multimedia applications
-2204;ubm-100-ublinux;100-ublinux-*-*-*.ubm;base;UBLinux module include system utilites
-2204;ubm-amdgpu-pro;amdgpu-pro-*-*-*.ubm;extra;UBLinux module includes AMDGRU PRO driver and utilities
-2204;ubm-anydesk;anydesk-*-*-*.ubm;extra;UBLinux module includes anydesk
-2204;ubm-backgrounds;backgrounds-*-*-*.ubm;extra;UBLinux module include desktop backgrounds
-2204;ubm-blender;blender-*-*-*.ubm;extra;UBLinux module includes wine and utilities
-2204;ubm-chromium;chromium-*-*-*.ubm;extra;UBLinux module includes Chromium-GOST and some plugins
-2204;ubm-chromium-gost;chromium-gost-*-*-*.ubm;extra;UBLinux module includes Chromium-GOST and some plugins
-2204;ubm-database;database-*-*-*.ubm;extra;UBLinux module includes database applications
-2204;ubm-docker;docker-*-*-*.ubm;extra;UBLinux module includes docker and webmanager and utils
-2204;ubm-drv-brother;drv-brother-*-*-*.ubm;extra;UBLinux module include Brother printer drivers
-2204;ubm-drv-canon-capt;drv-canon-capt-*-*-*.ubm;extra;UBLinux module include Canon CAPT Printer Driver
-2204;ubm-drv-canon-ufrii;drv-canon-ufrii-*-*-*.ubm;extra;UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver
-2204;ubm-drv-epson;drv-epson-*-*-*.ubm;extra;UBLinux module include Epson printer drivers
-2204;ubm-drv-kyocera;drv-kyocera-*-*-*.ubm;extra;UBLinux module include Kyocera printer drivers
-2204;ubm-drv-lexmark;drv-lexmark-*-*-*.ubm;extra;UBLinux module include Lexmark drivers
-2204;ubm-drv-pantum;drv-pantum-*-*-*.ubm;extra;UBLinux module include Pantum printer drivers
-2204;ubm-drv-printer;drv-printer-*-*-*.ubm;extra;UBLinux module include hplip, gutenprint, foomatic
-2204;ubm-drv-ricoh;drv-ricoh-*-*-*.ubm;extra;UBLinux module include Ricoh drivers
-2204;ubm-drv-samsung;drv-samsung-*-*-*.ubm;extra;UBLinux module include Samsung drivers
-2204;ubm-drv-xerox;drv-xerox-*-*-*.ubm;extra;UBLinux module include Xerox drivers
-2204;ubm-firefox;firefox-*-*-*.ubm;extra;UBLinux module includes Firefox and some plugins
-2204;ubm-gambas3;gambas3-*-*-*.ubm;extra;UBLinux module includes Gambas3 and components
-2204;ubm-game-hedgewars;game-hedgewars-*-*-*.ubm;extra;UBLinux module include Hedgewars game similiar to Worms
-2204;ubm-game-warfork;game-warfork-*-*-*.ubm;extra;UBLinux module include Hedgewars game similiar to Worms
-2204;ubm-gitea;gitea-*-*-*.ubm;extra;UBLinux module includes Gitea and MemCached
-2204;ubm-gitlab;gitlab-*-*-*.ubm;extra;UBLinux module include Gitlab CLI tools
-2204;ubm-gitlab-cli;gitlab-cli-*-*-*.ubm;extra;UBLinux module include Gitlab CLI tools
-2204;ubm-java11-openjfx;java11-openjfx-*-*-*.ubm;extra;UBLinux module include Java OpenJFX 11 client application platform
-2204;ubm-java17-openjfx;java17-openjfx-*-*-*.ubm;extra;UBLinux module include Java OpenJFX 17 client application platform
-2204;ubm-jdk11;jdk11-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 11 development kit
-2204;ubm-jdk17;jdk17-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 17 development kit
-2204;ubm-jdk8;jdk8-*-*-*.ubm;extra;UBLinux module includes OpenJDK Java 8 development kit
-2204;ubm-lazarus-gtk2;lazarus-gtk2-*-*-*.ubm;extra;UBLinux module include Free Pascal and Lazarus GTK2
-2204;ubm-lazarus-qt5;lazarus-qt5-*-*-*.ubm;extra;UBLinux module include Free Pascal and Lazarus QT5
-2204;ubm-lib32;lib32-*-*-*.ubm;extra;UBLinux module includes some library 32-bit
-2204;ubm-libreoffice;libreoffice-*-*-*.ubm;extra;UBLinux module includes rustdesk
-2204;ubm-linux-dkms;linux-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules
-2204;ubm-linux515-dkms;linux515-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules
-2204;ubm-linux515-nvidia;linux515-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2204;ubm-linux515-nvidia-390xx;linux515-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux
-2204;ubm-linux515-nvidia-470xx;linux515-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2204;ubm-linux61-dkms;linux61-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules
-2204;ubm-linux61-nvidia;linux61-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2204;ubm-linux61-nvidia-390xx;linux61-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux
-2204;ubm-linux61-nvidia-470xx;linux61-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2204;ubm-linux66-dkms;linux66-dkms-*-*-*.ubm;extra;UBLinux module includes dkms additionals modules
-2204;ubm-linux66-nvidia;linux66-nvidia-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2204;ubm-linux66-nvidia-390xx;linux66-nvidia-390xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 390xx driver for linux
-2204;ubm-linux66-nvidia-470xx;linux66-nvidia-470xx-*-*-*.ubm;extra;UBLinux module include NVIDIA 470xx driver for linux
-2204;ubm-lsi-megaraid;lsi-megaraid-*-*-*.ubm;extra;UBLinux module includes LSI MegaRaid SM, StorCLI, MegaCLI and utils
-2204;ubm-nvidia-340;nvidia-340-*-*-*.ubm;extra;UBLinux module includes NVIDIA 340xx driver and utilities
-2204;ubm-nvidia-390;nvidia-390-*-*-*.ubm;extra;UBLinux module includes NVIDIA 390xx driver and utilities
-2204;ubm-nvidia-470;nvidia-470-*-*-*.ubm;extra;UBLinux module includes NVIDIA 470xx driver and utilities
-2204;ubm-nvidia-510;nvidia-510-*-*-*.ubm;extra;UBLinux module includes NVIDIA 510xx driver and utilities
-2204;ubm-nvidia-515;nvidia-515-*-*-*.ubm;extra;UBLinux module includes NVIDIA 515xx driver and utilities
-2204;ubm-nvidia-optimus;nvidia-optimus-*-*-*.ubm;extra;UBLinux module includes NVIDIA Optimus
-2204;ubm-onlyoffice;onlyoffice-*-*-*.ubm;extra;UBLinux module includes OnlyOffice DocumentServer suite
-2204;ubm-onlyoffice-documentserver;onlyoffice-documentserver-*-*-*.ubm;extra;UBLinux module includes OnlyOffice DocumentServer suite
-2204;ubm-opera;opera-*-*-*.ubm;extra;UBLinux module includes Opera and some plugins
-2204;ubm-patch;patch-*-*-*.ubm;extra;UBLinux module includes patch
-2204;ubm-podman;podman-*-*-*.ubm;extra;UBLinux module includes podman and webmanager and utils
-2204;ubm-qemu;qemu-*-*-*.ubm;extra;UBLinux module includes QEMU headless and utils
-2204;ubm-qemu-headless;qemu-headless-*-*-*.ubm;extra;UBLinux module includes QEMU headless and utils
-2204;ubm-qt4;qt4-*-*-*.ubm;extra;UBLinux module include QT4
-2204;ubm-realvnc;realvnc-*-*-*.ubm;extra;UBLinux module includes realvnc viewer and server
-2204;ubm-rustdesk;rustdesk-*-*-*.ubm;extra;UBLinux module include rustdesk-server
-2204;ubm-rustdesk-server;rustdesk-server-*-*-*.ubm;extra;UBLinux module include rustdesk-server
-2204;ubm-skype;skype-*-*-*.ubm;extra;UBLinux module include Skype
-2204;ubm-telegram;telegram-*-*-*.ubm;extra;UBLinux module includes Telegram
-2204;ubm-tor;tor-*-*-*.ubm;extra;UBLinux module include Tor utils and browser
-2204;ubm-ubpile-workflow;ubpile-workflow-*-*-*.ubm;extra;UBLinux module include UBPile Workflow
-2204;ubm-virtual-guest;virtual-guest-*-*-*.ubm;extra;UBLinux module includes agents for Linux guest without X support
-2204;ubm-virtual-guest-nox;virtual-guest-nox-*-*-*.ubm;extra;UBLinux module includes agents for Linux guest without X support
-2204;ubm-virtualbox-host;virtualbox-host-*-*-*.ubm;extra;UBLinux module includes VirtualBox headless and extension packs
-2204;ubm-virtualbox-host-headless;virtualbox-host-headless-*-*-*.ubm;extra;UBLinux module includes VirtualBox headless and extension packs
-2204;ubm-virtualbox-web;virtualbox-web-*-*-*.ubm;extra;UBLinux module includes phpvirtualbox for VirtualBox
-2204;ubm-vivaldi;vivaldi-*-*-*.ubm;extra;UBLinux module include Vivaldi browser
-2204;ubm-vmware-workstation16;vmware-workstation16-*-*-*.ubm;extra;UBLinux module includes VMware-Workstation 16
-2204;ubm-web;web-*-*-*.ubm;extra;UBLinux module includes Webmin and Usermin
-2204;ubm-webmin;webmin-*-*-*.ubm;extra;UBLinux module includes Webmin and Usermin
-2204;ubm-wiki-js;wiki-js-*-*-*.ubm;extra;UBLinux module include Wiki.js
-2204;ubm-winbox;winbox-*-*-*.ubm;extra;UBLinux module include Winbox
-2204;ubm-wine;wine-*-*-*.ubm;extra;UBLinux module includes wine and utilities
-2204;ubm-wps-office;wps-office-*-*-*.ubm;extra;UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite
-2204;ubm-xremote;xremote-*-*-*.ubm;extra;UBLinux module include X11 remote utils
-2204;ubm-yandex-browser;yandex-browser-*-*-*.ubm;extra;UBLinux module includes Yandex Browser and some utils
-2204;ubm-zoom;zoom-*-*-*.ubm;extra;UBLinux module include Zoom
\ No newline at end of file
diff --git a/modules.csv b/modules.csv
deleted file mode 100644
index c2f0af1..0000000
--- a/modules.csv
+++ /dev/null
@@ -1,109 +0,0 @@
-UBM_NAME|UBM_TAG|UBM_DECRIPTION
-001-linux-5.17.6-2-x86_64.ubm|base|UBLinux module the kernel and modules
-001-linux515-5.15.157-1-x86_64.ubm|base|UBLinux module the kernel and modules
-001-linux61-6.1.92-1-x86_64.ubm|base|UBLinux module the kernel and modules
-001-linux66-6.6.30-1-x86_64.ubm|base|UBLinux module the kernel and modules
-002-linux-headers-5.17.6-2-x86_64.ubm|base|UBLinux module headers and scripts for building modules
-002-linux515-headers-5.15.157-1-x86_64.ubm|base|UBLinux module headers and scripts for building modules
-002-linux61-headers-6.1.92-1-x86_64.ubm|base|UBLinux module headers and scripts for building modules
-002-linux66-headers-6.6.30-1-x86_64.ubm|base|UBLinux module headers and scripts for building modules
-003-linux-docs-5.17.6-2-x86_64.ubm|base|UBLinux module documentation for the UBLinux kernel
-003-linux515-docs-5.15.157-1-x86_64.ubm|base|UBLinux module documentation for the UBLinux kernel
-003-linux61-docs-6.1.92-1-x86_64.ubm|base|UBLinux module documentation for the UBLinux kernel
-003-linux66-docs-6.6.30-1-x86_64.ubm|base|UBLinux module documentation for the UBLinux kernel
-004-linux-firmware-2204-4-x86_64.ubm|base|UBLinux module firmwares
-010-core-2204-2-x86_64.ubm|base|UBLinux module includes the core components
-010-core-devel-2204-1-x86_64.ubm|base|UBLinux module includes the core developer components
-020-xorg-base-2204-2-x86_64.ubm|base|UBLinux module includes basic components Xorg
-021-xorg-fonts-2204-2-x86_64.ubm|base|UBLinux module includes basic fonts
-025-xorg-gl-2204-1-x86_64.ubm|base|UBLinux module includes graphics accelerators
-030-xorg-gtk-2204-2-x86_64.ubm|base|UBLinux module includes GTK libs
-035-xorg-qt5-2204-2-x86_64.ubm|base|UBLinux module includes QT5 libs
-036-xorg-qt6-2204-1-x86_64.ubm|base|UBLinux module includes QT6 libs
-040-xorg-xfce-2204-2-x86_64.ubm|base|UBLinux module includes Xfce applications
-041-xorg-plasma-2204-2-x86_64.ubm|base|UBLinux module includes KDE Plasma applications
-042-xorg-gnome-2204-1-x86_64.ubm|base|UBLinux module includes GNOME next generation desktop shell
-043-xorg-mate-2204-2-x86_64.ubm|base|UBLinux module includes MATE desktop shell
-045-xorg-pantheon-2204-1-x86_64.ubm|base|UBLinux module includes Pantheon desktop shell
-049-xorg-liquidshell-2204-1-x86_64.ubm|base|UBLinux module includes Liquidshell basic desktop shell using QtWidgets
-050-xorg-gtk-app-2204-4-x86_64.ubm|base|UBLinux module includes GTK applications
-055-xorg-qt-app-2204-2-x86_64.ubm|base|UBLinux module includes QT applications
-060-xorg-theme-2204-1-x86_64.ubm|base|UBLinux module includes GTK and icons themes
-070-dm-lightdm-2204-1-x86_64.ubm|base|UBLinux module includes Lightdm display manager
-080-multimedia-2204-1-x86_64.ubm|base|UBLinux module includes multimedia applications
-100-ublinux-2204-113-x86_64.ubm|base|UBLinux module include system utilites
-amdgpu-pro-23.40-1-x86_64.ubm|extra|UBLinux module includes AMDGRU PRO driver and utilities
-backgrounds-1.0-1-x86_64.ubm|extra|UBLinux module include desktop backgrounds
-chromium-2204-1-x86_64.ubm|extra|UBLinux module includes Chromium and some plugins
-chromium-gost-122.0.6261.58-1-x86_64.ubm|extra|UBLinux module includes Chromium and some plugins
-database-2204-1-x86_64.ubm|extra|UBLinux module includes postgresql, mariadb database and utilities
-drv-brother-2204-1-x86_64.ubm|extra|UBLinux module include Brother printer drivers
-drv-canon-capt-2204-1-x86_64.ubm|extra|UBLinux module include Canon CAPT Printer Driver
-drv-canon-ufrii-2204-2-x86_64.ubm|extra|UBLinux module include Canon UFR II LIPSLX CARPS2 printer driver
-drv-epson-2204-1-x86_64.ubm|extra|UBLinux module include Epson printer drivers
-drv-kyocera-2204-1-x86_64.ubm|extra|UBLinux module include Kyocera printer drivers
-drv-lexmark-2204-1-x86_64.ubm|extra|UBLinux module include Lexmark drivers
-drv-pantum-2204-1-x86_64.ubm|extra|UBLinux module include Pantum printer drivers
-drv-printer-2204-1-x86_64.ubm|extra|UBLinux module include hplip, gutenprint, foomatic
-drv-ricoh-2204-1-x86_64.ubm|extra|UBLinux module include Ricoh drivers
-drv-samsung-2204-1-x86_64.ubm|extra|UBLinux module include Samsung drivers
-drv-xerox-2204-2-x86_64.ubm|extra|UBLinux module include Xerox drivers
-firefox-2204-1-x86_64.ubm|extra|UBLinux module includes Firefox and some plugins
-game-hedgewars-1.0.0-298-x86_64.ubm|extra|UBLinux module include Hedgewars game similiar to Worms
-game-warfork-2.14-1-x86_64.ubm|extra|UBLinux module include Hedgewars game similiar to Worms
-gitea-1.18.1-1-x86_64.ubm|extra|UBLinux module includes Gitea and MemCached
-gitlab-15.0.2-1-x86_64.ubm|extra|UBLinux module include GitLab and GitLab CI runner
-gitlab-cli-2204-1-x86_64.ubm|extra|UBLinux module include Gitlab CLI tools
-java11-openjfx-2204-1-x86_64.ubm|extra|UBLinux module include Java OpenJFX 11 client application platform
-java17-openjfx-2204-1-x86_64.ubm|extra|UBLinux module include Java OpenJFX 17 client application platform
-jdk11-2204-1-x86_64.ubm|extra|UBLinux module includes OpenJDK Java 11 development kit
-jdk17-2204-1-x86_64.ubm|extra|UBLinux module includes OpenJDK Java 17 development kit
-jdk8-2204-1-x86_64.ubm|extra|UBLinux module includes OpenJDK Java 8 development kit
-lazarus-gtk2-2204-1-x86_64.ubm|extra|UBLinux module include Free Pascal and Lazarus GTK2
-lazarus-qt5-2204-1-x86_64.ubm|extra|UBLinux module include Free Pascal and Lazarus QT5
-lib32-2204-1-x86_64.ubm|extra|UBLinux module includes some library 32-bit
-libreoffice-7.3.2-1-x86_64.ubm|extra|UBLinux module include LibreOffice
-linux-dkms-5.17.6-7-x86_64.ubm|extra|UBLinux module includes dkms additionals modules
-linux515-dkms-5.15.157-1-x86_64.ubm|extra|UBLinux module includes dkms additionals modules
-linux61-dkms-6.1.92-1-x86_64.ubm|extra|UBLinux module includes dkms additionals modules
-nvidia-340-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 340xx driver and utilities
-nvidia-390-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 390xx driver and utilities
-nvidia-470-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 470xx driver and utilities
-nvidia-510-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 510xx driver and utilities
-nvidia-515-5.17.6-2-x86_64.ubm|extra|UBLinux module includes NVIDIA 515xx driver and utilities
-linux61-nvidia-390xx-390.157-90-x86_64.ubm|extra|UBLinux module includes NVIDIA 390xx driver and utilities
-linux61-nvidia-470xx-470.239.06-10-x86_64.ubm|extra|UBLinux module includes NVIDIA 470xx driver and utilities
-linux61-nvidia-550.78-3-x86_64.ubm|extra|UBLinux module includes NVIDIA 550xx driver and utilities
-linux66-dkms-6.6.30-1-x86_64.ubm|extra|UBLinux module includes dkms additionals modules
-nvidia-optimus-2204-1-x86_64.ubm|extra|UBLinux module includes NVIDIA Optimus
-lsi-megaraid-2204-1-x86_64.ubm|extra|UBLinux module includes LSI MegaRaid SM, StorCLI, MegaCLI and utils
-onlyoffice-7.3.3-1-x86_64.ubm|extra|UBLinux module includes OnlyOffice suite
-onlyoffice-documentserver-7.3.3-1-x86_64.ubm|extra|UBLinux module includes OnlyOffice DocumentServer suite
-opera-2204-1-x86_64.ubm|extra|UBLinux module includes Opera and some plugins
-patch-2204-21-x86_64.ubm|extra|UBLinux module include apps patch
-podman-2204-1-x86_64.ubm|extra|UBLinux module includes podman and webmanager and utils
-qemu-2204-2-x86_64.ubm|extra|UBLinux module includes QEMU, manager and utils
-qemu-headless-2204-1-x86_64.ubm|extra|UBLinux module includes QEMU headless and utils
-qt4-2204-1-x86_64.ubm|extra|UBLinux module include QT4
-realvnc-2204-2-x86_64.ubm|extra|UBLinux module includes realvnc viewer and server
-rustdesk-1.2.3-1-x86_64.ubm|extra|UBLinux module includes rustdesk
-rustdesk-server-1.1.9-1-x86_64.ubm|extra|UBLinux module include rustdesk-server
-skype-2204-1-x86_64.ubm|extra|UBLinux module include Skype
-telegram-2204-2-x86_64.ubm|extra|UBLinux module includes Telegram
-tor-2204-1-x86_64.ubm|extra|UBLinux module include Tor utils and browser
-ubpile-2.15.10-1-x86_64.ubm|extra|Simple management of corporate network nodes using the WEB interface with the executor Node.js
-virtual-guest-2204-2-x86_64.ubm|extra|UBLinux module includes agents for Linux guest
-virtual-guest-nox-2204-2-x86_64.ubm|extra|UBLinux module includes agents for Linux guest without X support
-virtualbox-host-2204-1-x86_64.ubm|extra|UBLinux module includes VirtualBox and extension packs
-virtualbox-host-headless-2204-1-x86_64.ubm|extra|UBLinux module includes VirtualBox headless and extension packs
-virtualbox-web-2204-1-x86_64.ubm|extra|UBLinux module includes phpvirtualbox for VirtualBox
-vivaldi-2204-1-x86_64.ubm|extra|UBLinux module include Vivaldi browser
-web-2204-1-x86_64.ubm|extra|UBLinux module includes HTTP server and utilities
-webmin-1.994-1-x86_64.ubm|extra|UBLinux module includes Webmin and Usermin
-wiki-js-2.5.294-1-x86_64.ubm|extra|UBLinux module include Wiki.js
-winbox-2204-1-x86_64.ubm|extra|UBLinux module include Winbox
-wine-2204-2-x86_64.ubm|extra|UBLinux module includes wine and utilities
-wps-office-11.1.0.11698-1-x86_64.ubm|extra|UBLinux module include Kingsoft Office (WPS Office) - an office productivity suite
-xremote-2204-1-x86_64.ubm|extra|UBLinux module include X11 remote utils
-yay-2204-1-x86_64.ubm|extra|Yet another yogurt. Pacman wrapper and AUR helper written in go.
-zoom-5.14.0-1-x86_64.ubm|extra|UBLinux module include Zoom
\ No newline at end of file
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 7f7a397..5117240 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -70,7 +70,6 @@ set(DEPENDFILES
../ubinstall-gtk-package-info.glade
../gresource.xml
../ubinstall-gtk.css
- ../modules.csv
../kernel-list.csv
../kernel-list-addon.csv
../services-list.csv
diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c
index 1bd2324..3c521f6 100644
--- a/source/ubinstall-gtk-components.c
+++ b/source/ubinstall-gtk-components.c
@@ -3,8 +3,8 @@
int yon_kernel_save(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox));
- char *config_val = config(modules_extra_parameter);
- if (yon_char_is_empty(config_val)) yon_config_register(modules_extra_parameter,modules_extra_parameter_command,"");
+ char *config_val = config(packages_parameter);
+ if (yon_char_is_empty(config_val)) yon_config_register(packages_parameter,packages_parameter_command,NULL);
char *enabled_module = NULL;
int overall_size = 0;
int active_size = 0;
@@ -12,7 +12,7 @@ int yon_kernel_save(main_window *widgets){
overall_size++;
kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){
- yon_config_append_element(modules_extra_parameter,row->package,",");
+ yon_config_append_element(packages_parameter,row->package,",");
active_size++;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){
enabled_module = row->package;
@@ -30,7 +30,7 @@ int yon_kernel_save(main_window *widgets){
}
int yon_kernel_addon_save(main_window *widgets){
- char *parameter = config(modules_extra_parameter);
+ char *parameter = config(packages_parameter);
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox));
char *install_modules = yon_char_new(parameter);
for(GList *iter = list;iter;iter = iter->next){
@@ -43,13 +43,50 @@ int yon_kernel_addon_save(main_window *widgets){
}
if (!yon_char_is_empty(install_modules)){
- yon_config_register(modules_extra_parameter,modules_extra_parameter_command,install_modules);
+ yon_config_register(packages_parameter,packages_parameter_command,install_modules);
free(install_modules);
}
return 1;
}
+int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets){
+ long pacman_size = 0;
+ {
+ GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
+ GList *listiter;
+ for (listiter=list;listiter;listiter=listiter->next){
+ os_row *row = g_object_get_data(G_OBJECT(listiter->data),"kernel_row");
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){
+ long cur_size = yon_packages_get_installed_size(YON_PACKAGES_ALL,row->name);
+ pacman_size += cur_size;
+ }
+ }
+ }
+ {
+ GtkTreeIter iter;
+ GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList);
+ for_iter(model, &iter){
+ char *name;
+ gtk_tree_model_get(model,&iter,1,&name,-1);
+ long size = yon_packages_get_installed_size(YON_PACKAGES_ALL,name);
+ pacman_size+=size;
+ }
+ char *overall_str = NULL;
+ if (pacman_size){
+ overall_str = yon_size_long_convert_automatic_to_string(pacman_size);
+ } else {
+ overall_str = yon_char_unite("0 ",yon_size_get_name_from_letter('K'),NULL);
+ }
+ gtk_label_set_text(GTK_LABEL(widgets->OSComponentsOverallSizeLabel),overall_str);
+ if (!yon_char_is_empty(overall_str)) free(overall_str);
+ }
+
+ return 1;
+}
+
int yon_os_components_save(main_window *widgets){
+ if (!yon_installation_check_packages_size(widgets)) return 0;
+
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
GList *iter;
int size=0;
@@ -85,12 +122,13 @@ os_row *yon_os_row_new(){
row->TagsBox = yon_gtk_builder_get_widget(builder,"TagsBox");
row->VersionLabel = yon_gtk_builder_get_widget(builder,"VersionLabel");
row->DescriptionLabel = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
+ row->SourceLabel = yon_gtk_builder_get_widget(builder,"SourceLabel");
+ row->SizeLabel = yon_gtk_builder_get_widget(builder,"SizeLabel");
row->name=NULL;
row->modules=NULL;
row->version=NULL;
- row->row = gtk_list_box_row_new();
- gtk_container_add(GTK_CONTAINER(row->row),row->RowBox);
+ row->row = yon_gtk_builder_get_widget(builder,"MainRow");
gtk_widget_show(row->row);
g_object_set_data(G_OBJECT(row->InstallCheck),"kernel_row",row);
@@ -99,21 +137,50 @@ os_row *yon_os_row_new(){
return row;
}
-void yon_os_row_setup(os_row *row, char *name, char *version,char *tags, char *description){
+
+void *yon_modules_list_load(main_window *widgets){
+ int size;
+ config_str modules = yon_config_load(yon_debug_output("%s\n",get_modules_command),&size);
+ for(int i=1;iversion = parsed[3];
+ row->name = parsed[1];
+ row->tags = yon_char_replace(parsed[2]," ",", ");
+ row->description = parsed[5];
+ row->widgets=widgets;
+ row->source = parsed[0];
+
+ char sizemod;
+ char *temp = yon_char_from_double(yon_size_long_convert_automatic(atol(parsed[4]),&sizemod));
+ char *size_str = yon_size_get_name_from_letter(sizemod);
+ row->size = yon_char_unite(temp," ", size_str,NULL);
+ free(temp);
+ g_idle_add((GSourceFunc)yon_os_component_insert,row);
+ }
+ g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner);
+ g_thread_exit(NULL);
+}
+
+void yon_os_row_setup(os_row *row, char *name, char *version,char *tags, char *description,char *source, char *size){
row->name = yon_char_new(name);
char *description_full = yon_char_new(description);
- // if (strlen(description)>100){
- // guint size;
- // config_str description_wrapped = yon_char_wrap_to_lines(description,2,&size);
- // description_full = yon_char_parsed_to_string(description_wrapped,size,"\n");
- // yon_char_parsed_free(description_wrapped,size);
- // }
+ if (yon_char_is_empty(source)||yon_char_check_begins_with(source,"(local)/")){
+ gtk_widget_hide(gtk_widget_get_parent(row->SourceLabel));
+ } else {
+ gtk_label_set_text(GTK_LABEL(row->SourceLabel),source);
+ }
+
gtk_label_set_label(GTK_LABEL(row->NameLabel),name);
gtk_label_set_label(GTK_LABEL(row->VersionLabel),version);
gtk_label_set_label(GTK_LABEL(row->DescriptionLabel),description_full);
+ gtk_label_set_label(GTK_LABEL(row->SizeLabel),size);
yon_kernel_row_setup_tags((kernel_row*)row,tags);
+ free(size);
free(description_full);
}
@@ -121,8 +188,9 @@ gboolean yon_os_component_insert(struct row_data *row_input){
os_row *row = yon_os_row_new();
main_window *widgets = row_input->widgets;
+ g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(yon_os_components_check_packages_size),widgets);
gtk_list_box_insert(GTK_LIST_BOX(widgets->OSSoftwareListBox),row->row,-1);
- yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description));
+ yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description), row_input->source, row_input->size);
char *modules = config(modules_parameter);
if (yon_char_is_empty(modules)||yon_char_check_element(modules,row_input->name,",")||!strcmp(modules,"auto")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1);
@@ -168,7 +236,7 @@ void yon_os_components_init(main_window *widgets){
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->OSOverlay),widgets->OSSpinner);
gtk_spinner_start(GTK_SPINNER(widgets->OSSpinner));
gtk_widget_show(widgets->OSSpinner);
- g_thread_new("geag",(GThreadFunc)yon_os_components_setup,widgets);
+ g_thread_new("geag",(GThreadFunc)yon_modules_list_load,widgets);
while(gtk_events_pending()) gtk_main_iteration();
list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
for(iter = list;iter;iter=iter->next){
@@ -203,9 +271,9 @@ void yon_os_components_init(main_window *widgets){
int yon_software_save(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList));
GList *iter;
- char *config_val = config(modules_extra_parameter);
+ char *config_val = config(packages_parameter);
if (yon_char_is_empty(config_val)){
- yon_config_register(modules_extra_parameter,modules_extra_parameter_command,"");
+ yon_config_register(packages_parameter,packages_parameter_command,NULL);
}
for(iter = list;iter;iter=iter->next){
os_row *row = g_object_get_data(iter->data,"kernel_row");
@@ -213,7 +281,7 @@ int yon_software_save(main_window *widgets){
int status = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck));
if (status){
if (!yon_char_check_element(config_val,target,",")){
- yon_config_append_element(modules_extra_parameter,target,",");
+ yon_config_append_element(packages_parameter,target,",");
}
}
}
@@ -226,9 +294,9 @@ gboolean yon_software_insert(struct row_data *row_input){
main_window *widgets = row_input->widgets;
gtk_list_box_insert(GTK_LIST_BOX(widgets->AdditionalComponentsList),row->row,-1);
- yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description));
+ yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description),NULL,row_input->size);
- char *modules = config(modules_extra_parameter);
+ char *modules = config(packages_parameter);
if (yon_char_check_element(modules,row_input->name,",")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1);
} else {
@@ -239,7 +307,6 @@ gboolean yon_software_insert(struct row_data *row_input){
}
void yon_software_init(main_window *widgets){
-
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList));
GList *iter;
for (iter=list;iter;iter=iter->next){
@@ -248,19 +315,48 @@ void yon_software_init(main_window *widgets){
gtk_widget_destroy(GTK_WIDGET(iter->data));
}
int base_size;
- config_str base = yon_config_load(get_available_modules_command,&base_size);
+ // config_str base = yon_config_load(get_available_modules_command,&base_size);
+ config_str base = yon_packages_find(YON_PACKAGES_ALL,"ubm-",(gsize*)&base_size);
for (int i=0;iversion = parsed[1];
- row->name = parsed[0];
- row->tags = yon_char_replace(parsed[2]," ",", ");
- row->description = parsed[3];
+ row->version = yon_packages_get_version(YON_PACKAGES_ALL,base[i]);
+ row->name = yon_char_new(base[i]);
+ row->tags = yon_packages_get_groups(YON_PACKAGES_ALL,base[i]);
+ int parsed_size;
+ config_str tags_parsed = yon_char_parse(row->tags,&parsed_size," ");
+ if (parsed_size){
+ int ubmodule_pos = yon_char_parsed_check_exist(tags_parsed,parsed_size,"ubmodule");
+ if (ubmodule_pos>-1){
+ free(tags_parsed[ubmodule_pos]);
+ tags_parsed[ubmodule_pos] = NULL;
+ row->tags = yon_char_parsed_to_string(tags_parsed,parsed_size," ");
+
+ }
+ yon_char_parsed_free(tags_parsed,parsed_size);
+ }
+ row->description = yon_packages_get_description(YON_PACKAGES_ALL,base[i]);
+ long size = yon_packages_get_size(YON_PACKAGES_ALL,base[i]);
+ char mod = '\0';
+ double size_converted = yon_size_long_convert_automatic(size,&mod);
+
+ char *size_str = yon_char_unite(yon_char_from_double(size_converted)," ", yon_size_get_name_from_letter(mod),NULL);
+ row->size = size_str;
row->widgets=widgets;
g_idle_add((GSourceFunc)yon_software_insert,row);
}
+ // GList *languages = yon_packages_search_all("ubm-.*");
+ // for (iter=languages;iter;iter=iter->next){
+ // char *name = (char*)iter->data;
+ // yon_packages_info *info_struct = yon_package(YON_PACKAGES_ALL,name);
+ // struct row_data *row = malloc(sizeof(struct row_data));
+ // row->version = info_struct->version;
+ // row->name = info_struct->package_name;
+ // row->tags = info_struct->groups;
+ // row->description = info_struct->description;
+ // row->widgets=widgets;
+ // g_idle_add((GSourceFunc)yon_software_insert,row);
+ // yon_packages_info_struct_free(info_struct);
+ // }
g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner);
yon_char_parsed_free(base,base_size);
return ;
@@ -295,9 +391,135 @@ void yon_pacman_init(main_window *widgets){
for (int i=0;iPacmanSoftwareChosenList,&iter);
- gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),-1);
+ gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),4,size_str,-1);
+ free(size_str);
}
+ yon_pacman_software_update_overall_size(widgets);
yon_char_parsed_free(parsed,size);
+}
+
+void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widgets){
+ GtkTreeIter iter;
+ char *name, *type, *description, *size_str;
+ gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,path);
+ gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,1,&name,2,&type,3,&description,4,&size_str,-1);
+ gtk_list_store_remove(widgets->PacmanSoftwareAllList,&iter);
+ gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter);
+ gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,name,2,type,3,description,4,size_str,-1);
+ g_hash_table_add(widgets->pacmanchosen,yon_char_new(name));
+ yon_pacman_software_update_overall_size(widgets);
+
+}
+
+void yon_pacman_software_update_overall_size(main_window *widgets){
+ long pacman_size = 0;
+ {
+ GtkTreeIter iter;
+ GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList);
+ for_iter(model, &iter){
+ char *name;
+ gtk_tree_model_get(model,&iter,1,&name,-1);
+ long size = yon_packages_get_installed_size(YON_PACKAGES_ALL,name);
+ pacman_size+=size;
+ }
+ char *overall_str = NULL;
+ if (pacman_size){
+ overall_str = yon_size_long_convert_automatic_to_string(pacman_size);
+ } else {
+ overall_str = yon_char_unite("0 ",yon_size_get_name_from_letter('K'),NULL);
+ }
+ gtk_label_set_text(GTK_LABEL(widgets->PacmanChosenLabel),overall_str);
+ if (!yon_char_is_empty(overall_str)) free(overall_str);
+ }
+ {
+ GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
+ GList *listiter;
+ for (listiter=list;listiter;listiter=listiter->next){
+ os_row *row = g_object_get_data(G_OBJECT(listiter->data),"kernel_row");
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){
+ long cur_size = yon_packages_get_installed_size(YON_PACKAGES_ALL,row->name);
+ pacman_size += cur_size;
+ }
+ }
+ char *final_modules_size = NULL;
+ if (pacman_size){
+ final_modules_size = yon_size_long_convert_automatic_to_string(pacman_size);
+ } else {
+ final_modules_size = yon_char_unite("0 ",yon_size_get_name_from_letter('K'),NULL);
+ }
+ gtk_label_set_text(GTK_LABEL(widgets->PacmanOverallSizeLabel),final_modules_size);
+ if (!yon_char_is_empty(final_modules_size)) free(final_modules_size);
+ }
+}
+
+void on_pacman_software_chosen_toggled(GtkWidget *, char *path, main_window *widgets){
+ GtkTreeIter iter;
+ char *name, *type, *description, *size_str;
+ gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList),&iter,path);
+ gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList),&iter,1,&name,2,&type,3,&description,4,&size_str,-1);
+ gtk_list_store_remove(widgets->PacmanSoftwareChosenList,&iter);
+ gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter);
+ gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,name,2,type,3,description,4,size_str,-1);
+ g_hash_table_remove(widgets->pacmanchosen,name);
+ yon_pacman_software_update_overall_size(widgets);
+}
+
+gboolean yon_pacman_fill(struct pacman_struct *pacman){
+ main_window *widgets = pacman->widgets;
+ config_str loaded = pacman->packages;
+ int size = pacman->packages_size;
+
+
+ for (int i=0;ipacmanchosen,loaded[i])) continue;
+ char *version = yon_packages_get_version(YON_PACKAGES_SYNC,loaded[i]);
+ char *description = yon_packages_get_description(YON_PACKAGES_SYNC,loaded[i]);
+ GtkTreeIter iter;
+ long pkgsize = yon_packages_get_installed_size(YON_PACKAGES_SYNC,loaded[i]);
+ char mod = '\n';
+ double size_converted = yon_size_long_convert_automatic(pkgsize,&mod);
+ char *size_str = yon_char_unite(yon_char_from_double(size_converted)," ", yon_size_get_name_from_letter(mod),NULL);
+ gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter);
+ gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,loaded[i],2,version,3,description,4,size_str,-1);
+ if (!yon_char_is_empty(version))free(version);
+ if (!yon_char_is_empty(description)) free(description);
+ }
+ yon_pacman_software_update_overall_size(widgets);
+ yon_char_parsed_free(loaded,size);
+ gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,1);
+ gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,1);
+ gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,1);
+ g_object_ref(G_OBJECT(widgets->MainSpinner));
+ gtk_container_remove(GTK_CONTAINER(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
+ return G_SOURCE_REMOVE;
+}
+
+void *yon_pacman_load(struct pacman_struct *pacman){
+ const char *find_package = pacman->find_package;
+ // char *command = get_local_module_info_command(find_package);
+ pacman->packages = yon_packages_find(YON_PACKAGES_SYNC,find_package,&pacman->packages_size);
+ g_idle_add((GSourceFunc)yon_pacman_fill,pacman);
+ return NULL;
+}
+
+void on_pacman_icon_press(GtkEntry *self,GtkEntryIconPosition icon_pos,GdkEvent* ,main_window *widgets){
+ if(icon_pos != GTK_ENTRY_ICON_SECONDARY) return;
+
+ gtk_list_store_clear(widgets->PacmanSoftwareAllList);
+
+ const char *find_package = gtk_entry_get_text(self);
+ struct pacman_struct *pacman = new (struct pacman_struct);
+ pacman->widgets=widgets;
+ pacman->find_package=find_package;
+ gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,0);
+ gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,0);
+ gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,0);
+ gtk_overlay_add_overlay(GTK_OVERLAY(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
+ g_thread_new("pacman_modules_get_thread",(GThreadFunc)yon_pacman_load,pacman);
}
\ No newline at end of file
diff --git a/source/ubinstall-gtk-config-hub.c b/source/ubinstall-gtk-config-hub.c
index 3034269..6843526 100644
--- a/source/ubinstall-gtk-config-hub.c
+++ b/source/ubinstall-gtk-config-hub.c
@@ -1,6 +1,84 @@
#include "ubinstall-gtk.h"
+config_str yon_os_components_get_modules(int *size){
+ (*size) = 0;
+ int modules_size = main_config.devices_size;
+ config_str modules_list = main_config.devices;
+ config_str module_names = NULL;
+ for (int i=1;i3&&!yon_char_is_empty(parsed[3])){
+ part_size = atol(parsed[3]);
+
+ yon_char_parsed_free(parsed,parsed_size);
+ break;
+ }
+ yon_char_parsed_free(parsed,parsed_size);
+ }
+ } else {
+ char *device = config(AUTOINSTALL_DEVICE);
+ GtkTreeIter iter;
+ for_iter(widgets->DevicesList,&iter){
+ char *target;
+ long disk_size;
+ gtk_tree_model_get(GTK_TREE_MODEL(widgets->DevicesList),&iter,0,&target,7,&disk_size,-1);
+ if (!strcmp(device,target)){
+ part_size = disk_size;
+ }
+ }
+ }
+ long packages_size = 0;
+ long modules_size = 0;
+
+ if (!yon_char_is_empty(packages)){
+ int parsed_size;
+ config_str parsed = yon_char_parse(packages,&parsed_size,",");
+ for (int i=0;ipart_size){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),PACKAGE_NOT_ENOUGH_SPACE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ return 0;
+ }
+ return 1;
+}
+
int yon_configuration_hub_save(main_window *widgets){
+ if (!yon_installation_check_packages_size(widgets)) return 0;
char *finish_button = (char *)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ConfigHubRebootCombo));
if (!yon_char_is_empty(finish_button)){
yon_config_register(finish_parameter,finish_parameter_command,finish_button);
@@ -10,7 +88,7 @@ int yon_configuration_hub_save(main_window *widgets){
if (!main_config.configure_mode){
int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_parameter,
- modules_extra_parameter,
+ packages_parameter,
root_password_parameter,
autologin_parameter,
xkbmodel_parameter,
diff --git a/source/ubinstall-gtk-configuration-mode.c b/source/ubinstall-gtk-configuration-mode.c
index 4030c1b..f4c1f06 100644
--- a/source/ubinstall-gtk-configuration-mode.c
+++ b/source/ubinstall-gtk-configuration-mode.c
@@ -79,7 +79,7 @@ void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){
GList *box = gtk_container_get_children(GTK_CONTAINER(self));
GList *children = gtk_container_get_children(GTK_CONTAINER(box->data));
- GtkWidget *Check = GTK_WIDGET(g_list_nth_data(children,1));
+ GtkWidget *Check = GTK_WIDGET(g_list_nth_data(children,0));
int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Check));
if (!active){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_configuration_mode);
diff --git a/source/ubinstall-gtk-install-start.c b/source/ubinstall-gtk-install-start.c
index 67d6f6f..05a970a 100644
--- a/source/ubinstall-gtk-install-start.c
+++ b/source/ubinstall-gtk-install-start.c
@@ -6,6 +6,7 @@ int yon_installation_start(main_window *widgets){
}
void yon_quick_install(GtkWidget *self, main_window *widgets){
+ if (!yon_installation_check_packages_size(widgets)) return;
main_config.save_configured=1;
gtk_widget_hide(self);
gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c
index d5fc62f..38db982 100644
--- a/source/ubinstall-gtk-installation.c
+++ b/source/ubinstall-gtk-installation.c
@@ -1,15 +1,5 @@
#include "ubinstall-gtk.h"
-char *yon_size_get_name_from_letter(char letter){
- switch (letter){
- case 'K': return yon_char_new(KB_LABEL); break;
- case 'M': return yon_char_new(MB_LABEL); break;
- case 'G': return yon_char_new(GB_LABEL); break;
- case 'T': return yon_char_new(TB_LABEL); break;
- }
- return NULL;
-}
-
int yon_install_common_save(main_window *widgets){
GtkTreeModel *model;
GtkTreeIter iter;
@@ -68,9 +58,26 @@ int yon_install_separate_save(main_window *widgets){
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
return 0;
}
+
+ char *part;
+ glong size,free_space;
+ gtk_tree_model_get(model,&iter,0,&part,5,&size,6,&free_space,-1);
+ yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next");
+ yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
+ yon_config_register(part_parameter,part_parameter_command,part);
if (gtk_switch_get_active(GTK_SWITCH(widgets->NextInstallationFormatSwitch))){
yon_config_register(part_format_parameter,part_format_parameter_command,"yes");
double part_size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->NextInstallationSizeSpin));
+ int mod = yon_get_size_get_from_letter(gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->NextInstallationSizeTypeSpin))[0]);
+ if (yon_size_to_bytes(part_size,mod+1)>size){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOT_ENOUGH_SPACE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->NextInstallationSizeSpin));
+ return 0;
+ } else if (yon_size_to_bytes(part_size,mod+1)>free_space){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOT_ENOUGH_FREE_SPACE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->NextInstallationSizeSpin));
+ return 0;
+ }
if (part_size){
char *size_letter = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->NextInstallationSizeTypeSpin));
char *size_final = yon_char_append(yon_char_from_long((long)part_size),size_letter);
@@ -103,12 +110,7 @@ int yon_install_separate_save(main_window *widgets){
yon_config_remove_by_key(part_fs_type_parameter);
yon_config_remove_by_key(part_format_parameter);
}
-
- char *part;
- gtk_tree_model_get(model,&iter,0,&part,-1);
- yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next");
- yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
- yon_config_register(part_parameter,part_parameter_command,part);
+
if (!main_config.configure_mode){
int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_DEVICE,part_parameter,NULL);
@@ -237,49 +239,44 @@ int yon_advanced_sections_save(dictionary *dict){
return 1;
}
-void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_button, GtkComboBox *spin_combo){
+void yon_size_changed(GtkSpinButton *self, main_window *widgets){
+ int cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
+ GtkWidget *tree = NULL;
+ switch(cur_page){
+ case YON_PAGE_INSTALL_SEPARATE:
+ tree = widgets->NextInstallationSysSectionTree;
+ break;
+ case YON_PAGE_RECOVERY_OS_ONLY:
+ tree = widgets->OSSysSectionTree;
+ break;
+ case YON_PAGE_RECOVERY_USRDATA_ONLY:
+ tree = widgets->UserdataSysSectionTree;
+ break;
+ }
+ if (!tree) return;
+
GtkTreeModel *model;
GtkTreeIter iter;
- long selected_size;
- if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(table),&model,&iter)){
- gtk_tree_model_get(model,&iter,6,&selected_size,-1);
- if (!selected_size){
- gtk_tree_model_get(model,&iter,5,&selected_size,-1);
- }
- if (selected_size){
- GtkAdjustment *adj = gtk_spin_button_get_adjustment(spin_button);
- const char *sizemod = gtk_combo_box_get_active_id(spin_combo);
- double new_size = yon_size_long_convert_to_mod(selected_size,sizemod[0]);
- gtk_adjustment_set_upper(adj,new_size);
- gdouble old_value = gtk_adjustment_get_value(adj);
- if (old_value>new_size){
- gtk_adjustment_set_value(adj,new_size);
- }
+ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)),&model, &iter)){
+ long size;
+ long free_space;
+ gtk_tree_model_get(model,&iter,5,&size,6,&free_space,-1);
+ double chosen_size = gtk_spin_button_get_value(self);
+ int mod = yon_get_size_get_from_letter(gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->NextInstallationSizeTypeSpin))[0]);
+ chosen_size = yon_size_to_bytes(chosen_size,mod+1);
+ if (chosen_size>free_space&&size>chosen_size){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOT_ENOUGH_FREE_SPACE_LABEL,5,BACKGROUND_IMAGE_INFO_TYPE);
+ return;
+ } else if (chosen_size>free_space&&chosen_size>size){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOT_ENOUGH_SPACE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ return;
}
}
}
-// char *parameter = config(part_size_parameter);
-// if (!yon_char_is_empty(parameter)){
-// GtkAdjustment *adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->OSFormatSizeSpin));
-// gtk_adjustment_set_value(adj,atol(parameter));
-// g_signal_handlers_block_by_func(G_OBJECT(widgets->NextInstallationSizeTypeSpin),G_CALLBACK(on_partition_changed),widgets);
-// g_signal_handlers_block_by_func(G_OBJECT(widgets->OSFormatSizeCombo),G_CALLBACK(on_partition_changed),widgets);
-// g_signal_handlers_block_by_func(G_OBJECT(widgets->UserdataFormatSizeCombo),G_CALLBACK(on_partition_changed),widgets);
-
-// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->OSFormatSizeCombo),yon_get_size_get_from_letter(parameter[strlen(parameter)-1])-1);
-// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UserdataFormatSizeCombo),yon_get_size_get_from_letter(parameter[strlen(parameter)-1])-1);
-// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NextInstallationSizeTypeSpin),yon_get_size_get_from_letter(parameter[strlen(parameter)-1])-1);
-
-// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->NextInstallationSizeTypeSpin),G_CALLBACK(on_partition_changed),widgets);
-// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OSFormatSizeCombo),G_CALLBACK(on_partition_changed),widgets);
-// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->UserdataFormatSizeCombo),G_CALLBACK(on_partition_changed),widgets);
-// }
-
-void on_partition_changed(GtkWidget *self, main_window *widgets){
- if (self==widgets->NextInstallationSysSectionTree||self == widgets->NextInstallationSizeTypeSpin){
- yon_set_max_size_from_partition(GTK_TREE_VIEW(widgets->NextInstallationSysSectionTree),GTK_SPIN_BUTTON(widgets->NextInstallationSizeSpin),GTK_COMBO_BOX(widgets->NextInstallationSizeTypeSpin));
- }
+void *yon_partitions_list_load(main_window *){
+ main_config.partitions = yon_config_load(yon_debug_output("%s\n",get_parts_for_device_command),&main_config.part_size);
+ g_thread_exit(NULL);
}
void on_device_selection_changed(GtkWidget *self, main_window *widgets){
@@ -289,92 +286,99 @@ void on_device_selection_changed(GtkWidget *self, main_window *widgets){
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){
char *disk_path;
gtk_tree_model_get(model,&iter,0,&disk_path,-1);
- int size;
+ int size = main_config.part_size;
config_str partitions;
- partitions = yon_config_load(yon_debug_output("%s\n",get_parts_and_devices_command),&size);
+ partitions = main_config.partitions;
for (int i=0;i2){
char sizemod='\0';
- capacity_long = atol(parsed[2]);
+ capacity_long = atol(parsed[3]);
char *temp = yon_char_from_double(yon_size_long_convert_automatic(capacity_long,&sizemod));
char *size_str = yon_size_get_name_from_letter(sizemod);
capacity = yon_char_unite(temp," ", size_str,NULL);
free(temp);
}
- if (parsed_size>7&&!yon_char_is_empty(parsed[7])){
+ if (parsed_size>4){
+ fs_type = parsed[4];
+ }
+ if (parsed_size>5){
+ label = parsed[5];
+ }
+ if (parsed_size>8&&!yon_char_is_empty(parsed[8])){
+ used_cap = capacity_long-atol(parsed[8]);
+ long capacity_persent = ((double)used_cap/(double)capacity_long)*100;
char sizemod='\0';
- free_space_long = capacity_long-atol(parsed[7]);
- char *temp = yon_char_from_double(yon_size_long_convert_automatic(free_space_long,&sizemod));
+ char *temp = yon_char_from_double(yon_size_long_convert_automatic(used_cap,&sizemod));
char *size_str = yon_size_get_name_from_letter(sizemod);
- capacity = yon_char_unite(temp," ", size_str,NULL);
- free(temp);
+ free_space = yon_char_unite(temp, " ",size_str," (",yon_char_from_long(capacity_persent),"%",")",NULL);
+
}
- if (parsed_size>3){
- fs_type = parsed[3];
+ if (parsed_size>6){
+ fs_label = parsed[6];
}
- if (parsed_size>4){
- label = parsed[4];
+ if (parsed_size>7){
+ mount_point = parsed[7];
+ }
+ if (parsed_size>10){
+ flags = parsed[10];
}
gtk_list_store_append(widgets->PartitionsList,&iter);
- gtk_list_store_set(widgets->PartitionsList,&iter,0,name,1,capacity,2,free_space,3,fs_type,4,label,5,capacity_long,6,free_space_long,9,disk_path,-1);
+ gtk_list_store_set(widgets->PartitionsList,&iter,0,name,1,capacity,2,free_space,3,fs_type,4,label,5,capacity_long,6,used_cap,9,disk_path,9,mount_point,10,fs_label,11,flags,-1);
}
yon_char_parsed_free(parsed,parsed_size);
}
}
- // gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->NextInstallationSizeSpin),0.0);
- gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->NextInstallationSizeSpin)),0.0);
}
}
void yon_devices_setup(main_window *widgets){
GtkTreeIter iter;
gtk_list_store_clear(widgets->DevicesList);
- int size;
- config_str parsed = NULL;
- parsed = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size);
- char *string = yon_char_parsed_to_string(parsed,size,"");
- struct json_object *root;
- struct json_object *blockdevices;
- root = json_tokener_parse(string);
- free(string);
- json_object_object_get_ex(root, "blockdevices", &blockdevices);
- for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) {
- struct json_object *device = json_object_array_get_idx(blockdevices, i);
- struct json_object *path, *size, *model, *vendor, *serial;
-
- json_object_object_get_ex(device, "path", &path);
- json_object_object_get_ex(device, "size", &size);
- json_object_object_get_ex(device, "model", &model);
- json_object_object_get_ex(device, "vendor", &vendor);
- json_object_object_get_ex(device, "serial", &serial);
+ // int size;
+ // config_str parameters = NULL;
+ // parameters = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size);
+ for (int i=1;iDevicesList,&iter);
- char *size_string = yon_char_new(json_object_get_string(size));
- char *size_str = yon_size_get_name_from_letter(size_string[strlen(size_string)-1]);
- size_string[strlen(size_string)-1] = '\0';
- char *size_final_string = yon_char_unite(size_string," ",size_str,NULL);
- gtk_list_store_set(widgets->DevicesList,&iter,0,json_object_get_string(path),1,json_object_get_string(model),2,json_object_get_string(serial),3,size_final_string,4,json_object_get_string(vendor),6,1,-1);
- free(size_string);
- free(size_str);
- free(size_final_string);
+ gtk_list_store_set(widgets->DevicesList,&iter,
+ 0,yon_char_return_if_exist(parsed[0],""),
+ 1,yon_char_return_if_exist(parsed[2],""),
+ 2,yon_char_return_if_exist(parsed[4],""),
+ 3,yon_char_return_if_exist(size_string,""),
+ 4,yon_char_return_if_exist(parsed[3],""),
+ 6,1,
+ 7,atol(parsed[1]),
+ -1);
+
+ yon_char_parsed_free(parsed,parsed_size);
}
- yon_char_parsed_free(parsed,size);
}
void yon_os_password_open(GtkWidget *, main_window *widgets){
diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c
index a5ac137..1e06331 100644
--- a/source/ubinstall-gtk-kernel.c
+++ b/source/ubinstall-gtk-kernel.c
@@ -68,7 +68,8 @@ int yon_tag_add(GtkBox *target,char *tag_label, char *tag_style, char *icon_name
void yon_kernel_row_setup_tags(kernel_row *row, char *tags){
int size;
config_str parsed = yon_char_parse(tags,&size,", ");
- for (int i=0;i=0;i--){
char *passw = parsed[i][0]==' '?yon_char_divide(parsed[i],0):NULL;
if (passw) free(passw);
char *tag_name = _(parsed[i]);
@@ -186,7 +187,7 @@ void yon_kernel_setup(main_window *widgets){
}
g_list_free(list);
- char *modules = config(modules_extra_parameter);
+ char *modules = config(packages_parameter);
char *enabled = config(KERNEL_BOOT_parameter);
int modules_size;
@@ -387,7 +388,7 @@ void yon_kernel_addon_setup(main_window *widgets){
}
g_list_free(list);
- char *modules = config(modules_extra_parameter);
+ char *modules = config(packages_parameter);
int modules_size;
config_str modules_parsed = NULL;
diff --git a/source/ubinstall-gtk-log.c b/source/ubinstall-gtk-log.c
index 81de549..09e88e3 100644
--- a/source/ubinstall-gtk-log.c
+++ b/source/ubinstall-gtk-log.c
@@ -106,6 +106,7 @@ void yon_installation_progress_update(GFileMonitor *,GFile *,GFile *,GFileMonito
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress), fraction / 100);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->PackageInstallationProgress), 0);
gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel), "");
+ if (!yon_char_is_empty(current_copy)) free(current_copy);
} else {
gtk_widget_show(gtk_widget_get_parent(widgets->PackageInstallationProgress));
@@ -114,7 +115,9 @@ void yon_installation_progress_update(GFileMonitor *,GFile *,GFile *,GFileMonito
double fraction = atof(parsed[2]) / 100;
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->PackageInstallationProgress), fraction);
gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel), yon_char_parsed_to_string(parsed, size, " "));
+ yon_char_parsed_free(parsed,size);
}
+ if (!yon_char_is_empty(current_copy)) free(current_copy);
}
}
@@ -129,9 +132,11 @@ gboolean yon_progress_bar_start(main_window *widgets){
widgets->install_info_monitor = g_file_monitor_file(file_desc,G_FILE_MONITOR_NONE,NULL,NULL);
g_signal_connect(G_OBJECT(widgets->install_info_monitor),"changed",G_CALLBACK(yon_installation_progress_update),widgets);
g_object_unref(file_desc);
- FILE *file = fopen(progress_path,"w");
- if (file){
- fclose(file);
+ if (access(progress_path,F_OK)){
+ FILE *file = fopen(progress_path,"w");
+ if (file){
+ fclose(file);
+ }
}
return G_SOURCE_REMOVE;
}
\ No newline at end of file
diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c
index 48d30c5..ef3d1b9 100644
--- a/source/ubinstall-gtk-packages.c
+++ b/source/ubinstall-gtk-packages.c
@@ -2,8 +2,8 @@
int yon_packages_tab_save(main_window *widgets){
GtkTreeIter parentiter, subiter,packiter;
- if (yon_char_is_empty(config(modules_extra_parameter))){
- yon_config_register(modules_extra_parameter,modules_extra_parameter_command,NULL);
+ if (yon_char_is_empty(config(packages_parameter))){
+ yon_config_register(packages_parameter,packages_parameter_command,NULL);
}
for_iter(widgets->PackagesList,&parentiter){
for (int valid2 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&subiter,&parentiter);valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&subiter)){
@@ -11,11 +11,11 @@ int yon_packages_tab_save(main_window *widgets){
char *package;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&subiter,0,&status,1,&package,3,&selectable,-1);
if (selectable&&status){
- yon_config_append_element(modules_extra_parameter,package,",");
+ yon_config_append_element(packages_parameter,package,",");
} else {
for (int valid3 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&packiter,&subiter);valid3;valid3 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&packiter)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,-1);
- yon_config_append_element(modules_extra_parameter,package,",");
+ yon_config_append_element(packages_parameter,package,",");
}
}
}
diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c
index a2ac57a..87787cb 100644
--- a/source/ubinstall-gtk-region.c
+++ b/source/ubinstall-gtk-region.c
@@ -1,9 +1,7 @@
#include "ubinstall-gtk.h"
// #define TIMEZONEMAP_INCLUDE
-#ifdef TIMEZONEMAP_INCLUDE
#include "timezonemap/cc-timezone-map.h"
#include "timezonemap/tz.h"
-#endif
int yon_region_save(main_window *widgets){
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->RegionCombo))==-1){
@@ -37,7 +35,6 @@ void on_region_changed(GtkComboBox *self, main_window *widgets){
}
}
- #ifdef TIMEZONEMAP_INCLUDE
gboolean on_time_zone_status_hover(GtkWidget *, GdkEvent *, main_window *widgets){
gtk_style_context_add_class(gtk_widget_get_style_context(widgets->TimeZoneMapOverlayBox),"timezoneoverlay_hover");
@@ -145,13 +142,9 @@ void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_wind
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets);
}
-#endif
-
void yon_map_update(main_window *widgets, const char *timezone){
- #ifdef TIMEZONEMAP_INCLUDE
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets);
- #endif
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets);
textdomain(timezone_locale_name);
char *region = yon_timezone_get_zone(timezone);
@@ -163,14 +156,10 @@ void yon_map_update(main_window *widgets, const char *timezone){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region);
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),city);
- #ifdef TIMEZONEMAP_INCLUDE
cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone);
- #endif
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets);
- #ifdef TIMEZONEMAP_INCLUDE
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
- #endif
textdomain(LocaleName);
}
@@ -197,7 +186,6 @@ void yon_region_init(main_window *widgets){
yon_timezone_init();
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->RegionCombo));
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->KeyboardNumLockCombo));
- #ifdef TIMEZONEMAP_INCLUDE // insert timezonemap's interactive map
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->RegionMapBox));
if (list){
GList *iter;
@@ -214,9 +202,7 @@ void yon_region_init(main_window *widgets){
if (!yon_char_is_empty(config_param)){
cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),config_param);
}
- #else // if timezonemap does not installed, static image inserts
- #endif
size_t size;
GtkTreeIter iter;
config_str parsed = yon_timezone_get_all(&size);
diff --git a/source/ubinstall-gtk-saving.c b/source/ubinstall-gtk-saving.c
index 39d3a03..d581a6c 100644
--- a/source/ubinstall-gtk-saving.c
+++ b/source/ubinstall-gtk-saving.c
@@ -232,7 +232,7 @@ void *on_setup_system_configuration(void * data){
DOMAIN_parameter,
DOMAIN_admanger_parameter,
NTPSERVERS_parameter,
- modules_extra_parameter,
+ packages_parameter,
KERNEL_BOOT_parameter,
packages_parameter,
NULL);
@@ -364,7 +364,7 @@ int yon_config_save(main_window *widgets){
DOMAIN_parameter,
DOMAIN_admanger_parameter,
NTPSERVERS_parameter,
- modules_extra_parameter,
+ packages_parameter,
KERNEL_BOOT_parameter,
packages_parameter,
NULL);
diff --git a/source/ubinstall-gtk-source.c b/source/ubinstall-gtk-source.c
index 17dd8b2..793e480 100644
--- a/source/ubinstall-gtk-source.c
+++ b/source/ubinstall-gtk-source.c
@@ -2,15 +2,25 @@
void on_source_changed(GtkComboBox *self){
source_element *element = g_object_get_data(G_OBJECT(self),"source_element");
- if (gtk_combo_box_get_active(self)){
- gtk_widget_show(element->PathButton);
- gtk_widget_show(element->PathEntry);
- gtk_widget_hide(element->DeviceCombo);
- } else{
- gtk_widget_hide(element->PathButton);
- gtk_widget_hide(element->PathEntry);
- gtk_widget_show(element->DeviceCombo);
- }
+ switch (gtk_combo_box_get_active(self)){
+ case 0:{
+ gtk_widget_hide(element->PathButton);
+ gtk_widget_hide(element->PathEntry);
+ gtk_widget_show(element->DeviceCombo);
+ } break;
+ case 1:
+ case 2:{
+ gtk_widget_show(element->PathButton);
+ gtk_widget_show(element->PathEntry);
+ gtk_widget_hide(element->DeviceCombo);
+
+ } break;
+ case 3: {
+ gtk_widget_hide(element->PathButton);
+ gtk_widget_hide(element->PathEntry);
+ gtk_widget_hide(element->DeviceCombo);
+ }
+ }
}
void yon_source_update(source_window *window){
@@ -26,6 +36,7 @@ void yon_source_update(source_window *window){
gtk_style_context_add_class(gtk_widget_get_style_context(button),"thin");
gtk_style_context_add_class(gtk_widget_get_style_context(button),"instant");
gtk_widget_show(button);
+ gtk_box_reorder_child(GTK_BOX(element->MainBox),button,0);
} else if (iter->next){
if (element->AddButton) {
gtk_widget_destroy(element->AddButton);
@@ -95,6 +106,8 @@ void yon_source_element_add(char *key,void*,source_window *window){
} else if (g_regex_match_simple(".*\\.iso",key,G_REGEX_DEFAULT,G_REGEX_MATCH_DEFAULT)){
gtk_entry_set_text(GTK_ENTRY(element->PathEntry),key);
gtk_combo_box_set_active(GTK_COMBO_BOX(element->TypeCombo),2);
+ } else if (!strcmp(key,"local")){
+ gtk_combo_box_set_active(GTK_COMBO_BOX(element->TypeCombo),3);
} else {
gtk_entry_set_text(GTK_ENTRY(element->PathEntry),key);
gtk_combo_box_set_active(GTK_COMBO_BOX(element->TypeCombo),1);
@@ -192,6 +205,15 @@ void on_source_accept(GtkWidget *,source_window *window){
if (!yon_char_is_empty(sources_list)) free(sources_list);
sources_list = temp;
} break;
+ case 3: {
+ if (yon_char_check_element(sources_list,"local",",")){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),VALUE_REPEAT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_highlight_incorrect(element->TypeCombo);
+ return;
+ }
+ char *temp = yon_char_append_element(sources_list,"local",",");
+ sources_list = temp;
+ }
}
}
if (!yon_char_is_empty(sources_list)){
@@ -201,7 +223,7 @@ void on_source_accept(GtkWidget *,source_window *window){
}
if (!main_config.configure_mode){
int size;
- config_str parameters = yon_config_get_save_parameters_by_key(&size,locale_parameter,lang_parameter,zone_parameter,NULL);
+ config_str parameters = yon_config_get_save_parameters_by_key(&size,source_parameter,NULL);
if (parameters){
char *command_parameters = yon_char_parsed_to_string(parameters,size," -- ");
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);
diff --git a/source/ubinstall-gtk-ui-lang.c b/source/ubinstall-gtk-ui-lang.c
index 9ae5ced..59dc360 100644
--- a/source/ubinstall-gtk-ui-lang.c
+++ b/source/ubinstall-gtk-ui-lang.c
@@ -89,8 +89,8 @@ void yon_startup_language_init(){
}
void yon_main_window_update_locale(main_window *widgets){
- char *locale = config(installer_locale_parameter);
- if (yon_char_is_empty(locale)){
+ volatile char *locale = config(installer_locale_parameter);
+ if (yon_char_is_empty((char *)locale)){
char *sys_locale = config(lang_parameter);
if (!yon_char_is_empty(sys_locale)){
@@ -102,12 +102,12 @@ void yon_main_window_update_locale(main_window *widgets){
}
}
}
- locale = setlocale(LC_ALL,locale);
+ locale = setlocale(LC_ALL,(char *)locale);
yon_config_register(installer_locale_parameter,installer_locale_parameter_command,(char*)locale);
// gtk_widget_destroy(widgets->MainWindow);
textdomain(LocaleName);
- g_setenv("LANGUAGE",locale,1);
+ g_setenv("LANGUAGE",(char *)locale,1);
yon_update_translation(widgets);
// yon_main_window_create(widgets);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c
index c0fd160..bdf81e2 100644
--- a/source/ubinstall-gtk.c
+++ b/source/ubinstall-gtk.c
@@ -161,114 +161,10 @@ void on_vnc_toggled(GtkWidget *self, main_window *){
g_list_free(children);
}
-void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widgets){
- GtkTreeIter iter;
- char *name, *type, *description;
- gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,path);
- gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,1,&name,2,&type,3,&description,-1);
- gtk_list_store_remove(widgets->PacmanSoftwareAllList,&iter);
- gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter);
- gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,name,2,type,3,description,-1);
- g_hash_table_add(widgets->pacmanchosen,yon_char_new(name));
-
-}
-
-void on_pacman_software_chosen_toggled(GtkWidget *, char *path, main_window *widgets){
- GtkTreeIter iter;
- char *name, *type, *description;
- gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList),&iter,path);
- gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList),&iter,1,&name,2,&type,3,&description,-1);
- gtk_list_store_remove(widgets->PacmanSoftwareChosenList,&iter);
- gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter);
- gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,name,2,type,3,description,-1);
- g_hash_table_remove(widgets->pacmanchosen,name);
-}
-
-gboolean yon_pacman_fill(struct pacman_struct *pacman){
- main_window *widgets = pacman->widgets;
- config_str loaded = pacman->packages;
- int size = pacman->packages_size;
-
-
- for (int i=0;ipacmanchosen,loaded[i])) continue;
- char *version = yon_packages_get_version(YON_PACKAGES_SYNC,loaded[i]);
- char *description = yon_packages_get_description(YON_PACKAGES_SYNC,loaded[i]);
- GtkTreeIter iter;
- gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter);
- gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,loaded[i],2,version,3,description,-1);
- if (!yon_char_is_empty(version))free(version);
- if (!yon_char_is_empty(description)) free(description);
- }
- yon_char_parsed_free(loaded,size);
- gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,1);
- gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,1);
- gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,1);
- g_object_ref(G_OBJECT(widgets->MainSpinner));
- gtk_container_remove(GTK_CONTAINER(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
- return G_SOURCE_REMOVE;
-}
-
-void *yon_pacman_load(struct pacman_struct *pacman){
- const char *find_package = pacman->find_package;
- // char *command = get_local_module_info_command(find_package);
- pacman->packages = yon_packages_find(YON_PACKAGES_SYNC,find_package,&pacman->packages_size);
- g_idle_add((GSourceFunc)yon_pacman_fill,pacman);
- return NULL;
-}
-
-void on_pacman_icon_press(GtkEntry *self,GtkEntryIconPosition icon_pos,GdkEvent* ,main_window *widgets){
- if(icon_pos != GTK_ENTRY_ICON_SECONDARY) return;
-
- gtk_list_store_clear(widgets->PacmanSoftwareAllList);
-
- const char *find_package = gtk_entry_get_text(self);
- struct pacman_struct *pacman = new (struct pacman_struct);
- pacman->widgets=widgets;
- pacman->find_package=find_package;
- gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,0);
- gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,0);
- gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,0);
- gtk_overlay_add_overlay(GTK_OVERLAY(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
- g_thread_new("pacman_modules_get_thread",(GThreadFunc)yon_pacman_load,pacman);
-}
-
void on_toggle_button_switch_on(GtkWidget *, GtkToggleButton *toggle){
gtk_toggle_button_set_active(toggle,1);
}
-double yon_size_long_convert_to_mod(double size, char mod){
- int sizemod = yon_get_size_get_from_letter(mod);
- double final_size = size;
- for (int i=-1;i1024;repeats++){
- byte_float=byte_float/1024;
- }
- if (repeats==-1) {
- repeats=0;
- byte_float=byte_float/1024;
- }
- switch(repeats){
- case 0: (*size)='K';
- break;
- case 1: (*size)='M';
- break;
- case 2: (*size)='G';
- break;
- case 3: (*size)='T';
- break;
- }
- return byte_float;
-}
-
// // standard functions
// /**config_init()
// * [EN]
@@ -309,6 +205,7 @@ void config_init(){
main_config.slides = NULL;
main_config.chosen_slide = NULL;
main_config.os_name = NULL;
+ main_config.devices = yon_config_load(get_devices_command,&main_config.devices_size);
{
int size;
config_str ret = yon_config_load(os_name_get_command,&size);
@@ -555,6 +452,7 @@ void yon_main_window_create(main_window *widgets){
widgets->OSFormatEncryptionCombo = yon_gtk_builder_get_widget(builder,"OSFormatEncryptionCombo");
widgets->OSFormatEncryptionEntry = yon_gtk_builder_get_widget(builder,"OSFormatEncryptionEntry");
widgets->OSFormatEncryptionButton = yon_gtk_builder_get_widget(builder,"OSFormatEncryptionButton");
+ widgets->OSComponentsOverallSizeLabel = yon_gtk_builder_get_widget(builder,"OSComponentsOverallSizeLabel");
widgets->UserdataDevicesTree = yon_gtk_builder_get_widget(builder,"UserdataDevicesTree");
widgets->UserdataSysSectionTree = yon_gtk_builder_get_widget(builder,"UserdataSysSectionTree");
@@ -662,6 +560,8 @@ void yon_main_window_create(main_window *widgets){
widgets->PacmanLoadingOverlay = yon_gtk_builder_get_widget(builder,"PacmanLoadingOverlay");
widgets->PacmanSoftwareAllPackagesTree = yon_gtk_builder_get_widget(builder,"PacmanSoftwareAllPackagesTree");
+ widgets->PacmanOverallSizeLabel = yon_gtk_builder_get_widget(builder,"PacmanOverallSizeLabel");
+ widgets->PacmanChosenLabel = yon_gtk_builder_get_widget(builder,"PacmanChosenLabel");
widgets->PacmanSoftwareAllList = GTK_LIST_STORE(gtk_builder_get_object(builder,"PacmanSoftwareAllList"));
widgets->PacmanSoftwareAllCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"PacmanSoftwareAllCell"));
@@ -806,11 +706,15 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
- g_signal_connect(G_OBJECT(widgets->SamePlacePartTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets);
- g_signal_connect(G_OBJECT(widgets->NextInstallationSysSectionTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets);
- g_signal_connect(G_OBJECT(widgets->NextInstallationSizeTypeSpin),"changed",G_CALLBACK(on_partition_changed),widgets);
- g_signal_connect(G_OBJECT(widgets->OSFormatSizeCombo),"changed",G_CALLBACK(on_partition_changed),widgets);
- g_signal_connect(G_OBJECT(widgets->UserdataFormatSizeCombo),"changed",G_CALLBACK(on_partition_changed),widgets);
+ // g_signal_connect(G_OBJECT(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->NextInstallationSizeSpin))),"value-changed",G_CALLBACK(yon_size_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->NextInstallationSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->UserdataFormatSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets);
+ g_signal_connect(G_OBJECT(widgets->OSFormatSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets);
+ // g_signal_connect(G_OBJECT(widgets->SamePlacePartTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets);
+ // g_signal_connect(G_OBJECT(widgets->NextInstallationSysSectionTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets);
+ // g_signal_connect(G_OBJECT(widgets->NextInstallationSizeTypeSpin),"changed",G_CALLBACK(on_partition_size_changed),widgets);
+ // g_signal_connect(G_OBJECT(widgets->OSFormatSizeCombo),"changed",G_CALLBACK(on_partition_size_changed),widgets);
+ // g_signal_connect(G_OBJECT(widgets->UserdataFormatSizeCombo),"changed",G_CALLBACK(on_partition_size_changed),widgets);
g_signal_connect(G_OBJECT(widgets->UserRootPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserRootPasswordEntry);
g_signal_connect(G_OBJECT(widgets->UserRootPasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),widgets->UserRootPasswordButton);
@@ -914,7 +818,7 @@ void yon_main_window_create(main_window *widgets){
if (access(path,F_OK)){
fullscreen = 1;
g_thread_new("fullscreen",(GThreadFunc)yon_maximize,widgets);
-
+
}
yon_window_config_load(path);
yon_window_config_add_instant_parameter("fullscreen","window",&fullscreen,YON_TYPE_BOOLEAN);
@@ -931,7 +835,7 @@ void yon_main_window_create(main_window *widgets){
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->RegionMapOverlay),widgets->TimeZoneMapOverlayBox);
gtk_overlay_set_overlay_pass_through(GTK_OVERLAY(widgets->RegionMapOverlay),widgets->TimeZoneMapOverlayBox,1);
gtk_widget_hide(widgets->TimeZoneMapOverlayBox);
-
+ g_thread_new("Partitions_thread",(GThreadFunc)yon_partitions_list_load,widgets);
{
widgets->EnableRDPMenuItem = gtk_menu_item_new();
GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
@@ -1008,6 +912,17 @@ void yon_main_window_create(main_window *widgets){
exit (1);
}
}
+ {
+ char *command = yon_config_parameter_prepare_command(part_size_parameter_command,"default",NULL,NULL);
+ int size;
+ config_str default_part_size = yon_config_load(command,&size);
+ if (size&&strcmp(default_part_size[0],"(null)\n")){
+ free(yon_char_divide_search(default_part_size[0],"=",-1));
+ yon_char_remove_last_symbol(default_part_size[0],'\n');
+ yon_char_remove_brackets(default_part_size[0]);
+ main_config.part_size_default = default_part_size[0];
+ }
+ }
}
gboolean yon_maximize_start(main_window *widgets){
diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h
index 18a769a..65cc094 100755
--- a/source/ubinstall-gtk.h
+++ b/source/ubinstall-gtk.h
@@ -105,7 +105,7 @@
"/com/ublinux/images/slide-12.png", \
NULL
-#define get_modules_command "pacman --color never -Qs ^ubm- | sed -Enr -e 'N;s/\\n/ ;/' -e \"s/^([^\\/]+)\\/([^[:blank:]]+)[[:blank:]]+([^[:blank:]]+)[[:blank:]]+(\\(([^\\)]+)\\)[^\\;]+|[^\\;]*);[[:blank:]]*(.*)/\\2;\\3;\\5;\\6/p\""
+// #define get_modules_command "pacman --color never -Qs ^ubm- | sed -Enr -e 'N;s/\\n/ ;/' -e \"s/^([^\\/]+)\\/([^[:blank:]]+)[[:blank:]]+([^[:blank:]]+)[[:blank:]]+(\\(([^\\)]+)\\)[^\\;]+|[^\\;]*);[[:blank:]]*(.*)/\\2;\\3;\\5;\\6/p\""
#define get_available_modules_command "pacman --color never -Ss ^ubm- | sed -Enr -e 'N;s/\\n/ ;/' -e \"s/^([^\\/]+)\\/([^[:blank:]]+)[[:blank:]]+([^[:blank:]]+)[[:blank:]]+(\\(([^\\)]+)\\)[^\\;]+|[^\\;]*);[[:blank:]]*(.*)/\\2;\\3;\\5;\\6/p\""
#define get_local_module_info_command(target) yon_char_unite("pacman --color never -Sp $(pacman -Ssq '", target, "') --print-format '%n;%v;%d' | grep -v \"^::\"", NULL);
@@ -143,7 +143,7 @@ layout && /description:/ {\
}\
\" | sort -u\
"
-#define ubinstall_dry_run_command "ubinstall2 --dry-run"
+#define ubinstall_dry_run_command "ubinstall --dry-run"
#define os_name_get_command "sed -En 's/^PRETTY_NAME=[\"]*([^\"]+)[\"]*/\\1/p' /etc/os-release"
#define get_keyboard_layout_change_command "grep \"grp:\" /usr/share/X11/xkb/rules/base.lst | awk '{$1=$1; sub(/^!.*$/, \"\"); if ($1 ~ /^grp:/) {opt=$1; $1=\"\"; print opt \"|\" substr($0,2)}}'"
@@ -155,7 +155,7 @@ layout && /description:/ {\
#define disable_rdp_command "ubconfig --target system remove [desktop] AUTOEXEC[@users]"
#define get_layouts_local_command(layout) yon_char_unite("xkbcli list --load-exotic | awk -v layout=\"", layout, "\" \"BEGIN {layout_pattern = sprintf(\\\"^ *- *layout: *'%s'\\\",layout);matched=0} matched && /variant:/ {match(\\$0, /: *'([^']+)'/, matches);variant = matches[1]} matched && /description:/ {match(\\$0, /: *(.+)/, matches);description = matches[1]} matched && /^ *-/{matched=0; if (variant) printf \\\"%s|%s\\n\\\",variant,description} \\$0 ~ layout_pattern {matched=1;variant=\\\"\\\";description=\\\"\\\";next}\" | sort -u", NULL)
-#define get_devices_command "lsblk --noheadings --nodeps -Jo PATH,SIZE,MODEL,VENDOR,SERIAL --exclude 7"
+// #define get_devices_command "lsblk --noheadings --nodeps -Jo PATH,SIZE,MODEL,VENDOR,SERIAL --exclude 7"
#define get_parts_and_devices_command "lsblk --noheadings --bytes -o TYPE,PATH,SIZE,FSTYPE,LABEL,PARTLABEL,MOUNTPOINT,FSUSED,FSUSE% --exclude 7 |awk '{print ($1\";\"$2\";\"$3\";\"$4\";\"$5\";\"$6\";\"$7\";\"$8\";\"$9)}'"
#define AUTOINSTALL(target) yon_char_unite("AUTOINSTALL[", target, "]", NULL)
@@ -171,9 +171,6 @@ layout && /description:/ {\
#define modules_parameter "AUTOINSTALL[modules]"
#define modules_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules]"
-#define modules_extra_parameter "AUTOINSTALL[modules_extra]"
-#define modules_extra_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules_extra]"
-
/*------------------------------------------------------------*/
#define root_password_parameter "AUTOINSTALL[ubconfig set [users] DEFAULTROOTPASSWD]"
#define root_password_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL['ubconfig set [users] DEFAULTROOTPASSWD']"
@@ -265,11 +262,12 @@ layout && /description:/ {\
#define SYSTEM_LANG_parameter "AUTOINSTALL['ubconfig set [locale] LANG']"
#define SYSTEM_LANG_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [locale] LANG']"
+
#define get_localisation_command "ubconfig -ea --source global get [autoinstall] AUTOINSTALL[installer_locale] -- get [autoinstall] AUTOINSTALL['ubconfig set [locale] LANG'] -- get [locale] LANG"
-#define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ", parameters, "; nice ubinstall2 --debug autoinstall", NULL)
+#define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ", parameters, "; nice ubinstall --debug autoinstall", NULL)
-#define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, ";nice ubinstall2 autoconfig", NULL)
+#define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, ";nice ubinstall autoconfig", NULL)
#define save_additional_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, NULL)
#define get_default_password_command "ubconfig --raw --conarg --source default get [users] NOSECUREROOTPASSWD"
@@ -278,7 +276,7 @@ layout && /description:/ {\
#define PASSWORD_DEFAULT "ublinux"
-#define start_fast_install_command "ubinstall2 --autoinstall"
+#define start_fast_install_command "ubinstall --autoinstall"
#define progress_path "/var/log/ubinstall_progress.log"
@@ -288,6 +286,10 @@ layout && /description:/ {\
#define full_log_path "/var/log/ubinstall.log"
+#define get_devices_command "ubinstall show --lsdevices"
+#define get_parts_for_device_command "ubinstall show --lsparts"
+#define get_modules_command "ubinstall show --lsmodules"
+
#define config_get_command(target) yon_char_unite("ubconfig -ea --conarg --source ", target, " get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG", NULL)
#define config_get_default_command "ubconfig -ea --conarg --source default get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG"
@@ -458,6 +460,14 @@ typedef struct
gboolean force_scenario;
char *os_name;
+
+ config_str partitions;
+ int part_size;
+
+ config_str devices;
+ int devices_size;
+
+ char *part_size_default;
} config;
extern config main_config;
@@ -636,6 +646,7 @@ typedef struct
GtkWidget *OSFormatEncryptionButton;
GtkWidget *OSSpinner;
GtkWidget *OSOverlay;
+ GtkWidget *OSComponentsOverallSizeLabel;
GtkWidget *UserdataGpartedButton;
GtkWidget *UserdataUpdateGpartedButton;
@@ -692,6 +703,8 @@ typedef struct
GtkWidget *PacmanSoftwareChosenPackagesTree;
GtkListStore *PacmanSoftwareChosenList;
GtkCellRenderer *PacmanSoftwareChosenCell;
+ GtkWidget *PacmanOverallSizeLabel;
+ GtkWidget *PacmanChosenLabel;
// GtkWidget *StartupImage;
GtkWidget *StartupServicesTree;
@@ -984,6 +997,8 @@ typedef struct
GtkWidget *DescriptionLabel;
GtkWidget *VersionLabel;
GtkWidget *TagsBox;
+ GtkWidget *SourceLabel;
+ GtkWidget *SizeLabel;
char *name;
char *modules;
@@ -1095,6 +1110,8 @@ struct row_data
char *name;
char *tags;
char *description;
+ char *source;
+ char *size;
};
typedef struct
@@ -1342,7 +1359,7 @@ advanced_partition *yon_advanced_partition_new();
void on_advanced_part_remove(GtkWidget *self, main_window *widgets);
int yon_advanced_get_part_size(main_window *widgets);
void yon_advanced_partition_clear(main_window *widgets);
-void yon_os_row_setup(os_row *row, char *name, char *version, char *tags, char *description);
+void yon_os_row_setup(os_row *row, char *name, char *version, char *tags, char *description, char *source, char *size);
os_row *yon_os_row_new();
void yon_quick_install(GtkWidget *, main_window *widgets);
void on_keyboard_layout_chosen(GtkCellRenderer *self, gchar *path, main_window *widgets);
@@ -1494,4 +1511,12 @@ void yon_map_status_show(main_window *widgets, char *icon_name, char *title, cha
gboolean on_map_box_ckicked_skip();
gboolean on_time_zone_status_hover(GtkWidget *, GdkEvent *, main_window *widgets);
gboolean on_time_zone_status_hover_end(GtkWidget *, GdkEvent *, main_window *widgets);
-void yon_map_update(main_window *widgets, const char *timezone);
\ No newline at end of file
+void yon_map_update(main_window *widgets, const char *timezone);
+void on_partition_size_changed(GtkWidget *self, main_window *widgets);
+void *yon_partitions_list_load(main_window *widgets);
+void *yon_modules_list_load(main_window *widgets);
+void yon_size_changed(GtkSpinButton *self, main_window *widgets);
+void yon_pacman_software_update_overall_size(main_window *widgets);
+int yon_installation_check_packages_size(main_window *widgets);
+config_str yon_os_components_get_modules(int *size);
+int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets);
\ No newline at end of file
diff --git a/source/ubl-strings.h b/source/ubl-strings.h
index 2a9e060..cb86d7f 100644
--- a/source/ubl-strings.h
+++ b/source/ubl-strings.h
@@ -113,7 +113,6 @@ NULL)
#define DESIGNATION_LABEL _("Designation")
#define SERIAL_LABEL _("Serial")
#define SECTION_LABEL _("Section")
-#define CAPACITY_LABEL _("Capacity")
#define FREE_SPACE_LABEL _("Free space")
#define FS_LABEL _("File system")
#define DEFAULTSWITCHING_LABEL _("Default (L_Alt + L_Shift)")
@@ -292,7 +291,13 @@ NULL)
#define FINISH_ACTION_LABEL _("After successful installation:")
#define MAP_TITLE_LABEL(utc) yon_char_unite(_("UTC"),utc,NULL)
#define MAP_INFO_LABEL(tz_location) yon_char_unite(_("Geasfa"),tz_location,NULL)
+#define NOT_ENOUGH_FREE_SPACE_LABEL _("The size of the new partition exceeds the free space of the selected partition") //Размер нового раздела превышает свободное место выбранного раздела
+#define NOT_ENOUGH_SPACE_LABEL _("The size of the new disk partition is larger than the size of the selected partition") //Размер нового раздела диска превышает размер выбранного раздела
+#define MODULE_NOT_ENOUGH_SPACE_LABEL _("There is not enough space to install modules")
+#define PACKAGE_NOT_ENOUGH_SPACE_LABEL _("There is not enough space to install packages")
+// #define _LABEL _("Chosen size:")
+// #define _LABEL _("Overall size:")
// #define _LABEL _("Select your language:")
// #define _LABEL _("Selecting additional system kernel components")
// #define _LABEL _("Package:")
@@ -458,6 +463,14 @@ NULL)
// #define _LABEL _("Packager")
// #define _LABEL _("Build Date")
// #define _LABEL _("Validated By")
+// #define _LABEL _("File system label")
+// #define _LABEL _("Flags")
+// #define _LABEL _("Mount point")
+// #define _LABEL _("Local system")
+// #define _LABEL _("Local system")
+// #define _LABEL _("Source:")
+// #define _LABEL _("Version:")
+// #define _LABEL _("Size:")
#define slide_1_title _("Product ecosystem")
#define slide_1_text _("Developed by a team of professionals and successfully presented on the market.\n\
diff --git a/ubinstall-gtk-os-row.glade b/ubinstall-gtk-os-row.glade
index e1f0660..1a3da84 100644
--- a/ubinstall-gtk-os-row.glade
+++ b/ubinstall-gtk-os-row.glade
@@ -3,44 +3,87 @@
-
diff --git a/ubinstall-gtk-source-element.glade b/ubinstall-gtk-source-element.glade
index 3db4218..6e62fea 100644
--- a/ubinstall-gtk-source-element.glade
+++ b/ubinstall-gtk-source-element.glade
@@ -26,6 +26,7 @@
- Device
- Folder
- ISO-image
+ - Local system
@@ -57,10 +58,11 @@
-
+
+ True
True
True
- image1
+ image2
@@ -68,15 +70,15 @@
False
True
+ end
3
-
- True
+
True
True
- image2
+ image1
@@ -84,6 +86,7 @@
False
True
+ end
4
diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade
index 61a2ce5..4ac0262 100644
--- a/ubinstall-gtk.glade
+++ b/ubinstall-gtk.glade
@@ -41,6 +41,8 @@
+
+
@@ -223,6 +225,8 @@
+
+
@@ -235,10 +239,14 @@
+
+
+
+
- 999999
+ 999999999999
10
1
10
@@ -263,7 +271,11 @@
-
+
+
+
+
+
@@ -698,6 +710,7 @@
True
False
start
+ 5
112
com.ublinux.ubinstall-gtk
1
@@ -2091,6 +2104,62 @@ agreement
1
+
+
+ True
+ False
+ 5
+ 5
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+
+
+ False
+ True
+ end
+ 0
+
+
+
+
+ True
+ False
+ Overall size:
+ 1
+
+
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ 2
+
+
3
@@ -3327,7 +3396,7 @@ agreement
False
True
- 1
+ 0
@@ -3371,7 +3440,9 @@ agreement
True
True
- com.ublinux.libublsettingsui-gtk3.zoom-symbolic
+ True
+ False
+ Search
False
@@ -3460,7 +3531,9 @@ agreement
PacmanSoftwareAllList
0
-
+
+ none
+
@@ -3485,7 +3558,18 @@ agreement
- Type
+ Size
+
+
+
+ 4
+
+
+
+
+
+
+ Version
@@ -3534,7 +3618,7 @@ agreement
True
True
- 2
+ 1
@@ -3563,7 +3647,9 @@ agreement
PacmanSoftwareChosenList
0
-
+
+ none
+
@@ -3588,7 +3674,18 @@ agreement
- Type
+ Size
+
+
+
+ 4
+
+
+
+
+
+
+ Version
@@ -3625,6 +3722,99 @@ agreement
True
True
+ 2
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ Chosen size:
+ 1
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+
+
+ False
+ True
+ end
+ 0
+
+
+
+
+ True
+ False
+ Overall size:
+ 1
+
+
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
+ end
+ 1
+
+
+
+
+ False
+ True
3
@@ -8304,7 +8494,40 @@ or continue working in the system Live environment.
- Capacity
+ File system
+
+
+
+ 3
+
+
+
+
+
+
+ Label
+
+
+
+ 4
+
+
+
+
+
+
+ File system label
+
+
+
+ 10
+
+
+
+
+
+
+ Size
@@ -8315,7 +8538,7 @@ or continue working in the system Live environment.
- Free space
+ Free (%)
@@ -8326,22 +8549,22 @@ or continue working in the system Live environment.
- File system
+ Flags
- 3
+ 11
- Label
+ Mount point
- 4
+ 9
@@ -9012,7 +9235,40 @@ or continue working in the system Live environment.
- Capacity
+ File system
+
+
+
+ 3
+
+
+
+
+
+
+ Label
+
+
+
+ 4
+
+
+
+
+
+
+ File system label
+
+
+
+ 10
+
+
+
+
+
+
+ Size
@@ -9023,7 +9279,7 @@ or continue working in the system Live environment.
- Free space
+ Free (%)
@@ -9034,22 +9290,22 @@ or continue working in the system Live environment.
- File system
+ Flags
- 3
+ 11
- Label
+ Mount point
- 4
+ 9
@@ -9700,98 +9956,118 @@ separately into the selected partition.
-
+
True
- False
- 0
+ True
in
+ 128
-
+
+ 125
True
- False
-
-
- 125
- True
- True
- PartitionsList
- 0
-
-
+ True
+ PartitionsList
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ Section
-
-
-
-
- 8
- 7
-
-
-
+
+
+ 0
+
+
+
+
+
+ File system
-
- Section
-
-
-
- 0
-
-
-
+
+
+ 3
+
+
+
+
+
+ Label
-
- Capacity
-
-
-
- 1
-
-
-
+
+
+ 4
+
+
+
+
+
+ File system label
-
- Free space
-
-
-
- 2
-
-
-
+
+
+ 10
+
+
+
+
+
+ Size
-
- File system
-
-
-
- 3
-
-
-
+
+
+ 1
+
+
+
+
+
+ Free (%)
-
- Label
-
-
-
- 4
-
-
-
+
+
+ 2
+
+
+
+
+
+
+ Flags
+
+
+
+ 11
+
+
+
+
+
+
+ Mount point
+
+
+
+ 9
+
-
-
-
False
@@ -10786,7 +11062,7 @@ separately into the selected partition.
True
False
- User data restore
+ User data only
0
@@ -11181,7 +11457,40 @@ separately into the selected partition.
- Capacity
+ File system
+
+
+
+ 3
+
+
+
+
+
+
+ Label
+
+
+
+ 4
+
+
+
+
+
+
+ File system label
+
+
+
+ 10
+
+
+
+
+
+
+ Size
@@ -11192,7 +11501,7 @@ separately into the selected partition.
- Free space
+ Free (%)
@@ -11203,22 +11512,22 @@ separately into the selected partition.
- File system
+ Flags
- 3
+ 11
- Label
+ Mount point
- 4
+ 9
@@ -11594,7 +11903,40 @@ separately into the selected partition.
- Capacity
+ File system
+
+
+
+ 3
+
+
+
+
+
+
+ Label
+
+
+
+ 4
+
+
+
+
+
+
+ File system label
+
+
+
+ 10
+
+
+
+
+
+
+ Size
@@ -11605,7 +11947,7 @@ separately into the selected partition.
- Free space
+ Free (%)
@@ -11616,22 +11958,22 @@ separately into the selected partition.
- File system
+ Flags
- 3
+ 11
- Label
+ Mount point
- 4
+ 9
@@ -12000,7 +12342,40 @@ separately into the selected partition.
- Capacity
+ File system
+
+
+
+ 3
+
+
+
+
+
+
+ Label
+
+
+
+ 4
+
+
+
+
+
+
+ File system label
+
+
+
+ 10
+
+
+
+
+
+
+ Size
@@ -12011,7 +12386,7 @@ separately into the selected partition.
- Free space
+ Free (%)
@@ -12022,22 +12397,22 @@ separately into the selected partition.
- File system
+ Flags
- 3
+ 11
- Label
+ Mount point
- 4
+ 9
@@ -12808,7 +13183,40 @@ separately into the selected partition.
- Capacity
+ File system
+
+
+
+ 3
+
+
+
+
+
+
+ Label
+
+
+
+ 4
+
+
+
+
+
+
+ File system label
+
+
+
+ 10
+
+
+
+
+
+
+ Size
@@ -12819,7 +13227,7 @@ separately into the selected partition.
- Free space
+ Free (%)
@@ -12830,22 +13238,22 @@ separately into the selected partition.
- File system
+ Flags
- 3
+ 11
- Label
+ Mount point
- 4
+ 9
@@ -13699,6 +14107,12 @@ separately into the selected partition.
+
+
+
+
+
+