[Goodies-commits] r3515 - xfce4-fsguard-plugin/trunk/panel-plugin

Mike Massonnet mmassonnet at xfce.org
Sun Nov 4 05:40:37 CET 2007


Author: mmassonnet
Date: 2007-11-04 04:40:37 +0000 (Sun, 04 Nov 2007)
New Revision: 3515

Modified:
   xfce4-fsguard-plugin/trunk/panel-plugin/fsguard.c
Log:
    * panel-plugin/fsguard.c(fsguard_check_fs): Refactorize the code around a bit


Modified: xfce4-fsguard-plugin/trunk/panel-plugin/fsguard.c
===================================================================
--- xfce4-fsguard-plugin/trunk/panel-plugin/fsguard.c	2007-11-04 04:34:02 UTC (rev 3514)
+++ xfce4-fsguard-plugin/trunk/panel-plugin/fsguard.c	2007-11-04 04:40:37 UTC (rev 3515)
@@ -219,69 +219,74 @@
 static gboolean
 fsguard_check_fs (FsGuard *fsguard)
 {
-    float               size = 0;
+    float               free = 0;
     float               total = 0;
     float               freeblocks = 0;
     float               totalblocks = 0;
-    long                blocksize;
+    long                blocksize = 0;
     int                 err;
     gchar               msg_size[100], msg_total_size[100], msg[100];
     gint                icon_id = ICON_INSENSITIVE;
     static struct statfs fsd;
 
     err = statfs (fsguard->path, &fsd);
-    
+
     if (err != -1) {
         blocksize       = fsd.f_bsize;
         freeblocks      = fsd.f_bavail;
         totalblocks     = fsd.f_blocks;
-        size            = (freeblocks * blocksize) / 1048576;
+        free            = (freeblocks * blocksize) / 1048576;
         total           = (totalblocks * blocksize) / 1048576;
 
-        if (total > 1024) {
-            g_snprintf (msg_total_size, sizeof (msg_total_size), _("%.2f GB"), total/1024);
+        if (free > fsguard->limit_warning) {
+            icon_id = ICON_NORMAL;
+        } else if (free > fsguard->limit_urgent && free <= fsguard->limit_warning) {
+            icon_id = ICON_WARNING;
         } else {
-            g_snprintf (msg_total_size, sizeof (msg_total_size), _("%.0f MB"), total);
-        }
-        if (size > 1024) {
-            g_snprintf (msg_size, sizeof (msg_size), _("%.2f GB"), size/1024);
-        } else {
-            g_snprintf (msg_size, sizeof (msg_size), _("%.0f MB"), size);
-        }
-        gtk_label_set_text (GTK_LABEL(fsguard->lab_size), msg_size);
-        gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(fsguard->progress_bar), size / total);
-
-        if (size <= fsguard->limit_urgent) {
             icon_id = ICON_URGENT;
-	    if (!fsguard->seen) {
-                if (fsguard->name != NULL && (strcmp(fsguard->name,"")) && (strcmp(fsguard->path, fsguard->name))) {
-                    xfce_warn (_("Only %s space left on %s (%s)!"), msg_size, fsguard->path, fsguard->name);
-                } else {
-                    xfce_warn (_("Only %s space left on %s!"), msg_size, fsguard->path);
-		}
-		fsguard->seen = TRUE;
-	    }
-        } else if (size >= fsguard->limit_urgent && size <= fsguard->limit_warning) {
-            icon_id = ICON_WARNING;
-        } else {
-            icon_id = ICON_NORMAL;
         }
+    }
 
-        if (fsguard->name != NULL && (strcmp(fsguard->name,"")) && (strcmp(fsguard->path, fsguard->name))) {
-            g_snprintf (msg, sizeof (msg), _("%s/%s space left on %s (%s)"), msg_size, msg_total_size, fsguard->path, fsguard->name);
-        } else if (fsguard->path != NULL && (strcmp(fsguard->path, ""))) {
-            g_snprintf (msg, sizeof (msg), _("%s/%s space left on %s"), msg_size, msg_total_size, fsguard->path);
-        } 
+    /* msg_total_size, msg_size */
+    if (total > 1024) {
+        g_snprintf (msg_total_size, sizeof(msg_total_size), _("%.2f GB"), total / 1024);
+        g_snprintf (msg_size, sizeof (msg_size), _("%.2f GB"), free / 1024);
+        g_snprintf (msg, sizeof (msg),
+                    (*(fsguard->name) != '\0' && strcmp(fsguard->path, fsguard->name)) ?
+                    _("%s/%s space left on %s (%s)") : _("%s/%s space left on %s"),
+                    msg_size, msg_total_size, fsguard->path, fsguard->name);
     } else {
-        gtk_label_set_text (GTK_LABEL(fsguard->lab_size), "0.0 MB");
-        gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(fsguard->progress_bar), 0.0);
-        g_snprintf (msg, sizeof (msg), _("could not check mountpoint %s, please check your config"), fsguard->path);
+        g_snprintf (msg_total_size, sizeof (msg_total_size), _("%.0f MB"), total);
+        g_snprintf (msg_size, sizeof (msg_size), _("%.0f MB"), free);
+        g_snprintf (msg, sizeof (msg),
+                    _("could not check mountpoint %s, please check your config"),
+                    fsguard->path);
     }
-    
+
+    if (GTK_IS_LABEL(fsguard->lab_size)) {
+        gtk_label_set_text (GTK_LABEL(fsguard->lab_size),
+                            msg_size);
+    }
+    if (GTK_IS_PROGRESS_BAR(fsguard->lab_size)) {
+        gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(fsguard->progress_bar),
+                                       (total > 0 ) ? free / total : 0.0);
+    }
+
     gtk_tooltips_set_tip (tooltips, fsguard->ebox, msg, NULL);
     fsguard_set_icon (fsguard, icon_id);
     fsguard_refresh_monitor (fsguard);
 
+    if (err != -1 && !fsguard->seen && icon_id == ICON_URGENT) {
+        fsguard->seen = TRUE;
+        if (*(fsguard->name) != '\0' && strcmp(fsguard->path, fsguard->name)) {
+            xfce_warn (_("Only %s space left on %s (%s)!"),
+                       msg_size, fsguard->path, fsguard->name);
+        } else {
+            xfce_warn (_("Only %s space left on %s!"),
+                       msg_size, fsguard->path);
+        }
+    }
+
     return TRUE;
 }
 




More information about the Goodies-commits mailing list