_isCurrentUser = isCurrent;
}
-Folder* User::getFolder()
+Folder *User::getFolder()
{
foreach (Folder *folder, FolderMan::instance()->map()) {
if (folder->accountState() == _account.data()) {
, _currentUserId()
{
// TODO: Remember selected user from last quit via settings file
- // this is the reason why this looks like an unnecessary double check atm
- /*if (AccountManager::instance()->accounts().size() > 0) {
- addUser(AccountManager::instance()->accounts().first(), true);
- } else {
- return;
- }*/
if (AccountManager::instance()->accounts().size() > 0) {
initUserList();
}
/*-------------------------------------------------------------------------------------*/
+QString UserActivity::type() const
+{
+ return "Test";
+}
+QString UserActivity::fileName() const
+{
+ return "Test";
+}
+
+QString UserActivity::info() const
+{
+ return "Test";
+}
+
+
+ActivityModel *ActivityModel::_instance = nullptr;
+
+ActivityModel *ActivityModel::instance()
+{
+ if (_instance == nullptr) {
+ _instance = new ActivityModel();
+ }
+ return _instance;
+}
+
+ActivityModel::ActivityModel(QObject *parent)
+ : QAbstractListModel()
+{
+}
+
+QHash<int, QByteArray> ActivityModel::roleNames() const
+{
+ QHash<int, QByteArray> roles;
+ roles[TypeRole] = "type";
+ roles[FileNameRole] = "filename";
+ roles[InfoRole] = "info";
+ return roles;
+}
+
+int ActivityModel::rowCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return _activities.count();
+}
+
+QVariant ActivityModel::data(const QModelIndex &index, int role) const
+{
+ if (index.row() < 0 || index.row() >= _activities.count()) {
+ return QVariant();
+ }
+
+ const UserActivity &activity = _activities[index.row()];
+ if (role == TypeRole)
+ return activity.type();
+ else if (role == FileNameRole)
+ return activity.fileName();
+ else if (role == InfoRole)
+ return activity.info();
+ return QVariant();
+}
+
+void ActivityModel::addActivity(const UserActivity &activity)
+{
+ beginInsertRows(QModelIndex(), rowCount(), rowCount());
+ _activities << activity;
+ endInsertRows();
+}
+
+/*-------------------------------------------------------------------------------------*/
+
ImageProvider::ImageProvider()
: QQuickImageProvider(QQuickImageProvider::Image)
{
bool isConnected() const;
bool isCurrentUser() const;
void setCurrentUser(const bool &isCurrent);
- Folder* getFolder();
+ Folder *getFolder();
void openLocalFolder();
QString name() const;
QString server() const;
void initUserList();
};
+class UserActivity
+{
+public:
+ QString type() const;
+ QString fileName() const;
+ QString info() const;
+};
+
+class ActivityModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+ static ActivityModel *instance();
+ virtual ~ActivityModel() {};
+
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ void addActivity(const UserActivity &activity);
+
+ enum ActivityRoles {
+ TypeRole = Qt::UserRole + 1,
+ FileNameRole,
+ InfoRole
+ };
+
+protected:
+ QHash<int, QByteArray> roleNames() const;
+
+private:
+ static ActivityModel *_instance;
+ ActivityModel(QObject *parent = 0);
+ QList<UserActivity> _activities;
+};
+
class ImageProvider : public QQuickImageProvider
{
public:
Layout.preferredHeight: (trayWindowHeaderBackground.height)\r
flat: true\r
\r
- //icon.source: "../../theme/white/talk-app.svg"\r
icon.source: "qrc:///client/theme/white/talk-app.svg"\r
icon.color: "transparent"\r
\r
Layout.preferredHeight: (trayWindowHeaderBackground.height)\r
flat: true\r
\r
- //icon.source: "../../theme/white/more-apps.svg"\r
icon.source: "qrc:///client/theme/white/more-apps.svg"\r
icon.color: "transparent"\r
\r
}\r
} // Rectangle trayWindowHeaderBackground\r
\r
- ListModel {\r
- id: activityListModel\r
- }\r
-\r
ListView {\r
id: activityListView\r
anchors.top: trayWindowHeaderBackground.bottom\r
height: trayWindowBackground.height - trayWindowHeaderBackground.height\r
clip: true\r
\r
- model: activityListModel\r
+ model: activityModel\r
\r
delegate: RowLayout {\r
id: activityItem\r
Layout.alignment: Qt.AlignLeft\r
Text {\r
id: activityTextTitle\r
- text: name\r
+ text: filename\r
font.pointSize: 9\r
}\r
Text {\r
id: activityTextInfo\r
- text: "Lorem ipsum dolor sit amet"\r
+ text: info\r
font.pointSize: 8\r
}\r
}\r