summaryrefslogtreecommitdiffstats
path: root/src/common/global/pfile.h
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-24 18:42:24 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-24 18:42:24 +0000
commitf508189682b6fba62e08feeb1596f682bad5fff9 (patch)
tree28aeb0e6c19386c385c1ce5edf8a92c1bca15281 /src/common/global/pfile.h
downloadpiklab-f508189682b6fba62e08feeb1596f682bad5fff9.tar.gz
piklab-f508189682b6fba62e08feeb1596f682bad5fff9.zip
Added KDE3 version of PikLab
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/piklab@1095639 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/common/global/pfile.h')
-rw-r--r--src/common/global/pfile.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/common/global/pfile.h b/src/common/global/pfile.h
new file mode 100644
index 0000000..d0955e7
--- /dev/null
+++ b/src/common/global/pfile.h
@@ -0,0 +1,66 @@
+/***************************************************************************
+ * Copyright (C) 2005-2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * 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 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#ifndef PFILE_H
+#define PFILE_H
+
+#include <qtextstream.h>
+#include "purl.h"
+
+namespace PURL
+{
+//-----------------------------------------------------------------------------
+class FileBase
+{
+public:
+ FileBase(Log::Generic &log, const QString &extension);
+ ~FileBase();
+ QFile *qfile();
+ const QFile *qfile() const;
+ QTextStream &stream();
+ QString readText() { return stream().read(); }
+ QString readLine() { return stream().readLine(); }
+ QStringList readLines();
+ QByteArray readAll();
+ void appendText(const QString &text) { stream() << text; }
+ void flush();
+ bool hasError() const;
+ QString errorString() const;
+
+protected:
+ KTempFile *_tmp;
+ QFile *_file;
+ QTextStream *_stream;
+ QString _error, _extension;
+ Log::Generic &_log;
+
+private: // disable copy constructor and operator =
+ FileBase(const FileBase &base);
+ FileBase &operator =(const FileBase &base);
+};
+
+//-----------------------------------------------------------------------------
+class File : public FileBase
+{
+public:
+ File(const Url &url, Log::Generic &log);
+ ~File() { close(); }
+ void setUrl(const Url &url); // close file too
+ Url url() const { return _url; }
+ bool openForWrite();
+ bool openForRead();
+ bool close();
+ bool remove();
+
+private:
+ Url _url;
+};
+
+} // namespace
+
+#endif