RFC: Activity feature #57

issue fanquake opened this issue on August 14, 2020
  1. fanquake commented at 10:08 AM on August 14, 2020: member

    Moved from https://github.com/bitcoin/bitcoin/issues/11826.

    This is a RFC regarding adding a new Activity window in the UI, which allows to:

    • have activity history (truncated, etc);
    • pause or cancel tasks if supported individually;
    • have multiple progresses concurrently.

    In terms of patch, ShowProgress() signal is removed everywhere and a RAII class is added along with some UI classes:

    class Activity
    {
        std::shared_ptr<ActivityData> const d;
    public:
        Activity(const std::string& title);
        ~Activity();
    
        void SetTitle(const std::string& title);
        void SetProgress(int progress);
    };
    

    Consider this the minimal interface for an activity. Some other ideas:

    • custom progress range (so the caller doesn't have to calculate percentage)
    • add something like SetPause(bool), IsPaused();
    • also Cancel() and IsCancelled();
    • add something like SetSource(string) (for instance SetSource("wallet1")).

    The current implementation is thread safe. For now, I've also added a new menu item Window where I think we could add Console too (another discussion thou).

    Please see the capture below.

    dec-05-2017 02-01-28

  2. fanquake added the label Brainstorming on Aug 14, 2020
  3. fanquake added the label Feature on Aug 14, 2020
  4. Sjors commented at 1:01 PM on August 28, 2020: member

    I would prefer to add this as a tab in the Debug Window. Alternatively it could be inside the console tab.

  5. jonasschnelli commented at 1:37 PM on August 28, 2020: contributor

    Nice. Concept ACK. I think an independent window makes most sense (its also how other app handle "activities"). Clutching everything into the debug window is one possibility, though I prefer the flexible multi-window approach.

  6. fanquake referenced this in commit 9b49ed656f on Oct 20, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/gui. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-01 15:20 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me