17 : QWidget(parent, Qt::ToolTip | Qt::FramelessWindowHint)
19 setAttribute(Qt::WA_TranslucentBackground);
20 setAttribute(Qt::WA_NoSystemBackground);
21 setAttribute(Qt::WA_ShowWithoutActivating);
23 auto *layout =
new QVBoxLayout(
this);
24 layout->setContentsMargins(4, 4, 4, 4);
29 auto *frame =
new QFrame(
this);
30 frame->setObjectName(QStringLiteral(
"previewFrame"));
31 auto *frameLayout =
new QVBoxLayout(frame);
32 frameLayout->setContentsMargins(6, 6, 6, 6);
33 frameLayout->setSpacing(4);
35 m_titleLabel =
new QLabel(frame);
36 m_titleLabel->setObjectName(QStringLiteral(
"title"));
37 m_titleLabel->setAlignment(Qt::AlignCenter);
38 frameLayout->addWidget(m_titleLabel);
40 m_imageLabel =
new QLabel(frame);
41 m_imageLabel->setObjectName(QStringLiteral(
"preview"));
42 m_imageLabel->setAlignment(Qt::AlignCenter);
43 frameLayout->addWidget(m_imageLabel);
45 layout->addWidget(frame);
53 " background-color: rgba(30, 30, 30, 230);"
54 " border: 1px solid rgba(120, 120, 120, 180);"
55 " border-radius: 6px;"
57 "QFrame#previewFrame {"
58 " border: 1px solid rgba(170, 170, 170, 200);"
59 " border-radius: 3px;"
60 " background-color: rgba(15, 15, 15, 200);"
63 " color: rgba(230, 230, 230, 235);"
69 m_hideTimer.setSingleShot(
true);
70 m_hideTimer.setInterval(300);
71 connect(&m_hideTimer, &QTimer::timeout,
this, &QWidget::hide);
73 m_showTimer.setSingleShot(
true);
74 m_showTimer.setInterval(1000);
75 connect(&m_showTimer, &QTimer::timeout,
this, &ICPreviewPopup::executeShow);
151 QPoint pos = cursorPos + QPoint(16, 16);
154 pos.setX((std::min)(pos.x(), availableGeometry.right() - popupSize.width()));
155 pos.setY((std::min)(pos.y(), availableGeometry.bottom() - popupSize.height()));
156 pos.setX((std::max)(pos.x(), availableGeometry.left()));
157 pos.setY((std::max)(pos.y(), availableGeometry.top()));