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
@@ -31,7 +31,6 @@
DlgImagesplit::DlgImagesplit(KisViewManager* view, const QString &suffix, QStringList listMimeFilter, int defaultMimeIndex)
: KoDialog(view->mainWindow())
{
-
m_page = new WdgImagesplit(this);
setCaption(i18n("Image Split"));
@@ -84,6 +83,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
@@ -102,13 +102,14 @@
// Getting all mime types and converting them into names which are displayed at combo box
QStringList listMimeFilter = KisImportExportManager::supportedMimeTypes(KisImportExportManager::Export);
QString defaultMime = QString::fromLatin1(viewManager()->document()->mimeType());
+ if (defaultMime.isEmpty()) defaultMime = QString::fromLatin1(viewManager()->document()->nativeFormatMimeType());
int defaultMimeIndex = 0;
listMimeFilter.sort();
QStringList filteredMimeTypes;
QStringList listFileType;
int i = 0;
- Q_FOREACH (const QString & mimeType, listMimeFilter) {
+ Q_FOREACH (const QString &mimeType, listMimeFilter) {
listFileType.append(KisMimeDatabase::descriptionForMimeType(mimeType));
filteredMimeTypes.append(mimeType);
if (mimeType == defaultMime) {
@@ -137,6 +138,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 +156,73 @@
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();
+ if (suffix.startsWith("*.")) {
+ suffix = suffix.remove(0, 1);
+ }
+ if (!suffix.startsWith(".")) {
+ suffix = suffix.prepend('.');
}
+ }
+
+ 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
@@ -6,47 +6,96 @@
0
0
- 236
- 194
+ 202
+ 316
Image Size
-
- -
-
-
-
-
-
-
-
-
- Horizontal Lines
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
- -
-
-
- Vertical Lines
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
+
+ -
+
+
-
+
- -
+
-
+
+
+ -
+
+
+ Sort Direction:
+
+
+
-
+
+
+
+ 10
+
+
+
+ Hori&zontal
+
+
+
+ -
+
+
+
+ 10
+
+
+
+ &Vertical
+
+
+
+
+
+
+ -
+
+
+ Prefix
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ true
+
+
+
+
+
+
+ -
+
+
+ File Type
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
@@ -58,58 +107,41 @@
- -
-
-
-
-
-
- Prefix
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
- true
-
-
-
-
-
-
- -
-
-
- File Type
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
+ -
+
+
+ Horizontal Lines
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
-
-
-
- Qt::Vertical
+
+
+ Vertical Lines
-
-
- 20
- 38
-
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 2
+
+
+
+