Exemple #1
0
void
SetWidget::onTileChosen()
{
  auto* p_tileWidget = qobject_cast<TileWidget*>(sender());
  if (p_tileWidget) {
    qDebug() << "SetWidget emit tile Chosen";
    emit tileChosen(p_tileWidget);
  }
}
TilesetEditor::TilesetEditor(ProjectWidget *projectWidget, QWidget *parent) : QWidget(parent)
{
    m_projectWidget = projectWidget;

    QHBoxLayout *layout = new QHBoxLayout;
    setLayout(layout);

    m_scene = new GraphicsTilesetScene;
    m_scene->setAllowedDragWidget(projectWidget);

    wm_view = new QGraphicsView(m_scene);
    wm_view->scale(2, 2);
    //wm_view->setFrameShape(QFrame::NoFrame);
    layout->addWidget(wm_view);

    oldTilesHeight = 16;
    oldTilesWidth = 16;
    tileSelectedId = 0;

    wm_selector = new TileSelector(m_projectWidget);

    //Layout des paramètres :
    QVBoxLayout *l_settings = new QVBoxLayout;
    layout->addLayout(l_settings);
        //GroupBox concernant les tiles :
        groupTiles = new QGroupBox(tr("Tiles"));
            QVBoxLayout *l_groupTiles = new QVBoxLayout;
            groupTiles->setLayout(l_groupTiles);
            //Layout de la largeur :
            QHBoxLayout *l_width = new QHBoxLayout;
                wm_tilesWidth = new QSpinBox;
                wm_tilesWidth->setKeyboardTracking(false);
                wm_tilesWidth->setMinimum(1);
                wm_tilesWidth->setMaximum(32);
                wm_tilesWidth->setValue(16);
                wm_tilesWidth->setSuffix(tr(" pixel"));
                labelWidth = new QLabel(tr("Largeur : "));
                l_width->addWidget(labelWidth);
                l_width->addWidget(wm_tilesWidth);
                l_width->addStretch();
                l_groupTiles->addLayout(l_width);
            //Layout de la hauteur :
            QHBoxLayout *l_height = new QHBoxLayout;
                wm_tilesHeight = new QSpinBox;
                wm_tilesHeight->setKeyboardTracking(false);
                wm_tilesHeight->setMinimum(1);
                wm_tilesHeight->setMaximum(32);
                wm_tilesHeight->setValue(16);
                wm_tilesHeight->setSuffix(tr(" pixel"));
                labelHeight = new QLabel(tr("Hauteur : "));
                l_height->addWidget(labelHeight);
                l_height->addWidget(wm_tilesHeight);
                l_height->addStretch();
                l_groupTiles->addLayout(l_height);
            //l_settings->addStretch();
            l_settings->addWidget(groupTiles);
            //l_settings->addStretch();
        //GroupBox concernant le tileset:
        groupTileset = new QGroupBox(tr("Tileset"));
            QVBoxLayout *l_groupTileset = new QVBoxLayout;
            groupTileset->setLayout(l_groupTileset);
            //Layout du nombre de tiles :
            QHBoxLayout *l_numberTiles = new QHBoxLayout;
                wm_numberOfTiles = new QSpinBox;
                wm_numberOfTiles->setKeyboardTracking(false);
                wm_numberOfTiles->setMinimum(0);
                wm_numberOfTiles->setMaximum(255);
                wm_numberOfTiles->setValue(0);
                labelNumber = new QLabel(tr("Nombre de tiles : "));
                l_numberTiles->addWidget(labelNumber);
                l_numberTiles->addWidget(wm_numberOfTiles);
                l_groupTileset->addLayout(l_numberTiles);
            //CheckBox de visualisation des propriétés :
            displayProperties = new QCheckBox(tr("Afficher les propriétés"));
            displayProperties->setChecked(true);
            l_groupTileset->addWidget(displayProperties);
            //Label du nom :
            labelName = new QLabel(tr("Nom du tileset :"));
            l_groupTileset->addWidget(labelName);
            //LineEdit du nom :
            name = new QLineEdit;
            l_groupTileset->addWidget(name);
        l_settings->addWidget(groupTileset);
        l_settings->addStretch();
    layout->addStretch();
            
    connect(wm_numberOfTiles, SIGNAL(valueChanged(int)), this, SLOT(numberOfTilesChanged(int)));
    connect(wm_tilesHeight, SIGNAL(valueChanged(int)), this, SLOT(setTilesHeight(int)));
    connect(wm_tilesWidth, SIGNAL(valueChanged(int)), this, SLOT(setTilesWidth(int)));
    connect(wm_selector, SIGNAL(tileChosen(QPersistentModelIndex)), this, SLOT(changeSelectedTile(QPersistentModelIndex)));
    connect(m_scene, SIGNAL(tileModified(GraphicsTileItem*)), this, SLOT(refreshTileId(GraphicsTileItem*)));
    connect(m_scene, SIGNAL(tileSelectorRequested(GraphicsTileItem*,QPoint)), this, SLOT(showTileSelector(GraphicsTileItem*,QPoint)));
    connect(displayProperties, SIGNAL(toggled(bool)), this, SLOT(setDisplayProperties(bool)));
    connect(name, SIGNAL(textEdited(QString)), this, SLOT(setTilesetName(QString)));
}