New install procedure: See bug #102216. Remove
2005-02-01 David Sedeo <david@alderia.com> New install procedure: See bug #102216. * gnome-theme-details.c: Remove gnome_theme_installer_run_cb, gnome_icon_theme_installer_run_cb because gnome_theme_installer_run function now detects if it is a icon or theme. (gnome_theme_details_init): Remove install buttons in theme details window. * gnome-theme-installer.c (file_theme_type): Detects the type of the theme inspecting the content of the file. (transfer_done_targz_idle_cb, transfer_done_tarbz2_idle_cb): Install the theme in the correct temp dir. (transfer_done_cb): Detects if the file to install it is in the correct format and informs the user if it is not supported. Unpack the file (informs the user if there are not the correct utility in the system) and install the theme in the correct directory. (gnome_theme_installer_run): Remove parameter. Now we detect the file type. * gnome-theme-manager.c (gnome_meta_theme_installer_run_cb, gnome_theme_manager_drag_data_received_cb): Call gnome_theme_installer_run without the third parameter. Now we detect the file type. * theme-properties.glade: Removes install buttons in details window.
This commit is contained in:
parent
ffdb4ad80a
commit
0b8267577e
6 changed files with 417 additions and 274 deletions
|
@ -1,3 +1,27 @@
|
||||||
|
2005-02-01 David Sedeño <david@alderia.com>
|
||||||
|
|
||||||
|
New install procedure: See bug #102216.
|
||||||
|
* gnome-theme-details.c: Remove gnome_theme_installer_run_cb,
|
||||||
|
gnome_icon_theme_installer_run_cb because gnome_theme_installer_run
|
||||||
|
function now detects if it is a icon or theme.
|
||||||
|
(gnome_theme_details_init): Remove install buttons in theme details
|
||||||
|
window.
|
||||||
|
* gnome-theme-installer.c (file_theme_type): Detects the type of the
|
||||||
|
theme inspecting the content of the file.
|
||||||
|
(transfer_done_targz_idle_cb, transfer_done_tarbz2_idle_cb): Install
|
||||||
|
the theme in the correct temp dir.
|
||||||
|
(transfer_done_cb): Detects if the file to install it is in the
|
||||||
|
correct format and informs the user if it is not supported. Unpack the
|
||||||
|
file (informs the user if there are not the correct utility in the
|
||||||
|
system) and install the theme in the correct directory.
|
||||||
|
(gnome_theme_installer_run): Remove parameter. Now we detect the file
|
||||||
|
type.
|
||||||
|
* gnome-theme-manager.c (gnome_meta_theme_installer_run_cb,
|
||||||
|
gnome_theme_manager_drag_data_received_cb): Call
|
||||||
|
gnome_theme_installer_run without the third parameter. Now we detect
|
||||||
|
the file type.
|
||||||
|
* theme-properties.glade: Removes install buttons in details window.
|
||||||
|
|
||||||
2005-01-06 Sebastien Bacher <seb128@debian.org>
|
2005-01-06 Sebastien Bacher <seb128@debian.org>
|
||||||
|
|
||||||
* gnome-theme-installer.c: (install_dialog_response): check the
|
* gnome-theme-installer.c: (install_dialog_response): check the
|
||||||
|
|
|
@ -159,21 +159,6 @@ window_theme_selection_changed (GtkTreeSelection *selection,
|
||||||
g_free (window_theme_name);
|
g_free (window_theme_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gnome_theme_installer_run_cb (GtkWidget *button,
|
|
||||||
GtkWidget *parent_window)
|
|
||||||
{
|
|
||||||
gnome_theme_installer_run (parent_window, NULL, FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
gnome_icon_theme_installer_run_cb (GtkWidget *button,
|
|
||||||
GtkWidget *parent_window)
|
|
||||||
{
|
|
||||||
gnome_theme_installer_run (parent_window, NULL, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
icon_theme_selection_changed (GtkTreeSelection *selection,
|
icon_theme_selection_changed (GtkTreeSelection *selection,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
|
@ -309,20 +294,14 @@ gnome_theme_details_init (void)
|
||||||
dialog);
|
dialog);
|
||||||
|
|
||||||
/* gtk themes */
|
/* gtk themes */
|
||||||
widget = WID ("control_install_button");
|
|
||||||
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run_cb), parent);
|
|
||||||
widget = WID ("control_manage_button");
|
widget = WID ("control_manage_button");
|
||||||
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_show_manage_themes), dialog);
|
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_show_manage_themes), dialog);
|
||||||
|
|
||||||
/* window manager themes */
|
/* window manager themes */
|
||||||
widget = WID ("window_install_button");
|
|
||||||
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run_cb), parent);
|
|
||||||
widget = WID ("window_manage_button");
|
widget = WID ("window_manage_button");
|
||||||
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_window_show_manage_themes), dialog);
|
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_window_show_manage_themes), dialog);
|
||||||
|
|
||||||
/* icon themes */
|
/* icon themes */
|
||||||
widget = WID ("icon_install_button");
|
|
||||||
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_icon_theme_installer_run_cb), parent);
|
|
||||||
widget = WID ("icon_manage_button");
|
widget = WID ("icon_manage_button");
|
||||||
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_icon_show_manage_themes), dialog);
|
g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_icon_show_manage_themes), dialog);
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,92 @@
|
||||||
#include "file-transfer-dialog.h"
|
#include "file-transfer-dialog.h"
|
||||||
#include "gnome-theme-installer.h"
|
#include "gnome-theme-installer.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
THEME_INVALID,
|
||||||
|
THEME_ICON,
|
||||||
|
THEME_GNOME,
|
||||||
|
THEME_GTK,
|
||||||
|
THEME_ENGINE,
|
||||||
|
THEME_METACITY
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
TARGZ,
|
||||||
|
TARBZ
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
gint theme_type;
|
||||||
|
gint filetype;
|
||||||
|
gchar *filename;
|
||||||
|
gchar *target_dir;
|
||||||
|
gchar *theme_tmp_dir;
|
||||||
|
gchar *target_tmp_dir;
|
||||||
|
gchar *user_message;
|
||||||
|
} theme_properties;
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
cleanup_tmp_dir(theme_properties *theme_props)
|
||||||
|
{
|
||||||
|
GList *list;
|
||||||
|
|
||||||
|
if (gnome_vfs_remove_directory (theme_props->target_tmp_dir) == GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY) {
|
||||||
|
list = g_list_prepend (NULL, gnome_vfs_uri_new (theme_props->target_tmp_dir));
|
||||||
|
gnome_vfs_xfer_delete_list (list, GNOME_VFS_XFER_RECURSIVE,
|
||||||
|
GNOME_VFS_XFER_ERROR_MODE_ABORT, NULL, NULL);
|
||||||
|
gnome_vfs_uri_list_free(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
file_theme_type(gchar *dir)
|
||||||
|
{
|
||||||
|
gchar *file_contents;
|
||||||
|
gchar *filename = NULL;
|
||||||
|
gint file_size;
|
||||||
|
GPatternSpec *pattern;
|
||||||
|
char *uri;
|
||||||
|
GnomeVFSURI *src_uri;
|
||||||
|
|
||||||
|
filename = g_strdup_printf ("%s/index.theme",dir);
|
||||||
|
src_uri = gnome_vfs_uri_new (filename);
|
||||||
|
if (gnome_vfs_uri_exists(src_uri)) {
|
||||||
|
uri = gnome_vfs_get_uri_from_local_path (filename);
|
||||||
|
gnome_vfs_read_entire_file (uri,&file_size,&file_contents);
|
||||||
|
|
||||||
|
pattern = g_pattern_spec_new ("*[Icon Theme]*");
|
||||||
|
if (g_pattern_match_string(pattern,file_contents)) {
|
||||||
|
return THEME_ICON;
|
||||||
|
}
|
||||||
|
|
||||||
|
pattern = g_pattern_spec_new ("*[X-GNOME-Metatheme]*");
|
||||||
|
if (g_pattern_match_string(pattern,file_contents)) {
|
||||||
|
return THEME_GNOME;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
filename = g_strdup_printf ("%s/gtk-2.0/gtkrc",dir);
|
||||||
|
src_uri = gnome_vfs_uri_new (filename);
|
||||||
|
if (gnome_vfs_uri_exists(src_uri)) {
|
||||||
|
return THEME_GTK;
|
||||||
|
}
|
||||||
|
|
||||||
|
filename = g_strdup_printf ("%s/metacity-1/metacity-theme-1.xml",dir);
|
||||||
|
src_uri = gnome_vfs_uri_new (filename);
|
||||||
|
if (gnome_vfs_uri_exists (src_uri)) {
|
||||||
|
return THEME_METACITY;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
filename = g_strdup_printf ("%s/configure.in",dir);
|
||||||
|
src_uri = gnome_vfs_uri_new (filename);
|
||||||
|
if (gnome_vfs_uri_exists (src_uri)) {
|
||||||
|
return THEME_ENGINE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return THEME_INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
transfer_cancel_cb (GtkWidget *dlg, gchar *path)
|
transfer_cancel_cb (GtkWidget *dlg, gchar *path)
|
||||||
|
@ -40,18 +126,21 @@ static gboolean
|
||||||
transfer_done_targz_idle_cb (gpointer data)
|
transfer_done_targz_idle_cb (gpointer data)
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
gchar *command;
|
gchar *command, *filename;
|
||||||
gchar *path = data;
|
theme_properties *theme_props = data;
|
||||||
|
|
||||||
/* this should be something more clever and nonblocking */
|
/* this should be something more clever and nonblocking */
|
||||||
command = g_strdup_printf ("sh -c 'cd \"%s/.themes\"; gzip -d -c < \"%s\" | tar xf -'",
|
filename = g_shell_quote(theme_props->filename);
|
||||||
g_get_home_dir (), path);
|
command = g_strdup_printf ("sh -c 'cd \"%s\"; /bin/gzip -d -c < \"%s\" | /bin/tar xf - '",
|
||||||
if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0)
|
theme_props->target_tmp_dir, filename);
|
||||||
gnome_vfs_unlink (path);
|
g_free(filename);
|
||||||
g_free (command);
|
if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0) {
|
||||||
g_free (path);
|
g_free (command);
|
||||||
|
return TRUE;
|
||||||
return FALSE;
|
} else {
|
||||||
|
g_free (command);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -69,18 +158,21 @@ static gboolean
|
||||||
transfer_done_tarbz2_idle_cb (gpointer data)
|
transfer_done_tarbz2_idle_cb (gpointer data)
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
gchar *command;
|
gchar *command, *filename;
|
||||||
gchar *path = data;
|
theme_properties *theme_props = data;
|
||||||
|
|
||||||
|
filename = g_shell_quote(theme_props->filename);
|
||||||
/* this should be something more clever and nonblocking */
|
/* this should be something more clever and nonblocking */
|
||||||
command = g_strdup_printf ("sh -c 'cd \"%s/.themes\"; bzip2 -d -c < \"%s\" | tar xf -'",
|
command = g_strdup_printf ("sh -c 'cd \"%s\"; /usr/bin/bzip2 -d -c < \"%s\" | /bin/tar xf - '",
|
||||||
g_get_home_dir (), path);
|
theme_props->target_tmp_dir, filename);
|
||||||
if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0)
|
g_free (filename);
|
||||||
gnome_vfs_unlink (path);
|
if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0) {
|
||||||
g_free (command);
|
g_free (command);
|
||||||
g_free (path);
|
return TRUE;
|
||||||
|
} else {
|
||||||
return FALSE;
|
g_free (command);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -88,23 +180,199 @@ transfer_done_cb (GtkWidget *dlg, gchar *path)
|
||||||
{
|
{
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
int len = strlen (path);
|
int len = strlen (path);
|
||||||
|
gchar *command,**dir, *first_line, *filename;
|
||||||
|
int status,theme_type;
|
||||||
|
theme_properties *theme_props;
|
||||||
|
GnomeVFSURI *theme_source_dir, *theme_dest_dir;
|
||||||
|
|
||||||
gtk_widget_destroy (dlg);
|
gtk_widget_destroy (dlg);
|
||||||
if (path && len > 7 && !strcmp (path + len - 7, ".tar.gz"))
|
|
||||||
g_idle_add (transfer_done_targz_idle_cb, path);
|
theme_props = g_new(theme_properties,1);
|
||||||
else if (path && len > 4 && !strcmp (path + len - 4, ".tgz"))
|
|
||||||
g_idle_add (transfer_done_targz_idle_cb, path);
|
theme_props->target_tmp_dir = g_strdup_printf ("%s/.themes/.theme-%u",
|
||||||
else if (path && len > 8 && !strcmp (path + len - 8, ".tar.bz2"))
|
g_get_home_dir(),
|
||||||
g_idle_add (transfer_done_tarbz2_idle_cb, path);
|
g_random_int());
|
||||||
else {
|
|
||||||
|
|
||||||
|
if (path && len > 7 && ( (!strcmp (path + len - 7, ".tar.gz")) || (!strcmp (path + len - 4, ".tgz")) )) {
|
||||||
|
filename = g_shell_quote (path);
|
||||||
|
command = g_strdup_printf ("sh -c '/bin/gzip -d -c < \"%s\" | /bin/tar ft - | head -1'",
|
||||||
|
filename);
|
||||||
|
theme_props->filetype=TARGZ;
|
||||||
|
g_free (filename);
|
||||||
|
} else if (path && len > 8 && !strcmp (path + len - 8, ".tar.bz2")) {
|
||||||
|
filename = g_shell_quote (path);
|
||||||
|
command = g_strdup_printf ("sh -c '/usr/bin/bzip2 -d -c < \"%s\" | /bin/tar ft - | head -1'",
|
||||||
|
filename);
|
||||||
|
theme_props->filetype=TARBZ;
|
||||||
|
g_free (filename);
|
||||||
|
} else {
|
||||||
dialog = gtk_message_dialog_new (NULL,
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
GTK_DIALOG_MODAL,
|
GTK_DIALOG_MODAL,
|
||||||
GTK_MESSAGE_ERROR,
|
GTK_MESSAGE_ERROR,
|
||||||
GTK_BUTTONS_OK,
|
GTK_BUTTONS_OK,
|
||||||
_("This theme is not in a supported format."));
|
_("This theme is not in a supported format."));
|
||||||
gtk_dialog_run (GTK_DIALOG (dialog));
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
gtk_widget_destroy (dialog);
|
gtk_widget_destroy (dialog);
|
||||||
gnome_vfs_unlink (path);
|
gnome_vfs_unlink(path);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((gnome_vfs_make_directory(theme_props->target_tmp_dir,0700)) != GNOME_VFS_OK) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("Failed to create temporal directory"));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Uncompress the file in the temp directory */
|
||||||
|
theme_props->filename=g_strdup(path);
|
||||||
|
|
||||||
|
if (theme_props->filetype == TARBZ ) {
|
||||||
|
if (!g_file_test ("/usr/bin/bzip2", G_FILE_TEST_EXISTS)) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("Can not install theme. \nThere are not bzip2 utility in the system."));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
gnome_vfs_unlink(path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!transfer_done_tarbz2_idle_cb(theme_props)) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("Installation Failed"));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
cleanup_tmp_dir (theme_props);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (theme_props->filetype == TARGZ ) {
|
||||||
|
if (!g_file_test ("/bin/gzip", G_FILE_TEST_EXISTS)) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("Can not install themes. \nThere are not gzip utility in the system."));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
gnome_vfs_unlink(path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!transfer_done_targz_idle_cb(theme_props)) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("Installation Failed"));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
cleanup_tmp_dir (theme_props);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* What type of theme it is ? */
|
||||||
|
if (g_spawn_command_line_sync (command, &first_line, NULL, &status, NULL) && status == 0) {
|
||||||
|
dir = g_strsplit(g_strchomp(first_line),"/",0);
|
||||||
|
theme_props->theme_tmp_dir=g_strdup(g_build_filename(theme_props->target_tmp_dir,dir[0],NULL));
|
||||||
|
|
||||||
|
theme_type = file_theme_type(theme_props->theme_tmp_dir);
|
||||||
|
gnome_vfs_unlink (theme_props->filename);
|
||||||
|
if (theme_type == THEME_ICON) {
|
||||||
|
theme_props->target_dir=g_strdup_printf("%s/.icons/%s",g_get_home_dir(),dir[0]);
|
||||||
|
theme_props->user_message=g_strdup_printf(_("Icon Theme %s correctly installed.\nYou can select it in the theme details."),dir[0]);
|
||||||
|
} else if (theme_type == THEME_GNOME) {
|
||||||
|
theme_props->target_dir = g_strdup_printf("%s/.themes/%s",g_get_home_dir(),dir[0]);
|
||||||
|
theme_props->user_message=g_strdup_printf(_("Gnome Theme %s correctly installed"),dir[0]);
|
||||||
|
} else if (theme_type == THEME_METACITY) {
|
||||||
|
theme_props->target_dir = g_strdup_printf("%s/.themes/%s",g_get_home_dir(),dir[0]);
|
||||||
|
theme_props->user_message=g_strdup_printf(_("Windows Border Theme %s correctly installed.\nYou can select it in the theme details."),dir[0]);
|
||||||
|
} else if (theme_type == THEME_GTK) {
|
||||||
|
theme_props->target_dir = g_strdup_printf("%s/.themes/%s",g_get_home_dir(),dir[0]);
|
||||||
|
theme_props->user_message=g_strdup_printf(_("Controls Theme %s correctly installed.\nYou can select it in the theme details."),dir[0]);
|
||||||
|
} else if (theme_type == THEME_ENGINE) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("The theme is a engine. You need to compile the theme."));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
cleanup_tmp_dir(theme_props);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("The file format is invalid"));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/* Move the Dir to the target dir */
|
||||||
|
theme_source_dir = gnome_vfs_uri_new (theme_props->theme_tmp_dir);
|
||||||
|
theme_dest_dir = gnome_vfs_uri_new (theme_props->target_dir);
|
||||||
|
|
||||||
|
if (gnome_vfs_xfer_uri (theme_source_dir,theme_dest_dir,
|
||||||
|
GNOME_VFS_XFER_DELETE_ITEMS | GNOME_VFS_XFER_RECURSIVE | GNOME_VFS_XFER_REMOVESOURCE,
|
||||||
|
GNOME_VFS_XFER_ERROR_MODE_ABORT,
|
||||||
|
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
|
||||||
|
NULL,NULL) != GNOME_VFS_OK) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("Installation Failed"));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
cleanup_tmp_dir(theme_props);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_INFO,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
theme_props->user_message );
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
cleanup_tmp_dir (theme_props);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
g_free(theme_props);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -183,17 +451,23 @@ install_dialog_response (GtkWidget *widget, int response_id, gpointer data)
|
||||||
gchar *file_tmp;
|
gchar *file_tmp;
|
||||||
int len = strlen (base);
|
int len = strlen (base);
|
||||||
|
|
||||||
if (base && len > 7 && !strcmp (base + len - 7, ".tar.gz"))
|
if (base && len > 7 && ( (!strcmp (base + len - 7, ".tar.gz")) || (!strcmp (base + len - 4, ".tgz")) ))
|
||||||
file_tmp = g_strdup_printf("gnome-theme-%d.tar.gz", rand ());
|
file_tmp = g_strdup_printf("gnome-theme-%d.tar.gz", rand ());
|
||||||
else if (base && len > 8 && !strcmp (base + len - 8, ".tar.bz2"))
|
else if (base && len > 8 && !strcmp (base + len - 8, ".tar.bz2"))
|
||||||
file_tmp = g_strdup_printf("gnome-theme-%d.tar.bz2", rand ());
|
file_tmp = g_strdup_printf("gnome-theme-%d.tar.bz2", rand ());
|
||||||
else
|
else {
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("The file format is invalid."));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
gnome_vfs_unlink(path);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (icon_theme)
|
path = g_build_filename (g_get_home_dir (), ".themes", file_tmp, NULL);
|
||||||
path = g_build_filename (g_get_home_dir (), ".icons", file_tmp, NULL);
|
|
||||||
else
|
|
||||||
path = g_build_filename (g_get_home_dir (), ".themes", file_tmp, NULL);
|
|
||||||
|
|
||||||
g_free(file_tmp);
|
g_free(file_tmp);
|
||||||
if (!gnome_vfs_uri_exists (gnome_vfs_uri_new (path)))
|
if (!gnome_vfs_uri_exists (gnome_vfs_uri_new (path)))
|
||||||
|
@ -248,7 +522,7 @@ install_dialog_response (GtkWidget *widget, int response_id, gpointer data)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gnome_theme_installer_run (GtkWidget *parent, gchar *filename, gboolean icon_theme)
|
gnome_theme_installer_run (GtkWidget *parent, gchar *filename)
|
||||||
{
|
{
|
||||||
static gboolean running_theme_install = FALSE;
|
static gboolean running_theme_install = FALSE;
|
||||||
GladeXML *dialog;
|
GladeXML *dialog;
|
||||||
|
@ -259,10 +533,22 @@ gnome_theme_installer_run (GtkWidget *parent, gchar *filename, gboolean icon_the
|
||||||
|
|
||||||
running_theme_install = TRUE;
|
running_theme_install = TRUE;
|
||||||
|
|
||||||
|
if (!g_file_test ("/bin/tar", G_FILE_TEST_EXISTS)) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
|
||||||
|
dialog = gtk_message_dialog_new (NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_OK,
|
||||||
|
_("Cannot install theme.\nThe tar program is not installed on your system."));
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
dialog = glade_xml_new (GLADEDIR "/theme-install.glade", NULL, NULL);
|
dialog = glade_xml_new (GLADEDIR "/theme-install.glade", NULL, NULL);
|
||||||
widget = WID ("install_dialog");
|
widget = WID ("install_dialog");
|
||||||
|
|
||||||
g_object_set_data (G_OBJECT (widget), "icon_theme", GINT_TO_POINTER (icon_theme));
|
|
||||||
g_signal_connect (G_OBJECT (widget), "response", G_CALLBACK (install_dialog_response), dialog);
|
g_signal_connect (G_OBJECT (widget), "response", G_CALLBACK (install_dialog_response), dialog);
|
||||||
gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (parent));
|
gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (parent));
|
||||||
gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ON_PARENT);
|
gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ON_PARENT);
|
||||||
|
|
|
@ -24,6 +24,6 @@
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
void gnome_theme_installer_run (GtkWidget *parent, gchar *filename, gboolean icon_theme);
|
void gnome_theme_installer_run (GtkWidget *parent, gchar *filename);
|
||||||
|
|
||||||
#endif /* GNOME_THEME_INSTALLER_H */
|
#endif /* GNOME_THEME_INSTALLER_H */
|
||||||
|
|
|
@ -1070,7 +1070,7 @@ static void
|
||||||
gnome_meta_theme_installer_run_cb (GtkWidget *button,
|
gnome_meta_theme_installer_run_cb (GtkWidget *button,
|
||||||
GtkWidget *parent_window)
|
GtkWidget *parent_window)
|
||||||
{
|
{
|
||||||
gnome_theme_installer_run (parent_window, NULL, FALSE);
|
gnome_theme_installer_run (parent_window, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1388,7 +1388,7 @@ gnome_theme_manager_drag_data_received_cb (GtkWidget *widget, GdkDragContext *co
|
||||||
gnome_vfs_uri_list_unref (uris);
|
gnome_vfs_uri_list_unref (uris);
|
||||||
}
|
}
|
||||||
|
|
||||||
gnome_theme_installer_run (widget, filename, FALSE);
|
gnome_theme_installer_run (widget, filename);
|
||||||
g_free (filename);
|
g_free (filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,11 @@
|
||||||
<property name="modal">False</property>
|
<property name="modal">False</property>
|
||||||
<property name="resizable">True</property>
|
<property name="resizable">True</property>
|
||||||
<property name="destroy_with_parent">False</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
|
<property name="decorated">True</property>
|
||||||
|
<property name="skip_taskbar_hint">False</property>
|
||||||
|
<property name="skip_pager_hint">False</property>
|
||||||
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
|
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
|
@ -33,6 +38,7 @@
|
||||||
<property name="label">gtk-help</property>
|
<property name="label">gtk-help</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
<property name="response_id">-11</property>
|
<property name="response_id">-11</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
@ -44,6 +50,7 @@
|
||||||
<property name="label">gtk-close</property>
|
<property name="label">gtk-close</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
<property name="response_id">-7</property>
|
<property name="response_id">-7</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
@ -112,6 +119,7 @@
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkAlignment" id="alignment8">
|
<widget class="GtkAlignment" id="alignment8">
|
||||||
|
@ -120,6 +128,10 @@
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xscale">0</property>
|
<property name="xscale">0</property>
|
||||||
<property name="yscale">0</property>
|
<property name="yscale">0</property>
|
||||||
|
<property name="top_padding">0</property>
|
||||||
|
<property name="bottom_padding">0</property>
|
||||||
|
<property name="left_padding">0</property>
|
||||||
|
<property name="right_padding">0</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox15">
|
<widget class="GtkHBox" id="hbox15">
|
||||||
|
@ -181,6 +193,7 @@
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkAlignment" id="alignment7">
|
<widget class="GtkAlignment" id="alignment7">
|
||||||
|
@ -189,6 +202,10 @@
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xscale">0</property>
|
<property name="xscale">0</property>
|
||||||
<property name="yscale">0</property>
|
<property name="yscale">0</property>
|
||||||
|
<property name="top_padding">0</property>
|
||||||
|
<property name="bottom_padding">0</property>
|
||||||
|
<property name="left_padding">0</property>
|
||||||
|
<property name="right_padding">0</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox14">
|
<widget class="GtkHBox" id="hbox14">
|
||||||
|
@ -250,6 +267,7 @@
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkAlignment" id="alignment9">
|
<widget class="GtkAlignment" id="alignment9">
|
||||||
|
@ -258,6 +276,10 @@
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xscale">0</property>
|
<property name="xscale">0</property>
|
||||||
<property name="yscale">0</property>
|
<property name="yscale">0</property>
|
||||||
|
<property name="top_padding">0</property>
|
||||||
|
<property name="bottom_padding">0</property>
|
||||||
|
<property name="left_padding">0</property>
|
||||||
|
<property name="right_padding">0</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox16">
|
<widget class="GtkHBox" id="hbox16">
|
||||||
|
@ -328,6 +350,10 @@
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xscale">0</property>
|
<property name="xscale">0</property>
|
||||||
<property name="yscale">0</property>
|
<property name="yscale">0</property>
|
||||||
|
<property name="top_padding">0</property>
|
||||||
|
<property name="bottom_padding">0</property>
|
||||||
|
<property name="left_padding">0</property>
|
||||||
|
<property name="right_padding">0</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox26">
|
<widget class="GtkHBox" id="hbox26">
|
||||||
|
@ -480,6 +506,7 @@
|
||||||
<property name="label" translatable="yes">Apply _Font</property>
|
<property name="label" translatable="yes">Apply _Font</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
|
@ -547,6 +574,7 @@
|
||||||
<property name="label" translatable="yes">Apply _Background</property>
|
<property name="label" translatable="yes">Apply _Background</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
|
@ -614,6 +642,7 @@
|
||||||
<property name="label" translatable="yes">Apply _Font</property>
|
<property name="label" translatable="yes">Apply _Font</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
|
@ -629,6 +658,7 @@
|
||||||
<property name="label" translatable="yes">Apply _Background</property>
|
<property name="label" translatable="yes">Apply _Background</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
|
@ -687,6 +717,11 @@
|
||||||
<property name="modal">False</property>
|
<property name="modal">False</property>
|
||||||
<property name="resizable">True</property>
|
<property name="resizable">True</property>
|
||||||
<property name="destroy_with_parent">False</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
|
<property name="decorated">True</property>
|
||||||
|
<property name="skip_taskbar_hint">False</property>
|
||||||
|
<property name="skip_pager_hint">False</property>
|
||||||
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
|
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
|
@ -708,6 +743,7 @@
|
||||||
<property name="label">gtk-help</property>
|
<property name="label">gtk-help</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
<property name="response_id">-11</property>
|
<property name="response_id">-11</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
@ -719,6 +755,7 @@
|
||||||
<property name="label">gtk-close</property>
|
<property name="label">gtk-close</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
<property name="response_id">-7</property>
|
<property name="response_id">-7</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
@ -793,80 +830,12 @@
|
||||||
<property name="homogeneous">False</property>
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">6</property>
|
<property name="spacing">6</property>
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkButton" id="control_install_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkAlignment" id="alignment15">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xscale">0</property>
|
|
||||||
<property name="yscale">0</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkHBox" id="hbox22">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="homogeneous">False</property>
|
|
||||||
<property name="spacing">2</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkImage" id="image14">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="stock">gtk-add</property>
|
|
||||||
<property name="icon_size">4</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xpad">0</property>
|
|
||||||
<property name="ypad">0</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkLabel" id="label49">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_Install Theme...</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="use_markup">False</property>
|
|
||||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
||||||
<property name="wrap">False</property>
|
|
||||||
<property name="selectable">False</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xpad">0</property>
|
|
||||||
<property name="ypad">0</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="control_manage_button">
|
<widget class="GtkButton" id="control_manage_button">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkAlignment" id="alignment14">
|
<widget class="GtkAlignment" id="alignment14">
|
||||||
|
@ -875,6 +844,10 @@
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xscale">0</property>
|
<property name="xscale">0</property>
|
||||||
<property name="yscale">0</property>
|
<property name="yscale">0</property>
|
||||||
|
<property name="top_padding">0</property>
|
||||||
|
<property name="bottom_padding">0</property>
|
||||||
|
<property name="left_padding">0</property>
|
||||||
|
<property name="right_padding">0</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox21">
|
<widget class="GtkHBox" id="hbox21">
|
||||||
|
@ -1070,80 +1043,12 @@
|
||||||
<property name="homogeneous">False</property>
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">6</property>
|
<property name="spacing">6</property>
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkButton" id="window_install_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkAlignment" id="alignment10">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xscale">0</property>
|
|
||||||
<property name="yscale">0</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkHBox" id="hbox17">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="homogeneous">False</property>
|
|
||||||
<property name="spacing">2</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkImage" id="image9">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="stock">gtk-add</property>
|
|
||||||
<property name="icon_size">4</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xpad">0</property>
|
|
||||||
<property name="ypad">0</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkLabel" id="label44">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_Install Theme...</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="use_markup">False</property>
|
|
||||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
||||||
<property name="wrap">False</property>
|
|
||||||
<property name="selectable">False</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xpad">0</property>
|
|
||||||
<property name="ypad">0</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="window_manage_button">
|
<widget class="GtkButton" id="window_manage_button">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkAlignment" id="alignment11">
|
<widget class="GtkAlignment" id="alignment11">
|
||||||
|
@ -1152,6 +1057,10 @@
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xscale">0</property>
|
<property name="xscale">0</property>
|
||||||
<property name="yscale">0</property>
|
<property name="yscale">0</property>
|
||||||
|
<property name="top_padding">0</property>
|
||||||
|
<property name="bottom_padding">0</property>
|
||||||
|
<property name="left_padding">0</property>
|
||||||
|
<property name="right_padding">0</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox18">
|
<widget class="GtkHBox" id="hbox18">
|
||||||
|
@ -1347,80 +1256,12 @@
|
||||||
<property name="homogeneous">False</property>
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">6</property>
|
<property name="spacing">6</property>
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkButton" id="icon_install_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkAlignment" id="alignment12">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xscale">0</property>
|
|
||||||
<property name="yscale">0</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkHBox" id="hbox19">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="homogeneous">False</property>
|
|
||||||
<property name="spacing">2</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkImage" id="image11">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="stock">gtk-add</property>
|
|
||||||
<property name="icon_size">4</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xpad">0</property>
|
|
||||||
<property name="ypad">0</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<widget class="GtkLabel" id="label46">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_Install Theme...</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="use_markup">False</property>
|
|
||||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
||||||
<property name="wrap">False</property>
|
|
||||||
<property name="selectable">False</property>
|
|
||||||
<property name="xalign">0.5</property>
|
|
||||||
<property name="yalign">0.5</property>
|
|
||||||
<property name="xpad">0</property>
|
|
||||||
<property name="ypad">0</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="padding">0</property>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="icon_manage_button">
|
<widget class="GtkButton" id="icon_manage_button">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkAlignment" id="alignment13">
|
<widget class="GtkAlignment" id="alignment13">
|
||||||
|
@ -1429,6 +1270,10 @@
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xscale">0</property>
|
<property name="xscale">0</property>
|
||||||
<property name="yscale">0</property>
|
<property name="yscale">0</property>
|
||||||
|
<property name="top_padding">0</property>
|
||||||
|
<property name="bottom_padding">0</property>
|
||||||
|
<property name="left_padding">0</property>
|
||||||
|
<property name="right_padding">0</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox20">
|
<widget class="GtkHBox" id="hbox20">
|
||||||
|
@ -1593,6 +1438,11 @@
|
||||||
<property name="modal">True</property>
|
<property name="modal">True</property>
|
||||||
<property name="resizable">True</property>
|
<property name="resizable">True</property>
|
||||||
<property name="destroy_with_parent">False</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
|
<property name="decorated">True</property>
|
||||||
|
<property name="skip_taskbar_hint">False</property>
|
||||||
|
<property name="skip_pager_hint">False</property>
|
||||||
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
|
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
|
@ -1614,6 +1464,7 @@
|
||||||
<property name="label">gtk-cancel</property>
|
<property name="label">gtk-cancel</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
<property name="response_id">-6</property>
|
<property name="response_id">-6</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
@ -1627,6 +1478,7 @@
|
||||||
<property name="label">gtk-save</property>
|
<property name="label">gtk-save</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
<property name="response_id">-5</property>
|
<property name="response_id">-5</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
@ -1759,6 +1611,8 @@
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="editable">True</property>
|
<property name="editable">True</property>
|
||||||
|
<property name="overwrite">False</property>
|
||||||
|
<property name="accepts_tab">True</property>
|
||||||
<property name="justification">GTK_JUSTIFY_LEFT</property>
|
<property name="justification">GTK_JUSTIFY_LEFT</property>
|
||||||
<property name="wrap_mode">GTK_WRAP_WORD</property>
|
<property name="wrap_mode">GTK_WRAP_WORD</property>
|
||||||
<property name="cursor_visible">True</property>
|
<property name="cursor_visible">True</property>
|
||||||
|
|
Loading…
Add table
Reference in a new issue