#include <QtCore>
#include <QAbstractListModel>
+#include <QDesktopServices>
#include <QWidget>
#include <QJsonObject>
#include <QJsonDocument>
}
}
+void ActivityListModel::triggerActionAtIndex(int id) const
+{
+ if (id < 0 || id >= _finalList.size()) {
+ qCWarning(lcActivity) << "Couldn't trigger action at index" << id << "/ final list size:" << _finalList.size();
+ return;
+ }
+
+ const auto modelIndex = index(id);
+ const auto path = data(modelIndex, PathRole).toUrl();
+ if (path.isValid()) {
+ QDesktopServices::openUrl(path);
+ } else {
+ const auto link = data(modelIndex, LinkRole).toUrl();
+ QDesktopServices::openUrl(link);
+ }
+}
+
void ActivityListModel::combineActivityLists()
{
ActivityList resultList;
void removeActivityFromActivityList(int row);
void removeActivityFromActivityList(Activity activity);
+ Q_INVOKABLE void triggerActionAtIndex(int id) const;
+
public slots:
void slotRefreshActivity();
void slotRemoveAccount();
height: parent.height\r
anchors.margins: 2\r
hoverEnabled: true\r
- onClicked: {\r
- if (path !== "") {\r
- Qt.openUrlExternally(path)\r
- } else {\r
- Qt.openUrlExternally(link)\r
- }\r
- }\r
+ onClicked: activityModel.triggerActionAtIndex(model.index)\r
\r
Rectangle {\r
anchors.fill: parent\r