1#pragma once
2
3/****************************************************************************************
4 ** GitQlient is an application to manage and operate one or several Git repositories. With
5 ** GitQlient you will be able to add commits, branches and manage all the options Git provides.
6 ** Copyright (C) 2021 Francesc Martinez
7 **
8 ** LinkedIn: www.linkedin.com/in/cescmm/
9 ** Web: www.francescmm.com
10 **
11 ** This program is free software; you can redistribute it and/or
12 ** modify it under the terms of the GNU Lesser General Public
13 ** License as published by the Free Software Foundation; either
14 ** version 2 of the License, or (at your option) any later version.
15 **
16 ** This program is distributed in the hope that it will be useful,
17 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
18 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 ** Lesser General Public License for more details.
20 **
21 ** You should have received a copy of the GNU Lesser General Public
22 ** License along with this library; if not, write to the Free Software
23 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 ***************************************************************************************/
25
26#include <QFrame>
27
28class QVBoxLayout;
29class QScrollArea;
30class QLabel;
31class QSpinBox;
32class GitServerCache;
33class IssueItem;
34class QToolButton;
35
36namespace GitServer
37{
38struct Issue;
39struct PullRequest;
40}
41
42class AGitServerItemList : public QFrame
43{
44 Q_OBJECT
45signals:
46 void selected(int issueNum);
47
48public:
49 explicit AGitServerItemList(const QSharedPointer<GitServerCache> &gitServerCache, QWidget *parent = nullptr);
50
51 virtual void refreshData() = 0;
52 void loadData();
53
54protected:
55 QSharedPointer<GitServerCache> mGitServerCache;
56 QLabel *mHeaderTitle = nullptr;
57
58 void createContent(QVector<IssueItem *> items);
59
60private:
61 QVBoxLayout *mIssuesLayout = nullptr;
62 QFrame *mIssuesWidget = nullptr;
63 QScrollArea *mScrollArea = nullptr;
64 QLabel *mArrow = nullptr;
65
66 void onHeaderClicked();
67
68private slots:
69 void loadPage(int page = -1);
70};
71