summaryrefslogtreecommitdiffstats
path: root/pokemodr/FileDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemodr/FileDialog.cpp')
-rw-r--r--pokemodr/FileDialog.cpp70
1 files changed, 31 insertions, 39 deletions
diff --git a/pokemodr/FileDialog.cpp b/pokemodr/FileDialog.cpp
index 858fbaab..3261bd9b 100644
--- a/pokemodr/FileDialog.cpp
+++ b/pokemodr/FileDialog.cpp
@@ -1,66 +1,58 @@
-/////////////////////////////////////////////////////////////////////////////
-// 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/>.
-/////////////////////////////////////////////////////////////////////////////
+/*
+ * Copyright 2008 Ben Boeckel <MathStuf@gmail.com>
+ *
+ * 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/>.
+ */
+// KDE includes
#include <kdiroperator.h>
#include <kfilewidget.h>
#include <kimagefilepreview.h>
+// Qt includes
#include <QDir>
-#include <QImage>
+#include <QPixmap>
#include <QStringList>
+// Header include
#include "FileDialog.h"
-KUrl FileDialog::latestDir = KUrl();
-
-FileDialog::FileDialog(const QString& filter, const QSize& imgSize) :
- QObject(NULL),
- dlg(NULL)
+FileDialog::FileDialog(const QSize& size) :
+ KFileDialog(KUrl("kfiledialog:///image"), "", 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())
+ m_size = size;
+ setOperationMode(KFileDialog::Opening);
+ if (m_size.isValid())
{
- dlg->setPreviewWidget(new KImageFilePreview());
- connect(static_cast<KFileWidget*>(dlg->fileWidget())->findChild<KDirOperator*>(), SIGNAL(dirActivated(const KFileItem&)), this, SLOT(sizeFilter(const FileItem&)));
+ setPreviewWidget(new KImageFilePreview());
+ // FIXME: KDirOperator is failing here on linking :(
+// connect(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));
+ QStringList files(QDir(item.url().path()).entryList(QStringList() << "*.png" << "*.jpg" << "*.jpeg", QDir::Files));
for (int i = 0; i < files.size(); ++i)
{
- if (QImage(files.at(i)).size() == size)
+ if (QPixmap(files.at(i)).size() == m_size)
{
if (filter.length())
filter.append(" ");
filter.append(files.at(i));
}
}
- filter.append("|Valid PNG Files");
- dlg->setFilter(filter);
+ setFilter(QString("%1|Valid files").arg(filter));
}