90 void on_pbSearch_clicked();
91 void on_pbPopular_clicked();
92 void on_pbRecommended_clicked();
93 void on_pbDownload_clicked();
94 void on_pbInstall_clicked();
95 void on_pbCancel_clicked();
96 void on_pbDetails_clicked();
97 void on_pbRefresh_clicked();
98 void on_pbClearCache_clicked();
101 void slotExtensionSelected();
102 void slotCustomContextMenu(
const QPoint &pos);
103 void slotDownloadProgress(qint64 bytesReceived, qint64 bytesTotal);
106 void slotSearchFinished();
107 void slotDownloadFinished();
108 void slotNetworkError(QNetworkReply::NetworkError error);
113 void SetupConnections();
114 void SetupNetworkManager();
117 void RefreshExtensionList();
118 int AddExtensionItem(
const QJsonObject &extInfo);
119 void DisplayExtensionDetails(
const QJsonObject &extInfo);
120 void ClearExtensionList();
123 int ProcessDownloadedFile(
const QString &filePath,
const QString &extensionId);
124 QString GetDownloadPath()
const;
125 QString GetCachePath()
const;
128 int SaveToCache(
const QString &key,
const QJsonObject &data);
129 QJsonObject LoadFromCache(
const QString &key)
const;
130 bool IsCacheValid(
const QString &key)
const;
133 QJsonArray ParseExtensionList(
const QByteArray &data)
const;
134 QJsonObject ParseExtensionDetails(
const QByteArray &data)
const;
137 QString GenerateDownloadId()
const;
138 bool IsExtensionIdValid(
const QString &
id)
const;
139 QString GetExtensionFileUrl(
const QString &extensionId)
const;
140 QString GetChromeWebStoreUrl(
const QString &extensionId)
const;
143 Ui::CFrmExtensionStore* ui;
144 QNetworkAccessManager* m_pNetworkManager;
147 QStandardItemModel* m_pModelExtensions;
150 QString m_apiBaseUrl;
153 QMap<QString, QNetworkReply*> m_downloads;
154 QMap<QString, QString> m_downloadExtensionId;
155 QMap<QString, QJsonObject> m_extensionCache;
169 static const int CACHE_VALIDITY_HOURS = 24;