From c3f66da0a74f32cd74e69890b5adb2d646a3fbbc Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 14 Jul 2025 10:17:58 +0600 Subject: [PATCH] Added unlock pacman database button --- locale/ubl-settings-video.pot | 22 +++++++++------ locale/ubl-settings-video_ru.po | 26 +++++++++-------- source/ubl-settings-video.c | 21 ++++++++++---- source/ubl-settings-video.h | 4 +++ source/ubl-strings.h | 1 + ubl-settings-video.glade | 50 +++++++++++++++++++++++++++++++-- 6 files changed, 95 insertions(+), 29 deletions(-) diff --git a/locale/ubl-settings-video.pot b/locale/ubl-settings-video.pot index 99d3c15..c0e3485 100644 --- a/locale/ubl-settings-video.pot +++ b/locale/ubl-settings-video.pot @@ -569,39 +569,43 @@ msgstr "" msgid "Devices and Drivers" msgstr "" -#: source/ubl-strings.h:152 +#: source/ubl-strings.h:151 +msgid "Unlock the pacman package manager database" +msgstr "" + +#: source/ubl-strings.h:153 msgid "Database files must be updated" msgstr "" -#: source/ubl-strings.h:154 +#: source/ubl-strings.h:155 msgid "Warning: Couldn't find any supported kernel version" msgstr "" -#: source/ubl-strings.h:156 +#: source/ubl-strings.h:157 msgid "Default (All installed)" msgstr "" -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:158 msgid "Driver installation has failed" msgstr "" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:159 msgid "Operation has failed" msgstr "" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:161 msgid "Are you sure want to install driver " msgstr "" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:162 msgid "Are you sure want to remove driver " msgstr "" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:163 msgid "Attention!" msgstr "" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:163 msgid "" "If you work in sandbox mode, you must install the package with the module!" msgstr "" diff --git a/locale/ubl-settings-video_ru.po b/locale/ubl-settings-video_ru.po index ea83106..6d1ade1 100644 --- a/locale/ubl-settings-video_ru.po +++ b/locale/ubl-settings-video_ru.po @@ -576,43 +576,47 @@ msgstr "Модули драйвера" msgid "Devices and Drivers" msgstr "Устройства и драйвера" -#: source/ubl-strings.h:152 +#: source/ubl-strings.h:151 +msgid "Unlock the pacman package manager database" +msgstr "Разблокировать базу данных пакетного менеджера pacman" + +#: source/ubl-strings.h:153 msgid "Database files must be updated" msgstr "Базы данных репозитория должны быть обновлены" -#: source/ubl-strings.h:154 +#: source/ubl-strings.h:155 msgid "Warning: Couldn't find any supported kernel version" msgstr "Предупреждение: Поддерживаемые версии ядра не найдены" -#: source/ubl-strings.h:156 +#: source/ubl-strings.h:157 msgid "Default (All installed)" msgstr "По умолчанию (все установленные)" -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:158 msgid "Driver installation has failed" msgstr "Установка драйвера завершена с ошибкой" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:159 msgid "Operation has failed" msgstr "Операция завершена с ошибкой" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:161 msgid "Are you sure want to install driver " msgstr "Вы уверены, что хотите установить драйвер " -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:162 msgid "Are you sure want to remove driver " msgstr "Вы уверены, что хотите удалить драйвер " -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:163 msgid "Attention!" msgstr "Внимание!" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:163 msgid "" "If you work in sandbox mode, you must install the package with the module!" msgstr "" "Если вы работаете в режиме песочницы необходимо установить пакет с модулем!" -msgid "Driver modules" -msgstr "Модули драйвера" +#~ msgid "Driver modules" +#~ msgstr "Модули драйвера" diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 65c18e3..3a88aea 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -2,6 +2,11 @@ config main_config; +void on_pacman_db_unlock(void){ + yon_launch(pacman_unlock_database_command); + yon_ubl_status_box_render(yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE); +} + void on_terminal_done(GtkWidget *, int , main_window *widgets){ vte_terminal_feed_child(VTE_TERMINAL(widgets->InstallTerminal),"^C",2); } @@ -53,6 +58,8 @@ void on_command_cancel(GtkWidget *,main_window *widgets){ main_config.progress_active=0; g_mutex_unlock(&main_config.progress_mutex); on_terminal_done(NULL,0,widgets); + + yon_launch(pacman_unlock_database_command); } void on_driver_pack_selection_change(GtkWidget *, GtkListBoxRow *selection, main_window *widgets){ @@ -1375,6 +1382,7 @@ template_main_window *yon_main_window_complete(main_window *widgets){ widgets->DevicesLabel = yon_gtk_builder_get_widget(builder,"DevicesLabel"); widgets->MoreButton = yon_gtk_builder_get_widget(builder,"TerminalMoreButton"); + widgets->UnlockPacmanButton = yon_gtk_builder_get_widget(builder,"UnlockPacmanButton"); widgets->TerminalPaned = yon_gtk_builder_get_widget(builder,"TerminalPaned"); widgets->TerminalMoreRevieler = yon_gtk_builder_get_widget(builder,"TerminalMoreRevieler"); widgets->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); @@ -1431,16 +1439,17 @@ template_main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->OptirunButton),"clicked",G_CALLBACK(on_app_chooser_open),widgets); g_signal_connect(G_OBJECT(widgets->PrimusrunButton),"clicked",G_CALLBACK(on_app_chooser_open),widgets); g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets); - g_signal_connect(G_OBJECT(widgets->TerminalCancelButton),"clicked",G_CALLBACK(on_command_cancel),widgets); + g_signal_connect(G_OBJECT(widgets->TerminalCancelButton),"clicked",G_CALLBACK(on_command_cancel),widgets); + g_signal_connect(G_OBJECT(widgets->UnlockPacmanButton),"clicked",G_CALLBACK(on_pacman_db_unlock),NULL); g_object_set_data(G_OBJECT(widgets->InstallTerminal),"widgets",widgets); { gtk_paned_add2(GTK_PANED(widgets->TerminalPaned),widgets->TerminalRevealer); - vte_terminal_set_scrollback_lines(VTE_TERMINAL(widgets->InstallTerminal), 100); - vte_terminal_set_scroll_on_output(VTE_TERMINAL(widgets->InstallTerminal), TRUE); - vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(widgets->InstallTerminal), TRUE); - vte_terminal_set_input_enabled(VTE_TERMINAL(widgets->InstallTerminal),1); - gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),0.1); + vte_terminal_set_scrollback_lines(VTE_TERMINAL(widgets->InstallTerminal), 100); + vte_terminal_set_scroll_on_output(VTE_TERMINAL(widgets->InstallTerminal), TRUE); + vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(widgets->InstallTerminal), TRUE); + vte_terminal_set_input_enabled(VTE_TERMINAL(widgets->InstallTerminal),1); + gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),0.1); } widgets->menu = yon_rmb_menu_setup(widgets->DriversList,check_rmb_menu,widgets, SUPPORTED_LABEL,icon_devices_path,G_CALLBACK(on_devices_button_clicked),widgets, diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 0df5407..00d2554 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -58,6 +58,8 @@ #define yon_check_database_command "pacman -Sqs >/dev/null" +#define pacman_unlock_database_command "rm -f /var/lib/pacman/db.lck" + #define yon_get_kernels_installed "find /usr/lib/modules/ -maxdepth 2 -type f -iname \"pkgbase\" -exec cat {} + 2>/dev/null" #define icon_devices_path "com.ublinux.libublsettingsui-gtk3.database-symbolic" @@ -183,6 +185,7 @@ typedef struct GtkWidget *DriverLabel; GtkWidget *DescriptionLabel; GtkWidget *DevicesLabel; + GtkWidget *UnlockPacmanButton; GtkWidget *MoreButton; GtkWidget *CancelButton; @@ -428,5 +431,6 @@ void on_devices_button_clicked(GtkWidget *, main_window *widgets); int check_rmb_menu(void *data); void on_install_check(GtkWidget *self,gint status,driver_struct *driver); void yon_install_buttons_set_sensitive(main_window *widgets,int state); +void on_pacman_db_unlock(void); #endif \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 13beb93..a12776d 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -148,6 +148,7 @@ #define DISCRETE_ONLY_LABEL _("discrete video only (AMD/ATI):") #define DRIVER_MODULES_LABEL _("Driver Modules") #define DEVICES_AND_DRIVERS_LABEL _("Devices and Drivers") +#define PACMAN_UNLOCK_TOOLTIP_LABEL _("Unlock the pacman package manager database") #define DATABASE_UNACCESSIBLE_LABEL _("Database files must be updated") diff --git a/ubl-settings-video.glade b/ubl-settings-video.glade index b5a4091..3ef4295 100644 --- a/ubl-settings-video.glade +++ b/ubl-settings-video.glade @@ -918,6 +918,17 @@ 0 + + + True + False + + + False + True + 1 + + True @@ -933,7 +944,7 @@ False True - 1 + 2 @@ -951,7 +962,7 @@ False True - 2 + 3 @@ -969,7 +980,35 @@ False True - 3 + 4 + + + + + True + False + + + False + True + 5 + + + + + True + True + True + Unlock the pacman package manager database + image6 + + + + False + True + 6 @@ -1572,6 +1611,11 @@ + + True + False + com.ublinux.libublsettingsui-gtk3.changes-allow-symbolic +