mirror of
https://github.com/YACReader/yacreader
synced 2025-07-18 21:14:33 -04:00
Headless server: simplify system config logger
This commit is contained in:
132
custom_widgets/yacreader_table_view.h
Normal file
132
custom_widgets/yacreader_table_view.h
Normal file
@ -0,0 +1,132 @@
|
||||
#ifndef YACREADER_TABLE_VIEW_H
|
||||
#define YACREADER_TABLE_VIEW_H
|
||||
|
||||
#include <QTableView>
|
||||
#include <QStyledItemDelegate>
|
||||
|
||||
class YACReaderDeletingProgress;
|
||||
class QResizeEvent;
|
||||
class QPropertyAnimation;
|
||||
|
||||
class YACReaderTableView : public QTableView
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit YACReaderTableView(QWidget *parent = 0);
|
||||
|
||||
signals:
|
||||
void comicRated(int,QModelIndex);
|
||||
public slots:
|
||||
void showDeleteProgress();
|
||||
void hideDeleteProgress();
|
||||
void closeRatingEditor();
|
||||
protected slots:
|
||||
|
||||
virtual void closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint );
|
||||
virtual void commitData ( QWidget * editor );
|
||||
private:
|
||||
YACReaderDeletingProgress * deletingProgress;
|
||||
bool showDelete;
|
||||
QPropertyAnimation * showDeletingProgressAnimation;
|
||||
|
||||
void resizeEvent(QResizeEvent * event);
|
||||
void mouseMoveEvent(QMouseEvent *event);
|
||||
void mousePressEvent(QMouseEvent * event);
|
||||
void leaveEvent(QEvent * event);
|
||||
void performDrag();
|
||||
void dragEnterEvent(QDragEnterEvent * event);
|
||||
void dragMoveEvent(QDragMoveEvent * event);
|
||||
void dropEvent(QDropEvent * event);
|
||||
|
||||
|
||||
bool editing;
|
||||
QModelIndex currentIndexEditing;
|
||||
QWidget * myeditor;
|
||||
|
||||
//drag from here
|
||||
QPoint startDragPos;
|
||||
};
|
||||
|
||||
//---
|
||||
|
||||
class YACReaderRatingDelegate : public QStyledItemDelegate
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
YACReaderRatingDelegate(QWidget *parent = 0) : QStyledItemDelegate(parent) {}
|
||||
|
||||
void paint(QPainter *painter, const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const;
|
||||
QSize sizeHint(const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const;
|
||||
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const;
|
||||
void setEditorData(QWidget *editor, const QModelIndex &index) const;
|
||||
void setModelData(QWidget *editor, QAbstractItemModel *model,
|
||||
const QModelIndex &index) const;
|
||||
|
||||
private slots:
|
||||
void sendCloseEditor();
|
||||
void sendCommitData();
|
||||
};
|
||||
|
||||
//---
|
||||
|
||||
class StarRating
|
||||
{
|
||||
public:
|
||||
enum EditMode { Editable, ReadOnly };
|
||||
|
||||
StarRating(int starCount = 1, int maxStarCount = 5);
|
||||
|
||||
void paint(QPainter *painter, const QRect &rect,
|
||||
const QPalette &palette, EditMode mode) const;
|
||||
void paintSelected(QPainter *painter, const QRect &rect,
|
||||
const QPalette &palette, EditMode mode, QColor color) const;
|
||||
void paintSelected(QPainter *painter, const QRect &rect,
|
||||
const QPalette &palette, EditMode mode) const;
|
||||
QSize sizeHint() const;
|
||||
int starCount() const { return myStarCount; }
|
||||
int maxStarCount() const { return myMaxStarCount; }
|
||||
void setStarCount(int starCount) { myStarCount = starCount; }
|
||||
void setMaxStarCount(int maxStarCount) { myMaxStarCount = maxStarCount; }
|
||||
private:
|
||||
QPolygonF starPolygon;
|
||||
QPolygonF diamondPolygon;
|
||||
int myStarCount;
|
||||
int myMaxStarCount;
|
||||
};
|
||||
Q_DECLARE_METATYPE(StarRating);
|
||||
//---
|
||||
|
||||
class StarEditor : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
StarEditor(QWidget *parent = 0);
|
||||
|
||||
QSize sizeHint() const;
|
||||
void setStarRating(const StarRating &starRating) {
|
||||
myStarRating = starRating;
|
||||
}
|
||||
StarRating starRating() { return myStarRating; }
|
||||
bool getShouldCommitData() {return shouldCommitData;};
|
||||
|
||||
signals:
|
||||
void editingFinished();
|
||||
void commitData();
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event);
|
||||
void mouseMoveEvent(QMouseEvent *event);
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
void leaveEvent(QEvent * event);
|
||||
|
||||
private:
|
||||
int starAtPosition(int x);
|
||||
StarRating myStarRating;
|
||||
bool shouldCommitData;
|
||||
};
|
||||
#endif // YACREADER_TABLE_VIEW_H
|
Reference in New Issue
Block a user