mirror of
https://github.com/huderlem/porymap.git
synced 2026-03-21 17:45:44 -05:00
43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
#include "divingmappixmapitem.h"
|
|
#include "config.h"
|
|
|
|
DivingMapPixmapItem::DivingMapPixmapItem(MapConnection *connection, NoScrollComboBox *combo)
|
|
: QGraphicsPixmapItem(getBasePixmap(connection))
|
|
{
|
|
m_connection = connection;
|
|
m_combo = combo;
|
|
|
|
setComboText(connection->targetMapName());
|
|
|
|
// Update display if the connected map is swapped.
|
|
connect(m_connection, &MapConnection::targetMapNameChanged, this, &DivingMapPixmapItem::onTargetMapChanged);
|
|
}
|
|
|
|
DivingMapPixmapItem::~DivingMapPixmapItem() {
|
|
// Clear map name from combo box
|
|
setComboText("");
|
|
}
|
|
|
|
QPixmap DivingMapPixmapItem::getBasePixmap(MapConnection* connection) {
|
|
if (!connection)
|
|
return QPixmap();
|
|
if (!porymapConfig.showDiveEmergeMaps)
|
|
return QPixmap(); // Save some rendering time if it won't be displayed
|
|
if (connection->targetMapName() == connection->parentMapName())
|
|
return QPixmap(); // If the map is connected to itself then rendering is pointless.
|
|
return connection->render();
|
|
}
|
|
|
|
void DivingMapPixmapItem::updatePixmap() {
|
|
setPixmap(getBasePixmap(m_connection));
|
|
}
|
|
|
|
void DivingMapPixmapItem::onTargetMapChanged() {
|
|
updatePixmap();
|
|
setComboText(m_connection->targetMapName());
|
|
}
|
|
|
|
void DivingMapPixmapItem::setComboText(const QString &text) {
|
|
if (m_combo) m_combo->setTextItem(text);
|
|
}
|