21#ifndef PANEL_PACKAGES_VIEW_H_
22#define PANEL_PACKAGES_VIEW_H_
31#include <unordered_map>
47 void SetData(
const std::vector<PACKAGE_VIEW_DATA>& aPackageData );
126 std::shared_ptr<PLUGIN_CONTENT_MANAGER>
m_pcm;
PANEL_PACKAGES_VIEW_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
void OnInfoMouseWheel(wxMouseEvent &event) override
Respond to scrolling over the window.
std::unordered_set< wxString > m_updateablePackages
void OnUpdateAllClicked(wxCommandEvent &event) override
Enqueues all available package updates.
void ClearData()
Destroys package panels.
void updateDetailsButtons()
Updates buttons below the package details: Download and Install.
void OnVersionActionClicked(wxCommandEvent &event) override
Schedules relevant action for selected package version.
void OnSizeInfoBox(wxSizeEvent &aEvent) override
bool canDownload() const
Returns true if it the download operation can be performed.
void OnDownloadVersionClicked(wxCommandEvent &event) override
Opens file chooser dialog and downloads selected package version archive.
wxString toHumanReadableSize(const std::optional< uint64_t > size) const
Bytes to Kb/Mb/Gb string or "-" if absent.
void OnSearchTextChanged(wxCommandEvent &event)
Ranks packages for entered search term and rearranges/hides panels according to their rank.
void updateCommonState()
Called when package state changes, currently used to calculate Update All button state.
void updatePackageList()
Updates package listing according to search term.
const ActionCallback & m_actionCallback
std::unordered_map< wxString, PANEL_PACKAGE * > m_packagePanels
void setPackageDetails(const PACKAGE_VIEW_DATA &aPackageData)
Updates details panel.
const PinCallback & m_pinCallback
std::shared_ptr< PLUGIN_CONTENT_MANAGER > m_pcm
PCM_PACKAGE_ACTION getAction() const
Returns implied action for the action button.
bool canRunAction() const
Returns true if the package action can be performed.
PANEL_PACKAGE * m_currentSelected
void unsetPackageDetails()
Clears details panel.
void SetData(const std::vector< PACKAGE_VIEW_DATA > &aPackageData)
Recreates package panels and displays data.
void OnVersionsCellClicked(wxGridEvent &event) override
Selects full row of the clicked cell.
PACKAGE_VERSIONS_GRID_COLUMNS
void OnURLClicked(wxHtmlLinkEvent &event) override
Respond to a URL in the info window.
void SetSashOnIdle(wxIdleEvent &)
Replacement of wxFormBuilder's ill-advised m_splitter1OnIdle.
static std::unordered_map< PCM_PACKAGE_VERSION_STATUS, wxString > STATUS_ENUM_TO_STR
void SetPackageState(const wxString &aPackageId, const PCM_PACKAGE_STATE aState, const bool aPinned)
Set the state of package.
std::vector< wxString > m_packageInitialOrder
PANEL_PACKAGES_VIEW(wxWindow *parent, std::shared_ptr< PLUGIN_CONTENT_MANAGER > aPcm, const ActionCallback &aCallback, const PinCallback &aPinCallback)
void OnShowAllVersionsClicked(wxCommandEvent &event) override
Shows all versions including incompatible ones.
std::function< void(const wxString &aPackageId, const PCM_PACKAGE_STATE aState, const bool aPinned)> PinCallback
std::function< void(const PACKAGE_VIEW_DATA &aData, PCM_PACKAGE_ACTION aAction, const wxString &aVersion)> ActionCallback
Callback for (un)install button.
PCM_PACKAGE_STATE
Package states Package is available if it is not installed and there is a compatible version Package ...
PCM_PACKAGE_ACTION
Package actions.
Collection of data relevant to the package display panel.