commit
c8a88bbb58
@ -0,0 +1,70 @@ |
||||
#include <QPainter> |
||||
#include <QDebug> |
||||
|
||||
#include "UBActionableWidget.h" |
||||
|
||||
UBActionableWidget::UBActionableWidget(QWidget *parent, const char *name):QWidget(parent) |
||||
, mShowActions(false) |
||||
{ |
||||
setObjectName(name); |
||||
mActions.clear(); |
||||
} |
||||
|
||||
UBActionableWidget::~UBActionableWidget() |
||||
{ |
||||
|
||||
} |
||||
|
||||
void UBActionableWidget::addAction(eAction act) |
||||
{ |
||||
if(!mActions.contains(act)){ |
||||
mActions << act; |
||||
} |
||||
} |
||||
|
||||
void UBActionableWidget::removeAction(eAction act) |
||||
{ |
||||
if(mActions.contains(act)){ |
||||
mActions.remove(mActions.indexOf(act)); |
||||
} |
||||
} |
||||
|
||||
void UBActionableWidget::removeAllActions() |
||||
{ |
||||
mActions.clear(); |
||||
} |
||||
|
||||
void UBActionableWidget::setActionsVisible(bool bVisible) |
||||
{ |
||||
mShowActions = bVisible; |
||||
} |
||||
|
||||
bool UBActionableWidget::shouldClose(QPoint p) |
||||
{ |
||||
qDebug() << "Should close: " << p.x() << "," << p.y(); |
||||
bool close = false; |
||||
|
||||
if(mShowActions && |
||||
p.x() >= 0 && |
||||
p.x() <= ACTIONSIZE && |
||||
p.y() >= 0 && |
||||
p.y() <= ACTIONSIZE){ |
||||
close = true; |
||||
} |
||||
|
||||
return close; |
||||
} |
||||
|
||||
void UBActionableWidget::paintEvent(QPaintEvent* ev) |
||||
{ |
||||
if(mShowActions){ |
||||
QPainter p(this); |
||||
if(mActions.contains(eAction_Close)){ |
||||
p.drawPixmap(0, 0, 16, 16, QPixmap(":images/close.svg")); |
||||
}else if(mActions.contains(eAction_MoveUp)){ |
||||
// Implement me later
|
||||
}else if(mActions.contains(eAction_MoveDown)){ |
||||
// Implement me later
|
||||
} |
||||
} |
||||
} |
@ -0,0 +1,35 @@ |
||||
#ifndef UBACTIONABLEWIDGET_H |
||||
#define UBACTIONABLEWIDGET_H |
||||
|
||||
#include <QWidget> |
||||
#include <QPaintEvent> |
||||
|
||||
#define ACTIONSIZE 16 |
||||
|
||||
typedef enum{ |
||||
eAction_Close, |
||||
eAction_MoveUp, |
||||
eAction_MoveDown |
||||
}eAction; |
||||
|
||||
class UBActionableWidget : public QWidget |
||||
{ |
||||
Q_OBJECT |
||||
public: |
||||
UBActionableWidget(QWidget* parent=0, const char* name="UBActionableWidget"); |
||||
~UBActionableWidget(); |
||||
void addAction(eAction act); |
||||
void removeAction(eAction act); |
||||
void removeAllActions(); |
||||
void setActionsVisible(bool bVisible); |
||||
bool shouldClose(QPoint p); |
||||
|
||||
protected: |
||||
void paintEvent(QPaintEvent* ev); |
||||
QVector<eAction> mActions; |
||||
|
||||
private: |
||||
bool mShowActions; |
||||
}; |
||||
|
||||
#endif // UBACTIONABLEWIDGET_H
|
Loading…
Reference in new issue