|
|
|
@ -11,9 +11,9 @@ MagneticWidget::MagneticWidget(QWidget* adsorbWidget, AdsorbPositions adsorbPos)
|
|
|
|
, m_adsorbWidget(adsorbWidget)
|
|
|
|
, m_adsorbWidget(adsorbWidget)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Q_ASSERT(m_adsorbWidget);
|
|
|
|
Q_ASSERT(m_adsorbWidget);
|
|
|
|
setAttribute(Qt::WA_DeleteOnClose);
|
|
|
|
setParent(m_adsorbWidget);
|
|
|
|
|
|
|
|
setWindowFlags(windowFlags() | Qt::Tool);
|
|
|
|
|
|
|
|
|
|
|
|
connect(m_adsorbWidget, &QWidget::destroyed, this, &QWidget::close);
|
|
|
|
|
|
|
|
m_adsorbWidget->installEventFilter(this);
|
|
|
|
m_adsorbWidget->installEventFilter(this);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -33,6 +33,10 @@ bool MagneticWidget::eventFilter(QObject *watched, QEvent *event)
|
|
|
|
if (m_adsorbed && QEvent::Move == event->type()) {
|
|
|
|
if (m_adsorbed && QEvent::Move == event->type()) {
|
|
|
|
move(m_adsorbWidget->pos() - m_relativePos);
|
|
|
|
move(m_adsorbWidget->pos() - m_relativePos);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (m_adsorbed && (QEvent::Show == event->type() || QEvent::FocusIn == event->type())) {
|
|
|
|
|
|
|
|
show();
|
|
|
|
|
|
|
|
raise();
|
|
|
|
|
|
|
|
}
|
|
|
|
if (m_adsorbed && QEvent::Resize == event->type()) {
|
|
|
|
if (m_adsorbed && QEvent::Resize == event->type()) {
|
|
|
|
QRect parentRect;
|
|
|
|
QRect parentRect;
|
|
|
|
QRect targetRect;
|
|
|
|
QRect targetRect;
|
|
|
|
|