diff --git a/app/src/preferencesdialog.cpp b/app/src/preferencesdialog.cpp
index c5cd972f3a..56819b5f42 100644
--- a/app/src/preferencesdialog.cpp
+++ b/app/src/preferencesdialog.cpp
@@ -150,7 +150,8 @@ GeneralPage::GeneralPage(QWidget* parent) :
connect(ui->curveSmoothingLevel, &QSlider::valueChanged, this, &GeneralPage::curveSmoothingChange);
connect(ui->highResBox, &QCheckBox::stateChanged, this, &GeneralPage::highResCheckboxStateChanged);
connect(ui->dottedCursorBox, &QCheckBox::stateChanged, this, &GeneralPage::dottedCursorCheckboxStateChanged);
- connect(ui->gridSizeInput, spinValueChanged, this, &GeneralPage::gridSizeChange);
+ connect(ui->gridSizeInputW, spinValueChanged, this, &GeneralPage::gridSizeChangeW);
+ connect(ui->gridSizeInputH, spinValueChanged, this, &GeneralPage::gridSizeChangeH);
connect(ui->gridCheckBox, &QCheckBox::stateChanged, this, &GeneralPage::gridCheckBoxStateChanged);
}
@@ -181,8 +182,10 @@ void GeneralPage::updateValues()
ui->antialiasingBox->setChecked(mManager->isOn(SETTING::ANTIALIAS));
SignalBlocker b6(ui->dottedCursorBox);
ui->dottedCursorBox->setChecked(mManager->isOn(SETTING::DOTTED_CURSOR));
- SignalBlocker b7(ui->gridSizeInput);
- ui->gridSizeInput->setValue(mManager->getInt(SETTING::GRID_SIZE));
+ SignalBlocker b7(ui->gridSizeInputW);
+ ui->gridSizeInputW->setValue(mManager->getInt(SETTING::GRID_SIZE_W));
+ SignalBlocker b11(ui->gridSizeInputH);
+ ui->gridSizeInputH->setValue(mManager->getInt(SETTING::GRID_SIZE_H));
SignalBlocker b8(ui->gridCheckBox);
ui->gridCheckBox->setChecked(mManager->isOn(SETTING::GRID));
@@ -259,9 +262,14 @@ void GeneralPage::dottedCursorCheckboxStateChanged(int b)
mManager->set( SETTING::DOTTED_CURSOR, b != Qt::Unchecked );
}
-void GeneralPage::gridSizeChange(int value)
+void GeneralPage::gridSizeChangeW(int value)
{
- mManager->set(SETTING::GRID_SIZE, value);
+ mManager->set(SETTING::GRID_SIZE_W, value);
+}
+
+void GeneralPage::gridSizeChangeH(int value)
+{
+ mManager->set(SETTING::GRID_SIZE_H, value);
}
void GeneralPage::gridCheckBoxStateChanged(int b)
diff --git a/app/src/preferencesdialog.h b/app/src/preferencesdialog.h
index 6f3f537a1c..b9e2c16c4d 100644
--- a/app/src/preferencesdialog.h
+++ b/app/src/preferencesdialog.h
@@ -75,7 +75,8 @@ class GeneralPage : public QWidget
public slots:
void updateValues();
- void gridSizeChange(int value);
+ void gridSizeChangeW(int value);
+ void gridSizeChangeH(int value);
signals:
void windowOpacityChange(int value);
diff --git a/app/ui/generalpage.ui b/app/ui/generalpage.ui
index 294b66d0f3..373176febb 100644
--- a/app/ui/generalpage.ui
+++ b/app/ui/generalpage.ui
@@ -6,12 +6,12 @@
0
0
- 369
- 377
+ 337
+ 465
-
- -
+
+
-
@@ -38,9 +38,9 @@
0
- 0
- 332
- 510
+ -202
+ 303
+ 647
@@ -239,8 +239,35 @@
Grid
-
-
-
+
-
+
+
+ Grid Heigth
+
+
+
+ -
+
+
+ Grid Width
+
+
+
+ -
+
+
+ 5
+
+
+ 9999
+
+
+ 100
+
+
+
+ -
+
80
@@ -254,14 +281,17 @@
- 1
+ 5
- 512
+ 9999
+
+
+ 100
- -
+
-
Enable Grid
@@ -277,6 +307,25 @@
+
+ scrollArea
+ languageCombo
+ windowOpacityLevel
+ shadowsBox
+ toolCursorsBox
+ dottedCursorBox
+ checkerBackgroundButton
+ whiteBackgroundButton
+ greyBackgroundButton
+ dotsBackgroundButton
+ weaveBackgroundButton
+ antialiasingBox
+ curveSmoothingLevel
+ highResBox
+ gridCheckBox
+ gridSizeInputW
+ gridSizeInputH
+
diff --git a/core_lib/src/canvaspainter.cpp b/core_lib/src/canvaspainter.cpp
index 877b573129..af492b59d2 100644
--- a/core_lib/src/canvaspainter.cpp
+++ b/core_lib/src/canvaspainter.cpp
@@ -390,15 +390,16 @@ int round100(double f, int gridSize)
void CanvasPainter::paintGrid(QPainter& painter)
{
- int gridSize = mOptions.nGridSize;
+ int gridSizeW = mOptions.nGridSizeW;
+ int gridSizeH = mOptions.nGridSizeH;
QRectF rect = painter.viewport();
QRectF boundingRect = mViewTransform.inverted().mapRect(rect);
- int left = round100(boundingRect.left(), gridSize) - gridSize;
- int right = round100(boundingRect.right(), gridSize) + gridSize;
- int top = round100(boundingRect.top(), gridSize) - gridSize;
- int bottom = round100(boundingRect.bottom(), gridSize) + gridSize;
+ int left = round100(boundingRect.left(), gridSizeW) - gridSizeW;
+ int right = round100(boundingRect.right(), gridSizeW) + gridSizeW;
+ int top = round100(boundingRect.top(), gridSizeH) - gridSizeH;
+ int bottom = round100(boundingRect.bottom(), gridSizeH) + gridSizeH;
QPen pen(Qt::lightGray);
pen.setCosmetic(true);
@@ -407,12 +408,14 @@ void CanvasPainter::paintGrid(QPainter& painter)
painter.setBrush(Qt::NoBrush);
QPainter::RenderHints previous_renderhints = painter.renderHints();
painter.setRenderHint(QPainter::Antialiasing, false);
- for (int x = left; x < right; x += gridSize)
+ // draw vertical gridlines
+ for (int x = left; x < right; x += gridSizeW)
{
painter.drawLine(x, top, x, bottom);
}
- for (int y = top; y < bottom; y += gridSize)
+ // draw horizontal gridlines
+ for (int y = top; y < bottom; y += gridSizeH)
{
painter.drawLine(left, y, right, y);
}
diff --git a/core_lib/src/canvaspainter.h b/core_lib/src/canvaspainter.h
index c4ba741c1a..b9b0f892a5 100644
--- a/core_lib/src/canvaspainter.h
+++ b/core_lib/src/canvaspainter.h
@@ -41,7 +41,8 @@ struct CanvasPainterOptions
bool bColorizeNextOnion = false;
bool bAntiAlias = false;
bool bGrid = false;
- int nGridSize = 50; /* This is the grid size IN PIXELS. The grid will scale with the image, though */
+ int nGridSizeW = 50; /* This is the grid Width IN PIXELS. The grid will scale with the image, though */
+ int nGridSizeH = 50; /* This is the grid Heigth IN PIXELS. The grid will scale with the image, though */
bool bAxis = false;
bool bThinLines = false;
bool bOutlines = false;
diff --git a/core_lib/src/interface/scribblearea.cpp b/core_lib/src/interface/scribblearea.cpp
index 0f4d428115..740c4b46a5 100644
--- a/core_lib/src/interface/scribblearea.cpp
+++ b/core_lib/src/interface/scribblearea.cpp
@@ -115,7 +115,8 @@ void ScribbleArea::settingUpdated(SETTING setting)
case SETTING::ONION_MAX_OPACITY:
case SETTING::ANTIALIAS:
case SETTING::GRID:
- case SETTING::GRID_SIZE:
+ case SETTING::GRID_SIZE_W:
+ case SETTING::GRID_SIZE_H:
case SETTING::PREV_ONION:
case SETTING::NEXT_ONION:
case SETTING::ONION_BLUE:
@@ -1148,7 +1149,8 @@ void ScribbleArea::drawCanvas(int frame, QRect rect)
o.fOnionSkinMinOpacity = mPrefs->getInt(SETTING::ONION_MIN_OPACITY);
o.bAntiAlias = mPrefs->isOn(SETTING::ANTIALIAS);
o.bGrid = mPrefs->isOn(SETTING::GRID);
- o.nGridSize = mPrefs->getInt(SETTING::GRID_SIZE);
+ o.nGridSizeW = mPrefs->getInt(SETTING::GRID_SIZE_W);
+ o.nGridSizeH = mPrefs->getInt(SETTING::GRID_SIZE_H);
o.bAxis = false;
o.bThinLines = mPrefs->isOn(SETTING::INVISIBLE_LINES);
o.bOutlines = mPrefs->isOn(SETTING::OUTLINES);
diff --git a/core_lib/src/managers/preferencemanager.cpp b/core_lib/src/managers/preferencemanager.cpp
index 3c3bc9d0fe..8496c3591b 100644
--- a/core_lib/src/managers/preferencemanager.cpp
+++ b/core_lib/src/managers/preferencemanager.cpp
@@ -54,7 +54,8 @@ void PreferenceManager::loadPrefs()
set(SETTING::OUTLINES, settings.value(SETTING_OUTLINES, false).toBool());
// Grid
- set(SETTING::GRID_SIZE, settings.value(SETTING_GRID_SIZE, 50).toInt());
+ set(SETTING::GRID_SIZE_W, settings.value(SETTING_GRID_SIZE_W, 100).toInt());
+ set(SETTING::GRID_SIZE_H, settings.value(SETTING_GRID_SIZE_H, 100).toInt());
// General
set(SETTING::ANTIALIAS, settings.value(SETTING_ANTIALIAS, true).toBool());
@@ -210,8 +211,11 @@ void PreferenceManager::set(SETTING option, int value)
case SETTING::ONION_NEXT_FRAMES_NUM:
settings.setValue(SETTING_ONION_NEXT_FRAMES_NUM, value);
break;
- case SETTING::GRID_SIZE:
- settings.setValue(SETTING_GRID_SIZE, value);
+ case SETTING::GRID_SIZE_W:
+ settings.setValue(SETTING_GRID_SIZE_W, value);
+ break;
+ case SETTING::GRID_SIZE_H:
+ settings.setValue(SETTING_GRID_SIZE_H, value);
break;
case SETTING::DRAW_ON_EMPTY_FRAME_ACTION:
settings.setValue( SETTING_DRAW_ON_EMPTY_FRAME_ACTION, value);
diff --git a/core_lib/src/managers/preferencemanager.h b/core_lib/src/managers/preferencemanager.h
index df816e428f..1d93500f32 100644
--- a/core_lib/src/managers/preferencemanager.h
+++ b/core_lib/src/managers/preferencemanager.h
@@ -54,7 +54,8 @@ enum class SETTING
ONION_NEXT_FRAMES_NUM,
ONION_WHILE_PLAYBACK,
ONION_TYPE,
- GRID_SIZE,
+ GRID_SIZE_W,
+ GRID_SIZE_H,
QUICK_SIZING,
MULTILAYER_ONION,
LANGUAGE,
diff --git a/core_lib/src/util/pencildef.h b/core_lib/src/util/pencildef.h
index 71836eeff2..37dad533f5 100644
--- a/core_lib/src/util/pencildef.h
+++ b/core_lib/src/util/pencildef.h
@@ -195,7 +195,8 @@ enum StabilizationLevel
#define SETTING_ONION_BLUE "OnionBlue"
#define SETTING_ONION_RED "OnionRed"
-#define SETTING_GRID_SIZE "GridSize"
+#define SETTING_GRID_SIZE_W "GridSizeW"
+#define SETTING_GRID_SIZE_H "GridSizeH"
#define SETTING_ONION_MAX_OPACITY "OnionMaxOpacity"
#define SETTING_ONION_MIN_OPACITY "OnionMinOpacity"