Overview
- proper model QAbstractListModel for downloads
- support for multiple GUIs (like download manager window, popup from toolbar, webpage, ..)
- support for various types of downloads (qtwebengine downlods, qnetworkreply downloads, download history)
- possible to add new download type + observe all changes (new/changed/removed download)
- all of this also accessible for plugins (c++, python, qml)
Implementation
DownloadManager - change to QObject (instead of QWidget as it is now) signals: void downloadAdded(DownloadItem *item); void downloadRemoved(DownloadItem *item); // DownloadItem - base class for all download types enum Flags { CanPause, ActiveDownload, // inactive download = eg. download from history };
Other
- Drop support for keeping downloads running after all browser windows are closed - instead just show message box that the download will be stopped if last browser window is closed
All of this is just a draft, final implementation can differ