diff options
Diffstat (limited to 'knode/utilities.h')
-rw-r--r-- | knode/utilities.h | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/knode/utilities.h b/knode/utilities.h new file mode 100644 index 000000000..31f83d989 --- /dev/null +++ b/knode/utilities.h @@ -0,0 +1,166 @@ +/* + KNode, the KDE newsreader + Copyright (c) 1999-2005 the KNode authors. + See file AUTHORS for details + + 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. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US +*/ + +#ifndef UTILITIES_H +#define UTILITIES_H + +#include <kurl.h> + +#include <qfile.h> + +#include <qglobal.h> +#include <qptrvector.h> +#include <qptrlist.h> + +class QWidget; +class QString; +class QChar; +class QStringList; +class QSize; + +class KTempFile; + + +//***************************************************************************** +// utility classes +//***************************************************************************** + +/** clone of QSortedList... */ +template<class type> class Q_EXPORT QSortedVector : public QPtrVector<type> +{ +public: + QSortedVector() {} + QSortedVector ( uint size ) : QPtrVector<type>(size) {} + QSortedVector( const QSortedVector<type> &l ) : QPtrVector<type>(l) {} + ~QSortedVector() { QPtrVector<type>::clear(); } + QSortedVector<type> &operator=(const QSortedVector<type> &l) + { return (QSortedVector<type>&)QPtrList<type>::operator=(l); } + + virtual int compareItems( QPtrCollection::Item s1, QPtrCollection::Item s2 ) + { if ( *((type*)s1) == *((type*)s2) ) return 0; return ( *((type*)s1) < *((type*)s2) ? -1 : 1 ); } +}; + + +//============================================================================== + + +class KNFile : public QFile { + + public: + KNFile(const QString& fname=QString::null); + ~KNFile(); + const QCString& readLine(); + const QCString& readLineWnewLine(); + /** searches for the string from the current file position + returns -1 when the string wasn't found. */ + int findString(const char *s); + + protected: + bool increaseBuffer(); + + QCString buffer; + char *dataPtr; + int filePos, readBytes; +}; + + +//======================================================================================== + + +class KNSaveHelper { + +public: + + KNSaveHelper(QString saveName, QWidget *parent); + ~KNSaveHelper(); + + /** returns a file open for writing */ + QFile* getFile(const QString &dialogTitle); + +private: + + QWidget *p_arent; + QString s_aveName; + KURL url; + QFile* file; + KTempFile* tmpFile; + static QString lastPath; + +}; + + +//======================================================================================== + + +class KNLoadHelper { + +public: + + KNLoadHelper(QWidget *parent); + ~KNLoadHelper(); + + /** opens a file dialog and returns a file open for reading */ + KNFile* getFile( const QString &dialogTitle ); + /** tries to access the file specified by the url and returns + a file open for reading */ + KNFile* setURL(KURL url); + /** returns the file after getFile(QString) of setURL(url) was called */ + KNFile* getFile()const { return f_ile; }; + KURL getURL() const { return u_rl; }; + +private: + + QWidget *p_arent; + KURL u_rl; + KNFile *f_ile; + QString t_empName; + static QString l_astPath; + +}; + + +//======================================================================================== + + +class KNHelper { + +public: + + /** list selection dialog, used instead of a popup menu + when a select action is called via the keyboard. + returns -1 when the user canceled the dialog. */ + static int selectDialog(QWidget *parent, const QString &caption, const QStringList &options, int initialValue); + + static void saveWindowSize(const QString &name, const QSize &s); + static void restoreWindowSize(const QString &name, QWidget *d, const QSize &defaultSize); + + static const QString encryptStr(const QString& aStr); + static const QString decryptStr(const QString& aStr); + static QString rot13(const QString &s); + + /** used for rewarping a text when replying to a message or inserting a file into a box */ + static QString rewrapStringList(QStringList text, int wrapAt, QChar quoteChar, bool stopAtSig, bool alwaysSpace); + + /** use this for all internal files */ + static void displayInternalFileError(QWidget *w=0); + /** use this for all external files */ + static void displayExternalFileError(QWidget *w=0); + /** use this for remote files */ + static void displayRemoteFileError(QWidget *w=0); + /** use this for error on temporary files */ + static void displayTempFileError(QWidget *w=0); + +}; + +#endif |