summaryrefslogtreecommitdiffstats
path: root/src/image.h
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-03-01 19:17:32 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-03-01 19:17:32 +0000
commite38d2351b83fa65c66ccde443777647ef5cb6cff (patch)
tree1897fc20e9f73a81c520a5b9f76f8ed042124883 /src/image.h
downloadtellico-e38d2351b83fa65c66ccde443777647ef5cb6cff.tar.gz
tellico-e38d2351b83fa65c66ccde443777647ef5cb6cff.zip
Added KDE3 version of Tellico
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/tellico@1097620 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/image.h')
-rw-r--r--src/image.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/image.h b/src/image.h
new file mode 100644
index 0000000..9545500
--- /dev/null
+++ b/src/image.h
@@ -0,0 +1,99 @@
+/***************************************************************************
+ copyright : (C) 2003-2006 by Robby Stephenson
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of version 2 of the GNU General Public License as *
+ * published by the Free Software Foundation; *
+ * *
+ ***************************************************************************/
+
+#ifndef IMAGE_H
+#define IMAGE_H
+
+#include <qimage.h>
+#include <qstring.h>
+
+class KPixmapIO;
+
+namespace Tellico {
+ class ImageFactory;
+ class FileHandler;
+
+ namespace Data {
+
+/**
+ * @author Robby Stephenson
+ */
+class Image : public QImage {
+
+friend class Tellico::ImageFactory;
+friend class Tellico::FileHandler;
+
+public:
+ ~Image();
+
+ const QString& id() const { return m_id; };
+ const QCString& format() const { return m_format; };
+ QByteArray byteArray() const;
+ bool isNull() const;
+ bool linkOnly() const { return m_linkOnly; }
+ void setLinkOnly(bool l) { m_linkOnly = l; }
+
+ QPixmap convertToPixmap() const;
+ QPixmap convertToPixmap(int width, int height) const;
+
+ static QCString outputFormat(const QCString& inputFormat);
+ static QByteArray byteArray(const QImage& img, const QCString& outputFormat);
+ static QString idClean(const QString& id);
+
+private:
+ Image();
+ explicit Image(const QString& filename);
+ Image(const QImage& image, const QString& format);
+ Image(const QByteArray& data, const QString& format, const QString& id);
+
+ //disable copy
+ Image(const Image&);
+ Image& operator=(const Image&);
+
+ void setID(const QString& id);
+ void calculateID();
+
+ QString m_id;
+ QCString m_format;
+ bool m_linkOnly : 1;
+
+ static KPixmapIO* s_pixmapIO;
+ static KPixmapIO* io();
+};
+
+class ImageInfo {
+public:
+ ImageInfo() {}
+ explicit ImageInfo(const Image& img);
+ ImageInfo(const QString& id, const QCString& format, int w, int h, bool link);
+ bool isNull() const { return id.isEmpty(); }
+ QString id;
+ QCString format;
+ bool linkOnly : 1;
+
+ int width(bool loadIfNecessary=true) const;
+ int height(bool loadIfNecessary=true) const;
+
+private:
+ mutable int m_width;
+ mutable int m_height;
+};
+
+ } // end namespace
+} // end namespace
+
+inline bool operator== (const Tellico::Data::Image& img1, const Tellico::Data::Image& img2) {
+ return img1.id() == img2.id();
+}
+
+#endif