]> git.ipfire.org Git - pakfire.git/commitdiff
filelist: Migrate to new progress indicator
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 1 Oct 2023 11:37:18 +0000 (11:37 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 1 Oct 2023 11:37:18 +0000 (11:37 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/filelist.c

index dac977af1e896af4f9939d430dc8f0d3d2f7ee00..2cb42869fce64078fd63548f1019da3ebb60859d 100644 (file)
@@ -30,7 +30,7 @@
 #include <pakfire/logging.h>
 #include <pakfire/pakfire.h>
 #include <pakfire/private.h>
-#include <pakfire/progressbar.h>
+#include <pakfire/progress.h>
 #include <pakfire/string.h>
 #include <pakfire/util.h>
 
@@ -417,72 +417,37 @@ int pakfire_filelist_contains(struct pakfire_filelist* list, const char* pattern
        return 0;
 }
 
-static int pakfire_filelist_progressbar_create(
-               struct pakfire_progressbar** progressbar, const char* message) {
-       struct pakfire_progressbar* p = NULL;
-       int r;
-
-       // Create the progressbar
-       r = pakfire_progressbar_create(&p, NULL);
-       if (r)
-               goto ERROR;
-
-       // Add message
-       if (message) {
-               r = pakfire_progressbar_add_string(p, "%s", message);
-               if (r)
-                       goto ERROR;
-       }
-
-       // Add bar
-       r = pakfire_progressbar_add_bar(p);
-       if (r)
-               goto ERROR;
-
-       // Add percentage
-       r = pakfire_progressbar_add_percentage(p);
-       if (r)
-               goto ERROR;
-
-       // Add ETA
-       r = pakfire_progressbar_add_eta(p);
-       if (r)
-               goto ERROR;
-
-       *progressbar = p;
-
-       return 0;
-
-ERROR:
-       if (p)
-               pakfire_progressbar_unref(p);
-
-       return r;
-}
-
 int pakfire_filelist_walk(struct pakfire_filelist* list,
                pakfire_filelist_walk_callback callback, void* data, int flags) {
-       struct pakfire_progressbar* progressbar = NULL;
+       struct pakfire_progress* progress = NULL;
        struct pakfire_filelist_element* element = NULL;
        int r = 0;
 
-       // Show a progressbar when iterating over the filelist
+       // Show progress when iterating over the filelist
        if (flags & PAKFIRE_FILELIST_SHOW_PROGRESS) {
-               r = pakfire_filelist_progressbar_create(&progressbar, "Processing Files...");
+               r = pakfire_progress_create(&progress, list->pakfire,
+                       PAKFIRE_PROGRESS_SHOW_PERCENTAGE|PAKFIRE_PROGRESS_SHOW_ETA);
+               if (r)
+                       goto ERROR;
+
+               // Set title
+               r = pakfire_progress_set_title(progress, "%s", _("Processing Files..."));
                if (r)
                        goto ERROR;
 
                const size_t length = pakfire_filelist_length(list);
 
-               // Start progressbar
-               pakfire_progressbar_start(progressbar, length);
+               // Start progress
+               r = pakfire_progress_start(progress, length);
+               if (r)
+                       goto ERROR;
        }
 
        // Call the callback once for every element on the list
        TAILQ_FOREACH(element, &list->files, nodes) {
-               // Increment the progressbar
-               if (progressbar)
-                       pakfire_progressbar_increment(progressbar, 1);
+               // Increment the progress
+               if (progress)
+                       pakfire_progress_increment(progress, 1);
 
                // Call the callback
                r = callback(list->pakfire, element->file, data);
@@ -491,13 +456,16 @@ int pakfire_filelist_walk(struct pakfire_filelist* list,
        }
 
        // Done!
-       if (progressbar)
-               pakfire_progressbar_finish(progressbar);
+       if (progress) {
+               r = pakfire_progress_finish(progress);
+               if (r)
+                       goto ERROR;
+       }
 
 ERROR:
        // Finish progress
-       if (progressbar)
-               pakfire_progressbar_unref(progressbar);
+       if (progress)
+               pakfire_progress_unref(progress);
 
        return r;
 }
@@ -524,7 +492,7 @@ int pakfire_filelist_dump(struct pakfire_filelist* list, int flags) {
 */
 int pakfire_filelist_verify(struct pakfire_filelist* list, struct pakfire_filelist* errors) {
        struct pakfire_filelist_element* element = NULL;
-       struct pakfire_progressbar* progressbar = NULL;
+       struct pakfire_progress* progress = NULL;
        int status;
        int r;
 
@@ -532,33 +500,19 @@ int pakfire_filelist_verify(struct pakfire_filelist* list, struct pakfire_fileli
 
        DEBUG(list->pakfire, "Verifying filelist (%zu file(s))...\n", length);
 
-       // Setup progressbar
-       r = pakfire_progressbar_create(&progressbar, NULL);
-       if (r)
-               goto ERROR;
-
-       // Add status
-       r = pakfire_progressbar_add_string(progressbar, _("Verifying Files..."));
-       if (r)
-               goto ERROR;
-
-       // Add bar
-       r = pakfire_progressbar_add_bar(progressbar);
-       if (r)
-               goto ERROR;
-
-       // Add percentage
-       r = pakfire_progressbar_add_percentage(progressbar);
+       // Setup progress
+       r = pakfire_progress_create(&progress, list->pakfire,
+               PAKFIRE_PROGRESS_SHOW_PERCENTAGE|PAKFIRE_PROGRESS_SHOW_ETA);
        if (r)
                goto ERROR;
 
-       // Add ETA
-       r = pakfire_progressbar_add_eta(progressbar);
+       // Add title
+       r = pakfire_progress_set_title(progress, "%s", _("Verifying Files..."));
        if (r)
                goto ERROR;
 
-       // Start the progressbar
-       r = pakfire_progressbar_start(progressbar, length);
+       // Start the progress indicator
+       r = pakfire_progress_start(progress, length);
        if (r)
                goto ERROR;
 
@@ -577,20 +531,20 @@ int pakfire_filelist_verify(struct pakfire_filelist* list, struct pakfire_fileli
                                goto ERROR;
                }
 
-               // Increment progressbar
-               r = pakfire_progressbar_increment(progressbar, 1);
+               // Increment progress
+               r = pakfire_progress_increment(progress, 1);
                if (r)
                        goto ERROR;
        }
 
        // Finish
-       r = pakfire_progressbar_finish(progressbar);
+       r = pakfire_progress_finish(progress);
        if (r)
                goto ERROR;
 
 ERROR:
-       if (progressbar)
-               pakfire_progressbar_unref(progressbar);
+       if (progress)
+               pakfire_progress_unref(progress);
 
        return r;
 }