Show the image that belongs to the channel that is selected.

This commit is contained in:
dfighter1985 2014-07-30 14:28:17 +02:00
parent 47a5f95b71
commit 0750ca7a4d
5 changed files with 76 additions and 8 deletions

View file

@ -168,6 +168,17 @@ TileEditorMainWindow::TileEditorMainWindow(QWidget *parent)
connect( m_ui->actionOpenTileBank, SIGNAL( triggered() ), this, SLOT( open() ) ); connect( m_ui->actionOpenTileBank, SIGNAL( triggered() ), this, SLOT( open() ) );
connect( m_ui->orientedCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( onOrientedStateChanged( int ) ) ); connect( m_ui->orientedCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( onOrientedStateChanged( int ) ) );
connect( m_ui->diffuse128BT, SIGNAL( toggled( bool ) ), this, SLOT( onDiffuseToggled( bool ) ) );
connect( m_ui->diffuse256BT, SIGNAL( toggled( bool ) ), this, SLOT( onDiffuseToggled( bool ) ) );
connect( m_ui->diffuseTrBT, SIGNAL( toggled( bool ) ), this, SLOT( onDiffuseToggled( bool ) ) );
connect( m_ui->additive128BT, SIGNAL( toggled( bool ) ), this, SLOT( onAdditiveToggled( bool ) ) );
connect( m_ui->additive256BT, SIGNAL( toggled( bool ) ), this, SLOT( onAdditiveToggled( bool ) ) );
connect( m_ui->additiveTrBT, SIGNAL( toggled( bool ) ), this, SLOT( onAdditiveToggled( bool ) ) );
connect( m_ui->alphaTrBT, SIGNAL( toggled( bool ) ), this, SLOT( onAlphaToggled( bool ) ) );
connect( m_ui->tileViewTabWidget, SIGNAL( currentChanged( int ) ), this, SLOT( onTabChanged( int ) ) );
} }
TileEditorMainWindow::~TileEditorMainWindow() TileEditorMainWindow::~TileEditorMainWindow()
@ -601,6 +612,43 @@ void TileEditorMainWindow::onOrientedStateChanged( int state )
node->setOriented( false ); node->setOriented( false );
} }
void TileEditorMainWindow::onDiffuseToggled( bool b )
{
if( !b )
return;
TileItemNode::setDisplayChannel( TileModel::TileDiffuse );
updateTab();
}
void TileEditorMainWindow::onAdditiveToggled( bool b )
{
if( !b )
return;
TileItemNode::setDisplayChannel( TileModel::TileAdditive );
updateTab();
}
void TileEditorMainWindow::onAlphaToggled( bool b )
{
if( !b )
return;
TileItemNode::setDisplayChannel( TileModel::TileAlpha );
updateTab();
}
void TileEditorMainWindow::onTabChanged( int tab )
{
if( tab == -1 )
return;
m_ui->diffuse128BT->setChecked( true );
m_ui->diffuse256BT->setChecked( true );
m_ui->diffuseTrBT->setChecked( true );
}
void TileEditorMainWindow::onActionAddTile(int tabId) void TileEditorMainWindow::onActionAddTile(int tabId)
{ {
QModelIndex idx = m_ui->tileSetLV->currentIndex(); QModelIndex idx = m_ui->tileSetLV->currentIndex();
@ -758,6 +806,11 @@ void TileEditorMainWindow::onTileBankLoaded()
m_ui->landLW->setCurrentRow( 0 ); m_ui->landLW->setCurrentRow( 0 );
} }
void TileEditorMainWindow::updateTab()
{
m_ui->tileViewTabWidget->currentWidget()->repaint();
}
TileModel* TileEditorMainWindow::createTileModel() TileModel* TileEditorMainWindow::createTileModel()
{ {
QStringList headers; QStringList headers;

View file

@ -72,6 +72,12 @@ private Q_SLOTS:
void onOrientedStateChanged( int state ); void onOrientedStateChanged( int state );
void onDiffuseToggled( bool b );
void onAdditiveToggled( bool b );
void onAlphaToggled( bool b );
void onTabChanged( int tab );
void changeActiveTileSet(const QModelIndex &newIndex, const QModelIndex &oldIndex); void changeActiveTileSet(const QModelIndex &newIndex, const QModelIndex &oldIndex);
void onZoomFactor(int level); void onZoomFactor(int level);
@ -85,6 +91,8 @@ private:
void onTileSetRenamed( const QString &oldname, const QString &newname ); void onTileSetRenamed( const QString &oldname, const QString &newname );
void onTileBankLoaded(); void onTileBankLoaded();
void updateTab();
TileModel* createTileModel(); TileModel* createTileModel();
QListView* getListViewByTab( int tab ) const; QListView* getListViewByTab( int tab ) const;

View file

@ -57,7 +57,7 @@
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<item> <item>
<widget class="QRadioButton" name="radioButton_5"> <widget class="QRadioButton" name="diffuse128BT">
<property name="text"> <property name="text">
<string>Diffuse</string> <string>Diffuse</string>
</property> </property>
@ -67,7 +67,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="radioButton_6"> <widget class="QRadioButton" name="additive128BT">
<property name="text"> <property name="text">
<string>Additive</string> <string>Additive</string>
</property> </property>
@ -115,7 +115,7 @@
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_4">
<item> <item>
<widget class="QRadioButton" name="radioButton_10"> <widget class="QRadioButton" name="diffuse256BT">
<property name="text"> <property name="text">
<string>Diffuse</string> <string>Diffuse</string>
</property> </property>
@ -128,7 +128,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="radioButton_9"> <widget class="QRadioButton" name="additive256BT">
<property name="text"> <property name="text">
<string>Additive</string> <string>Additive</string>
</property> </property>
@ -185,7 +185,7 @@
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_5"> <layout class="QHBoxLayout" name="horizontalLayout_5">
<item> <item>
<widget class="QRadioButton" name="radioButton_13"> <widget class="QRadioButton" name="diffuseTrBT">
<property name="text"> <property name="text">
<string>Diffuse</string> <string>Diffuse</string>
</property> </property>
@ -195,14 +195,14 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="radioButton_12"> <widget class="QRadioButton" name="additiveTrBT">
<property name="text"> <property name="text">
<string>Additive</string> <string>Additive</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="radioButton_11"> <widget class="QRadioButton" name="alphaTrBT">
<property name="text"> <property name="text">
<string>Alpha</string> <string>Alpha</string>
</property> </property>

View file

@ -264,6 +264,8 @@ void TileTypeNode::reindex()
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
TileModel::TTileChannel TileItemNode::s_displayChannel = TileModel::TileDiffuse;
TileItemNode::TileItemNode(int tileId, TileModel::TTileChannel channel, QString filename, Node *parent) : m_tileId(tileId) TileItemNode::TileItemNode(int tileId, TileModel::TTileChannel channel, QString filename, Node *parent) : m_tileId(tileId)
{ {
m_tileFilename[channel] = filename; m_tileFilename[channel] = filename;
@ -294,7 +296,7 @@ QString TileItemNode::getTileFilename(TileModel::TTileChannel channel)
QVariant TileItemNode::data(int column, int role) const QVariant TileItemNode::data(int column, int role) const
{ {
// find some way to know which file/bitmap to display // find some way to know which file/bitmap to display
QString tileFilename = m_tileFilename[TileModel::TileDiffuse]; QString tileFilename = m_tileFilename[s_displayChannel];
if(role == TileModel::TilePixmapRole || role == Qt::DecorationRole) if(role == TileModel::TilePixmapRole || role == Qt::DecorationRole)
{ {

View file

@ -115,10 +115,15 @@ public:
QString getTileFilename(TileModel::TTileChannel channel); QString getTileFilename(TileModel::TTileChannel channel);
void setId( int id ){ m_tileId = id; } void setId( int id ){ m_tileId = id; }
int id() const{ return m_tileId; } int id() const{ return m_tileId; }
static void setDisplayChannel( TileModel::TTileChannel channel ){ s_displayChannel = channel; }
private: private:
int m_tileId; int m_tileId;
QMap<TileModel::TTileChannel, QString> m_tileFilename; QMap<TileModel::TTileChannel, QString> m_tileFilename;
QMap<TileModel::TTileChannel, TileWidget*> m_tileWidget; QMap<TileModel::TTileChannel, TileWidget*> m_tileWidget;
static TileModel::TTileChannel s_displayChannel;
}; };
#endif // TILE_ITEM_H #endif // TILE_ITEM_H