Author: stephan
Date: 2006-11-22 08:16:37 +0000 (Wed, 22 Nov 2006)
New Revision: 23929
Modified:
xarchiver/branches/xarchiver-psybsd/Makefile.am
xarchiver/branches/xarchiver-psybsd/TODO
xarchiver/branches/xarchiver-psybsd/configure.in.in
xarchiver/branches/xarchiver-psybsd/libxarchiver/Makefile.am
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-unrar.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-zip.c
xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c
xarchiver/branches/xarchiver-psybsd/po/nl.po
xarchiver/branches/xarchiver-psybsd/src/add_dialog.c
xarchiver/branches/xarchiver-psybsd/src/add_dialog.h
xarchiver/branches/xarchiver-psybsd/src/notebook.c
Log:
Made strings for column-headers make more sense.
Fixed make-dist
Modified: xarchiver/branches/xarchiver-psybsd/Makefile.am
===================================================================
--- xarchiver/branches/xarchiver-psybsd/Makefile.am 2006-11-22 07:41:29 UTC
(rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/Makefile.am 2006-11-22 08:16:37 UTC
(rev 23929)
@@ -20,6 +20,7 @@
intltool-merge.in \
intltool-update.in \
xarchiver.tap \
+ gettext.h \
$(desktop_in_files) \
$(wrapper_DATA)
Modified: xarchiver/branches/xarchiver-psybsd/TODO
===================================================================
--- xarchiver/branches/xarchiver-psybsd/TODO 2006-11-22 07:41:29 UTC (rev
23928)
+++ xarchiver/branches/xarchiver-psybsd/TODO 2006-11-22 08:16:37 UTC (rev
23929)
@@ -59,4 +59,14 @@
Support CustomActionProperties (custom-actions which require additional
arguments and configuration)
+ An Archive can only be opened once
+
+
+
... Complete TODO-file
+
+BUGS:
+
+ ArchiveStore gets deleted when close button is pressed, archive remains
and sends signal when refreshed .
+
+ Archive does not get freed properly. (mem usage keeps growing when
opening and closing same archive)
Modified: xarchiver/branches/xarchiver-psybsd/configure.in.in
===================================================================
--- xarchiver/branches/xarchiver-psybsd/configure.in.in 2006-11-22 07:41:29 UTC
(rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/configure.in.in 2006-11-22 08:16:37 UTC
(rev 23929)
@@ -45,7 +45,7 @@
dnl check for standard header files
AC_PROG_CC
-AC_PROG_RANLIB
+AC_PROG_LIBTOOL
AC_PROG_INTLTOOL([0.31], [no-xml])
AC_HEADER_STDC
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/Makefile.am
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/Makefile.am
2006-11-22 07:41:29 UTC (rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/Makefile.am
2006-11-22 08:16:37 UTC (rev 23929)
@@ -1,8 +1,8 @@
-noinst_LIBRARIES = libxarchiver.a
+lib_LTLIBRARIES = libxarchiver-1.la
-libxarchiver_a_SOURCES = \
- libxarchiver.c libxarchiver.h \
+libxarchiver_1_la_SOURCES = \
internals.c internals.h \
+ libxarchiver.c libxarchiver.h \
mime.c mime.h \
slist.c slist.h \
archive.c archive.h \
@@ -10,10 +10,10 @@
archive-support-zip.c archive-support-zip.h \
archive-support-gnu-tar.c archive-support-gnu-tar.h
-libxarchiver_a_CFLAGS = \
+libxarchiver_1_la_CFLAGS = \
$(GLIB_CFLAGS) \
$(THUNAR_VFS_CFLAGS)
-libxarchiver_a_LIBADD =
+libxarchiver_1_la_LIBADD =
libxarchiver_includedir= \
$(includedir)/libxarchiver
Modified:
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
2006-11-22 07:41:29 UTC (rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
2006-11-22 08:16:37 UTC (rev 23929)
@@ -160,14 +160,14 @@
pspec = g_param_spec_boolean("extract-touch",
_("Touch files"),
- "Touch files",
+ _("Touch files"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_GNU_TAR_EXTRACT_TOUCH, pspec);
pspec = g_param_spec_uint("extract-strip",
_("Strip directories"),
- "Strip directories",
+ _("Strip directories"),
0,
128,
0,
@@ -183,7 +183,7 @@
pspec = g_param_spec_string("add-mode",
_("Override permissions"),
- "Override permissions",
+ _("Override permissions"),
"",
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_GNU_TAR_ADD_MODE, pspec);
@@ -197,28 +197,28 @@
pspec = g_param_spec_boolean("view-rights",
_("Permissions"),
- "View permissions",
+ _("View permissions"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_GNU_TAR_VIEW_RIGHTS, pspec);
pspec = g_param_spec_boolean("view-owner",
_("Owner/Group"),
- "View owner",
+ _("View owner/group"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_GNU_TAR_VIEW_OWNER, pspec);
pspec = g_param_spec_boolean("view-date",
_("Date"),
- "View date",
+ _("View date"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_GNU_TAR_VIEW_DATE, pspec);
pspec = g_param_spec_boolean("view-time",
_("Time"),
- "View time",
+ _("View time"),
TRUE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_GNU_TAR_VIEW_TIME, pspec);
Modified:
xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-unrar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-unrar.c
2006-11-22 07:41:29 UTC (rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-unrar.c
2006-11-22 08:16:37 UTC (rev 23929)
@@ -9,28 +9,64 @@
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Libunrary General Public License for more details.
+ * GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <config.h>
+#include <string.h>
#include <glib.h>
#include <glib-object.h>
-#include <thunar-vfs/thunar-vfs.h>
+#include <gettext.h>
+#include "mime.h"
#include "archive.h"
#include "archive-support.h"
#include "archive-support-unrar.h"
#include "internals.h"
-void
+#define XA_TEST_ACTION_ICON "gtk-index"
+
+enum
+{
+ LXA_ARCHIVE_SUPPORT_UNRAR_EXTRACT_OVERWRITE = 1,
+ LXA_ARCHIVE_SUPPORT_UNRAR_ADD_COMPRESSION_LEVEL,
+ LXA_ARCHIVE_SUPPORT_UNRAR_PASSWORD,
+
+ LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_SIZE,
+ LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_COMPRESSED,
+ LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_DATE,
+ LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_TIME,
+ LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_RATIO,
+ LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_METHOD,
+ LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_CHECKSUM,
+ LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_VERSION
+};
+
+static void
lxa_archive_support_unrar_init(LXAArchiveSupportUnrar *support);
-void
+static void
lxa_archive_support_unrar_class_init(LXAArchiveSupportUnrarClass
*supportclass);
+gboolean
+lxa_archive_support_unrar_refresh_parse_output(GIOChannel *ioc, GIOCondition
cond, gpointer data);
+
+static void
+lxa_archive_support_unrar_set_property(GObject *object, guint prop_id, const
GValue *value, GParamSpec *pspec);
+static void
+lxa_archive_support_unrar_get_property(GObject *object, guint prop_id, GValue
*value, GParamSpec *pspec);
+
+static gint lxa_archive_support_unrar_add(LXAArchive *, GSList *);
+static gint lxa_archive_support_unrar_extract(LXAArchive *, gchar *, GSList *);
+static gint lxa_archive_support_unrar_remove(LXAArchive *, GSList *);
+static gint lxa_archive_support_unrar_refresh(LXAArchive *);
+
+static void lxa_archive_support_unrar_integrity_test(LXAArchiveSupport *,
LXAArchive *, gpointer);
+
GType
lxa_archive_support_unrar_get_type ()
{
@@ -56,45 +92,151 @@
return lxa_archive_support_unrar_type;
}
-void
+static void
lxa_archive_support_unrar_init(LXAArchiveSupportUnrar *support)
{
LXAArchiveSupport *archive_support = LXA_ARCHIVE_SUPPORT(support);
+ LXACustomAction *custom_action = NULL;
archive_support->id = "Unrar";
- lxa_archive_support_add_mime(archive_support, "application/x-rar");
+ lxa_archive_support_add_mime(archive_support, "application/unrar");
+ lxa_archive_support_add_mime(archive_support, "application/x-unrar");
+ archive_support->add = lxa_archive_support_unrar_add;
archive_support->extract = lxa_archive_support_unrar_extract;
archive_support->remove = lxa_archive_support_unrar_remove;
+ archive_support->refresh = lxa_archive_support_unrar_refresh;
+
+ custom_action = lxa_custom_action_new("menu-test",
+ _("Test"),
+
/*
TRANSATORS: first line is short comment, after newline is long comment */
+
_("Test
archive integrity\nTest the integrity of the archive"),
+
XA_TEST_ACTION_ICON,
+
lxa_archive_support_unrar_integrity_test,
+
archive_support,
+
NULL);
}
-void
+static void
lxa_archive_support_unrar_class_init(LXAArchiveSupportUnrarClass *supportclass)
{
- /*
- GObjectClass *gobject_class = G_OBJECT_CLASS (supportclass);
- LXAArchiveSupportUnrarClass *klass = LXA_ARCHIVE_SUPPORT_UNRAR_CLASS
(supportclass);
- */
+ GObjectClass *object_class = G_OBJECT_CLASS (supportclass);
+ GParamSpec *pspec = NULL;
+
+ object_class->set_property = lxa_archive_support_unrar_set_property;
+ object_class->get_property = lxa_archive_support_unrar_get_property;
+
+ pspec = g_param_spec_string("extract-password",
+ _("Password"),
+ _("Password"),
+ "",
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_PASSWORD, pspec);
+
+ pspec = g_param_spec_boolean("extract-overwrite",
+ _("Overwrite existing files"),
+ _("Overwrite existing files on extraction"),
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_EXTRACT_OVERWRITE, pspec);
+
+ pspec = g_param_spec_boolean("view-size",
+ _("Filesize"),
+ _("View filesize"),
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_SIZE, pspec);
+
+ pspec = g_param_spec_boolean("view-time",
+ _("Time"),
+ _("View time"),
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_TIME, pspec);
+
+ pspec = g_param_spec_boolean("view-date",
+ _("Date"),
+ _("View date"),
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_DATE, pspec);
+
+ pspec = g_param_spec_boolean("view-ratio",
+ _("Ratio"),
+ _("View ratio"),
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_RATIO, pspec);
+
+ pspec = g_param_spec_boolean("view-length",
+ _("Length"),
+ _("View length"),
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_LENGTH, pspec);
+
+ pspec = g_param_spec_boolean("view-method",
+ _("Method"),
+ _("View method"),
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_METHOD, pspec);
+
+ pspec = g_param_spec_boolean("view-crc32",
+ _("CRC-32"),
+ _("View CRC-32"),
+ FALSE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_CRC_32, pspec);
}
LXAArchiveSupport*
lxa_archive_support_unrar_new()
{
- LXAArchiveSupportUnrar *support = NULL;
+ LXAArchiveSupportUnrar *support;
- gchar *abs_path = g_find_program_in_path("unrar");
- if(abs_path)
- {
- support = g_object_new(LXA_TYPE_ARCHIVE_SUPPORT_UNRAR, NULL);
- LXA_FREE(abs_path);
- }
+ support = g_object_new(LXA_TYPE_ARCHIVE_SUPPORT_UNRAR,
+
"view-length", TRUE,
+ "view-size", TRUE,
+
"view-time", TRUE,
+
"view-date", TRUE,
+
"view-ratio", TRUE,
+
"view-crc32", TRUE,
+
"view-method", TRUE,
+
NULL);
return LXA_ARCHIVE_SUPPORT(support);
}
+static gint
+lxa_archive_support_unrar_add(LXAArchive *archive, GSList *filenames)
+{
+ if(!LXA_IS_ARCHIVE_SUPPORT_UNRAR(archive->support))
+ {
+ g_critical("Support is not unrar");
+ return -1;
+ }
-gint
+ if(!lxa_archive_support_mime_supported(archive->support,
lxa_mime_info_get_name(archive->mime_info)))
+ {
+ return 1;
+ }
+ else
+ {
+ gchar *command = NULL;
+ gchar *files = lxa_concat_filenames(filenames);
+ if(!g_strcasecmp((gchar
*)lxa_mime_info_get_name(archive->mime_info), "application/x-unrar") ||
+ !g_strcasecmp((gchar
*)lxa_mime_info_get_name(archive->mime_info), "application/unrar"))
+ {
+ command = g_strconcat("unrar -r ", archive->path, " ",
files, NULL);
+ lxa_execute(command, archive, NULL, NULL, NULL, NULL);
+ }
+ }
+ return 0;
+}
+
+static gint
lxa_archive_support_unrar_extract(LXAArchive *archive, gchar *dest_path,
GSList *filenames)
{
if(!LXA_IS_ARCHIVE_SUPPORT_UNRAR(archive->support))
@@ -103,7 +245,7 @@
return -1;
}
- if(!lxa_archive_support_mime_supported(archive->support, archive->mime))
+ if(!lxa_archive_support_mime_supported(archive->support,
lxa_mime_info_get_name(archive->mime_info)))
{
return 1;
}
@@ -113,12 +255,13 @@
gchar *files = lxa_concat_filenames(filenames);
if(g_file_test(archive->path, G_FILE_TEST_EXISTS))
{
- if(!g_strcasecmp((gchar *)archive->mime,
"application/x-rar"))
+ if(!g_strcasecmp((gchar
*)lxa_mime_info_get_name(archive->mime_info), "application/x-unrar") ||
+ !g_strcasecmp((gchar
*)lxa_mime_info_get_name(archive->mime_info), "application/unrar"))
{
- /* TODO: Fix commandline issues
- command = g_strconcat("unrar x -o+ -idp ",
archive->path, " ", files, " ", dest_path, " ", NULL);
- */
+ command = g_strconcat("ununrar -o ",
archive->path, " ", files, " -d ", dest_path, NULL);
+#ifdef DEBUG
g_debug("Extracting archive '%s' to '%s'",
archive->path, dest_path);
+#endif /* DEBUG */
lxa_execute(command, archive, NULL, NULL, NULL,
NULL);
}
} else
@@ -127,7 +270,7 @@
return 0;
}
-gint
+static gint
lxa_archive_support_unrar_remove(LXAArchive *archive, GSList *filenames)
{
if(!LXA_IS_ARCHIVE_SUPPORT_UNRAR(archive->support))
@@ -136,7 +279,7 @@
return -1;
}
- if(!lxa_archive_support_mime_supported(archive->support, archive->mime))
+ if(!lxa_archive_support_mime_supported(archive->support,
lxa_mime_info_get_name(archive->mime_info)))
{
return 1;
}
@@ -144,13 +287,290 @@
{
gchar *command = NULL;
gchar *files = lxa_concat_filenames(filenames);
- if(!g_strcasecmp((gchar *)archive->mime, "application/x-rar"))
+ if(!g_strcasecmp((gchar
*)lxa_mime_info_get_name(archive->mime_info), "application/x-unrar") ||
+ !g_strcasecmp((gchar
*)lxa_mime_info_get_name(archive->mime_info), "application/unrar"))
{
- /* TODO: Fix commandline issues
command = g_strconcat("unrar -d ", archive->path, " ",
files, NULL);
- */
lxa_execute(command, archive, NULL, NULL, NULL, NULL);
}
}
return 0;
}
+
+static gint
+lxa_archive_support_unrar_refresh(LXAArchive *archive)
+{
+ guint i = 0;
+ if(!LXA_IS_ARCHIVE_SUPPORT_UNRAR(archive->support))
+ {
+ g_critical("Support is not Unrar");
+ return -1;
+ }
+
+ if(!lxa_archive_support_mime_supported(archive->support,
lxa_mime_info_get_name(archive->mime_info)))
+ {
+ return 1;
+ }
+ else
+ {
+ i = LXA_ARCHIVE_PROP_USER;
+ if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_length) {
+ lxa_archive_set_property_type(archive, i,
G_TYPE_UINT64, _("Length"));
+ i++;
+ }
+ if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_method) {
+ lxa_archive_set_property_type(archive, i,
G_TYPE_STRING,_("Method"));
+ i++;
+ }
+ if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_size) {
+ lxa_archive_set_property_type(archive, i,
G_TYPE_UINT64, _("Size"));
+ i++;
+ }
+ if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_ratio) {
+ lxa_archive_set_property_type(archive, i,
G_TYPE_STRING, _("Ratio"));
+ i++;
+ }
+ if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_date) {
+ lxa_archive_set_property_type(archive, i,
G_TYPE_STRING, _("Date"));
+ i++;
+ }
+ if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_time) {
+ lxa_archive_set_property_type(archive, i,
G_TYPE_STRING, _("Time"));
+ i++;
+ }
+ if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_crc_32) {
+ lxa_archive_set_property_type(archive, i,
G_TYPE_STRING, _("CRC-32"));
+ i++;
+ }
+ gchar *command = g_strconcat("ununrar -lv -qq " ,
archive->path, NULL);
+ lxa_execute(command, archive, NULL, NULL,
lxa_archive_support_unrar_refresh_parse_output, NULL);
+ LXA_FREE(command);
+ }
+ return 0;
+}
+
+gboolean
+lxa_archive_support_unrar_refresh_parse_output(GIOChannel *ioc, GIOCondition
cond, gpointer data)
+{
+ GIOStatus status = G_IO_STATUS_NORMAL;
+ LXAArchive *archive = data;
+ gchar *line = NULL;
+ LXAEntry *entry;
+
+ guint64 size;
+ guint64 length;
+ gpointer props[8];
+ gint n = 0, a = 0, i = 0, o = 0;
+ gchar *temp_filename = NULL;
+ gint linesize = 0;
+
+ if(!LXA_IS_ARCHIVE(archive))
+ return FALSE;
+
+
+ if(cond & (G_IO_PRI | G_IO_IN))
+ {
+ for(o = 0; o < 500; o++)
+ {
+ i = 0;
+
+ status = g_io_channel_read_line(ioc, &line,
NULL,NULL,NULL);
+ if (line == NULL)
+ break;
+ /* length, method , size, ratio, date, time, crc-32,
filename*/
+ linesize = strlen(line);
+
+ for(n=0; n < linesize && line[n] == ' '; n++);
+ a = n;
+ for(; n < linesize && line[n] != ' '; n++);
+
+
if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_length)
+ {
+ line[n]='\0';
+ length = g_ascii_strtoull(line + a, NULL, 0);
+ props[i] = &length;
+ i++;
+ }
+ n++;
+
+ for(; n < linesize && line[n] == ' '; n++);
+ a = n;
+ for(; n < linesize && line[n] != ' '; n++);
+
+
if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_method)
+ {
+ line[n] = '\0';
+ props[i] = line + a;
+ i++;
+ }
+ n++;
+
+ for(; n < linesize && line[n] == ' '; n++);
+ a = n;
+ for(; n < linesize && line[n] != ' '; n++);
+
+
if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_size)
+ {
+ line[n]='\0';
+ size = g_ascii_strtoull(line + a, NULL, 0);
+ props[i] = &size;
+ i++;
+ }
+ n++;
+
+ for(; n < linesize && line[n] == ' '; n++);
+ a = n;
+ for(; n < linesize && line[n] != ' '; n++);
+
+
if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_ratio)
+ {
+ line[n] = '\0';
+ props[i] = line + a;
+ i++;
+ }
+ n++;
+
+ for(; n < linesize && line[n] == ' '; n++);
+ a = n;
+ for(; n < linesize && line[n] != ' '; n++);
+
+
if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_date)
+ {
+ line[n] = '\0';
+ props[i] = line + a;
+ i++;
+ }
+ n++;
+
+ for(; n < linesize && line[n] == ' '; n++);
+ a = n;
+ for(; n < linesize && line[n] != ' '; n++);
+
+
if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_time)
+ {
+ line[n] = '\0';
+ props[i] = line + a;
+ i++;
+ }
+ n++;
+
+ for(; n < linesize && line[n] == ' '; n++);
+ a = n;
+ for(; n < linesize && line[n] != ' '; n++);
+
+
if(LXA_ARCHIVE_SUPPORT_UNRAR(archive->support)->_view_crc_32)
+ {
+ line[n] = '\0';
+ props[i] = line + a;
+ i++;
+ }
+ n++;
+
+ for(; n < linesize && line[n] == ' '; n++);
+ temp_filename = g_strchomp(line+n);
+
+ entry = lxa_archive_add_file(archive, temp_filename);
+ lxa_archive_iter_set_propsv(archive, entry,
(gconstpointer*)props);
+ LXA_FREE(line);
+ }
+ }
+ if(cond & (G_IO_ERR | G_IO_HUP | G_IO_NVAL) )
+ {
+#ifdef DEBUG
+ g_debug("shutting down ioc");
+#endif
+ g_io_channel_shutdown ( ioc,TRUE,NULL );
+ g_io_channel_unref (ioc);
+ lxa_archive_set_status(archive, LXA_ARCHIVESTATUS_IDLE);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void
+lxa_archive_support_unrar_integrity_test(LXAArchiveSupport *support,
LXAArchive *archive, gpointer user_data)
+{
+#ifdef DEBUG
+ g_debug("Custom action %s called", __FUNCTION__);
+#endif /* DEBUG */
+}
+
+static void
+lxa_archive_support_unrar_get_property(GObject *object, guint prop_id, GValue
*value, GParamSpec *pspec)
+{
+ switch(prop_id)
+ {
+ case LXA_ARCHIVE_SUPPORT_UNRAR_EXTRACT_OVERWRITE:
+ g_value_set_boolean(value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_extr_overwrite);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_PASSWORD:
+ g_value_set_string (value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_extr_password);
+ break;
+
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_SIZE:
+ g_value_set_boolean(value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_size);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_DATE:
+ g_value_set_boolean(value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_date);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_TIME:
+ g_value_set_boolean(value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_time);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_RATIO:
+ g_value_set_boolean(value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_ratio);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_LENGTH:
+ g_value_set_boolean(value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_length);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_METHOD:
+ g_value_set_boolean(value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_method);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_CRC_32:
+ g_value_set_boolean(value,
LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_crc_32);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object,prop_id,pspec);
+ break;
+ }
+}
+
+static void
+lxa_archive_support_unrar_set_property(GObject *object, guint prop_id, const
GValue *value, GParamSpec *pspec)
+{
+ switch(prop_id)
+ {
+ case LXA_ARCHIVE_SUPPORT_UNRAR_EXTRACT_OVERWRITE:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_extr_overwrite =
g_value_get_boolean(value);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_PASSWORD:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_extr_password =
(gchar *)g_value_get_string(value);
+ break;
+
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_SIZE:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_size =
g_value_get_boolean(value);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_TIME:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_time =
g_value_get_boolean(value);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_DATE:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_date =
g_value_get_boolean(value);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_RATIO:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_ratio =
g_value_get_boolean(value);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_LENGTH:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_length =
g_value_get_boolean(value);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_METHOD:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_method =
g_value_get_boolean(value);
+ break;
+ case LXA_ARCHIVE_SUPPORT_UNRAR_VIEW_CRC_32:
+ LXA_ARCHIVE_SUPPORT_UNRAR(object)->_view_crc_32 =
g_value_get_boolean(value);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object,prop_id,pspec);
+ break;
+ }
+}
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-zip.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-zip.c
2006-11-22 07:41:29 UTC (rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-zip.c
2006-11-22 08:16:37 UTC (rev 23929)
@@ -108,7 +108,8 @@
archive_support->refresh = lxa_archive_support_zip_refresh;
custom_action = lxa_custom_action_new("menu-test",
- _("Test"),
+ _("Test"),
+
/*
TRANSATORS: first line is short comment, after newline is long comment */
_("Test
archive integrity\nTest the integrity of the archive"),
XA_TEST_ACTION_ICON,
lxa_archive_support_zip_integrity_test,
@@ -140,51 +141,51 @@
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_ZIP_EXTRACT_OVERWRITE, pspec);
- pspec = g_param_spec_boolean("view-size",
- "View file-size",
- "View file-size",
+ pspec = g_param_spec_boolean("view-compressed-size",
+ _("Compressed Filesize"),
+ _("View compressed filesize"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_ZIP_VIEW_SIZE, pspec);
pspec = g_param_spec_boolean("view-time",
- "View time",
- "View time",
+ _("Time"),
+ _("View time"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_ZIP_VIEW_TIME, pspec);
pspec = g_param_spec_boolean("view-date",
- "View date",
- "View date",
+ _("Date"),
+ _("View date"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_ZIP_VIEW_DATE, pspec);
pspec = g_param_spec_boolean("view-ratio",
- "View ratio",
- "View ratio",
+ _("Ratio"),
+ _("View ratio"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_ZIP_VIEW_RATIO, pspec);
- pspec = g_param_spec_boolean("view-length",
- "View length",
- "View length",
+ pspec = g_param_spec_boolean("view-compressed-size",
+ _("Filesize"),
+ _("View filesize"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_ZIP_VIEW_LENGTH, pspec);
pspec = g_param_spec_boolean("view-method",
- "View method",
- "View method",
+ _("Method"),
+ _("View method"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_ZIP_VIEW_METHOD, pspec);
pspec = g_param_spec_boolean("view-crc32",
- "View CRC-32",
- "View CRC-32",
+ _("Checksum"),
+ _("View Checksum"),
FALSE,
G_PARAM_READWRITE);
g_object_class_install_property(object_class,
LXA_ARCHIVE_SUPPORT_ZIP_VIEW_CRC_32, pspec);
@@ -196,8 +197,8 @@
LXAArchiveSupportZip *support;
support = g_object_new(LXA_TYPE_ARCHIVE_SUPPORT_ZIP,
-
"view-length", TRUE,
- "view-size", TRUE,
+
"view-uncompressed-size", TRUE,
+ "view-compressed-size", TRUE,
"view-time", TRUE,
"view-date", TRUE,
"view-ratio", TRUE,
@@ -258,7 +259,9 @@
!g_strcasecmp((gchar
*)lxa_mime_info_get_name(archive->mime_info), "application/zip"))
{
command = g_strconcat("unzip -o ",
archive->path, " ", files, " -d ", dest_path, NULL);
+#ifdef DEBUG
g_debug("Extracting archive '%s' to '%s'",
archive->path, dest_path);
+#endif /* DEBUG */
lxa_execute(command, archive, NULL, NULL, NULL,
NULL);
}
} else
@@ -312,7 +315,7 @@
{
i = LXA_ARCHIVE_PROP_USER;
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_length) {
- lxa_archive_set_property_type(archive, i,
G_TYPE_UINT64, _("Length"));
+ lxa_archive_set_property_type(archive, i,
G_TYPE_UINT64, _("Filesize"));
i++;
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_method) {
@@ -320,7 +323,7 @@
i++;
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_size) {
- lxa_archive_set_property_type(archive, i,
G_TYPE_UINT64, _("Size"));
+ lxa_archive_set_property_type(archive, i,
G_TYPE_UINT64, _("Compressed Filesize"));
i++;
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_ratio) {
@@ -336,7 +339,7 @@
i++;
}
if(LXA_ARCHIVE_SUPPORT_ZIP(archive->support)->_view_crc_32) {
- lxa_archive_set_property_type(archive, i,
G_TYPE_STRING, _("CRC-32"));
+ lxa_archive_set_property_type(archive, i,
G_TYPE_STRING, _("Checksum"));
i++;
}
gchar *command = g_strconcat("unzip -lv -qq " , archive->path,
NULL);
@@ -487,7 +490,9 @@
static void
lxa_archive_support_zip_integrity_test(LXAArchiveSupport *support, LXAArchive
*archive, gpointer user_data)
{
+#ifdef DEBUG
g_debug("Custom action %s called", __FUNCTION__);
+#endif /* DEBUG */
}
static void
Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c
2006-11-22 07:41:29 UTC (rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/libxarchiver.c
2006-11-22 08:16:37 UTC (rev 23929)
@@ -25,8 +25,6 @@
#include "libxarchiver.h"
#include "libxarchiver/archive-support-zip.h"
-#include "libxarchiver/archive-support-rar.h"
-#include "libxarchiver/archive-support-unrar.h"
#include "libxarchiver/archive-support-gnu-tar.h"
#include "internals.h"
Modified: xarchiver/branches/xarchiver-psybsd/po/nl.po
===================================================================
--- xarchiver/branches/xarchiver-psybsd/po/nl.po 2006-11-22 07:41:29 UTC
(rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/po/nl.po 2006-11-22 08:16:37 UTC
(rev 23929)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: xarchiver 0.3.9psybsd\n"
"Report-Msgid-Bugs-To: [EMAIL PROTECTED]"
-"POT-Creation-Date: 2006-11-20 18:28+0100\n"
+"POT-Creation-Date: 2006-11-22 08:52+0100\n"
"PO-Revision-Date: 2006-07-20 16:36+0200\n"
"Last-Translator: Stephan Arts <[EMAIL PROTECTED]>\n"
"Language-Team: Dutch <[EMAIL PROTECTED]>\n"
@@ -25,22 +25,25 @@
msgstr "Mime type"
#: ../libxarchiver/archive-support-gnu-tar.c:155
-#: ../libxarchiver/archive-support-zip.c:118
+#: ../libxarchiver/archive-support-zip.c:137
msgid "Overwrite existing files"
msgstr "Bestaande bestanden overschrijven"
#: ../libxarchiver/archive-support-gnu-tar.c:156
-#: ../libxarchiver/archive-support-zip.c:119
+#: ../libxarchiver/archive-support-zip.c:138
msgid "Overwrite existing files on extraction"
msgstr "Bestaande bestanden overschrijven tijdens uitpakken"
#: ../libxarchiver/archive-support-gnu-tar.c:162
+#: ../libxarchiver/archive-support-gnu-tar.c:163
msgid "Touch files"
msgstr "Bestanden aanraken"
#: ../libxarchiver/archive-support-gnu-tar.c:169
+#: ../libxarchiver/archive-support-gnu-tar.c:170
+#, fuzzy
msgid "Strip directories"
-msgstr ""
+msgstr "Mappen strippen"
#: ../libxarchiver/archive-support-gnu-tar.c:178
msgid "Keep newer files"
@@ -51,15 +54,19 @@
msgstr "Overschrijf geen bestanden die nieuwer zijn dan die in het archief"
#: ../libxarchiver/archive-support-gnu-tar.c:185
+#: ../libxarchiver/archive-support-gnu-tar.c:186
msgid "Override permissions"
msgstr "Overschrijf rechten"
#: ../libxarchiver/archive-support-gnu-tar.c:192
#: ../libxarchiver/archive-support-gnu-tar.c:478
+#: ../libxarchiver/archive-support-zip.c:172
+#: ../libxarchiver/archive-support-zip.c:317
msgid "Filesize"
msgstr "Bestandsgrootte"
#: ../libxarchiver/archive-support-gnu-tar.c:193
+#: ../libxarchiver/archive-support-zip.c:173
msgid "View filesize"
msgstr "Bestandsgrootte weergeven"
@@ -68,69 +75,118 @@
msgid "Permissions"
msgstr "Rechten"
+#: ../libxarchiver/archive-support-gnu-tar.c:200
+msgid "View permissions"
+msgstr "Rechten tonen"
+
#: ../libxarchiver/archive-support-gnu-tar.c:206
#: ../libxarchiver/archive-support-gnu-tar.c:474
msgid "Owner/Group"
msgstr "Eigenaar/Groep"
+#: ../libxarchiver/archive-support-gnu-tar.c:207
+msgid "View owner/group"
+msgstr "Eigenaar/Groep tonen"
+
#: ../libxarchiver/archive-support-gnu-tar.c:213
#: ../libxarchiver/archive-support-gnu-tar.c:482
-#: ../libxarchiver/archive-support-zip.c:313
+#: ../libxarchiver/archive-support-zip.c:158
+#: ../libxarchiver/archive-support-zip.c:333
msgid "Date"
msgstr "Datum"
+#: ../libxarchiver/archive-support-gnu-tar.c:214
+#: ../libxarchiver/archive-support-zip.c:159
+msgid "View date"
+msgstr "Datum tonen"
+
#: ../libxarchiver/archive-support-gnu-tar.c:220
#: ../libxarchiver/archive-support-gnu-tar.c:486
-#: ../libxarchiver/archive-support-zip.c:317
+#: ../libxarchiver/archive-support-zip.c:151
+#: ../libxarchiver/archive-support-zip.c:337
msgid "Time"
msgstr "Tijd"
+#: ../libxarchiver/archive-support-gnu-tar.c:221
+#: ../libxarchiver/archive-support-zip.c:152
+msgid "View time"
+msgstr "Tijd tonen"
+
#: ../libxarchiver/archive-support-zip.c:111
-#: ../libxarchiver/archive-support-zip.c:112
+msgid "Test"
+msgstr "Testen"
+
+#. TRANSATORS: first line is short comment, after newline is long comment
+#: ../libxarchiver/archive-support-zip.c:113
+msgid ""
+"Test archive integrity\n"
+"Test the integrity of the archive"
+msgstr ""
+"Test de archief-integriteit\n"
+"Test de integriteit van het archief"
+
+#: ../libxarchiver/archive-support-zip.c:130
+#: ../libxarchiver/archive-support-zip.c:131
msgid "Password"
msgstr "Wachtwoord"
-#: ../libxarchiver/archive-support-zip.c:297
-msgid "Length"
-msgstr "Lengte"
+#: ../libxarchiver/archive-support-zip.c:144
+#: ../libxarchiver/archive-support-zip.c:325
+msgid "Compressed Filesize"
+msgstr "Gecomprimeerde Bestandsgrootte"
-#: ../libxarchiver/archive-support-zip.c:301
-msgid "Method"
-msgstr "Methode"
+#: ../libxarchiver/archive-support-zip.c:145
+msgid "View compressed filesize"
+msgstr "Toon gecomprimeerde bestandsgrootte"
-#: ../libxarchiver/archive-support-zip.c:305
-msgid "Size"
-msgstr "Grootte"
-
-#: ../libxarchiver/archive-support-zip.c:309
+#: ../libxarchiver/archive-support-zip.c:165
+#: ../libxarchiver/archive-support-zip.c:329
msgid "Ratio"
msgstr "Verhouding"
+#: ../libxarchiver/archive-support-zip.c:166
+msgid "View ratio"
+msgstr "Verhouding tonen"
+
+#: ../libxarchiver/archive-support-zip.c:179
#: ../libxarchiver/archive-support-zip.c:321
-msgid "CRC-32"
-msgstr "CRC-32"
+msgid "Method"
+msgstr "Methode"
-#: ../src/main.c:52
+#: ../libxarchiver/archive-support-zip.c:180
+msgid "View method"
+msgstr "Methode tonen"
+
+#: ../libxarchiver/archive-support-zip.c:186
+#: ../libxarchiver/archive-support-zip.c:341
+msgid "Checksum"
+msgstr "Checksom"
+
+#: ../libxarchiver/archive-support-zip.c:187
+msgid "View Checksum"
+msgstr "Toon Checksom"
+
+#: ../src/main.c:53
msgid "[destination path]"
msgstr "[bestemmings map]"
-#: ../src/main.c:60
+#: ../src/main.c:61
msgid "[archive path] [file1] [file2] ... [fileN]"
msgstr "[archief map] [bestand1] [bestand2] ... [bestandN]"
-#: ../src/main.c:64
+#: ../src/main.c:65
msgid "[file1] [file2] ... [fileN]"
msgstr "[bestand1] [bestand2] ... [bestandN]"
-#: ../src/main.c:67
+#: ../src/main.c:68
msgid "Version information"
msgstr "Versie informatie"
-#: ../src/main.c:118
+#: ../src/main.c:120
msgid "[archive name]"
msgstr "[archief naam]"
-#: ../src/main.c:122
+#: ../src/main.c:124
#, c-format
msgid ""
"%s: %s\n"
@@ -141,70 +197,70 @@
"opties.\n"
#. File menu
-#: ../src/main_window.c:210
+#: ../src/main_window.c:242
msgid "_File"
msgstr "_Bestand"
-#. Action menu
-#: ../src/main_window.c:241
+#. Action menu: ref all the childs
+#: ../src/main_window.c:273
msgid "_Action"
msgstr "_Actie"
-#: ../src/main_window.c:246
+#: ../src/main_window.c:278
msgid "_Add"
msgstr "_Toevoegen"
-#: ../src/main_window.c:252
+#: ../src/main_window.c:284
msgid "_Extract"
msgstr "_Uitpakken"
#. View menu
-#: ../src/main_window.c:266
+#: ../src/main_window.c:298
msgid "_View"
msgstr "B_eeld"
-#: ../src/main_window.c:270
+#: ../src/main_window.c:302
msgid "_Location Selector"
msgstr "_Locatie Selecteerder"
-#: ../src/main_window.c:275
+#: ../src/main_window.c:307
msgid "Internal style"
msgstr "Interne stijl"
-#: ../src/main_window.c:279
+#: ../src/main_window.c:311
msgid "Toolbar style"
msgstr "Toolbar stijl"
-#: ../src/main_window.c:284
+#: ../src/main_window.c:316
msgid "Pathbar style"
msgstr "Padbar stijl"
-#: ../src/main_window.c:311
+#: ../src/main_window.c:343
msgid "Add"
msgstr "Toevoegen"
-#: ../src/main_window.c:315 ../src/main_window.c:714
+#: ../src/main_window.c:347 ../src/main_window.c:780
#: ../src/extract_dialog.c:102
msgid "Extract"
msgstr "Uitpakken"
-#: ../src/main_window.c:523
+#: ../src/main_window.c:586
msgid "Open archive"
msgstr "Archief openen"
-#: ../src/main_window.c:713
+#: ../src/main_window.c:779
msgid "Which action do you want to perform on the selected file(s)?"
msgstr "Welke actie wil je uitvoeren op de geselecteerde bestand(en)?"
-#: ../src/main_window.c:714
+#: ../src/main_window.c:780
msgid "View"
msgstr "Weergeven"
-#: ../src/main_window.c:777
+#: ../src/main_window.c:843
msgid "Failed to open file"
msgstr "Het openen van een bestand is mislukt"
-#: ../src/main_window.c:778
+#: ../src/main_window.c:844
#, c-format
msgid ""
"'%s'\n"
@@ -217,15 +273,23 @@
msgid "Create new archive"
msgstr "Maak nieuw archief"
-#: ../src/add_dialog.c:67
+#: ../src/add_dialog.c:69
msgid "Files and directories to add"
-msgstr ""
+msgstr "Bestanden en mappen om toe te voegen"
-#: ../src/add_dialog.c:68
+#: ../src/add_dialog.c:70
msgid "Options:"
msgstr "Opties:"
-#: ../src/add_dialog.c:97
+#: ../src/add_dialog.c:101
+msgid "Files"
+msgstr "Bestanden"
+
+#: ../src/add_dialog.c:105
+msgid "Directories"
+msgstr "Mappen"
+
+#: ../src/add_dialog.c:138
msgid "Add file(s) to archive"
msgstr "Bestand(en) toevoegen aan archief"
Modified: xarchiver/branches/xarchiver-psybsd/src/add_dialog.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/add_dialog.c 2006-11-22
07:41:29 UTC (rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/src/add_dialog.c 2006-11-22
08:16:37 UTC (rev 23929)
@@ -64,17 +64,58 @@
static void
xa_add_dialog_init(XAAddDialog *dialog)
{
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
GtkWidget *frame = gtk_frame_new(_("Files and directories to add"));
dialog->optionframe = gtk_frame_new(_("Options:"));
- GtkWidget *vbox = gtk_vbox_new(FALSE,0);
- GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL);
-
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled_window),
GTK_SHADOW_IN);
+ GtkWidget *vbox = gtk_vbox_new(FALSE,5);
+ GtkWidget *hbox = gtk_hbox_new(FALSE, 3);
+ GtkWidget *radio_vbox = gtk_vbox_new(FALSE,0);
+ dialog->scrolled_window = gtk_scrolled_window_new(NULL, NULL);
+
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(dialog->scrolled_window),
GTK_SHADOW_IN);
- gtk_container_add(GTK_CONTAINER(vbox), scrolled_window);
+ gtk_container_add(GTK_CONTAINER(vbox), dialog->scrolled_window);
gtk_container_add(GTK_CONTAINER(frame), vbox);
gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
+ dialog->file_liststore = gtk_list_store_new (2, G_TYPE_STRING,
G_TYPE_STRING);
+
+ dialog->file_treeview =
gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->file_liststore));
+ column = gtk_tree_view_column_new();
+
+ renderer = gtk_cell_renderer_pixbuf_new();
+ gtk_tree_view_column_pack_start (column, renderer, FALSE);
+ gtk_tree_view_column_add_attribute (column, renderer, "stock-id", 0);
+
+ renderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(column, renderer, TRUE);
+ gtk_tree_view_column_add_attribute(column, renderer, "text", 1);
+
+ gtk_tree_view_append_column(GTK_TREE_VIEW(dialog->file_treeview),
column);
+
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW
(dialog->file_treeview), FALSE);
+ gtk_container_add (GTK_CONTAINER (dialog->scrolled_window),
dialog->file_treeview);
+
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ dialog->files_radio = gtk_radio_button_new_with_mnemonic (NULL,
_("Files"));
+ gtk_box_pack_start (GTK_BOX (radio_vbox), dialog->files_radio, FALSE,
FALSE, 0);
+ gtk_button_set_focus_on_click (GTK_BUTTON (dialog->files_radio), FALSE);
+
+ dialog->dirs_radio = gtk_radio_button_new_with_mnemonic_from_widget
(GTK_RADIO_BUTTON(dialog->files_radio), _("Directories"));
+ gtk_box_pack_start (GTK_BOX (radio_vbox), dialog->dirs_radio, FALSE,
FALSE, 0);
+ gtk_button_set_focus_on_click (GTK_BUTTON (dialog->dirs_radio), FALSE);
+
+ gtk_box_pack_start(GTK_BOX(hbox), radio_vbox, FALSE, FALSE, 5);
+ dialog->remove = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
+ dialog->add = gtk_button_new_from_stock(GTK_STOCK_ADD);
+
+ gtk_box_pack_end(GTK_BOX(hbox), dialog->add, FALSE, FALSE, 0);
+ gtk_box_pack_end(GTK_BOX(hbox), dialog->remove, FALSE, FALSE, 0);
+
+ gtk_widget_show_all(dialog->scrolled_window);
gtk_widget_show_all(frame);
+ gtk_widget_show_all(hbox);
gtk_widget_show_all(dialog->optionframe);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), frame, TRUE,
TRUE, 0);
gtk_box_pack_end(GTK_BOX(GTK_DIALOG(dialog)->vbox),
dialog->optionframe, TRUE, TRUE, 0);
@@ -112,7 +153,7 @@
}
}
- gtk_widget_set_size_request(GTK_WIDGET(dialog), 600,400);
+ gtk_widget_set_size_request(GTK_WIDGET(dialog), 400,300);
gtk_widget_show_all(optionbox);
return (GtkWidget*)dialog;
Modified: xarchiver/branches/xarchiver-psybsd/src/add_dialog.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/add_dialog.h 2006-11-22
07:41:29 UTC (rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/src/add_dialog.h 2006-11-22
08:16:37 UTC (rev 23929)
@@ -45,7 +45,13 @@
GtkDialog parent;
GtkWidget *scrolled_window;
GtkWidget *optionframe;
+ GtkListStore *file_liststore;
+ GtkWidget *file_treeview;
+ GtkWidget *files_radio;
+ GtkWidget *dirs_radio;
LXAArchiveSupport *support;
+ GtkWidget *add;
+ GtkWidget *remove;
};
typedef struct _XAAddDialogClass XAAddDialogClass;
Modified: xarchiver/branches/xarchiver-psybsd/src/notebook.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/notebook.c 2006-11-22 07:41:29 UTC
(rev 23928)
+++ xarchiver/branches/xarchiver-psybsd/src/notebook.c 2006-11-22 08:16:37 UTC
(rev 23929)
@@ -300,7 +300,9 @@
void
cb_notebook_archive_status_changed(LXAArchive *archive, XANotebook *notebook)
{
+#ifdef DEBUG
g_debug("NOTEBOOK: Archive status changed");
+#endif /* DEBUG */
}
static void
@@ -308,6 +310,15 @@
{
GtkNotebook *notebook = GTK_NOTEBOOK(gtk_widget_get_parent(child));
+ GtkWidget *treeview = gtk_bin_get_child(GTK_BIN(child));
+ GtkTreeModel *archive_store =
gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
+
+ LXAArchive *archive =
xa_archive_store_get_archive(XA_ARCHIVE_STORE(archive_store));
+
+ g_signal_handlers_disconnect_by_func(archive,
cb_notebook_archive_refreshed, treeview);
+
+ lxa_close_archive(archive);
+
gint n = gtk_notebook_page_num(notebook, child);
gtk_notebook_remove_page(notebook, n);
g_signal_emit(G_OBJECT(notebook), xa_notebook_signals[0], 0, NULL);
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits