mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-12 17:14:52 -07:00
* Refactor CardInfo Widgets to reside in their appropriate folder and to have a clearer naming structure. * Add optional HoverToZoom functionality to CardInfoPictureWidget (default: disabled) and utility class to display text over a CardInfoPictureWidget. * Patch CardInfoWidgets to use the new CardDatabaseManager. * Add HoverToZoom to CardInfoPictureWithTextOverlayWidget * Refactors and new signals for CardInfoPictureWidgets. * Address pull request comments (nullptr checks and additional comments, mostly.) * Reformat code so the linter will stop yelling at me. * Linting. * Fix the build. * Fix warnings. * Formatting, const qualifiers. * Sensibly call the base class's (QWidget) paint event. * Address PR comments (card picture). * QT Version check because enterEvent signature changed. * Linting. --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
#include "tab.h"
|
|
|
|
#include "../ui/widgets/cards/card_info_display_widget.h"
|
|
|
|
#include <QApplication>
|
|
#include <QDebug>
|
|
#include <QScreen>
|
|
|
|
Tab::Tab(TabSupervisor *_tabSupervisor, QWidget *parent)
|
|
: QMainWindow(parent), tabSupervisor(_tabSupervisor), contentsChanged(false), infoPopup(0)
|
|
{
|
|
setAttribute(Qt::WA_DeleteOnClose);
|
|
}
|
|
|
|
void Tab::showCardInfoPopup(const QPoint &pos, const QString &cardName)
|
|
{
|
|
if (infoPopup) {
|
|
infoPopup->deleteLater();
|
|
}
|
|
currentCardName = cardName;
|
|
infoPopup = new CardInfoDisplayWidget(
|
|
cardName, 0, Qt::Widget | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint | Qt::WindowStaysOnTopHint);
|
|
infoPopup->setAttribute(Qt::WA_TransparentForMouseEvents);
|
|
|
|
auto screenRect = qApp->primaryScreen()->geometry();
|
|
infoPopup->move(qMax(screenRect.left(), qMin(pos.x() - infoPopup->width() / 2,
|
|
screenRect.left() + screenRect.width() - infoPopup->width())),
|
|
qMax(screenRect.top(), qMin(pos.y() - infoPopup->height() / 2,
|
|
screenRect.top() + screenRect.height() - infoPopup->height())));
|
|
infoPopup->show();
|
|
}
|
|
|
|
void Tab::deleteCardInfoPopup(const QString &cardName)
|
|
{
|
|
if (infoPopup) {
|
|
if ((currentCardName == cardName) || (cardName == "_")) {
|
|
infoPopup->deleteLater();
|
|
infoPopup = 0;
|
|
}
|
|
}
|
|
}
|