19 setDefaultToolValue();
36 void IntelliPhotoGui::slotOpen(){
44 QString fileName = QFileDialog::getOpenFileName(
this,
45 tr(
"Open File"), QDir::currentPath(),
nullptr,
nullptr, QFileDialog::DontUseNativeDialog);
49 if (!fileName.isEmpty()) {
50 paintingArea->
open(fileName);
57 void IntelliPhotoGui::slotSave(){
59 QAction*action = qobject_cast<QAction*>(sender());
62 QByteArray fileFormat = action->data().toByteArray();
69 void IntelliPhotoGui::slotCreateNewRasterLayer(){
88 void IntelliPhotoGui::slotCreateNewShapedLayer(){
107 void IntelliPhotoGui::slotChangeDim(){
120 paintingArea->setLayerDimensions(width,height);
126 void IntelliPhotoGui::slotDeleteLayer(){
141 void IntelliPhotoGui::slotSetActiveAlpha(){
160 void IntelliPhotoGui::slotSetPolygon(){
176 void IntelliPhotoGui::slotPositionMoveUp(){
181 void IntelliPhotoGui::slotPositionMoveDown(){
186 void IntelliPhotoGui::slotPositionMoveLeft(){
191 void IntelliPhotoGui::slotPositionMoveRight(){
196 void IntelliPhotoGui::slotMoveLayerUp(){
201 void IntelliPhotoGui::slotMoveLayerDown(){
206 void IntelliPhotoGui::slotSetActiveLayer(){
211 int layer =
IntelliInputDialog::getInt(
"Layer to set on",
"Layer:", 1, 1,
static_cast<int>(paintingArea->layerBundle.size()), 1, &ok1);
219 void IntelliPhotoGui::slotUpdateRenderSettingsOn(){
224 void IntelliPhotoGui::slotUpdateRenderSettingsOff(){
229 void IntelliPhotoGui::slotSetFirstColor(){
234 void IntelliPhotoGui::slotSetSecondColor(){
239 void IntelliPhotoGui::slotSwapColor(){
244 void IntelliPhotoGui::slotCreatePenTool(){
245 PenButton->setChecked(
true);
249 void IntelliPhotoGui::slotCreatePlainTool(){
250 PlainButton->setChecked(
true);
254 void IntelliPhotoGui::slotCreateLineTool(){
255 LineButton->setChecked(
true);
259 void IntelliPhotoGui::slotCreateRectangleTool(){
260 RectangleButton->setChecked(
true);
264 void IntelliPhotoGui::slotCreateCircleTool(){
265 CircleButton->setChecked(
true);
269 void IntelliPhotoGui::slotCreatePolygonTool(){
270 PolygonButton->setChecked(
true);
274 void IntelliPhotoGui::slotCreateFloodFillTool(){
275 FloodFillButton->setChecked(
true);
280 void IntelliPhotoGui::slotAboutDialog(){
282 QMessageBox::about(
this, tr(
"About Painting"),
283 tr(
"<p><b>IntelliPhoto - </b>A Pretty basic editor.</p> <br>Developed by Team 7."));
286 void IntelliPhotoGui::slotEnterPressed(){
287 QString
string = EditLineWidth->text();
288 if(
string.toInt() > 50) {
289 EditLineWidth->setText(
"50");
292 string = EditLineInnerAlpha->text();
293 if(
string.toInt() > 255) {
294 EditLineInnerAlpha->setText(
"255");
299 void IntelliPhotoGui::slotResetTools(){
300 CircleButton->setChecked(
false);
301 FloodFillButton->setChecked(
false);
302 LineButton->setChecked(
false);
303 PenButton->setChecked(
false);
304 PlainButton->setChecked(
false);
305 PolygonButton->setChecked(
false);
306 RectangleButton->setChecked(
false);
309 void IntelliPhotoGui::slotSetWidth(){
314 EditLineWidth->setText(QString(
"%1").arg(temp));
318 void IntelliPhotoGui::slotSetInnerAlpha(){
323 EditLineInnerAlpha->setText(QString(
"%1").arg(temp));
328 void IntelliPhotoGui::createActions(){
331 foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
332 QString text = tr(
"%1...").arg(QString(format).toUpper());
335 QAction*action =
new QAction(text,
this);
338 action->setData(format);
341 connect(action, SIGNAL(triggered()),
this, SLOT(slotSave()));
344 actionSaveAs.append(action);
348 QAction*pngSaveAction =
new QAction(
"PNG-8",
this);
349 pngSaveAction->setData(
"PNG");
351 connect(pngSaveAction, SIGNAL(triggered()),
this, SLOT(slotSave()));
353 actionSaveAs.append(pngSaveAction);
354 pngSaveAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
357 actionExit =
new QAction(tr(
"&Exit"),
this);
358 actionExit->setShortcuts(QKeySequence::Quit);
359 connect(actionExit, SIGNAL(triggered()),
this, SLOT(close()));
361 actionOpen =
new QAction(tr(
"&Open"),
this);
362 actionOpen->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));
363 connect(actionOpen, SIGNAL(triggered()),
this, SLOT(slotOpen()));
366 actionCreateNewRasterLayer =
new QAction(tr(
"&Raster Image"),
this);
367 actionCreateNewRasterLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));
368 connect(actionCreateNewRasterLayer, SIGNAL(triggered()),
this, SLOT(slotCreateNewRasterLayer()));
372 actionCreateNewShapedLayer =
new QAction(tr(
"&Shaped Image"),
this);
373 actionCreateNewShapedLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N + Qt::ALT));
374 connect(actionCreateNewShapedLayer, SIGNAL(triggered()),
this, SLOT(slotCreateNewShapedLayer()));
377 actionDeleteLayer =
new QAction(tr(
"&Delete Layer..."),
this);
378 actionDeleteLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_D));
379 connect(actionDeleteLayer, SIGNAL(triggered()),
this, SLOT(slotDeleteLayer()));
381 actionChangeDim =
new QAction(tr(
"&Change Dimension"),
this);
382 actionChangeDim->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_X));
383 connect(actionChangeDim, SIGNAL(triggered()),
this, SLOT(slotChangeDim()));
384 connect(dimCanvas, SIGNAL(clicked()),
this, SLOT(slotChangeDim()));
386 actionSetActiveLayer =
new QAction(tr(
"&set Active"),
this);
387 actionSetActiveLayer->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_A));
388 connect(actionSetActiveLayer, SIGNAL(triggered()),
this, SLOT(slotSetActiveLayer()));
390 actionSetActiveAlpha =
new QAction(tr(
"&set Alpha"),
this);
391 actionSetActiveAlpha->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_A));
392 connect(actionSetActiveAlpha, SIGNAL(triggered()),
this, SLOT(slotSetActiveAlpha()));
394 actionSetPolygon =
new QAction(tr(
"&set new Polygondata"),
this);
395 actionSetPolygon->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_P));
396 connect(actionSetPolygon, SIGNAL(triggered()),
this, SLOT(slotSetPolygon()));
398 actionMovePositionUp =
new QAction(tr(
"&move Up"),
this);
399 actionMovePositionUp->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Up));
400 connect(actionMovePositionUp, SIGNAL(triggered()),
this, SLOT(slotPositionMoveUp()));
402 actionMovePositionDown =
new QAction(tr(
"&move Down"),
this);
403 actionMovePositionDown->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Down));
404 connect(actionMovePositionDown, SIGNAL(triggered()),
this, SLOT(slotPositionMoveDown()));
406 actionMovePositionLeft =
new QAction(tr(
"&move Left"),
this);
407 actionMovePositionLeft->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));
408 connect(actionMovePositionLeft, SIGNAL(triggered()),
this, SLOT(slotPositionMoveLeft()));
410 actionMovePositionRight =
new QAction(tr(
"&move Right"),
this);
411 actionMovePositionRight->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Right));
412 connect(actionMovePositionRight, SIGNAL(triggered()),
this, SLOT(slotPositionMoveRight()));
414 actionMoveLayerUp =
new QAction(tr(
"&move Layer Up"),
this);
415 actionMoveLayerUp->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Up));
416 connect(actionMoveLayerUp, SIGNAL(triggered()),
this, SLOT(slotMoveLayerUp()));
418 actionMoveLayerDown =
new QAction(tr(
"&move Layer Down"),
this);
419 actionMoveLayerDown->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Down));
420 connect(actionMoveLayerDown, SIGNAL(triggered()),
this, SLOT(slotMoveLayerDown()));
423 actionUpdateRenderSettingsOn =
new QAction(tr(
"&On"),
this);
424 actionUpdateRenderSettingsOn->setShortcut(QKeySequence(Qt::ALT + Qt::SHIFT + +Qt::Key_A));
425 connect(actionUpdateRenderSettingsOn, SIGNAL(triggered()),
this, SLOT(slotUpdateRenderSettingsOn()));
427 actionUpdateRenderSettingsOff =
new QAction(tr(
"&Off"),
this);
428 actionUpdateRenderSettingsOff->setShortcut(QKeySequence(Qt::ALT + Qt::SHIFT + +Qt::Key_D));
429 connect(actionUpdateRenderSettingsOff, SIGNAL(triggered()),
this, SLOT(slotUpdateRenderSettingsOff()));
432 actionColorPickerFirstColor =
new QAction(tr(
"&Main"),
this);
433 actionColorPickerFirstColor->setShortcut(QKeySequence(Qt::ALT + Qt::Key_N));
434 connect(actionColorPickerFirstColor, SIGNAL(triggered()),
this, SLOT(slotSetFirstColor()));
435 connect(FirstColorButton, SIGNAL(clicked()),
this, SLOT(slotSetFirstColor()));
437 actionColorPickerSecondColor =
new QAction(tr(
"&Secondary"),
this);
438 actionColorPickerSecondColor->setShortcut(QKeySequence(Qt::ALT + Qt::Key_M));
439 connect(actionColorPickerSecondColor, SIGNAL(triggered()),
this, SLOT(slotSetSecondColor()));
440 connect(SecondColorButton, SIGNAL(clicked()),
this, SLOT(slotSetSecondColor()));
442 actionColorSwap =
new QAction(tr(
"&Switch"),
this);
443 actionColorSwap->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_S));
444 connect(actionColorSwap, SIGNAL(triggered()),
this, SLOT(slotSwapColor()));
445 connect(SwitchColorButton, SIGNAL(clicked()),
this, SLOT(slotSwapColor()));
448 actionCreatePlainTool =
new QAction(tr(
"&Plain"),
this);
449 actionCreatePlainTool->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::SHIFT + Qt::Key_P));
450 connect(actionCreatePlainTool, SIGNAL(triggered()),
this, SLOT(slotResetTools()));
451 connect(actionCreatePlainTool, SIGNAL(triggered()),
this, SLOT(slotCreatePlainTool()));
454 actionCreatePenTool =
new QAction(tr(
"&Pen"),
this);
455 actionCreatePenTool->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::SHIFT + Qt::Key_S));
456 connect(actionCreatePenTool, SIGNAL(triggered()),
this, SLOT(slotResetTools()));
457 connect(actionCreatePenTool, SIGNAL(triggered()),
this, SLOT(slotCreatePenTool()));
459 actionCreateLineTool =
new QAction(tr(
"&Line"),
this);
460 actionCreateLineTool->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::SHIFT + Qt::Key_L));
461 connect(actionCreateLineTool, SIGNAL(triggered()),
this, SLOT(slotResetTools()));
462 connect(actionCreateLineTool, SIGNAL(triggered()),
this, SLOT(slotCreateLineTool()));
464 actionCreateCircleTool =
new QAction(tr(
"&Circle"),
this);
465 actionCreateCircleTool->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::SHIFT + Qt::Key_C));
466 connect(actionCreateCircleTool, SIGNAL(triggered()),
this, SLOT(slotResetTools()));
467 connect(actionCreateCircleTool, SIGNAL(triggered()),
this, SLOT(slotCreateCircleTool()));
469 actionCreateRectangleTool =
new QAction(tr(
"&Rectangle"),
this);
470 actionCreateRectangleTool->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::SHIFT + Qt::Key_R));
471 connect(actionCreateRectangleTool, SIGNAL(triggered()),
this, SLOT(slotResetTools()));
472 connect(actionCreateRectangleTool, SIGNAL(triggered()),
this, SLOT(slotCreateRectangleTool()));
474 actionCreatePolygonTool =
new QAction(tr(
"&Polygon"),
this);
475 actionCreatePolygonTool->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::SHIFT + Qt::Key_V));
476 connect(actionCreatePolygonTool, SIGNAL(triggered()),
this, SLOT(slotResetTools()));
477 connect(actionCreatePolygonTool, SIGNAL(triggered()),
this, SLOT(slotCreatePolygonTool()));
479 actionCreateFloodFillTool =
new QAction(tr(
"&FloodFill"),
this);
480 actionCreateFloodFillTool->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::SHIFT + Qt::Key_F));
481 connect(actionCreateFloodFillTool, SIGNAL(triggered()),
this, SLOT(slotResetTools()));
482 connect(actionCreateFloodFillTool, SIGNAL(triggered()),
this, SLOT(slotCreateFloodFillTool()));
485 actionAboutDialog =
new QAction(tr(
"&About"),
this);
486 actionAboutDialog->setShortcut(Qt::Key_F2);
487 connect(actionAboutDialog, SIGNAL(triggered()),
this, SLOT(slotAboutDialog()));
490 actionAboutQtDialog =
new QAction(tr(
"About &Qt"),
this);
491 actionAboutQtDialog->setShortcut(Qt::Key_F3);
492 connect(actionAboutQtDialog, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
494 connect(EditLineWidth, SIGNAL(returnPressed()),
this, SLOT(slotEnterPressed()));
495 connect(EditLineInnerAlpha, SIGNAL(returnPressed()),
this, SLOT(slotEnterPressed()));
497 connect(CircleButton,SIGNAL(pressed()),
this, SLOT(slotResetTools()));
498 connect(CircleButton, SIGNAL(clicked()),
this, SLOT(slotCreateCircleTool()));
500 connect(FloodFillButton,SIGNAL(pressed()),
this, SLOT(slotResetTools()));
501 connect(FloodFillButton, SIGNAL(clicked()),
this, SLOT(slotCreateFloodFillTool()));
503 connect(LineButton,SIGNAL(pressed()),
this, SLOT(slotResetTools()));
504 connect(LineButton, SIGNAL(clicked()),
this, SLOT(slotCreateLineTool()));
506 connect(PenButton,SIGNAL(pressed()),
this, SLOT(slotResetTools()));
507 connect(PenButton, SIGNAL(clicked()),
this, SLOT(slotCreatePenTool()));
509 connect(PlainButton,SIGNAL(pressed()),
this, SLOT(slotResetTools()));
510 connect(PlainButton, SIGNAL(clicked()),
this, SLOT(slotCreatePlainTool()));
512 connect(PolygonButton,SIGNAL(pressed()),
this, SLOT(slotResetTools()));
513 connect(PolygonButton, SIGNAL(clicked()),
this, SLOT(slotCreatePolygonTool()));
515 connect(RectangleButton,SIGNAL(pressed()),
this, SLOT(slotResetTools()));
516 connect(RectangleButton, SIGNAL(clicked()),
this, SLOT(slotCreateRectangleTool()));
518 actionSetWidth =
new QAction(tr(
"&Set Width"),
this);
519 actionSetWidth->setShortcut(QKeySequence(Qt::ALT + Qt::Key_W));
520 connect(actionSetWidth, SIGNAL(triggered()),
this, SLOT(slotSetWidth()));
522 actionSetInnerAlpha =
new QAction(tr(
"&Set Inner Alpha"),
this);
523 actionSetInnerAlpha->setShortcut(QKeySequence(Qt::ALT + Qt::Key_A));
524 connect(actionSetInnerAlpha, SIGNAL(triggered()),
this, SLOT(slotSetInnerAlpha()));
528 void IntelliPhotoGui::createMenus(){
530 saveAsMenu =
new QMenu(tr(
"&Save As"),
this);
531 foreach (QAction * action, actionSaveAs)
532 saveAsMenu->addAction(action);
535 fileMenu =
new QMenu(tr(
"&File"),
this);
536 fileMenu->addAction(actionOpen);
537 fileMenu->addMenu(saveAsMenu);
538 fileMenu->addSeparator();
539 fileMenu->addAction(actionExit);
542 renderMenu =
new QMenu(tr(
"&Fast Renderer"),
this);
543 renderMenu->addAction(actionUpdateRenderSettingsOn);
544 renderMenu->addAction(actionUpdateRenderSettingsOff);
547 layerCreationMenu =
new QMenu(tr(
"&Create new Layer"),
this);
548 layerCreationMenu->addAction(actionCreateNewRasterLayer);
549 layerCreationMenu->addAction(actionCreateNewShapedLayer);
551 layerMenu =
new QMenu(tr(
"&Layer"),
this);
552 layerMenu->addMenu(layerCreationMenu);
553 layerMenu->addSeparator();
554 layerMenu->addAction(actionSetActiveAlpha);
555 layerMenu->addAction(actionSetActiveLayer);
556 layerMenu->addAction(actionSetPolygon);
557 layerMenu->addSeparator();
558 layerMenu->addAction(actionMovePositionUp);
559 layerMenu->addAction(actionMovePositionDown);
560 layerMenu->addAction(actionMovePositionLeft);
561 layerMenu->addAction(actionMovePositionRight);
562 layerMenu->addAction(actionMoveLayerUp);
563 layerMenu->addAction(actionMoveLayerDown);
564 layerMenu->addSeparator();
565 layerMenu->addAction(actionDeleteLayer);
568 colorMenu =
new QMenu(tr(
"&Color"),
this);
569 colorMenu->addAction(actionColorPickerFirstColor);
570 colorMenu->addAction(actionColorPickerSecondColor);
571 colorMenu->addAction(actionColorSwap);
574 toolCreationMenu =
new QMenu(tr(
"&Drawingtools"),
this);
575 toolCreationMenu->addAction(actionCreateCircleTool);
576 toolCreationMenu->addAction(actionCreateFloodFillTool);
577 toolCreationMenu->addAction(actionCreateLineTool);
578 toolCreationMenu->addAction(actionCreatePenTool);
579 toolCreationMenu->addAction(actionCreatePlainTool);
580 toolCreationMenu->addAction(actionCreatePolygonTool);
581 toolCreationMenu->addAction(actionCreateRectangleTool);
584 toolSettingsMenu =
new QMenu(tr(
"&Toolsettings"),
this);
585 toolSettingsMenu->addAction(actionSetWidth);
586 toolSettingsMenu->addAction(actionSetInnerAlpha);
589 toolMenu =
new QMenu(tr(
"&Tools"),
this);
590 toolMenu->addMenu(toolCreationMenu);
591 toolMenu->addMenu(toolSettingsMenu);
592 toolMenu->addSeparator();
593 toolMenu->addMenu(colorMenu);
596 optionMenu =
new QMenu(tr(
"&Options"),
this);
597 optionMenu->addMenu(layerMenu);
598 optionMenu->addMenu(toolMenu);
599 optionMenu->addSeparator();
600 optionMenu->addMenu(renderMenu);
601 optionMenu->addAction(actionChangeDim);
604 helpMenu =
new QMenu(tr(
"&Help"),
this);
605 helpMenu->addAction(actionAboutDialog);
606 helpMenu->addAction(actionAboutQtDialog);
609 menuBar()->addMenu(fileMenu);
610 menuBar()->addMenu(optionMenu);
611 menuBar()->addMenu(helpMenu);
614 void IntelliPhotoGui::createGui(){
616 centralGuiWidget =
new QWidget(
this);
617 setCentralWidget(centralGuiWidget);
620 mainLayout =
new QGridLayout(centralGuiWidget);
621 centralGuiWidget->setLayout(mainLayout);
626 paintingArea->DummyGui =
this;
628 preview = QPixmap(
":/Icons/Buttons/icons/circle-tool.svg");
629 CircleButton =
new QPushButton();
630 CircleButton->setFixedSize(Buttonsize);
631 CircleButton->setIcon(preview);
632 CircleButton->setIconSize(Buttonsize);
633 CircleButton->setCheckable(
true);
635 preview = QPixmap(
":/Icons/Buttons/icons/flood-fill-tool.svg");
636 FloodFillButton =
new QPushButton();
637 FloodFillButton->setFixedSize(Buttonsize);
638 FloodFillButton->setIcon(preview);
639 FloodFillButton->setIconSize(Buttonsize);
640 FloodFillButton->setCheckable(
true);
642 preview = QPixmap(
":/Icons/Buttons/icons/line-tool.svg");
643 LineButton =
new QPushButton();
644 LineButton->setFixedSize(Buttonsize);
645 LineButton->setIcon(preview);
646 LineButton->setIconSize(Buttonsize);
647 LineButton->setCheckable(
true);
649 preview = QPixmap(
":/Icons/Buttons/icons/pen-tool.svg");
650 PenButton =
new QPushButton();
651 PenButton->setFixedSize(Buttonsize);
652 PenButton->setIcon(preview);
653 PenButton->setIconSize(Buttonsize);
654 PenButton->setCheckable(
true);
656 preview = QPixmap(
":/Icons/Buttons/icons/plain-tool.svg");
657 PlainButton =
new QPushButton();
658 PlainButton->setFixedSize(Buttonsize);
659 PlainButton->setIcon(preview);
660 PlainButton->setIconSize(Buttonsize);
661 PlainButton->setCheckable(
true);
663 preview = QPixmap(
":/Icons/Buttons/icons/polygon-tool.svg");
664 PolygonButton =
new QPushButton();
665 PolygonButton->setFixedSize(Buttonsize);
666 PolygonButton->setIcon(preview);
667 PolygonButton->setIconSize(Buttonsize);
668 PolygonButton->setCheckable(
true);
670 preview = QPixmap(
":/Icons/Buttons/icons/rectangle-tool.svg");
671 RectangleButton =
new QPushButton();
672 RectangleButton->setFixedSize(Buttonsize);
673 RectangleButton->setIcon(preview);
674 RectangleButton->setIconSize(Buttonsize);
675 RectangleButton->setCheckable(
true);
677 WidthLine =
new QLabel();
678 WidthLine->setText(
"Width");
679 WidthLine->setFixedSize(Buttonsize.width() * 2,(Buttonsize.height() * 2) / 3);
681 EditLineWidth =
new QLineEdit();
682 EditLineWidth->setFixedSize(Buttonsize.width() * 2,(Buttonsize.height() * 2) / 3);
683 EditLineWidth->setText(
"5");
684 ValidatorLineWidth =
new QIntValidator();
685 ValidatorLineWidth->setTop(99);
686 ValidatorLineWidth->setBottom(1);
687 EditLineWidth->setValidator(ValidatorLineWidth);
689 innerAlphaLine =
new QLabel();
690 innerAlphaLine->setText(
"Inner Alpha");
691 innerAlphaLine->setFixedSize(Buttonsize.width() * 2,(Buttonsize.height() * 2) / 3);
693 EditLineInnerAlpha =
new QLineEdit();
694 EditLineInnerAlpha->setFixedSize(Buttonsize.width() * 2,(Buttonsize.height() * 2) / 3);
695 EditLineInnerAlpha->setText(
"255");
696 ValidatorInnerAlpha =
new QIntValidator();
697 ValidatorInnerAlpha->setTop(999);
698 ValidatorInnerAlpha->setBottom(0);
699 EditLineInnerAlpha->setValidator(ValidatorInnerAlpha);
701 FirstColorButton =
new QPushButton();
702 FirstColorButton->setFixedSize(Buttonsize);
704 SecondColorButton =
new QPushButton();
705 SecondColorButton->setFixedSize(Buttonsize);
707 preview = QPixmap(
":/Icons/Buttons/icons/Wechselpfeile.png");
708 SwitchColorButton =
new QPushButton();
709 SwitchColorButton->setFixedSize(Buttonsize.width() * 2,Buttonsize.height());
710 SwitchColorButton->setIcon(preview);
711 SwitchColorButton->setIconSize(QSize(Buttonsize.width() * 2,Buttonsize.height()));
713 ActiveLayerLine =
new QLabel();
715 ActiveLayerLine->setText(
string);
716 ActiveLayerLine->setFixedSize(Buttonsize.width() * 2 + 10,(Buttonsize.height() * 2) / 3);
720 preview = preview.fromImage(activePicture->
getImageData());
722 QImage tmp(1,1,QImage::Format_ARGB32);
723 tmp.fill(Qt::transparent);
724 preview = preview.fromImage(tmp);
727 ActiveLayerImageLabel =
new QLabel();
728 ActiveLayerImageLabel->setFixedSize(Buttonsize * 2);
729 ActiveLayerImageLabel->setPixmap(preview.scaled(Buttonsize * 2));
731 dimActive =
new QPushButton();
732 dimActive->setFixedSize(Buttonsize.width() * 2,Buttonsize.height() / 2);
733 dimActive->setText(
"0x0");
735 dimCanvas =
new QPushButton();
736 dimCanvas->setFixedSize(Buttonsize.width() * 2,Buttonsize.height() / 2);
737 QString String = QString(
"%1x%2").arg(paintingArea->Canvas->width()).arg(paintingArea->Canvas->height());
738 dimCanvas->setText(String);
741 mainLayout->addWidget(paintingArea,1,1,20,1);
742 mainLayout->addWidget(CircleButton,1,2,1,1);
743 mainLayout->addWidget(FloodFillButton,1,3,1,1);
744 mainLayout->addWidget(LineButton,2,2,1,1);
745 mainLayout->addWidget(PenButton,2,3,1,1);
746 mainLayout->addWidget(PlainButton,3,2,1,1);
747 mainLayout->addWidget(PolygonButton,3,3,1,1);
748 mainLayout->addWidget(RectangleButton,4,2,1,1);
749 mainLayout->addWidget(WidthLine,5,2,1,2);
750 mainLayout->addWidget(EditLineWidth,6,2,1,2);
751 mainLayout->addWidget(innerAlphaLine,7,2,1,2);
752 mainLayout->addWidget(EditLineInnerAlpha,8,2,1,2);
753 mainLayout->addWidget(FirstColorButton,9,2,1,1);
754 mainLayout->addWidget(SecondColorButton,9,3,1,1);
755 mainLayout->addWidget(SwitchColorButton,10,2,1,2);
756 mainLayout->addWidget(ActiveLayerLine,11,2,1,2);
757 mainLayout->addWidget(ActiveLayerImageLabel,12,2,1,2);
758 mainLayout->addWidget(dimActive,13,2,1,2);
759 mainLayout->addWidget(dimCanvas,14,2,1,2);
760 mainLayout->setHorizontalSpacing(0);
763 void IntelliPhotoGui::setIntelliStyle(){
765 setWindowTitle(
"IntelliPhoto Prototype");
767 this->setStyleSheet(
"color: white;" "background-color: rgb(64, 64, 64);" "selection-color: rgb(200, 10, 10);" "selection-background-color: rgb(64, 64, 64);");
770 FirstColorButton->setStyleSheet(
string);
772 SecondColorButton->setStyleSheet(
string);
775 bool IntelliPhotoGui::maybeSave(){
780 QMessageBox::StandardButton ret;
784 ret = QMessageBox::warning(
this, tr(
"Painting"),
785 tr(
"The image has been modified.\n"
786 "Do you want to save your changes?"),
787 QMessageBox::Save | QMessageBox::Discard
788 | QMessageBox::Cancel);
791 if (ret == QMessageBox::Save) {
792 return saveFile(
"png");
795 }
else if (ret == QMessageBox::Cancel) {
802 bool IntelliPhotoGui::saveFile(
const QByteArray &fileFormat){
804 QString initialPath = QDir::currentPath() +
"/untitled." + fileFormat;
808 QString fileName = QFileDialog::getSaveFileName(
this, tr(
"Save As"),
810 tr(
"%1 Files (*.%2);;All Files (*)")
811 .arg(QString::fromLatin1(fileFormat.toUpper()))
812 .arg(QString::fromLatin1(fileFormat)),
nullptr, QFileDialog::DontUseNativeDialog);
815 if (fileName.isEmpty()) {
819 return paintingArea->
save(fileName, fileFormat.constData());
823 void IntelliPhotoGui::setDefaultToolValue(){
830 }
else if(value > 50) {
833 EditLineWidth->setText(QString(
"%1").arg(value));
838 ActiveLayerLine->setText(
string);
842 preview = preview.fromImage(activePicture->
getImageData());
844 QImage tmp(1,1,QImage::Format_ARGB32);
845 tmp.fill(Qt::transparent);
846 preview = preview.fromImage(tmp);
848 ActiveLayerImageLabel->setPixmap(preview.scaled(Buttonsize * 2));
851 FirstColorButton->setStyleSheet(
string);
853 SecondColorButton->setStyleSheet(
string);
855 string = QString(
"%1x%2").arg(paintingArea->Canvas->width()).arg(paintingArea->Canvas->height());
856 dimCanvas->setText(
string);
858 if(paintingArea->layerBundle.size() != 0) {
859 string = QString(
"%1x%2").arg(paintingArea->layerBundle[
static_cast<unsigned long long>(paintingArea->
getNumberOfActiveLayer())].width).arg(paintingArea->layerBundle[
static_cast<unsigned long long>(paintingArea->
getNumberOfActiveLayer())].height);
860 dimActive->setText(
string);
863 dimActive->setText(
"0x0");