void TupScenesWidget::emitRequestInsertScene() { #ifdef K_DEBUG #ifdef Q_OS_WIN qDebug() << "[TupScenesWidget::emitRequestInsertScene()]"; #else T_FUNCINFO; #endif #endif int index = k->scenesTable->scenesCount(); int label = index + 1; QString name = tr("Scene %1").arg(label); while (k->scenesTable->nameExists(name)) { label++; name = tr("Scene %1").arg(label); } TupProjectRequest event = TupRequestBuilder::createSceneRequest(index, TupProjectRequest::Add, name); emit requestTriggered(&event); event = TupRequestBuilder::createLayerRequest(index, 0, TupProjectRequest::Add, tr("Layer %1").arg(1)); emit requestTriggered(&event); // event = TupRequestBuilder::createFrameRequest(index, 0, 0, TupProjectRequest::Add, tr("Frame %1").arg(1)); event = TupRequestBuilder::createFrameRequest(index, 0, 0, TupProjectRequest::Add, tr("Frame")); emit requestTriggered(&event); event = TupRequestBuilder::createSceneRequest(index, TupProjectRequest::Select); emit localRequestTriggered(&event); }
void TupScenesWidget::emitRequestRemoveScene() { #ifdef K_DEBUG #ifdef Q_OS_WIN qDebug() << "[TupScenesWidget::emitRequestRemoveScene()]"; #else T_FUNCINFO; #endif #endif int index = k->scenesTable->currentSceneIndex(); if (k->scenesTable->scenesCount() == 1) { TupProjectRequest event = TupRequestBuilder::createSceneRequest(index, TupProjectRequest::Reset, tr("Scene %1").arg(1)); emit requestTriggered(&event); } else { TupProjectRequest event = TupRequestBuilder::createSceneRequest(index, TupProjectRequest::Remove); emit requestTriggered(&event); if (k->scenesTable->scenesCount() == index) index--; if (index >= 0) { event = TupRequestBuilder::createSceneRequest(index, TupProjectRequest::Select); emit localRequestTriggered(&event); } } }
void TupTimeLine::layerResponse(TupLayerResponse *response) { Q_UNUSED(response); #ifdef K_DEBUG #ifdef Q_OS_WIN32 qDebug() << "[TupTimeLine::layerResponse()]"; #else T_FUNCINFO; #endif #endif TupTimeLineTable *framesTable = this->framesTable(response->sceneIndex()); if (framesTable) { switch (response->action()) { case TupProjectRequest::Add: { framesTable->insertLayer(response->layerIndex(), response->arg().toString()); } break; case TupProjectRequest::Remove: { framesTable->removeLayer(response->layerIndex()); if (framesTable->layersTotal() == 0) { TupProjectRequest request = TupRequestBuilder::createLayerRequest(0, 0, TupProjectRequest::Add, tr("Layer %1").arg(1)); emit requestTriggered(&request); request = TupRequestBuilder::createFrameRequest(0, 0, 0, TupProjectRequest::Add, tr("Frame %1").arg(1)); emit requestTriggered(&request); } } break; case TupProjectRequest::Move: { framesTable->moveLayer(response->layerIndex(), response->arg().toInt()); } break; case TupProjectRequest::Lock: { // SQA: Pending for implementation } break; case TupProjectRequest::Rename: { framesTable->setLayerName(response->layerIndex(), response->arg().toString()); } break; case TupProjectRequest::View: { framesTable->setLayerVisibility(response->layerIndex(), response->arg().toBool()); } break; } } }
void TupScenesWidget::refreshItem(QTreeWidgetItem *item) { if (k->renaming) { TupProjectRequest event = TupRequestBuilder::createSceneRequest(k->scenesTable->currentSceneIndex(), TupProjectRequest::Rename, item->text(0)); emit requestTriggered(&event); k->renaming = false; } }
bool TupTimeLine::requestSceneAction(int action, int scenePos, const QVariant &arg) { TupProjectRequest request; switch (action) { case TupProjectActionBar::InsertScene: { request = TupRequestBuilder::createSceneRequest(scenePos + 1, TupProjectRequest::Add, tr("Scene %1").arg(scenePos + 2)); emit requestTriggered(&request); return true; } break; case TupProjectActionBar::RemoveScene: { request = TupRequestBuilder::createSceneRequest(scenePos, TupProjectRequest::Remove, arg); emit requestTriggered(&request); return true; } break; case TupProjectActionBar::MoveSceneUp: { request = TupRequestBuilder::createSceneRequest(scenePos, TupProjectRequest::Move, scenePos + 1); emit requestTriggered(&request); return true; } break; case TupProjectActionBar::MoveSceneDown: { request = TupRequestBuilder::createSceneRequest(scenePos, TupProjectRequest::Move, scenePos - 1); emit requestTriggered(&request); return true; } break; default: // Do nothing break; } return false; }
void KTScenesWidget::emitRequestInsertScene() { #ifdef K_DEBUG K_FUNCINFO; #endif int index = k->tableScenes->indexCurrentScene() + 1; if (index == 0) index = k->tableScenes->scenesCount(); KTProjectRequest event = KTRequestBuilder::createSceneRequest(index, KTProjectRequest::Add); emit requestTriggered(&event); event = KTRequestBuilder::createLayerRequest(index, 0, KTProjectRequest::Add); emit requestTriggered(&event); event = KTRequestBuilder::createFrameRequest(index, 0, 0, KTProjectRequest::Add); emit requestTriggered(&event); }
void TupTimeLine::selectFrame(int indexLayer, int indexFrame) { int scenePos = k->container->currentIndex(); TupScene *scene = k->project->scene(scenePos); if (scene) { int lastFrame = framesTable(scenePos)->lastFrameByLayer(indexLayer); if (indexFrame > lastFrame) { int totalFrames = scene->framesTotal(); if (indexFrame > (totalFrames-1)) { int layersTotal = scene->layersTotal(); for (int layer=0; layer < layersTotal; layer++) { int currentLimit = framesTable(scenePos)->lastFrameByLayer(layer); for (int frame = currentLimit + 1; frame <= indexFrame; frame++) { TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, layer, frame, TupProjectRequest::Add, tr("Frame %1").arg(frame + 1)); emit requestTriggered(&request); } } } else { for (int frame = lastFrame + 1; frame <= indexFrame; frame++) { TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, indexLayer, frame, TupProjectRequest::Add, tr("Frame %1").arg(frame + 1)); emit requestTriggered(&request); } } TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, indexLayer, indexFrame, TupProjectRequest::Select, "1"); emit requestTriggered(&request); } TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, indexLayer, indexFrame, TupProjectRequest::Select, "1"); emit requestTriggered(&request); } }
bool TupTimeLine::requestLayerAction(int action, int layerPos, int scenePos, const QVariant &arg) { TupProjectRequest request; switch (action) { case TupProjectActionBar::InsertLayer: { int layerIndex = framesTable(scenePos)->layersTotal(); request = TupRequestBuilder::createLayerRequest(scenePos, layerIndex, TupProjectRequest::Add, tr("Layer %1").arg(layerIndex + 1)); emit requestTriggered(&request); if (layerIndex == 0) { request = TupRequestBuilder::createFrameRequest(scenePos, layerIndex, 0, TupProjectRequest::Add, tr("Frame %1").arg(1)); emit requestTriggered(&request); } else { int total = framesTable(scenePos)->lastFrameByLayer(layerIndex - 1); for (int j=0; j <= total; j++) { request = TupRequestBuilder::createFrameRequest(scenePos, layerIndex, j, TupProjectRequest::Add, tr("Frame %1").arg(j + 1)); emit requestTriggered(&request); } } return true; } break; case TupProjectActionBar::RemoveLayer: { request = TupRequestBuilder::createLayerRequest(scenePos, layerPos, TupProjectRequest::Remove, arg); emit requestTriggered(&request); return true; } break; } return false; }
void TupTimeLine::requestLayerVisibilityAction(int layer, bool isVisible) { /* #ifdef K_DEBUG #ifdef Q_OS_WIN32 qDebug() << "[TupTimeLine::requestLayerVisibilityAction()]"; #else T_FUNCINFO; #endif #endif */ int scenePos = k->container->currentIndex(); TupProjectRequest request = TupRequestBuilder::createLayerRequest(scenePos, layer, TupProjectRequest::View, isVisible); emit requestTriggered(&request); }
void TupTimeLine::requestLayerRenameAction(int layer, const QString &name) { /* #ifdef K_DEBUG #ifdef Q_OS_WIN32 qDebug() << "[TupTimeLine::requestLayerRenameAction()]"; qDebug() << "name: " << name; #else T_FUNCINFO << name; #endif #endif */ int scenePos = k->container->currentIndex(); TupProjectRequest request = TupRequestBuilder::createLayerRequest(scenePos, layer, TupProjectRequest::Rename, name); emit requestTriggered(&request); }
void TupCanvas::wakeUpLibrary() { QString graphicPath = QFileDialog::getOpenFileName (this, tr("Import a SVG file..."), QDir::homePath(), tr("Vectorial") + " (*.svg *.png *.jpg *.jpeg *.gif)"); if (graphicPath.isEmpty()) return; QFile f(graphicPath); QFileInfo fileInfo(f); if (graphicPath.toLower().endsWith(".svg")) { QString tag = fileInfo.fileName(); if (f.open(QIODevice::ReadOnly)) { QByteArray data = f.readAll(); f.close(); // int projectWidth = k->size.width(); // int projectHeight = k->size.height(); TupProjectRequest request = TupRequestBuilder::createLibraryRequest(TupProjectRequest::Add, tag, TupLibraryObject::Svg, TupProject::FRAMES_EDITION, data, QString(), k->scene->currentSceneIndex(), k->scene->currentLayerIndex(), k->scene->currentFrameIndex()); emit requestTriggered(&request); } } else { QString symName = fileInfo.fileName(); if (f.open(QIODevice::ReadOnly)) { QByteArray data = f.readAll(); f.close(); QPixmap *pixmap = new QPixmap(graphicPath); int picWidth = pixmap->width(); int picHeight = pixmap->height(); int projectWidth = k->size.width(); int projectHeight = k->size.height(); if (picWidth > projectWidth || picHeight > projectHeight) { QDesktopWidget desktop; QMessageBox msgBox; msgBox.setWindowTitle(tr("Information")); msgBox.setIcon(QMessageBox::Question); msgBox.setText(tr("Image is bigger than workspace.")); msgBox.setInformativeText(tr("Do you want to resize it?")); msgBox.setStandardButtons(QMessageBox::No | QMessageBox::Yes); msgBox.setDefaultButton(QMessageBox::Ok); msgBox.show(); msgBox.move((int) (desktop.screenGeometry().width() - msgBox.width())/2, (int) (desktop.screenGeometry().height() - msgBox.height())/2); int answer = msgBox.exec(); if (answer == QMessageBox::Yes) { pixmap = new QPixmap(); QString extension = fileInfo.suffix().toUpper(); QByteArray ba = extension.toAscii(); const char* ext = ba.data(); if (pixmap->loadFromData(data, ext)) { QPixmap newpix; if (picWidth > projectWidth) newpix = QPixmap(pixmap->scaledToWidth(projectWidth, Qt::SmoothTransformation)); else newpix = QPixmap(pixmap->scaledToHeight(projectHeight, Qt::SmoothTransformation)); QBuffer buffer(&data); buffer.open(QIODevice::WriteOnly); newpix.save(&buffer, ext); } } } QString tag = symName; TupProjectRequest request = TupRequestBuilder::createLibraryRequest(TupProjectRequest::Add, tag, TupLibraryObject::Image, TupProject::FRAMES_EDITION, data, QString(), k->scene->currentSceneIndex(), k->scene->currentLayerIndex(), k->scene->currentFrameIndex()); emit requestTriggered(&request); data.clear(); } } }
void KTScenesWidget::emitRequestRemoveScene() { KTProjectRequest event = KTRequestBuilder::createSceneRequest(k->tableScenes->indexCurrentScene(), KTProjectRequest::Remove); emit requestTriggered(&event); }
void TupTimeLine::requestLayerMove(int oldIndex, int newIndex) { TupProjectRequest request = TupRequestBuilder::createLayerRequest(k->container->currentIndex(), oldIndex, TupProjectRequest::Move, newIndex); emit requestTriggered(&request); }
void TupTimeLine::emitRequestChangeFrame(int sceneIndex, int layerIndex, int frameIndex) { TupProjectRequest request = TupRequestBuilder::createFrameRequest(sceneIndex, layerIndex, frameIndex, TupProjectRequest::Select, "1"); emit requestTriggered(&request); }
bool TupTimeLine::requestFrameAction(int action, int framePos, int layerPos, int scenePos, const QVariant &arg) { /* #ifdef K_DEBUG #ifdef Q_OS_WIN32 qDebug() << "[TupTimeLine::requestFrameAction()]"; #else T_FUNCINFO; #endif #endif */ Q_UNUSED(framePos); TupProjectRequest request; switch (action) { case TupProjectActionBar::InsertFrame: { int lastFrame = framesTable(scenePos)->lastFrameByLayer(layerPos); int currentFrame = framesTable(scenePos)->currentColumn(); if (currentFrame == lastFrame) { request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, lastFrame + 1, TupProjectRequest::Add, tr("Frame %1").arg(lastFrame + 2)); emit requestTriggered(&request); } else { request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, currentFrame + 1, TupProjectRequest::Add, tr("Frame %1").arg(currentFrame + 2)); emit requestTriggered(&request); int target = currentFrame + 2; for (int index=target; index <= lastFrame+1; index++) { target++; request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, index, TupProjectRequest::Rename, tr("Frame %1").arg(target)); emit requestTriggered(&request); } } return true; } break; case TupProjectActionBar::RemoveFrame: { int lastFrame = framesTable(scenePos)->lastFrameByLayer(layerPos); int currentFrame = framesTable(scenePos)->currentColumn(); if (currentFrame > lastFrame) return false; if (lastFrame == 0) { TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, 0, TupProjectRequest::Reset); emit requestTriggered(&request); return true; } if (currentFrame == lastFrame) { TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, currentFrame, TupProjectRequest::Remove); emit requestTriggered(&request); if (currentFrame > 0) selectFrame(layerPos, currentFrame-1); else framesTable(scenePos)->clearSelection(); } else { request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, currentFrame, TupProjectRequest::Remove, arg); emit requestTriggered(&request); selectFrame(layerPos, currentFrame); } return true; } break; case TupProjectActionBar::MoveFrameBackward: { int currentFrame = framesTable(scenePos)->currentColumn(); TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, currentFrame, TupProjectRequest::Exchange, currentFrame - 1); emit requestTriggered(&request); return true; } break; case TupProjectActionBar::MoveFrameForward: { int currentFrame = framesTable(scenePos)->currentColumn(); int lastFrame = framesTable(scenePos)->lastFrameByLayer(layerPos); if (currentFrame == lastFrame) { TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, lastFrame + 1, TupProjectRequest::Add, tr("Frame %1").arg(lastFrame + 2)); emit requestTriggered(&request); } TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, currentFrame, TupProjectRequest::Exchange, currentFrame + 1); emit requestTriggered(&request); return true; } break; case TupProjectActionBar::LockFrame: { int currentFrame = framesTable(scenePos)->currentColumn(); bool locked = framesTable(scenePos)->frameIsLocked(layerPos, currentFrame); TupProjectRequest request = TupRequestBuilder::createFrameRequest(scenePos, layerPos, currentFrame, TupProjectRequest::Lock, !locked); emit requestTriggered(&request); return true; } break; default: // Do nothing break; } return false; }