Top100
Your Personal Movie List (C++17 CLI + library)
Loading...
Searching...
No Matches
rankdialog.h
1// SPDX-License-Identifier: Apache-2.0
2//-------------------------------------------------------------------------------
3// File: ui/qt/rankdialog.h
4// Purpose: Qt Widgets dialog for pairwise ranking of movies (Elo-based).
5//-------------------------------------------------------------------------------
6#pragma once
7
8#include <QDialog>
9#include <QVariantMap>
10class QNetworkAccessManager;
11
12class QLabel;
13class QPushButton;
14class QKeyEvent;
15class Top100ListModel;
16
17class Top100QtRankDialog : public QDialog {
18 Q_OBJECT
19public:
20 explicit Top100QtRankDialog(QWidget* parent, Top100ListModel* model);
21
22protected:
23 void keyPressEvent(QKeyEvent* ev) override;
24 bool eventFilter(QObject* obj, QEvent* ev) override;
25
26private:
27 Top100ListModel* model_ { nullptr };
28 int leftRow_ { -1 };
29 int rightRow_ { -1 };
30
31 QLabel* heading_ { nullptr };
32 QLabel* prompt_ { nullptr };
33 QLabel* leftTitle_ { nullptr };
34 QLabel* leftDetails_ { nullptr };
35 QLabel* leftPoster_ { nullptr };
36 QWidget* leftPane_ { nullptr };
37 QLabel* rightTitle_ { nullptr };
38 QLabel* rightDetails_ { nullptr };
39 QLabel* rightPoster_ { nullptr };
40 QWidget* rightPane_ { nullptr };
41 QPushButton* passBtn_ { nullptr };
42 QPushButton* finishBtn_ { nullptr };
43 QNetworkAccessManager* nam_ { nullptr }; // for poster fetching
44
45 void pickTwo();
46 void refreshSide(bool left);
47 void chooseLeft();
48 void chooseRight();
49 void passPair();
50
51 void fetchPoster(QLabel* target, QWidget* container, const QString& url);
52};
Definition Top100ListModel.h:43
Definition rankdialog.h:17