diff --git a/locale/ubinstall-gtk.pot b/locale/ubinstall-gtk.pot index 07fa82d..ed7007c 100644 --- a/locale/ubinstall-gtk.pot +++ b/locale/ubinstall-gtk.pot @@ -5351,4 +5351,7 @@ msgid "Uncheck all" msgstr "" msgid "Close installer" +msgstr "" + +msgid "Application is already running" msgstr "" \ No newline at end of file diff --git a/locale/ubinstall-gtk_ru.po b/locale/ubinstall-gtk_ru.po index 37bd888..f561ea7 100644 --- a/locale/ubinstall-gtk_ru.po +++ b/locale/ubinstall-gtk_ru.po @@ -5546,4 +5546,7 @@ msgid "Uncheck all" msgstr "Снять всё" msgid "Close installer" -msgstr "Закрыть установщик" \ No newline at end of file +msgstr "Закрыть установщик" + +msgid "Application is already running" +msgstr "Приложение уже запущено" \ No newline at end of file diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index ee6d7cf..d0bc006 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -1028,6 +1028,10 @@ main_window *yon_main_window_complete(){ } int main(int argc, char *argv[]){ + GApplication *app = (GApplication*)gtk_application_new("com.ublinux.ubinstall-gtk",G_APPLICATION_DEFAULT_FLAGS); + GError *err = NULL; + int reg = g_application_register(app,NULL,&err); + int remote = g_application_get_is_remote(app); main_config.argv=argv; main_config.argc = argc; config_str unfound = NULL; @@ -1037,6 +1041,25 @@ int main(int argc, char *argv[]){ textdomain(LocaleName); config_init(); gtk_init(&argc,&argv); + + if (!reg||remote){ + yon_window *window = yon_window_new(); + gtk_widget_set_size_request(window->Window,300,125); + yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,WARNING_TITLE_LABEL,icon_path,NULL); + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); + GtkWidget *image = gtk_image_new(); + GtkWidget *label = gtk_label_new(ALREADY_RUNNING_LABEL); + gtk_image_set_from_icon_name(GTK_IMAGE(image),warning_icon_path,0); + gtk_image_set_pixel_size(GTK_IMAGE(image),48); + gtk_box_pack_start(GTK_BOX(box),image,1,1,0); + gtk_box_pack_start(GTK_BOX(box),label,1,1,0); + gtk_box_pack_start(GTK_BOX(window->MainBox),box,1,1,0); + gtk_widget_show_all(box); + g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(gtk_main_quit),NULL); + gtk_widget_show(window->Window); + gtk_main(); + exit(1); + } yon_ubl_window_init(TITLE_LABEL,"",LocaleName,CssPath,LocaleName,version_application,WIKI_LINK); yon_ubl_setup_arguments(argc,argv,&unfound,&size,ADDITIONAL_ARGS); if (size) { diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index f106171..528e95f 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -50,6 +50,7 @@ #define active_icon_path "com.ublinux.libublsettingsui-gtk3.active-symbolic" #define inactive_icon_path "com.ublinux.libublsettingsui-gtk3.inactive-symbolic" #define info_icon_path "com.ublinux.libublsettingsui-gtk3.important-symbolic" +#define warning_icon_path "com.ublinux.libublsettingsui-gtk3.warning-symbolic" #define LocalePath "/usr/share/locale" #define LocaleName "ubinstall-gtk" diff --git a/source/ubl-strings.h b/source/ubl-strings.h index eb3aa7f..7d6d5dc 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -304,6 +304,7 @@ NULL) #define ACCESSED_LABEL _("Accessed") #define UNACCESSED_LABEL _("Unaccessed") #define INFO_LABEL _("Package information") +#define ALREADY_RUNNING_LABEL _("Application is already running") // #define _LABEL _("Chosen size:") // #define _LABEL _("Overall size:")