aboutsummaryrefslogtreecommitdiffstats
path: root/src/widgets/tab_activity_list.h
blob: 4e520dab79a766942abcd25adfc42dc1cee0f9ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#pragma once
#include <QWidget>
#include <QLocale>
#include "src/widgets/status_info.h"
#include "src/finddialog.h"

QT_BEGIN_NAMESPACE
namespace Ui { class TabActivityList; }
QT_END_NAMESPACE

class TabActivityList : public QWidget {
    Q_OBJECT

public:
    struct ViewActions {
        QAction* actionAll_toots = nullptr;
        QAction* actionPublic_toots = nullptr;
        QAction* actionUnlisted_toots = nullptr;
        QAction* actionPrivate_toots = nullptr;
        QAction* actionDirect_messages = nullptr;
        QAction* actionOnly_with_attachment = nullptr;
    } view_actions;


    TabActivityList(Archive** archive, QWidget *parent = nullptr);
    ~TabActivityList();

public slots:
    void actionAll_toots_triggered(bool checked);
    void actionPublic_toots_triggered(bool checked);
    void actionUnlisted_toots_triggered(bool checked);
    void actionPrivate_toots_triggered(bool checked);
    void actionDirect_messages_triggered(bool checked);
    void actionOnly_with_attachment_triggered(bool checked);
    void actionReblogs_triggered(bool checked);

    void on_buttonRandom_clicked();
    void on_buttonCopy_clicked();
    void on_buttonSearch_clicked();

    void actionOpen_URL_triggered(bool checked);
    void menuView_aboutToHide();

    void relist_statuses(bool new_archive_opened = false);

    void select_list_item(QListWidgetItem* item);
    void set_search_text(const QString &text);

signals:
    void search_text_changed(const QString &text, bool search_immediately = false);

private slots:
    void on_textInputSearch_textEdited(const QString &text);
    void on_listWidget_itemActivated(QListWidgetItem *item);

private:
    void reset_view_filters();

    StatusInfoWidget* status_info_widget = nullptr;

    Ui::TabActivityList* ui;

    // Pointer to MainWindow's data archive pointer
    Archive **data_archive = nullptr;
    FindDialog* find_dialog = nullptr;

    ViewStatusTypes view_filters;
    bool view_filters_changed = false;
};