File indexing completed on 2024-04-21 03:51:00

0001 /*
0002     SPDX-FileCopyrightText: 2014 Andreas Xavier
0003     SPDX-FileCopyrightText: 2014 Inge Wallin <inge@lysator.liu.se>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef COLLECTIONWIDGET_H
0008 #define COLLECTIONWIDGET_H
0009 
0010 #include <QWidget>
0011 
0012 #include "collection.h"
0013 
0014 #include "barwidget.h"
0015 
0016 // Size constants for the collection widgets
0017 extern int COLLWIDTH; // Width in pixels of a collection widget
0018 extern int COLLHEIGHT1; // Height in pixels of a collection widget not yet fully learned
0019 extern int COLLHEIGHT2; // Height in pixels of a collection widget fully learned
0020 
0021 class QLabel;
0022 class QPushButton;
0023 class RemoveButton;
0024 class Collection;
0025 
0026 class CollectionWidget : public QWidget
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     CollectionWidget(Collection *collection, WordCount *dueWords, QWidget *parent = nullptr);
0032     ~CollectionWidget() override;
0033 
0034     Collection *collection() const;
0035     void setCollection(Collection *collection);
0036 
0037     void updateDue();
0038 
0039 Q_SIGNALS:
0040     void practiceButtonClicked();
0041     void removeButtonClicked();
0042 
0043 private:
0044     void setupWidget(WordCount *dueWords);
0045     void fillWidget();
0046 
0047 private:
0048     QLabel *m_titleLabel;
0049     QLabel *m_thumbnail;
0050     BarWidget *m_barWidget;
0051     RemoveButton *m_removeButton;
0052     QPushButton *m_practiceButton;
0053 
0054     Collection *m_collection;
0055 };
0056 
0057 #endif