summaryrefslogtreecommitdiffstats
path: root/pokemodr/FileDialog.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-03-10 02:31:26 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-03-10 02:31:26 +0000
commit8e1ec2aec50999bae30625303f2c96e5b3b7f318 (patch)
tree1cdabdde0e2518b71f0ab7247069e971424650bd /pokemodr/FileDialog.cpp
parent0191933210bd20a59527fcf2732a4f3c846fb2a9 (diff)
downloadsigen-8e1ec2aec50999bae30625303f2c96e5b3b7f318.tar.gz
sigen-8e1ec2aec50999bae30625303f2c96e5b3b7f318.tar.xz
sigen-8e1ec2aec50999bae30625303f2c96e5b3b7f318.zip
[FIX] ImageDialog -> FileDialog
[FIX] FileDialog will filter out images based on size now git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@94 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'pokemodr/FileDialog.cpp')
-rw-r--r--pokemodr/FileDialog.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/pokemodr/FileDialog.cpp b/pokemodr/FileDialog.cpp
new file mode 100644
index 00000000..09afd852
--- /dev/null
+++ b/pokemodr/FileDialog.cpp
@@ -0,0 +1,64 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: pokegen/FileDialog.cpp
+// Purpose: Dialog to open files
+// Author: Ben Boeckel
+// Modified by: Ben Boeckel
+// Created: Fri Feb 1 08:34:34 2008
+// Copyright: ©2007-2008 Ben Boeckel and Nerdy Productions
+// Licence:
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program. If not, see <http://www.gnu.org/licenses/>.
+/////////////////////////////////////////////////////////////////////////////
+
+#include <kdiroperator.h>
+#include <kfilewidget.h>
+#include <kimagefilepreview.h>
+
+#include <QDir>
+#include <QImage>
+#include <QStringList>
+
+#include "FileDialog.h"
+
+FileDialog::FileDialog(const QString& filter, const QSize& imgSize) :
+ QObject(NULL),
+ dlg(NULL)
+{
+ if (latestDir == "")
+ latestDir = KUrl(QString("%1/.kde/share/apps/pokegen/images").arg(QDir::homePath()));
+ size = imgSize;
+ dlg = new KFileDialog(latestDir, filter, NULL);
+ dlg->setOperationMode(KFileDialog::Opening);
+ if (size.isValid())
+ {
+ dlg->setPreviewWidget(new KImageFilePreview());
+ connect(static_cast<KFileWidget*>(dlg->fileWidget())->findChild<KDirOperator*>(), SIGNAL(dirActivated(const KFileItem&)), this, SLOT(sizeFilter(const FileItem&)));
+ }
+}
+
+void FileDialog::sizeFilter(const KFileItem& item)
+{
+ QString filter;
+ QStringList files(QDir(item.url().path()).entryList(QStringList() << "*.png", QDir::Files));
+ for (int i = 0; i < files.size(); ++i)
+ {
+ if (QImage(files.at(i)).size() == size)
+ {
+ if (filter.length())
+ filter.append(" ");
+ filter.append(files.at(i));
+ }
+ }
+ filter.append("|Valid PNG Files");
+ dlg->setFilter(filter);
+}