diff --git a/plugins/extensions/imagesplit/dlg_imagesplit.h b/plugins/extensions/imagesplit/dlg_imagesplit.h
--- a/plugins/extensions/imagesplit/dlg_imagesplit.h
+++ b/plugins/extensions/imagesplit/dlg_imagesplit.h
@@ -42,6 +42,7 @@
DlgImagesplit(KisViewManager* view, const QString &suffix, QStringList listMimeType, int defaultMimeIndex);
~DlgImagesplit() override;
bool autoSave();
+ bool sortHorizontal();
int horizontalLines();
int verticalLines();
int cmbIndex;
diff --git a/plugins/extensions/imagesplit/dlg_imagesplit.cpp b/plugins/extensions/imagesplit/dlg_imagesplit.cpp
--- a/plugins/extensions/imagesplit/dlg_imagesplit.cpp
+++ b/plugins/extensions/imagesplit/dlg_imagesplit.cpp
@@ -84,6 +84,14 @@
return false;
}
+bool DlgImagesplit::sortHorizontal()
+{
+ if (m_page->chkHorizontal->isChecked())
+ return true;
+ else
+ return false;
+}
+
int DlgImagesplit::horizontalLines()
{
return m_page->intHorizontalSplitLines->value();
diff --git a/plugins/extensions/imagesplit/imagesplit.cpp b/plugins/extensions/imagesplit/imagesplit.cpp
--- a/plugins/extensions/imagesplit/imagesplit.cpp
+++ b/plugins/extensions/imagesplit/imagesplit.cpp
@@ -137,6 +137,12 @@
bool stop = false;
+
+ QString mimeType;
+ QString filepath;
+ QString homepath;
+ QString suffix;
+
if (dlgImagesplit->autoSave()) {
KoFileDialog dialog(viewManager()->mainWindow(), KoFileDialog::OpenDirectory, "OpenDocument");
dialog.setCaption(i18n("Save Image on Split"));
@@ -149,59 +155,76 @@
if (directory.isEmpty())
return;
- for (int i = 0, k = 1; i < (numVerticalLines + 1); i++) {
- for (int j = 0; j < (numHorizontalLines + 1); j++, k++) {
- QString mimeTypeSelected = listMimeFilter.at(dlgImagesplit->cmbIndex);
- QString homepath = directory.toLocalFile();
- QString suffix = KisMimeDatabase::suffixesForMimeType(mimeTypeSelected).first();
- qDebug() << "suffix" << suffix;
- if (suffix.startsWith("*.")) {
- suffix = suffix.remove(0, 1);
- }
- qDebug() << "\tsuffix" << suffix;
- if (!suffix.startsWith(".")) {
- suffix = suffix.prepend('.');
- }
- qDebug() << "\tsuffix" << suffix;
- QString fileName = dlgImagesplit->suffix() + '_' + QString::number(k) + suffix;
- QString url = homepath + '/' + fileName;
- if (!saveAsImage(QRect((i * img_width), (j * img_height), img_width, img_height), listMimeFilter.at(dlgImagesplit->cmbIndex), url)) {
- stop = true;
- break;
- }
- }
- if (stop) {
- break;
- }
+
+ mimeType = listMimeFilter.at(dlgImagesplit->cmbIndex);
+ homepath = directory.toLocalFile();
+ suffix = KisMimeDatabase::suffixesForMimeType(mimeType).first();
+ qDebug() << "suffix" << suffix;
+ if (suffix.startsWith("*.")) {
+ suffix = suffix.remove(0, 1);
+ }
+ qDebug() << "\tsuffix" << suffix;
+ if (!suffix.startsWith(".")) {
+ suffix = suffix.prepend('.');
}
+ qDebug() << "\tsuffix" << suffix;
+ }
+
+ int outerLoop;
+ int innerLoop;
+
+ if (dlgImagesplit->sortHorizontal()) {
+ outerLoop = numHorizontalLines + 1;
+ innerLoop = numVerticalLines + 1;
}
else {
+ outerLoop = numVerticalLines + 1;
+ innerLoop = numHorizontalLines + 1;
+ }
+
+
+ for (int i = 0, k = 1; i < outerLoop; i++) {
+ for (int j = 0; j < innerLoop; j++, k++) {
+ int row;
+ int column;
+ if (dlgImagesplit->sortHorizontal()) {
+ row = i;
+ column = j;
+ }
+ else {
+ row = j;
+ column = i;
+ }
- for (int i = 0; i < (numVerticalLines + 1); i++) {
- for (int j = 0; j < (numHorizontalLines + 1); j++) {
+ if (dlgImagesplit->autoSave()) {
+ QString fileName = dlgImagesplit->suffix() + '_' + QString::number(k) + suffix;
+ filepath = homepath + '/' + fileName;
+ mimeType = listMimeFilter.at(dlgImagesplit->cmbIndex);
+ }
+ else {
KoFileDialog dialog(viewManager()->mainWindow(), KoFileDialog::SaveFile, "OpenDocument");
dialog.setCaption(i18n("Save Image on Split"));
dialog.setDefaultDir(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
dialog.setMimeTypeFilters(listMimeFilter, defaultMime);
QUrl url = QUrl::fromUserInput(dialog.filename());
+ filepath = url.toLocalFile();
- QString mimefilter = KisMimeDatabase::mimeTypeForFile(url.toLocalFile(), false);
+ mimeType = KisMimeDatabase::mimeTypeForFile(url.toLocalFile(), false);
if (url.isEmpty())
return;
- if (!saveAsImage(QRect((i * img_width), (j * img_height), img_width, img_height), mimefilter, url.toLocalFile())) {
- stop = true;
- break;
- }
+
}
- if (stop) {
+ if (!saveAsImage(QRect((column * img_width), (row * img_height), img_width, img_height), mimeType, filepath)) {
+ stop = true;
break;
}
}
-
+ if (stop) {
+ break;
+ }
}
-
}
delete dlgImagesplit;
}
diff --git a/plugins/extensions/imagesplit/wdg_imagesplit.cpp b/plugins/extensions/imagesplit/wdg_imagesplit.cpp
--- a/plugins/extensions/imagesplit/wdg_imagesplit.cpp
+++ b/plugins/extensions/imagesplit/wdg_imagesplit.cpp
@@ -38,6 +38,7 @@
intHorizontalSplitLines->setValue(cfg.horizontalSplitLines());
intVerticalSplitLines->setValue(cfg.verticalSplitLines());
+ chkHorizontal->setChecked(true);
chkAutoSave->setChecked(true);
}
diff --git a/plugins/extensions/imagesplit/wdg_imagesplit.ui b/plugins/extensions/imagesplit/wdg_imagesplit.ui
--- a/plugins/extensions/imagesplit/wdg_imagesplit.ui
+++ b/plugins/extensions/imagesplit/wdg_imagesplit.ui
@@ -46,6 +46,8 @@
+ -
+
-
@@ -58,6 +60,45 @@
+ -
+
+
+
+ 10
+
+
+
+ Sort Direction:
+
+
+
+ -
+
+
+
+ 10
+
+
+
+ Horizontal
+
+
+
+ -
+
+
+
+ 10
+
+
+
+ Vertical
+
+
+
+
+
+
-
-