update:添加mouse事件
This commit is contained in:
parent
6e0edbcbee
commit
4b04982fc9
|
|
@ -18,8 +18,8 @@ MapPresent::MapPresent(QWidget* parent /*= nullptr*/)
|
||||||
|
|
||||||
auto delegate = new BasicUnitDelegate(this);
|
auto delegate = new BasicUnitDelegate(this);
|
||||||
_type_present_delegate[delegate->unitType()] = delegate;
|
_type_present_delegate[delegate->unitType()] = delegate;
|
||||||
connect(this, &MapPresent::mouseOut, delegate, &BasicUnitDelegate::hotClear);
|
connect(this, &MapPresent::mouseOutNotify, delegate, &BasicUnitDelegate::hotClear);
|
||||||
connect(this, &MapPresent::mouseHover, delegate, &BasicUnitDelegate::hotIndexSet);
|
connect(this, &MapPresent::mouseHoverNotify, delegate, &BasicUnitDelegate::hotIndexSet);
|
||||||
connect(delegate, &BasicUnitDelegate::updateRequest, [=](const PresentIndex& idx) {
|
connect(delegate, &BasicUnitDelegate::updateRequest, [=](const PresentIndex& idx) {
|
||||||
if (idx.isValid() && !_updated_units.contains(idx)) {
|
if (idx.isValid() && !_updated_units.contains(idx)) {
|
||||||
_updated_units.append(idx);
|
_updated_units.append(idx);
|
||||||
|
|
@ -97,7 +97,7 @@ void MapPresent::paintEvent(QPaintEvent* ev)
|
||||||
|
|
||||||
if (_updated_units.size()) {
|
if (_updated_units.size()) {
|
||||||
QPainter pic_painter(&_paint_buffer);
|
QPainter pic_painter(&_paint_buffer);
|
||||||
|
|
||||||
for (auto idx : _updated_units) {
|
for (auto idx : _updated_units) {
|
||||||
pic_painter.save();
|
pic_painter.save();
|
||||||
|
|
||||||
|
|
@ -137,7 +137,7 @@ void MapPresent::mouseMoveEvent(QMouseEvent* event)
|
||||||
event->accept();
|
event->accept();
|
||||||
|
|
||||||
auto index = indexGet(event->pos());
|
auto index = indexGet(event->pos());
|
||||||
emit mouseHover(index);
|
emit mouseHoverNotify(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapPresent::enterEvent(QEvent* event)
|
void MapPresent::enterEvent(QEvent* event)
|
||||||
|
|
@ -145,7 +145,7 @@ void MapPresent::enterEvent(QEvent* event)
|
||||||
QWidget::enterEvent(event);
|
QWidget::enterEvent(event);
|
||||||
event->accept();
|
event->accept();
|
||||||
|
|
||||||
emit mouseIn();
|
emit mouseInNotify();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapPresent::leaveEvent(QEvent* event)
|
void MapPresent::leaveEvent(QEvent* event)
|
||||||
|
|
@ -153,7 +153,19 @@ void MapPresent::leaveEvent(QEvent* event)
|
||||||
QWidget::leaveEvent(event);
|
QWidget::leaveEvent(event);
|
||||||
event->accept();
|
event->accept();
|
||||||
|
|
||||||
emit mouseOut();
|
emit mouseOutNotify();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapPresent::mousePressEvent(QMouseEvent* ev)
|
||||||
|
{
|
||||||
|
QWidget::mousePressEvent(ev);
|
||||||
|
emit this->mousePressNotify(ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapPresent::mouseReleaseEvent(QMouseEvent* ev)
|
||||||
|
{
|
||||||
|
QWidget::mouseReleaseEvent(ev);
|
||||||
|
emit this->mouseReleaseNotify(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
PresentOption AssumeOpt(PresentIndex index, QRectF rf) {
|
PresentOption AssumeOpt(PresentIndex index, QRectF rf) {
|
||||||
|
|
|
||||||
|
|
@ -151,9 +151,11 @@ public:
|
||||||
QList<PresentIndex> siblingsGet(const PresentIndex& center, uint16_t dist = 1) const;
|
QList<PresentIndex> siblingsGet(const PresentIndex& center, uint16_t dist = 1) const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void mouseIn();
|
void mouseInNotify();
|
||||||
void mouseOut();
|
void mouseOutNotify();
|
||||||
void mouseHover(const PresentIndex& unit_index);
|
void mouseHoverNotify(const PresentIndex& unit_index);
|
||||||
|
void mousePressNotify(QMouseEvent* ev);
|
||||||
|
void mouseReleaseNotify(QMouseEvent* ev);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent* ev) override;
|
void paintEvent(QPaintEvent* ev) override;
|
||||||
|
|
@ -162,5 +164,6 @@ protected:
|
||||||
void mouseMoveEvent(QMouseEvent* event) override;
|
void mouseMoveEvent(QMouseEvent* event) override;
|
||||||
void enterEvent(QEvent* event) override;
|
void enterEvent(QEvent* event) override;
|
||||||
void leaveEvent(QEvent* event) override;
|
void leaveEvent(QEvent* event) override;
|
||||||
|
void mousePressEvent(QMouseEvent* ev) override;
|
||||||
|
void mouseReleaseEvent(QMouseEvent* ev) override;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue