Fixed Inputboxes and Design

Todo pls merge me.
This commit is contained in:
Jan Schuffenhauer
2020-01-16 00:00:27 +01:00
parent 5f76f74cd5
commit b695a25128
7 changed files with 92 additions and 83 deletions

View File

@@ -2,18 +2,21 @@
#include <QFile>
IntelliInputDialog::IntelliInputDialog(QEventLoop* Loop, QString Title, QString Label, int value, int minValue, int maxValue, int step)
IntelliInputDialog::IntelliInputDialog(QString Title, QString Label, int value, int minValue, int maxValue, int step, bool* ok)
{
this->valueInt = value;
this->notClosed = ok;
if(notClosed != nullptr){
*notClosed = false;
}
createInputBox(Title, Label, value, minValue, maxValue, step);
createConnections(Loop);
setValuesOfPalette();
createConnections();
setInputBoxStyle();
Loop->exec();
this->exec();
}
int IntelliInputDialog::getInt(QEventLoop* Loop, QString Title, QString Label, int value, int minValue, int maxValue, int step){
IntelliInputDialog dialog(Loop, Title, Label, value, minValue, maxValue, step);
int IntelliInputDialog::getInt(QString Title, QString Label, int value, int minValue, int maxValue, int step, bool* ok){
IntelliInputDialog dialog(Title, Label, value, minValue, maxValue, step, ok);
return dialog.valueInt;
}
@@ -40,6 +43,7 @@ void IntelliInputDialog::createInputBox(QString Title, QString Label, int value,
this->Input = new QSpinBox();
this->Input->setFixedSize(Linesize);
this->Input->setRange(minValue,maxValue);
this->Input->setSingleStep(step);
this->Input->setValue(value);
this->okButton = ButtonBox->button(QDialogButtonBox::Ok);
@@ -60,31 +64,13 @@ void IntelliInputDialog::createInputBox(QString Title, QString Label, int value,
this->show();
}
void IntelliInputDialog::createConnections(QEventLoop* Loop){
void IntelliInputDialog::createConnections(){
connect(okButton, SIGNAL(clicked()), this, SLOT(slotEingabe()));
connect(okButton, SIGNAL(clicked()), Loop, SLOT(quit()));
connect(cancelButton, SIGNAL(clicked()), this, SLOT(slotCloseEvent()));
connect(cancelButton, SIGNAL(clicked()), Loop, SLOT(quit()));
}
void IntelliInputDialog::setInputBoxStyle(){
InputLabel->setPalette(Palette);
Input->setPalette(Palette);
okButton->setPalette(Palette);
cancelButton->setPalette(Palette);
this->setStyleSheet("background-color:rgb(64,64,64)");
}
void IntelliInputDialog::setValuesOfPalette(){
Palette.setBrush(QPalette::HighlightedText, QColor(200, 10, 10));
Palette.setBrush(QPalette::Highlight, QColor(100, 5, 5));
Palette.setBrush(QPalette::ButtonText, QColor(255, 255, 255));
Palette.setBrush(QPalette::Button, QColor(64, 64, 64));
Palette.setBrush(QPalette::Window, QColor(64, 64, 64));
Palette.setBrush(QPalette::WindowText, QColor(255, 255, 255));
Palette.setBrush(QPalette::PlaceholderText, QColor(255, 255, 255));
Palette.setBrush(QPalette::ToolTipText, QColor(255, 255, 255));
Palette.setBrush(QPalette::Text, QColor(255, 255, 255));
this->setStyleSheet("color: white;" "background-color: rgb(64, 64, 64);" "selection-color: rgb(200, 10, 10);" "selection-background-color: rgb(64, 64, 64);");
}
void IntelliInputDialog::slotCloseEvent(){
@@ -93,4 +79,8 @@ void IntelliInputDialog::slotCloseEvent(){
void IntelliInputDialog::slotEingabe(){
valueInt = QString("%1").arg(Input->value()).toInt();
if(notClosed != nullptr){
*notClosed = true;
}
this->close();
}

View File

@@ -7,10 +7,10 @@ class IntelliInputDialog : public QDialog
{
Q_OBJECT
public:
IntelliInputDialog(QEventLoop* Loop = nullptr, QString Title = nullptr, QString Label = nullptr, int value = 5, int minValue = -2147483647, int maxValue = 2147483647, int step = 1);
IntelliInputDialog(QString Title = nullptr, QString Label = nullptr, int value = 5, int minValue = -2147483647, int maxValue = 2147483647, int step = 1, bool* ok = nullptr);
static int getInt(QEventLoop* Loop = nullptr, QString Title = nullptr, QString Label = nullptr, int value = 5, int minValue = -2147483647, int maxValue = 2147483647, int step = 1);
static int getInt(QString Title = nullptr, QString Label = nullptr, int value = 5, int minValue = -2147483647, int maxValue = 2147483647, int step = 1, bool* ok = nullptr);
public slots:
void slotCloseEvent();
@@ -18,8 +18,7 @@ void slotEingabe();
private:
void createInputBox(QString Title = nullptr, QString Label = nullptr, int value = 5, int minValue = -2147483647, int maxValue = 2147483647, int step = 1);
void createConnections(QEventLoop* Loop = nullptr);
void setValuesOfPalette();
void createConnections();
void setInputBoxStyle();
int valueInt;
@@ -27,10 +26,10 @@ int valueInt;
QGridLayout* Layout;
QDialogButtonBox* ButtonBox;
QEventLoop loop;
bool* notClosed;
const QSize Linesize = QSize(150,20);
const QSize Buttonsize = QSize(72,20);
QPalette Palette;
QLabel* InputLabel;
QSpinBox* Input;
QPushButton* okButton;

View File

@@ -67,41 +67,54 @@ void IntelliPhotoGui::slotSave(){
// Opens a dialog that allows the user to create a New Layer
void IntelliPhotoGui::slotCreateNewLayer(){
bool ok1, ok2;
// "New Layer" is the title of the window
// the next tr is the text to display
// Define the standard Value, min, max, step and ok button
int width = IntelliInputDialog::getInt(&Loop, "New Layer", "Width:", 200, 0, 5000, 1);
int width = IntelliInputDialog::getInt("New Layer", "Width:", 200, 1, paintingArea->getMaxWidth(), 1, &ok1);
int height = IntelliInputDialog::getInt(&Loop, "New Layer", "Height:", 200, 0, 5000, 1);
int height = IntelliInputDialog::getInt("New Layer", "Height:", 200, 1, paintingArea->getMaxHeight(), 1, &ok2);
// Create New Layer
paintingArea->addLayer(width,height,0,0);
UpdateGui();
if(ok1&&ok2){
paintingArea->addLayer(width,height,0,0);
UpdateGui();
}
}
// Opens a dialog that allows the user to delete a Layer
void IntelliPhotoGui::slotDeleteLayer(){
bool ok1;
// "delete Layer" is the title of the window
// the next tr is the text to display
// Define the standard Value, min, max, step and ok button
int layerNumber = IntelliInputDialog::getInt(&Loop, "Delete Layer", "Number:", paintingArea->getNumberOfActiveLayer()+1, 1, 501, 1);
int layerNumber = IntelliInputDialog::getInt("Delete Layer", "Number:", paintingArea->getNumberOfActiveLayer()+1, 1, static_cast<int>(paintingArea->layerBundle.size()), 1, &ok1);
// Create New Layer
paintingArea->deleteLayer(layerNumber-1);
UpdateGui();
if(ok1){
paintingArea->deleteLayer(layerNumber-1);
UpdateGui();
}
}
void IntelliPhotoGui::slotSetActiveAlpha(){
bool ok1, ok2;
// "Layer to set on" is the title of the window
// the next tr is the text to display
// Define the standard Value, min, max, step and ok button
int layer = IntelliInputDialog::getInt(&Loop, "Layer to set on", "Layer:", paintingArea->getNumberOfActiveLayer()+1, 1, 501, 1);
int layer = IntelliInputDialog::getInt("Layer to set on", "Layer:", paintingArea->getNumberOfActiveLayer()+1, 1, static_cast<int>(paintingArea->layerBundle.size()), 1, &ok1);
// "New Alpha" is the title of the window
int alpha = IntelliInputDialog::getInt(&Loop, "Layer to set on", "Layer:", paintingArea->getNumberOfActiveLayer()+1, 1, 501, 1);
paintingArea->setLayerAlpha(layer-1,alpha);
UpdateGui();
int alpha = IntelliInputDialog::getInt("Layer to set on", "Alpha:", 255, 0, 255, 1, &ok2);
if(ok1&&ok2){
paintingArea->setLayerAlpha(layer-1,alpha);
UpdateGui();
}
}
void IntelliPhotoGui::slotPositionMoveUp(){
@@ -140,28 +153,31 @@ void IntelliPhotoGui::slotClearActiveLayer(){
// Define the standard Value, min, max, step and ok button
// "Red Input" is the title of the window
int red = IntelliInputDialog::getInt(&Loop, "Green Input", "Green:", 255, 0, 255, 1);
int red = IntelliInputDialog::getInt("Green Input", "Green:", 255, 0, 255, 1);
// "Green Input" is the title of the window
int green = IntelliInputDialog::getInt(&Loop, "Green Input", "Green:", 255, 0, 255, 1);
int green = IntelliInputDialog::getInt("Green Input", "Green:", 255, 0, 255, 1);
// "Blue Input" is the title of the window
int blue = IntelliInputDialog::getInt(&Loop, "Blue Input", "Blue:", 255, 0, 255, 1);
int blue = IntelliInputDialog::getInt("Blue Input", "Blue:", 255, 0, 255, 1);
// "Alpha Input" is the title of the window
int alpha = IntelliInputDialog::getInt(&Loop, "Alpha Input", "Alpha:", 255, 0, 255, 1);
int alpha = IntelliInputDialog::getInt("Alpha Input", "Alpha:", 255, 0, 255, 1);
paintingArea->floodFill(red, green, blue, alpha);
UpdateGui();
}
void IntelliPhotoGui::slotSetActiveLayer(){
bool ok1;
// "Layer to set on" is the title of the window
// the next tr is the text to display
// Define the standard Value, min, max, step and ok button
int layer = IntelliInputDialog::getInt(&Loop, "Layer to set on", "Layer:", 1, 1, 501, 1);
paintingArea->setLayerActive(layer-1);
UpdateGui();
int layer = IntelliInputDialog::getInt("Layer to set on", "Layer:", 1, 1, static_cast<int>(paintingArea->layerBundle.size()), 1, &ok1);
if(ok1){
paintingArea->setLayerActive(layer-1);
UpdateGui();
}
}
void IntelliPhotoGui::slotUpdateRenderSettingsOn(){
@@ -255,13 +271,21 @@ void IntelliPhotoGui::slotResetTools(){
}
void IntelliPhotoGui::slotSetWidth(){
paintingArea->Toolsettings.setLineWidth(IntelliInputDialog::getInt(&Loop, "Toolsettings", "Width:", 5, 1, 50, 1));
EditLineWidth->setText(QString("%1").arg(paintingArea->Toolsettings.getLineWidth()));
bool ok1;
int temp = IntelliInputDialog::getInt("Toolsettings", "Width:", 5, 1, 50, 1, &ok1);
if(ok1){
paintingArea->Toolsettings.setLineWidth(temp);
EditLineWidth->setText(QString("%1").arg(temp));
}
}
void IntelliPhotoGui::slotSetInnerAlpha(){
paintingArea->Toolsettings.setInnerAlpha(IntelliInputDialog::getInt(&Loop, "Toolsettings", "Width:", 5, 1, 50, 1));
EditLineInnerAlpha->setText(QString("%1").arg(paintingArea->Toolsettings.getInnerAlpha()));
bool ok1;
int temp = IntelliInputDialog::getInt("Toolsettings", "Width:", 5, 1, 50, 1, &ok1);
if(ok1){
paintingArea->Toolsettings.setInnerAlpha(temp);
EditLineInnerAlpha->setText(QString("%1").arg(temp));
}
}
// Define menu actions that call functions
@@ -670,34 +694,8 @@ void IntelliPhotoGui::createGui(){
void IntelliPhotoGui::setIntelliStyle(){
// Set the title
setWindowTitle("IntelliPhoto Prototype");
Palette.setBrush(QPalette::HighlightedText, QColor(200, 10, 10));
Palette.setBrush(QPalette::Highlight, QColor(100, 5, 5));
Palette.setBrush(QPalette::ButtonText, QColor(255, 255, 255));
Palette.setBrush(QPalette::Button, QColor(64, 64, 64));
Palette.setBrush(QPalette::Window, QColor(64, 64, 64));
Palette.setBrush(QPalette::WindowText, QColor(255, 255, 255));
Palette.setBrush(QPalette::PlaceholderText, QColor(255, 255, 255));
Palette.setBrush(QPalette::ToolTipText, QColor(255, 255, 255));
Palette.setBrush(QPalette::Text, QColor(255, 255, 255));
// Set style sheet
this->setStyleSheet("background-color:rgb(64,64,64)");
this->menuBar()->setPalette(Palette);
this->fileMenu->setPalette(Palette);
this->saveAsMenu->setPalette(Palette);
this->optionMenu->setPalette(Palette);
this->helpMenu->setPalette(Palette);
this->renderMenu->setPalette(Palette);
this->toolMenu->setPalette(Palette);
this->layerMenu->setPalette(Palette);
this->colorMenu->setPalette(Palette);
this->toolCreationMenu->setPalette(Palette);
this->toolSettingsMenu->setPalette(Palette);
this->WidthLine->setPalette(Palette);
this->EditLineWidth->setPalette(Palette);
this->innerAlphaLine->setPalette(Palette);
this->EditLineInnerAlpha->setPalette(Palette);
this->ActiveLayerLine->setPalette(Palette);
this->setStyleSheet("color: white;" "background-color: rgb(64, 64, 64);" "selection-color: rgb(200, 10, 10);" "selection-background-color: rgb(64, 64, 64);");
QString string = QString("background-color: %1").arg(paintingArea->colorPicker.getFirstColor().name());
FirstColorButton->setStyleSheet(string);

View File

@@ -107,7 +107,6 @@ void setDefaultToolValue();
// What we'll draw on
PaintingArea* paintingArea;
QEventLoop Loop;
const QSize Buttonsize = QSize(35,35);
QPixmap preview;
@@ -132,8 +131,6 @@ QPushButton* SwitchColorButton;
QLabel* ActiveLayerLine;
QLabel* ActiveLayerImageLabel;
QPalette Palette;
// The menu widgets
QMenu*saveAsMenu;
QMenu*fileMenu;

View File

@@ -17,6 +17,12 @@ int IntelliToolsettings::getLineWidth(){
}
void IntelliToolsettings::setLineWidth(int LineWidth){
if(LineWidth < 1){
LineWidth = 1;
}
else if(LineWidth > 50){
LineWidth = 50;
}
lineWidth = LineWidth;
}
@@ -25,6 +31,12 @@ int IntelliToolsettings::getInnerAlpha(){
}
void IntelliToolsettings::setInnerAlpha(int innerAlpha){
if(innerAlpha < 0){
innerAlpha = 0;
}
else if(innerAlpha > 255){
innerAlpha = 255;
}
this->innerAlpha = innerAlpha;
}

View File

@@ -182,6 +182,7 @@ void PaintingArea::moveActiveLayer(int idx){
}else if(idx==-1) {
this->selectLayerDown();
}
DummyGui->UpdateGui();
}
void PaintingArea::slotActivateLayer(int a){
@@ -253,6 +254,14 @@ int PaintingArea::getHeightOfActive(){
return this->layerBundle[static_cast<unsigned long long>(activeLayer)].height;
}
int PaintingArea::getMaxWidth(){
return this->maxWidth;
}
int PaintingArea::getMaxHeight(){
return this->maxHeight;
}
IntelliImage::ImageType PaintingArea::getTypeOfImageRealLayer(){
return this->layerBundle[static_cast<unsigned long long>(activeLayer)].image->getTypeOfImage();
}

View File

@@ -169,6 +169,10 @@ int getWidthOfActive();
*/
int getHeightOfActive();
int getMaxWidth();
int getMaxHeight();
IntelliImage::ImageType getTypeOfImageRealLayer();
std::vector<QPoint> getPolygonDataOfRealLayer();