//Paste void MainWindow::on_actionPaste_triggered() { if (activeChildWindow()==1) { LevelData tmp; QString raw=QApplication::clipboard()->text(); if( FileFormats::ReadExtendedLvlFileRaw(raw, "<clipboard>", tmp) ) { LvlBuffer = tmp; } if ( //if buffer is empty (LvlBuffer.blocks.size()==0)&& (LvlBuffer.bgo.size()==0)&& (LvlBuffer.npc.size()==0)&& (LvlBuffer.physez.size()==0) ) return; } else if (activeChildWindow()==3) { WorldData tmp; QString raw = QApplication::clipboard()->text(); if( FileFormats::ReadExtendedWldFileRaw(raw, "<clipboard>", tmp) ) { WldBuffer = tmp; } if ( //if buffer is empty (WldBuffer.tiles.size()==0)&& (WldBuffer.scenery.size()==0)&& (WldBuffer.paths.size()==0)&& (WldBuffer.levels.size()==0)&& (WldBuffer.music.size()==0) ) return; } resetEditmodeButtons(); ui->actionSelect->setChecked(1); if (activeChildWindow()==1) { activeLvlEditWin()->scene->SwitchEditingMode(LvlScene::MODE_PasteFromClip); activeLvlEditWin()->scene->m_dataBuffer = LvlBuffer; } else if (activeChildWindow()==3) { activeWldEditWin()->scene->SwitchEditingMode(LvlScene::MODE_PasteFromClip); activeWldEditWin()->scene->WldBuffer = WldBuffer; } }
void MainWindow::on_actionDrawSand_triggered() { resetEditmodeButtons(); ui->actionDrawSand->setChecked(1); ui->ItemProperties->hide(); if((activeChildWindow()==1)) { activeLvlEditWin()->scene->setItemPlacer( 3, 1 ); } }
void MainWindow::on_actionSetFirstPlayer_triggered() { resetEditmodeButtons(); ui->actionSetFirstPlayer->setChecked(1); ui->ItemProperties->hide(); if((activeChildWindow()==1)) { activeLvlEditWin()->scene->setItemPlacer( 5, 0 ); } }
void MainWindow::on_actionSelectOnly_triggered() { resetEditmodeButtons(); ui->actionSelectOnly->setChecked(1); ui->ItemProperties->hide(); if ((activeChildWindow()==1) && (ui->actionSelectOnly->isChecked())) { activeLvlEditWin()->scene->SwitchEditingMode(LvlScene::MODE_SelectingOnly); } else if ((activeChildWindow()==3) && (ui->actionSelectOnly->isChecked())) { activeWldEditWin()->scene->SwitchEditingMode(WldScene::MODE_SelectingOnly); } }
void MainWindow::SwitchPlacingItem(int itemType, unsigned long itemID) { if(activeChildWindow()==1) // Level editing window { bool valid=false; switch(itemType) { case ItemTypes::LVL_Block: case ItemTypes::LVL_BGO: case ItemTypes::LVL_NPC: valid=true; resetEditmodeButtons(); activeLvlEditWin()->scene->clearSelection(); activeLvlEditWin()->changeCursor(leveledit::MODE_PlaceItem); activeLvlEditWin()->scene->SwitchEditingMode(LvlScene::MODE_PlacingNew); LvlPlacingItems::placingMode = LvlPlacingItems::PMODE_Brush; //LvlPlacingItems::squareFillingMode = false; ui->actionSquareFill->setChecked(false); ui->actionSquareFill->setEnabled(true); //LvlPlacingItems::lineMode = false; ui->actionLine->setChecked(false); ui->actionLine->setEnabled(true); //LvlPlacingItems::floodFillingMode = false; ui->actionFill->setChecked(false); ui->actionFill->setEnabled(true); ui->PlacingToolbar->setVisible(true); qApp->setActiveWindow(this); activeLvlEditWin()->setFocus(); default:; } Placing_ShowProperties_lastType = itemType; //Switch placing mode if(valid) switch(itemType) { case ItemTypes::LVL_Block: { ui->action_Placing_ShowProperties->setChecked(true); ui->action_Placing_ShowProperties->setEnabled(true); //Switch scene to placing mode: activeLvlEditWin()->scene->setItemPlacer(0, itemID); //Open block properties toolbox for define placing properties LvlItemProps(0,LvlPlacingItems::blockSet, FileFormats::dummyLvlBgo(), FileFormats::dummyLvlNpc(), true); if(GlobalSettings::Placing_dontShowPropertiesBox) ui->ItemProperties->hide(); break; } case ItemTypes::LVL_BGO: { ui->action_Placing_ShowProperties->setChecked(true); ui->action_Placing_ShowProperties->setEnabled(true); activeLvlEditWin()->scene->setItemPlacer(1, itemID ); LvlItemProps(1,FileFormats::dummyLvlBlock(), LvlPlacingItems::bgoSet, FileFormats::dummyLvlNpc(), true); if(GlobalSettings::Placing_dontShowPropertiesBox) ui->ItemProperties->hide(); break; } case ItemTypes::LVL_NPC: { ui->action_Placing_ShowProperties->setChecked(true); ui->action_Placing_ShowProperties->setEnabled(true); ui->actionSquareFill->setEnabled(false); ui->actionFill->setEnabled(false); activeLvlEditWin()->scene->setItemPlacer(2, itemID ); LvlItemProps(2,FileFormats::dummyLvlBlock(), FileFormats::dummyLvlBgo(), LvlPlacingItems::npcSet, true); if(GlobalSettings::Placing_dontShowPropertiesBox) ui->ItemProperties->hide(); break; } } } else if(activeChildWindow()==3) // World editing window { bool valid=false; ui->action_Placing_ShowProperties->setChecked(false); ui->action_Placing_ShowProperties->setEnabled(false); switch(itemType) { case ItemTypes::WLD_Tile: case ItemTypes::WLD_Scenery: case ItemTypes::WLD_Path: case ItemTypes::WLD_Level: case ItemTypes::WLD_MusicBox: valid=true; resetEditmodeButtons(); ui->PlacingToolbar->setVisible(true); activeWldEditWin()->scene->clearSelection(); activeWldEditWin()->changeCursor(WorldEdit::MODE_PlaceItem); activeWldEditWin()->scene->SwitchEditingMode(WldScene::MODE_PlacingNew); WldPlacingItems::placingMode = WldPlacingItems::PMODE_Brush; //WldPlacingItems::squarefillingMode = false; ui->actionSquareFill->setChecked(false); ui->actionSquareFill->setEnabled(true); //WldPlacingItems::lineMode = false; ui->actionLine->setChecked(false); ui->actionLine->setEnabled(true); //WldPlacingItems::floodFillingMode = false; ui->actionFill->setChecked(false); ui->actionFill->setEnabled(true); qApp->setActiveWindow(this); activeWldEditWin()->setFocus(); default:; } Placing_ShowProperties_lastType = itemType; //Switch placing mode if(valid) switch(itemType) { case ItemTypes::WLD_Tile: { activeWldEditWin()->scene->setItemPlacer(0, itemID); WldItemProps(-1, FileFormats::dummyWldLevel(), true); break; } case ItemTypes::WLD_Scenery: { activeWldEditWin()->scene->setItemPlacer(1, itemID); WldItemProps(-1, FileFormats::dummyWldLevel(), true); break; } case ItemTypes::WLD_Path:\ { activeWldEditWin()->scene->setItemPlacer(2, itemID); WldItemProps(-1, FileFormats::dummyWldLevel(), true); break; } case ItemTypes::WLD_Level: { ui->action_Placing_ShowProperties->setChecked(true); ui->action_Placing_ShowProperties->setEnabled(true); activeWldEditWin()->scene->setItemPlacer(3, itemID); WldItemProps(0, WldPlacingItems::LevelSet, true); if(GlobalSettings::Placing_dontShowPropertiesBox) ui->WLD_ItemProps->hide(); break; } case ItemTypes::WLD_MusicBox: { ui->actionSquareFill->setEnabled(false); ui->actionLine->setEnabled(false); ui->actionFill->setEnabled(false); activeWldEditWin()->scene->setItemPlacer(4, itemID); WldItemProps(-1, FileFormats::dummyWldLevel(), true); break; } } } }
void MainWindow::on_actionFill_triggered(bool checked) { resetEditmodeButtons(); ui->PlacingToolbar->setVisible(true); if (activeChildWindow()==1) { leveledit * edit = activeLvlEditWin(); LvlPlacingItems::placingMode = (checked ? LvlPlacingItems::PMODE_FloodFill : LvlPlacingItems::PMODE_Brush ); ui->actionSquareFill->setChecked(false); ui->actionLine->setChecked(false); switch(edit->scene->placingItem) { case LvlScene::PLC_Block: edit->scene->setItemPlacer(0, LvlPlacingItems::blockSet.id ); break; case LvlScene::PLC_BGO: edit->scene->setItemPlacer(1, LvlPlacingItems::bgoSet.id ); break; default: break; } edit->setFocus(); } else if (activeChildWindow()==3) { WorldEdit * edit = activeWldEditWin(); WldPlacingItems::placingMode = (checked ? WldPlacingItems::PMODE_FloodFill : WldPlacingItems::PMODE_Brush ); ui->actionSquareFill->setChecked(false); ui->actionLine->setChecked(false); switch(edit->scene->placingItem) { case WldScene::PLC_Tile: edit->scene->setItemPlacer(0, WldPlacingItems::TileSet.id ); WriteToLog(QtDebugMsg, QString("Tile Line draw -> %1").arg(checked)); break; case WldScene::PLC_Scene: edit->scene->setItemPlacer(1, WldPlacingItems::SceneSet.id ); WriteToLog(QtDebugMsg, QString("Scenery Line draw -> %1").arg(checked)); break; case WldScene::PLC_Path: edit->scene->setItemPlacer(2, WldPlacingItems::PathSet.id ); WriteToLog(QtDebugMsg, QString("Path Line draw -> %1").arg(checked)); break; case WldScene::PLC_Level: edit->scene->setItemPlacer(3, WldPlacingItems::LevelSet.id ); WriteToLog(QtDebugMsg, QString("Path Line draw -> %1").arg(checked)); break; default: break; } edit->setFocus(); } }