Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=gfpm.git;a=commitdiff;h=ef205b6c757108981105428bc55e757daff3071c

commit ef205b6c757108981105428bc55e757daff3071c
Author: Priyank <[EMAIL PROTECTED]>
Date:   Mon Sep 10 19:31:50 2007 +0530

gfpm-interface: display locally newer packages with a different icon

diff --git a/src/gfpm-interface.c b/src/gfpm-interface.c
index 4375650..28928f6 100644
--- a/src/gfpm-interface.c
+++ b/src/gfpm-interface.c
@@ -32,6 +32,7 @@
#define ICON_INSTALLED          "gfpm-installed"
#define ICON_NINSTALLED         "gfpm-ninstalled"
#define ICON_NEEDUPDATE         "gfpm-nupdate"
+#define ICON_LOCALNEWER                "gfpm-lnewer"

#include "gfpm.h"
#include "gfpm-interface.h"
@@ -488,6 +489,7 @@ gfpm_load_pkgs_tvw (const char *group_name)
GdkPixbuf       *icon_yes = NULL;
GdkPixbuf       *icon_no = NULL;
GdkPixbuf       *icon_up = NULL;
+       GdkPixbuf       *icon_ln = NULL;
gboolean        check = FALSE;
gint            r = 0;

@@ -507,10 +509,12 @@ gfpm_load_pkgs_tvw (const char *group_name)
icon_yes = gfpm_get_icon (ICON_INSTALLED, 16);
icon_no = gfpm_get_icon (ICON_NINSTALLED, 16);
icon_up = gfpm_get_icon (ICON_NEEDUPDATE, 16);
+       icon_ln = gfpm_get_icon (ICON_LOCALNEWER, 16);
// display status
for (i=l;i;i=pacman_list_next(i))
{
gboolean up = FALSE;
+               gboolean ln = FALSE;
gtk_list_store_append (GTK_LIST_STORE(model), &iter);
if (r == 1)
{
@@ -522,16 +526,28 @@ gfpm_load_pkgs_tvw (const char *group_name)
{
check = TRUE;
/* check if package needs updating */
-                               if 
(!strcmp((char*)pacman_pkg_getinfo(pm_pkg,PM_PKG_VERSION),
-                                       
(char*)pacman_pkg_getinfo(pm_lpkg,PM_PKG_VERSION)))
+                               gint ret;
+                               char *v1 = (char*)pacman_pkg_getinfo (pm_pkg, 
PM_PKG_VERSION);
+                               char *v2 = (char*)pacman_pkg_getinfo (pm_lpkg, 
PM_PKG_VERSION);
+                               ret = pacman_pkg_vercmp (v1, v2);
+                               if (!ret)
+                               {
+                                       up = FALSE;
+                               }
+                               else if (ret == -1)
+                               {
up = FALSE;
+                                       ln = TRUE;
+                               }
else
+                               {
up = TRUE;
+                               }
}

gtk_list_store_set (GTK_LIST_STORE(model), &iter,
0, check,
-                                               1, 
(up==TRUE)?icon_up:(check==TRUE)?icon_yes:icon_no,
+                                               1, 
(up==TRUE)?icon_up:(ln==TRUE)?icon_ln:(check==TRUE)?icon_yes:icon_no,
2, g_strstrip((char*)pacman_list_getdata (i)),
3, (check==TRUE)?(char*)pacman_pkg_getinfo (pm_lpkg, PM_PKG_VERSION) : NULL,
4, (char*)pacman_pkg_getinfo (pm_pkg, PM_PKG_VERSION),
@@ -541,6 +557,7 @@ gfpm_load_pkgs_tvw (const char *group_name)
else if (r == 0)
{
gboolean up = FALSE;
+                       gboolean ln = FALSE;
pm_pkg = pacman_db_readpkg (sync_db, pacman_list_getdata(i));
pm_lpkg = pacman_db_readpkg (local_db, pacman_list_getdata(i));
char *v1 = (char*)pacman_pkg_getinfo (pm_pkg, PM_PKG_VERSION);
@@ -548,12 +565,17 @@ gfpm_load_pkgs_tvw (const char *group_name)
if (v1!=NULL && v2!=NULL)
{
gint ret = pacman_pkg_vercmp (v1, v2);
-                               if (!ret)
-                                       up = FALSE;
-                               else if (ret == -1)
-                                       up = TRUE;
-                               else
-                                       up = FALSE;
+                                       if (!ret)
+                                               up = FALSE;
+                                       else if (ret == -1)
+                                       {
+                                               up = FALSE;
+                                               ln = TRUE;
+                                       }
+                                       else
+                                       {
+                                               up = TRUE;
+                                       }
}
else
{
@@ -579,6 +601,7 @@ gfpm_load_pkgs_tvw (const char *group_name)
g_object_unref (icon_yes);
g_object_unref (icon_no);
g_object_unref (icon_up);
+       g_object_unref (icon_ln);

return;
}
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to