diff --git a/src/GUI/IntelliPhotoGui.cpp b/src/GUI/IntelliPhotoGui.cpp index 7611b30..ce6af70 100644 --- a/src/GUI/IntelliPhotoGui.cpp +++ b/src/GUI/IntelliPhotoGui.cpp @@ -8,6 +8,7 @@ // IntelliPhotoGui constructor IntelliPhotoGui::IntelliPhotoGui(){ + //create Gui elements and lay them out createGui(); // Create actions @@ -19,7 +20,8 @@ IntelliPhotoGui::IntelliPhotoGui(){ // Size the app resize(600,600); - //showMaximized(); + showMaximized(); + } // User tried to close the app @@ -105,14 +107,6 @@ void IntelliPhotoGui::slotDeleteLayer(){ paintingArea->deleteLayer(layerNumber); } -void slotCreatePenTool(){ - -} - -void slotCreateFloodFillTool(){ - -} - void IntelliPhotoGui::slotSetActiveAlpha(){ // Stores button value bool ok1, ok2; @@ -205,7 +199,7 @@ void IntelliPhotoGui::slotSetActiveLayer(){ { paintingArea->setLayerToActive(layer); } -}; +} void IntelliPhotoGui::slotSetFirstColor(){ paintingArea->colorPickerSetFirstColor(); @@ -318,7 +312,7 @@ void IntelliPhotoGui::createActions(){ connect(actionColorPickerFirstColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor())); actionColorPickerSecondColor = new QAction(tr("&Secondary"), this); - connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetFirstColor())); + connect(actionColorPickerSecondColor, SIGNAL(triggered()), this, SLOT(slotSetSecondColor())); actionColorSwitch = new QAction(tr("&Switch"), this); actionColorSwitch->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S)); diff --git a/src/GUI/IntelliPhotoGui.h b/src/GUI/IntelliPhotoGui.h index c074d85..ad8250a 100644 --- a/src/GUI/IntelliPhotoGui.h +++ b/src/GUI/IntelliPhotoGui.h @@ -68,7 +68,6 @@ private: //set style of the GUI void setIntelliStyle(); - // Will check if changes have occurred since last save bool maybeSave(); // Opens the Save dialog and saves @@ -123,7 +122,6 @@ private: //main GUI elements QWidget* centralGuiWidget; - QPushButton* Toolmanager; QGridLayout *mainLayout; }; diff --git a/src/IntelliPhoto.pro b/src/IntelliPhoto.pro index d1fe9fa..21210e8 100644 --- a/src/IntelliPhoto.pro +++ b/src/IntelliPhoto.pro @@ -46,11 +46,10 @@ HEADERS += \ Tool/IntelliToolPen.h \ Tool/IntelliToolPlain.h \ Tool/IntelliToolPolygon.h \ - Tool/IntelliToolRechteck.h \ - Tool/intellitoolcircle.h + Tool/IntelliToolRechteck.h FORMS += \ - widget.ui + mainwindow.ui QMAKE_CXXFLAGS QMAKE_LFLAGS diff --git a/src/Layer/PaintingArea.cpp b/src/Layer/PaintingArea.cpp index dd53f0b..bca41f0 100644 --- a/src/Layer/PaintingArea.cpp +++ b/src/Layer/PaintingArea.cpp @@ -24,7 +24,7 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) this->setUp(maxWidth, maxHeight); //tetsing this->addLayer(200,200,0,0,ImageType::Shaped_Image); - layerBundle[0].image->drawPlain(QColor(255,0,0,255)); + layerBundle[0].image->drawPlain(QColor(0,0,255,255)); std::vector polygon; polygon.push_back(QPoint(100,000)); polygon.push_back(QPoint(200,100)); @@ -36,7 +36,7 @@ PaintingArea::PaintingArea(int maxWidth, int maxHeight, QWidget *parent) layerBundle[1].image->drawPlain(QColor(0,255,0,255)); layerBundle[1].alpha=200; - activeLayer=1; + activeLayer=0; } PaintingArea::~PaintingArea(){ @@ -193,6 +193,14 @@ void PaintingArea::createLineTool(){ Tool = new IntelliToolLine(this, &colorPicker); } +int PaintingArea::getWidthActiveLayer(){ + return layerBundle.operator[](activeLayer).width; +} + +int PaintingArea::getHeightActiveLayer(){ + return layerBundle.operator[](activeLayer).hight; +} + // If a mouse button is pressed check if it was the // left button and if so store the current position // Set that we are currently drawing diff --git a/src/Layer/PaintingArea.h b/src/Layer/PaintingArea.h index e598774..547b6f3 100644 --- a/src/Layer/PaintingArea.h +++ b/src/Layer/PaintingArea.h @@ -59,6 +59,10 @@ public: void createPlainTool(); void createLineTool(); + //get Width and Height of active Layer + int getWidthActiveLayer(); + int getHeightActiveLayer(); + public slots: // Events to handle diff --git a/src/Tool/IntelliToolLine.cpp b/src/Tool/IntelliToolLine.cpp index 0b088cd..83ed0c7 100644 --- a/src/Tool/IntelliToolLine.cpp +++ b/src/Tool/IntelliToolLine.cpp @@ -26,7 +26,7 @@ void IntelliToolLine::onMouseRightReleased(int x, int y){ void IntelliToolLine::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); this->start=QPoint(x,y); - this->Canvas->image->drawLine(start, start, colorPicker->getFirstColor(),lineWidth); + this->Canvas->image->drawPoint(start, colorPicker->getFirstColor(),lineWidth); Canvas->image->calculateVisiblity(); } @@ -43,7 +43,6 @@ void IntelliToolLine::onWheelScrolled(int value){ } void IntelliToolLine::onMouseMoved(int x, int y){ - IntelliTool::onMouseMoved(x,y); if(this->drawing){ this->Canvas->image->drawPlain(Qt::transparent); QPoint next(x,y); diff --git a/src/Tool/IntelliToolPolygon.cpp b/src/Tool/IntelliToolPolygon.cpp index 3c297ac..8d3e26d 100644 --- a/src/Tool/IntelliToolPolygon.cpp +++ b/src/Tool/IntelliToolPolygon.cpp @@ -13,8 +13,11 @@ IntelliToolPolygon::IntelliToolPolygon(PaintingArea* Area, IntelliColorPicker* c } void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ - qDebug() << x << y; - if(!isDrawing && x > 0 && y > 0){ + if(!isDrawing){ + width = Area->getWidthActiveLayer(); + height = Area->getHeightActiveLayer(); + } + if(!isDrawing && x > 0 && y > 0 && x < width && y < height){ isDrawing = true; drawingPoint.setX(x); drawingPoint.setY(y); @@ -22,16 +25,19 @@ void IntelliToolPolygon::onMouseLeftPressed(int x, int y){ IntelliTool::onMouseLeftPressed(x,y); this->Canvas->image->drawPlain(Qt::transparent); this->Canvas->image->drawPoint(QPointList.back(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); } else if(isDrawing && isNearStart(x,y,QPointList.front())){ PointIsNearStart = isNearStart(x,y,QPointList.front()); - this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth);s + this->Canvas->image->drawLine(QPointList.back(), QPointList.front(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); } else if(isDrawing){ drawingPoint.setX(x); drawingPoint.setY(y); QPointList.push_back(drawingPoint); this->Canvas->image->drawLine(QPointList.operator[](QPointList.size() - 2), QPointList.back(), colorPicker->getFirstColor(), lineWidth); + this->Canvas->image->calculateVisiblity(); } } @@ -44,8 +50,17 @@ void IntelliToolPolygon::onMouseRightPressed(int x, int y){ void IntelliToolPolygon::onMouseLeftReleased(int x, int y){ if(PointIsNearStart && QPointList.size() > 1){ + this->Canvas->image->calculateVisiblity(); PointIsNearStart = false; isDrawing = false; + for(int i = 0; i < width; i++){ + for(int j = 0; j < height; j++){ + if(/*funktion(QPointList,i,j)*/false){ + this->Canvas->image->drawPixel(QPoint(i,j), colorPicker->getFirstColor()); + continue; + } + } + } QPointList.clear(); IntelliTool::onMouseLeftReleased(x,y); } diff --git a/src/Tool/IntelliToolPolygon.h b/src/Tool/IntelliToolPolygon.h index c8496e9..fc51ec6 100644 --- a/src/Tool/IntelliToolPolygon.h +++ b/src/Tool/IntelliToolPolygon.h @@ -23,6 +23,8 @@ private: bool isNearStart(int x, int y, QPoint Startpoint); int lineWidth; + int width; + int height; bool isDrawing; bool PointIsNearStart; QPoint drawingPoint; diff --git a/src/mainwindow.ui b/src/mainwindow.ui new file mode 100644 index 0000000..433b697 --- /dev/null +++ b/src/mainwindow.ui @@ -0,0 +1,23 @@ + + + MainWindow + + + + 0 + 0 + 542 + 459 + + + + IntelliPhoto + + + true + + + + + + diff --git a/src/widget.ui b/src/widget.ui deleted file mode 100644 index b1d4c7b..0000000 --- a/src/widget.ui +++ /dev/null @@ -1,19 +0,0 @@ - - - Widget - - - - 0 - 0 - 360 - 206 - - - - Widget - - - - -