summaryrefslogtreecommitdiff
path: root/noncore/apps
Unidiff
Diffstat (limited to 'noncore/apps') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-write/qrichtext_p.h157
-rw-r--r--noncore/apps/tableviewer/browsekeyentry.cpp53
-rw-r--r--noncore/apps/tableviewer/db/common.cpp165
-rw-r--r--noncore/apps/tableviewer/db/datacache.cpp68
-rw-r--r--noncore/apps/tableviewer/db/datacache.h24
-rw-r--r--noncore/apps/tableviewer/ui/browsekeyentry.cpp49
-rw-r--r--noncore/apps/tableviewer/ui/filterkeyentry.cpp42
-rw-r--r--noncore/apps/tableviewer/ui/tvfilterview.cpp55
-rw-r--r--noncore/apps/tinykate/libkate/kateconfig.cpp4
-rw-r--r--noncore/apps/zsafe/main.cpp25
-rw-r--r--noncore/apps/zsafe/zlistview.cpp11
-rw-r--r--noncore/apps/zsafe/zsafe.cpp51
12 files changed, 361 insertions, 343 deletions
diff --git a/noncore/apps/opie-write/qrichtext_p.h b/noncore/apps/opie-write/qrichtext_p.h
index e368edb..3778feb 100644
--- a/noncore/apps/opie-write/qrichtext_p.h
+++ b/noncore/apps/opie-write/qrichtext_p.h
@@ -47,12 +47,15 @@
47// version to version without notice, or even be removed. 47// version to version without notice, or even be removed.
48// 48//
49// We mean it. 49// We mean it.
50// 50//
51// 51//
52 52
53#include <opie2/odebug.h>
54using namespace Opie::Core;
55
53#ifndef QT_H 56#ifndef QT_H
54#include "qstring.h" 57#include "qstring.h"
55#include "qlist.h" 58#include "qlist.h"
56#include "qrect.h" 59#include "qrect.h"
57#include "qfontmetrics.h" 60#include "qfontmetrics.h"
58#include "qintdict.h" 61#include "qintdict.h"
@@ -121,34 +124,34 @@ public:
121 QTextFormat *format() const; 124 QTextFormat *format() const;
122 QTextCustomItem *customItem() const; 125 QTextCustomItem *customItem() const;
123 void setFormat( QTextFormat *f ); 126 void setFormat( QTextFormat *f );
124 void setCustomItem( QTextCustomItem *i ); 127 void setCustomItem( QTextCustomItem *i );
125 struct CustomData 128 struct CustomData
126 { 129 {
127 QTextFormat *format; 130 QTextFormat *format;
128 QTextCustomItem *custom; 131 QTextCustomItem *custom;
129 QString anchorName; 132 QString anchorName;
130 QString anchorHref; 133 QString anchorHref;
131 }; 134 };
132 135
133 void loseCustomItem(); 136 void loseCustomItem();
134 137
135 union { 138 union {
136 QTextFormat* format; 139 QTextFormat* format;
137 CustomData* custom; 140 CustomData* custom;
138 } d; 141 } d;
139 142
140 bool isAnchor() const { return ( type & Anchor) != 0; } 143 bool isAnchor() const { return ( type & Anchor) != 0; }
141 QString anchorName() const; 144 QString anchorName() const;
142 QString anchorHref() const; 145 QString anchorHref() const;
143 void setAnchor( const QString& name, const QString& href ); 146 void setAnchor( const QString& name, const QString& href );
144 147
145private: 148private:
146 QTextStringChar &operator=( const QTextStringChar & ) { 149 QTextStringChar &operator=( const QTextStringChar & ) {
147 //abort(); 150 //abort();
148 return *this; 151 return *this;
149 } 152 }
150 friend class QComplexText; 153 friend class QComplexText;
151 friend class QTextParagraph; 154 friend class QTextParagraph;
152}; 155};
153 156
154#if defined(Q_TEMPLATEDLL) 157#if defined(Q_TEMPLATEDLL)
@@ -205,20 +208,20 @@ private:
205 uint dir : 5; 208 uint dir : 5;
206}; 209};
207 210
208inline bool QTextString::isBidi() const 211inline bool QTextString::isBidi() const
209{ 212{
210 if ( bidiDirty ) 213 if ( bidiDirty )
211 checkBidi(); 214 checkBidi();
212 return bidi; 215 return bidi;
213} 216}
214 217
215inline bool QTextString::isRightToLeft() const 218inline bool QTextString::isRightToLeft() const
216{ 219{
217 if ( bidiDirty ) 220 if ( bidiDirty )
218 checkBidi(); 221 checkBidi();
219 return rightToLeft; 222 return rightToLeft;
220} 223}
221 224
222inline QChar::Direction QTextString::direction() const 225inline QChar::Direction QTextString::direction() const
223{ 226{
224 return (QChar::Direction) dir; 227 return (QChar::Direction) dir;
@@ -381,13 +384,13 @@ inline QTextCommandHistory::~QTextCommandHistory()
381// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 384// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
382 385
383class Q_EXPORT QTextCustomItem 386class Q_EXPORT QTextCustomItem
384{ 387{
385public: 388public:
386 QTextCustomItem( QTextDocument *p ) 389 QTextCustomItem( QTextDocument *p )
387 : xpos(0), ypos(-1), width(-1), height(0), parent( p ) 390 : xpos(0), ypos(-1), width(-1), height(0), parent( p )
388 {} 391 {}
389 virtual ~QTextCustomItem(); 392 virtual ~QTextCustomItem();
390 virtual void draw(QPainter* p, int x, int y, int cx, int cy, int cw, int ch, const QColorGroup& cg, bool selected ) = 0; 393 virtual void draw(QPainter* p, int x, int y, int cx, int cy, int cw, int ch, const QColorGroup& cg, bool selected ) = 0;
391 394
392 virtual void adjustToPainter( QPainter* ); 395 virtual void adjustToPainter( QPainter* );
393 396
@@ -435,13 +438,13 @@ Q_TEMPLATE_EXTERN template class Q_EXPORT QMap<QString, QString>;
435#endif 438#endif
436 439
437class Q_EXPORT QTextImage : public QTextCustomItem 440class Q_EXPORT QTextImage : public QTextCustomItem
438{ 441{
439public: 442public:
440 QTextImage( QTextDocument *p, const QMap<QString, QString> &attr, const QString& context, 443 QTextImage( QTextDocument *p, const QMap<QString, QString> &attr, const QString& context,
441 QMimeSourceFactory &factory ); 444 QMimeSourceFactory &factory );
442 virtual ~QTextImage(); 445 virtual ~QTextImage();
443 446
444 Placement placement() const { return place; } 447 Placement placement() const { return place; }
445 void adjustToPainter( QPainter* ); 448 void adjustToPainter( QPainter* );
446 int minimumWidth() const { return width; } 449 int minimumWidth() const { return width; }
447 450
@@ -460,13 +463,13 @@ private:
460}; 463};
461 464
462class Q_EXPORT QTextHorizontalLine : public QTextCustomItem 465class Q_EXPORT QTextHorizontalLine : public QTextCustomItem
463{ 466{
464public: 467public:
465 QTextHorizontalLine( QTextDocument *p, const QMap<QString, QString> &attr, const QString& context, 468 QTextHorizontalLine( QTextDocument *p, const QMap<QString, QString> &attr, const QString& context,
466 QMimeSourceFactory &factory ); 469 QMimeSourceFactory &factory );
467 virtual ~QTextHorizontalLine(); 470 virtual ~QTextHorizontalLine();
468 471
469 void adjustToPainter( QPainter* ); 472 void adjustToPainter( QPainter* );
470 void draw(QPainter* p, int x, int y, int cx, int cy, int cw, int ch, const QColorGroup& cg, bool selected ); 473 void draw(QPainter* p, int x, int y, int cx, int cy, int cw, int ch, const QColorGroup& cg, bool selected );
471 QString richText() const; 474 QString richText() const;
472 475
@@ -529,17 +532,17 @@ class QTextTable;
529class Q_EXPORT QTextTableCell : public QLayoutItem 532class Q_EXPORT QTextTableCell : public QLayoutItem
530{ 533{
531 friend class QTextTable; 534 friend class QTextTable;
532 535
533public: 536public:
534 QTextTableCell( QTextTable* table, 537 QTextTableCell( QTextTable* table,
535 int row, int column, 538 int row, int column,
536 const QMap<QString, QString> &attr, 539 const QMap<QString, QString> &attr,
537 const QStyleSheetItem* style, 540 const QStyleSheetItem* style,
538 const QTextFormat& fmt, const QString& context, 541 const QTextFormat& fmt, const QString& context,
539 QMimeSourceFactory &factory, QStyleSheet *sheet, const QString& doc ); 542 QMimeSourceFactory &factory, QStyleSheet *sheet, const QString& doc );
540 virtual ~QTextTableCell(); 543 virtual ~QTextTableCell();
541 544
542 QSize sizeHint() const ; 545 QSize sizeHint() const ;
543 QSize minimumSize() const ; 546 QSize minimumSize() const ;
544 QSize maximumSize() const ; 547 QSize maximumSize() const ;
545 QSizePolicy::ExpandData expanding() const; 548 QSizePolicy::ExpandData expanding() const;
@@ -603,13 +606,13 @@ public:
603 QTextTable( QTextDocument *p, const QMap<QString, QString> &attr ); 606 QTextTable( QTextDocument *p, const QMap<QString, QString> &attr );
604 virtual ~QTextTable(); 607 virtual ~QTextTable();
605 608
606 void adjustToPainter( QPainter *p ); 609 void adjustToPainter( QPainter *p );
607 void pageBreak( int y, QTextFlow* flow ); 610 void pageBreak( int y, QTextFlow* flow );
608 void draw( QPainter* p, int x, int y, int cx, int cy, int cw, int ch, 611 void draw( QPainter* p, int x, int y, int cx, int cy, int cw, int ch,
609 const QColorGroup& cg, bool selected ); 612 const QColorGroup& cg, bool selected );
610 613
611 bool noErase() const { return TRUE; } 614 bool noErase() const { return TRUE; }
612 bool ownLine() const { return TRUE; } 615 bool ownLine() const { return TRUE; }
613 Placement placement() const { return place; } 616 Placement placement() const { return place; }
614 bool isNested() const { return TRUE; } 617 bool isNested() const { return TRUE; }
615 void resize( int nwidth ); 618 void resize( int nwidth );
@@ -681,15 +684,15 @@ class Q_EXPORT QTextDocument : public QObject
681 friend class QTextCursor; 684 friend class QTextCursor;
682 friend class QTextEdit; 685 friend class QTextEdit;
683 friend class QTextParagraph; 686 friend class QTextParagraph;
684 687
685public: 688public:
686 enum SelectionIds { 689 enum SelectionIds {
687 Standard = 0, 690 Standard = 0,
688 Temp = 32000 // This selection must not be drawn, it's used e.g. by undo/redo to 691 Temp = 32000 // This selection must not be drawn, it's used e.g. by undo/redo to
689 // remove multiple lines with removeSelectedText() 692 // remove multiple lines with removeSelectedText()
690 }; 693 };
691 694
692 QTextDocument( QTextDocument *p ); 695 QTextDocument( QTextDocument *p );
693 QTextDocument( QTextDocument *d, QTextFormatCollection *f ); 696 QTextDocument( QTextDocument *d, QTextFormatCollection *f );
694 virtual ~QTextDocument(); 697 virtual ~QTextDocument();
695 698
@@ -788,17 +791,17 @@ public:
788 void setPaper( QBrush *brush ) { if ( backBrush ) delete backBrush; backBrush = brush; } 791 void setPaper( QBrush *brush ) { if ( backBrush ) delete backBrush; backBrush = brush; }
789 QBrush *paper() const { return backBrush; } 792 QBrush *paper() const { return backBrush; }
790 793
791 void doLayout( QPainter *p, int w ); 794 void doLayout( QPainter *p, int w );
792 void draw( QPainter *p, const QRect& rect, const QColorGroup &cg, const QBrush *paper = 0 ); 795 void draw( QPainter *p, const QRect& rect, const QColorGroup &cg, const QBrush *paper = 0 );
793 void drawParagraph( QPainter *p, QTextParagraph *parag, int cx, int cy, int cw, int ch, 796 void drawParagraph( QPainter *p, QTextParagraph *parag, int cx, int cy, int cw, int ch,
794 QPixmap *&doubleBuffer, const QColorGroup &cg, 797 QPixmap *&doubleBuffer, const QColorGroup &cg,
795 bool drawCursor, QTextCursor *cursor, bool resetChanged = TRUE ); 798 bool drawCursor, QTextCursor *cursor, bool resetChanged = TRUE );
796 QTextParagraph *draw( QPainter *p, int cx, int cy, int cw, int ch, const QColorGroup &cg, 799 QTextParagraph *draw( QPainter *p, int cx, int cy, int cw, int ch, const QColorGroup &cg,
797 bool onlyChanged = FALSE, bool drawCursor = FALSE, QTextCursor *cursor = 0, 800 bool onlyChanged = FALSE, bool drawCursor = FALSE, QTextCursor *cursor = 0,
798 bool resetChanged = TRUE ); 801 bool resetChanged = TRUE );
799 802
800 void registerCustomItem( QTextCustomItem *i, QTextParagraph *p ); 803 void registerCustomItem( QTextCustomItem *i, QTextParagraph *p );
801 void unregisterCustomItem( QTextCustomItem *i, QTextParagraph *p ); 804 void unregisterCustomItem( QTextCustomItem *i, QTextParagraph *p );
802 805
803 void setFlow( QTextFlow *f ); 806 void setFlow( QTextFlow *f );
804 void takeFlow(); 807 void takeFlow();
@@ -855,28 +858,28 @@ private:
855 void init(); 858 void init();
856 QPixmap *bufferPixmap( const QSize &s ); 859 QPixmap *bufferPixmap( const QSize &s );
857 // HTML parser 860 // HTML parser
858 bool hasPrefix(const QChar* doc, int length, int pos, QChar c); 861 bool hasPrefix(const QChar* doc, int length, int pos, QChar c);
859 bool hasPrefix(const QChar* doc, int length, int pos, const QString& s); 862 bool hasPrefix(const QChar* doc, int length, int pos, const QString& s);
860 QTextCustomItem* parseTable( const QMap<QString, QString> &attr, const QTextFormat &fmt, 863 QTextCustomItem* parseTable( const QMap<QString, QString> &attr, const QTextFormat &fmt,
861 const QChar* doc, int length, int& pos, QTextParagraph *curpar ); 864 const QChar* doc, int length, int& pos, QTextParagraph *curpar );
862 bool eatSpace(const QChar* doc, int length, int& pos, bool includeNbsp = FALSE ); 865 bool eatSpace(const QChar* doc, int length, int& pos, bool includeNbsp = FALSE );
863 bool eat(const QChar* doc, int length, int& pos, QChar c); 866 bool eat(const QChar* doc, int length, int& pos, QChar c);
864 QString parseOpenTag(const QChar* doc, int length, int& pos, QMap<QString, QString> &attr, bool& emptyTag); 867 QString parseOpenTag(const QChar* doc, int length, int& pos, QMap<QString, QString> &attr, bool& emptyTag);
865 QString parseCloseTag( const QChar* doc, int length, int& pos ); 868 QString parseCloseTag( const QChar* doc, int length, int& pos );
866 QChar parseHTMLSpecialChar(const QChar* doc, int length, int& pos); 869 QChar parseHTMLSpecialChar(const QChar* doc, int length, int& pos);
867 QString parseWord(const QChar* doc, int length, int& pos, bool lower = TRUE); 870 QString parseWord(const QChar* doc, int length, int& pos, bool lower = TRUE);
868 QChar parseChar(const QChar* doc, int length, int& pos, QStyleSheetItem::WhiteSpaceMode wsm ); 871 QChar parseChar(const QChar* doc, int length, int& pos, QStyleSheetItem::WhiteSpaceMode wsm );
869 void setRichTextInternal( const QString &text, QTextCursor* cursor = 0 ); 872 void setRichTextInternal( const QString &text, QTextCursor* cursor = 0 );
870 void setRichTextMarginsInternal( QPtrList< QPtrVector<QStyleSheetItem> >& styles, QTextParagraph* stylesPar ); 873 void setRichTextMarginsInternal( QPtrList< QPtrVector<QStyleSheetItem> >& styles, QTextParagraph* stylesPar );
871 874
872private: 875private:
873 struct Q_EXPORT Focus { 876 struct Q_EXPORT Focus {
874 QTextParagraph *parag; 877 QTextParagraph *parag;
875 int start, len; 878 int start, len;
876 QString href; 879 QString href;
877 }; 880 };
878 881
879 int cx, cy, cw, vw; 882 int cx, cy, cw, vw;
880 QTextParagraph *fParag, *lParag; 883 QTextParagraph *fParag, *lParag;
881 QTextPreProcessor *pProcessor; 884 QTextPreProcessor *pProcessor;
882 QMap<int, QColor> selectionColors; 885 QMap<int, QColor> selectionColors;
@@ -928,13 +931,13 @@ private:
928 931
929 932
930class Q_EXPORT QTextDeleteCommand : public QTextCommand 933class Q_EXPORT QTextDeleteCommand : public QTextCommand
931{ 934{
932public: 935public:
933 QTextDeleteCommand( QTextDocument *d, int i, int idx, const QMemArray<QTextStringChar> &str, 936 QTextDeleteCommand( QTextDocument *d, int i, int idx, const QMemArray<QTextStringChar> &str,
934 const QByteArray& oldStyle ); 937 const QByteArray& oldStyle );
935 QTextDeleteCommand( QTextParagraph *p, int idx, const QMemArray<QTextStringChar> &str ); 938 QTextDeleteCommand( QTextParagraph *p, int idx, const QMemArray<QTextStringChar> &str );
936 virtual ~QTextDeleteCommand(); 939 virtual ~QTextDeleteCommand();
937 940
938 Commands type() const { return Delete; } 941 Commands type() const { return Delete; }
939 QTextCursor *execute( QTextCursor *c ); 942 QTextCursor *execute( QTextCursor *c );
940 QTextCursor *unexecute( QTextCursor *c ); 943 QTextCursor *unexecute( QTextCursor *c );
@@ -948,16 +951,16 @@ protected:
948}; 951};
949 952
950class Q_EXPORT QTextInsertCommand : public QTextDeleteCommand 953class Q_EXPORT QTextInsertCommand : public QTextDeleteCommand
951{ 954{
952public: 955public:
953 QTextInsertCommand( QTextDocument *d, int i, int idx, const QMemArray<QTextStringChar> &str, 956 QTextInsertCommand( QTextDocument *d, int i, int idx, const QMemArray<QTextStringChar> &str,
954 const QByteArray& oldStyleInfo ) 957 const QByteArray& oldStyleInfo )
955 : QTextDeleteCommand( d, i, idx, str, oldStyleInfo ) {} 958 : QTextDeleteCommand( d, i, idx, str, oldStyleInfo ) {}
956 QTextInsertCommand( QTextParagraph *p, int idx, const QMemArray<QTextStringChar> &str ) 959 QTextInsertCommand( QTextParagraph *p, int idx, const QMemArray<QTextStringChar> &str )
957 : QTextDeleteCommand( p, idx, str ) {} 960 : QTextDeleteCommand( p, idx, str ) {}
958 virtual ~QTextInsertCommand() {} 961 virtual ~QTextInsertCommand() {}
959 962
960 Commands type() const { return Insert; } 963 Commands type() const { return Insert; }
961 QTextCursor *execute( QTextCursor *c ) { return QTextDeleteCommand::unexecute( c ); } 964 QTextCursor *execute( QTextCursor *c ) { return QTextDeleteCommand::unexecute( c ); }
962 QTextCursor *unexecute( QTextCursor *c ) { return QTextDeleteCommand::execute( c ); } 965 QTextCursor *unexecute( QTextCursor *c ) { return QTextDeleteCommand::execute( c ); }
963 966
@@ -1008,43 +1011,43 @@ struct Q_EXPORT QTextParagraphSelection
1008}; 1011};
1009 1012
1010struct Q_EXPORT QTextLineStart 1013struct Q_EXPORT QTextLineStart
1011{ 1014{
1012 QTextLineStart() : y( 0 ), baseLine( 0 ), h( 0 ) 1015 QTextLineStart() : y( 0 ), baseLine( 0 ), h( 0 )
1013#ifndef QT_NO_COMPLEXTEXT 1016#ifndef QT_NO_COMPLEXTEXT
1014 , bidicontext( 0 ) 1017 , bidicontext( 0 )
1015#endif 1018#endif
1016 { } 1019 { }
1017 QTextLineStart( ushort y_, ushort bl, ushort h_ ) : y( y_ ), baseLine( bl ), h( h_ ), 1020 QTextLineStart( ushort y_, ushort bl, ushort h_ ) : y( y_ ), baseLine( bl ), h( h_ ),
1018 w( 0 ) 1021 w( 0 )
1019#ifndef QT_NO_COMPLEXTEXT 1022#ifndef QT_NO_COMPLEXTEXT
1020 , bidicontext( 0 ) 1023 , bidicontext( 0 )
1021#endif 1024#endif
1022 { } 1025 { }
1023#ifndef QT_NO_COMPLEXTEXT 1026#ifndef QT_NO_COMPLEXTEXT
1024 QTextLineStart( QBidiContext *c, QBidiStatus s ) : y(0), baseLine(0), h(0), 1027 QTextLineStart( QBidiContext *c, QBidiStatus s ) : y(0), baseLine(0), h(0),
1025 status( s ), bidicontext( c ) { if ( bidicontext ) bidicontext->ref(); } 1028 status( s ), bidicontext( c ) { if ( bidicontext ) bidicontext->ref(); }
1026#endif 1029#endif
1027 1030
1028 virtual ~QTextLineStart() 1031 virtual ~QTextLineStart()
1029 { 1032 {
1030#ifndef QT_NO_COMPLEXTEXT 1033#ifndef QT_NO_COMPLEXTEXT
1031 if ( bidicontext && bidicontext->deref() ) 1034 if ( bidicontext && bidicontext->deref() )
1032 delete bidicontext; 1035 delete bidicontext;
1033#endif 1036#endif
1034 } 1037 }
1035 1038
1036#ifndef QT_NO_COMPLEXTEXT 1039#ifndef QT_NO_COMPLEXTEXT
1037 void setContext( QBidiContext *c ) { 1040 void setContext( QBidiContext *c ) {
1038 if ( c == bidicontext ) 1041 if ( c == bidicontext )
1039 return; 1042 return;
1040 if ( bidicontext && bidicontext->deref() ) 1043 if ( bidicontext && bidicontext->deref() )
1041 delete bidicontext; 1044 delete bidicontext;
1042 bidicontext = c; 1045 bidicontext = c;
1043 if ( bidicontext ) 1046 if ( bidicontext )
1044 bidicontext->ref(); 1047 bidicontext->ref();
1045 } 1048 }
1046 QBidiContext *context() const { return bidicontext; } 1049 QBidiContext *context() const { return bidicontext; }
1047#endif 1050#endif
1048 1051
1049public: 1052public:
1050 ushort y, baseLine, h; 1053 ushort y, baseLine, h;
@@ -1180,13 +1183,13 @@ public:
1180 void setFormat( int index, int len, QTextFormat *f, bool useCollection = TRUE, int flags = -1 ); 1183 void setFormat( int index, int len, QTextFormat *f, bool useCollection = TRUE, int flags = -1 );
1181 1184
1182 void setAlignment( int a ); 1185 void setAlignment( int a );
1183 int alignment() const; 1186 int alignment() const;
1184 1187
1185 virtual void paint( QPainter &painter, const QColorGroup &cg, QTextCursor *cursor = 0, bool drawSelections = FALSE, 1188 virtual void paint( QPainter &painter, const QColorGroup &cg, QTextCursor *cursor = 0, bool drawSelections = FALSE,
1186 int clipx = -1, int clipy = -1, int clipw = -1, int cliph = -1 ); 1189 int clipx = -1, int clipy = -1, int clipw = -1, int cliph = -1 );
1187 1190
1188 virtual int topMargin() const; 1191 virtual int topMargin() const;
1189 virtual int bottomMargin() const; 1192 virtual int bottomMargin() const;
1190 virtual int leftMargin() const; 1193 virtual int leftMargin() const;
1191 virtual int firstLineMargin() const; 1194 virtual int firstLineMargin() const;
1192 virtual int rightMargin() const; 1195 virtual int rightMargin() const;
@@ -1243,15 +1246,15 @@ public:
1243 void readStyleInformation( QDataStream& stream ); 1246 void readStyleInformation( QDataStream& stream );
1244 void writeStyleInformation( QDataStream& stream ) const; 1247 void writeStyleInformation( QDataStream& stream ) const;
1245 1248
1246protected: 1249protected:
1247 virtual void drawLabel( QPainter* p, int x, int y, int w, int h, int base, const QColorGroup& cg ); 1250 virtual void drawLabel( QPainter* p, int x, int y, int w, int h, int base, const QColorGroup& cg );
1248 virtual void drawString( QPainter &painter, const QString &str, int start, int len, int xstart, 1251 virtual void drawString( QPainter &painter, const QString &str, int start, int len, int xstart,
1249 int y, int baseLine, int w, int h, int selection, 1252 int y, int baseLine, int w, int h, int selection,
1250 QTextStringChar *formatChar, const QColorGroup& cg, 1253 QTextStringChar *formatChar, const QColorGroup& cg,
1251 bool rightToLeft ); 1254 bool rightToLeft );
1252 1255
1253private: 1256private:
1254 QMap<int, QTextParagraphSelection> &selections() const; 1257 QMap<int, QTextParagraphSelection> &selections() const;
1255 QPtrList<QTextCustomItem> &floatingItems() const; 1258 QPtrList<QTextCustomItem> &floatingItems() const;
1256 QBrush backgroundBrush( const QColorGroup&cg ) { if ( bgcol ) return *bgcol; return cg.brush( QColorGroup::Base ); } 1259 QBrush backgroundBrush( const QColorGroup&cg ) { if ( bgcol ) return *bgcol; return cg.brush( QColorGroup::Base ); }
1257 void invalidateStyleCache(); 1260 void invalidateStyleCache();
@@ -1312,16 +1315,16 @@ public:
1312 int widthUsed() const { return thiswused; } 1315 int widthUsed() const { return thiswused; }
1313 1316
1314 static bool isBreakable( QTextString *string, int pos ); 1317 static bool isBreakable( QTextString *string, int pos );
1315 1318
1316protected: 1319protected:
1317 virtual QTextLineStart *formatLine( QTextParagraph *parag, QTextString *string, QTextLineStart *line, QTextStringChar *start, 1320 virtual QTextLineStart *formatLine( QTextParagraph *parag, QTextString *string, QTextLineStart *line, QTextStringChar *start,
1318 QTextStringChar *last, int align = Qt3::AlignAuto, int space = 0 ); 1321 QTextStringChar *last, int align = Qt3::AlignAuto, int space = 0 );
1319#ifndef QT_NO_COMPLEXTEXT 1322#ifndef QT_NO_COMPLEXTEXT
1320 virtual QTextLineStart *bidiReorderLine( QTextParagraph *parag, QTextString *string, QTextLineStart *line, QTextStringChar *start, 1323 virtual QTextLineStart *bidiReorderLine( QTextParagraph *parag, QTextString *string, QTextLineStart *line, QTextStringChar *start,
1321 QTextStringChar *last, int align, int space ); 1324 QTextStringChar *last, int align, int space );
1322#endif 1325#endif
1323 void insertLineStart( QTextParagraph *parag, int index, QTextLineStart *ls ); 1326 void insertLineStart( QTextParagraph *parag, int index, QTextLineStart *ls );
1324 1327
1325 int thisminw; 1328 int thisminw;
1326 int thiswused; 1329 int thiswused;
1327 1330
@@ -1376,13 +1379,13 @@ public:
1376// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1379// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1377 1380
1378class Q_EXPORT QTextPreProcessor 1381class Q_EXPORT QTextPreProcessor
1379{ 1382{
1380public: 1383public:
1381 enum Ids { 1384 enum Ids {
1382 Standard = 0 1385 Standard = 0
1383 }; 1386 };
1384 1387
1385 QTextPreProcessor(); 1388 QTextPreProcessor();
1386 virtual ~QTextPreProcessor() {} 1389 virtual ~QTextPreProcessor() {}
1387 1390
1388 virtual void process( QTextDocument *doc, QTextParagraph *, int, bool = TRUE ) = 0; 1391 virtual void process( QTextDocument *doc, QTextParagraph *, int, bool = TRUE ) = 0;
@@ -1396,24 +1399,24 @@ class Q_EXPORT QTextFormat
1396{ 1399{
1397 friend class QTextFormatCollection; 1400 friend class QTextFormatCollection;
1398 friend class QTextDocument; 1401 friend class QTextDocument;
1399 1402
1400public: 1403public:
1401 enum Flags { 1404 enum Flags {
1402 NoFlags, 1405 NoFlags,
1403 Bold = 1, 1406 Bold = 1,
1404 Italic = 2, 1407 Italic = 2,
1405 Underline = 4, 1408 Underline = 4,
1406 Family = 8, 1409 Family = 8,
1407 Size = 16, 1410 Size = 16,
1408 Color = 32, 1411 Color = 32,
1409 Misspelled = 64, 1412 Misspelled = 64,
1410 VAlign = 128, 1413 VAlign = 128,
1411 StrikeOut= 256, 1414 StrikeOut= 256,
1412 Font = Bold | Italic | Underline | Family | Size | StrikeOut, 1415 Font = Bold | Italic | Underline | Family | Size | StrikeOut,
1413 Format = Font | Color | Misspelled | VAlign 1416 Format = Font | Color | Misspelled | VAlign
1414 }; 1417 };
1415 1418
1416 enum VerticalAlignment { AlignNormal, AlignSuperScript, AlignSubScript }; 1419 enum VerticalAlignment { AlignNormal, AlignSuperScript, AlignSubScript };
1417 1420
1418 QTextFormat(); 1421 QTextFormat();
1419 virtual ~QTextFormat(); 1422 virtual ~QTextFormat();
@@ -1726,20 +1729,20 @@ inline void QTextDocument::setTabStops( int tw )
1726 tStopWidth = tw; 1729 tStopWidth = tw;
1727} 1730}
1728 1731
1729inline QString QTextDocument::originalText() const 1732inline QString QTextDocument::originalText() const
1730{ 1733{
1731 if ( oTextValid ) 1734 if ( oTextValid )
1732 return oText; 1735 return oText;
1733 return text(); 1736 return text();
1734} 1737}
1735 1738
1736inline void QTextDocument::setFlow( QTextFlow *f ) 1739inline void QTextDocument::setFlow( QTextFlow *f )
1737{ 1740{
1738 if ( flow_ ) 1741 if ( flow_ )
1739 delete flow_; 1742 delete flow_;
1740 flow_ = f; 1743 flow_ = f;
1741} 1744}
1742 1745
1743inline void QTextDocument::takeFlow() 1746inline void QTextDocument::takeFlow()
1744{ 1747{
1745 flow_ = 0; 1748 flow_ = 0;
@@ -1783,17 +1786,17 @@ inline void QTextFormat::addRef()
1783} 1786}
1784 1787
1785inline void QTextFormat::removeRef() 1788inline void QTextFormat::removeRef()
1786{ 1789{
1787 ref--; 1790 ref--;
1788 if ( !collection ) 1791 if ( !collection )
1789 return; 1792 return;
1790 if ( this == collection->defFormat ) 1793 if ( this == collection->defFormat )
1791 return; 1794 return;
1792 if ( ref == 0 ) 1795 if ( ref == 0 )
1793 collection->remove( this ); 1796 collection->remove( this );
1794} 1797}
1795 1798
1796inline QString QTextFormat::key() const 1799inline QString QTextFormat::key() const
1797{ 1800{
1798 return k; 1801 return k;
1799} 1802}
@@ -1840,15 +1843,15 @@ inline void QTextParagraph::clearBackgroundColor()
1840 delete bgcol; bgcol = 0; setChanged( TRUE ); 1843 delete bgcol; bgcol = 0; setChanged( TRUE );
1841} 1844}
1842 1845
1843inline void QTextParagraph::append( const QString &s, bool reallyAtEnd ) 1846inline void QTextParagraph::append( const QString &s, bool reallyAtEnd )
1844{ 1847{
1845 if ( reallyAtEnd ) 1848 if ( reallyAtEnd )
1846 insert( str->length(), s ); 1849 insert( str->length(), s );
1847 else 1850 else
1848 insert( QMAX( str->length() - 1, 0 ), s ); 1851 insert( QMAX( str->length() - 1, 0 ), s );
1849} 1852}
1850 1853
1851inline QTextParagraph *QTextParagraph::prev() const 1854inline QTextParagraph *QTextParagraph::prev() const
1852{ 1855{
1853 return p; 1856 return p;
1854} 1857}
@@ -1863,13 +1866,13 @@ inline bool QTextParagraph::hasAnySelection() const
1863 return mSelections ? !selections().isEmpty() : FALSE; 1866 return mSelections ? !selections().isEmpty() : FALSE;
1864} 1867}
1865 1868
1866inline void QTextParagraph::setEndState( int s ) 1869inline void QTextParagraph::setEndState( int s )
1867{ 1870{
1868 if ( s == state ) 1871 if ( s == state )
1869 return; 1872 return;
1870 state = s; 1873 state = s;
1871} 1874}
1872 1875
1873inline int QTextParagraph::endState() const 1876inline int QTextParagraph::endState() const
1874{ 1877{
1875 return state; 1878 return state;
@@ -1880,13 +1883,13 @@ inline void QTextParagraph::setParagId( int i )
1880 id = i; 1883 id = i;
1881} 1884}
1882 1885
1883inline int QTextParagraph::paragId() const 1886inline int QTextParagraph::paragId() const
1884{ 1887{
1885 if ( id == -1 ) 1888 if ( id == -1 )
1886 qWarning( "invalid parag id!!!!!!!! (%p)", (void*)this ); 1889 owarn << "invalid parag id!!!!!!!! (" << (void*)this << ")" << oendl;
1887 return id; 1890 return id;
1888} 1891}
1889 1892
1890inline bool QTextParagraph::firstPreProcess() const 1893inline bool QTextParagraph::firstPreProcess() const
1891{ 1894{
1892 return firstPProcess; 1895 return firstPProcess;
@@ -1907,20 +1910,20 @@ inline QTextString *QTextParagraph::string() const
1907 return str; 1910 return str;
1908} 1911}
1909 1912
1910inline QTextDocument *QTextParagraph::document() const 1913inline QTextDocument *QTextParagraph::document() const
1911{ 1914{
1912 if ( hasdoc ) 1915 if ( hasdoc )
1913 return (QTextDocument*) docOrPseudo; 1916 return (QTextDocument*) docOrPseudo;
1914 return 0; 1917 return 0;
1915} 1918}
1916 1919
1917inline QTextParagraphPseudoDocument *QTextParagraph::pseudoDocument() const 1920inline QTextParagraphPseudoDocument *QTextParagraph::pseudoDocument() const
1918{ 1921{
1919 if ( hasdoc ) 1922 if ( hasdoc )
1920 return 0; 1923 return 0;
1921 return (QTextParagraphPseudoDocument*) docOrPseudo; 1924 return (QTextParagraphPseudoDocument*) docOrPseudo;
1922} 1925}
1923 1926
1924 1927
1925inline QTextTableCell *QTextParagraph::tableCell() const 1928inline QTextTableCell *QTextParagraph::tableCell() const
1926{ 1929{
diff --git a/noncore/apps/tableviewer/browsekeyentry.cpp b/noncore/apps/tableviewer/browsekeyentry.cpp
index 04e7902..bab9af6 100644
--- a/noncore/apps/tableviewer/browsekeyentry.cpp
+++ b/noncore/apps/tableviewer/browsekeyentry.cpp
@@ -13,39 +13,41 @@
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "browsekeyentry.h" 20#include "browsekeyentry.h"
21 21
22/* OPIE */
23#include <opie2/odebug.h>
24using namespace Opie::Core;
25
26/* QT */
22#include <qtoolbutton.h> 27#include <qtoolbutton.h>
23#include <qwidgetstack.h> 28#include <qwidgetstack.h>
24#include <qlayout.h> 29#include <qlayout.h>
25#include <qlineedit.h> 30#include <qlineedit.h>
26#include <qpushbutton.h> 31#include <qpushbutton.h>
27#include <qpopupmenu.h> 32#include <qpopupmenu.h>
28#include <qhbox.h> 33#include <qhbox.h>
29#include <qdatetime.h> 34#include <qdatetime.h>
30 35
31//#include <iostream.h>
32#include <qheader.h>
33// For qWarning(const char *)
34 36
35/*! 37/*!
36 \class TVBrowseKeyEntry 38 \class TVBrowseKeyEntry
37 \brief a Widget used enter keys into the TVBrowseViewWidget 39 \brief a Widget used enter keys into the TVBrowseViewWidget
38 40
39 The TVBrowseKeyEntry Widget provides the facility to enter 41 The TVBrowseKeyEntry Widget provides the facility to enter
40 various key types to be search on in the table. The key can be changed 42 various key types to be search on in the table. The key can be changed
41 and the entry field will update to the correct sort of widget appropriately 43 and the entry field will update to the correct sort of widget appropriately
42*/ 44*/
43 45
44/*! 46/*!
45 Constructs the widget 47 Constructs the widget
46*/ 48*/
47TVBrowseKeyEntry::TVBrowseKeyEntry(QWidget *parent, const char *name, WFlags f) 49TVBrowseKeyEntry::TVBrowseKeyEntry(QWidget *parent, const char *name, WFlags f)
48 : QWidget(parent, name, f) 50 : QWidget(parent, name, f)
49{ 51{
50 int stack_elem = 0; 52 int stack_elem = 0;
51 QHBoxLayout *h_layout = new QHBoxLayout(this); 53 QHBoxLayout *h_layout = new QHBoxLayout(this);
@@ -77,43 +79,43 @@ TVBrowseKeyEntry::TVBrowseKeyEntry(QWidget *parent, const char *name, WFlags f)
77 ws = new QWidgetStack(this, 0); 79 ws = new QWidgetStack(this, 0);
78 ws->addWidget(textKey, stack_elem++); 80 ws->addWidget(textKey, stack_elem++);
79 ws->addWidget(timeKey, stack_elem++); 81 ws->addWidget(timeKey, stack_elem++);
80 ws->addWidget(dateKey, stack_elem++); 82 ws->addWidget(dateKey, stack_elem++);
81 83
82 ws->raiseWidget(0); 84 ws->raiseWidget(0);
83 85
84 // TODO connect slots and signals.... 86 // TODO connect slots and signals....
85 connect(changeKeyButton, SIGNAL(clicked()), 87 connect(changeKeyButton, SIGNAL(clicked()),
86 this, SLOT(changeKeyMenuSlot())); 88 this, SLOT(changeKeyMenuSlot()));
87 connect(resetButton, SIGNAL(clicked()), 89 connect(resetButton, SIGNAL(clicked()),
88 this, SLOT(resetKeySlot())); 90 this, SLOT(resetKeySlot()));
89 91
90 connect(textKey, SIGNAL(textChanged(const QString&)), 92 connect(textKey, SIGNAL(textChanged(const QString&)),
91 this, SLOT(searchOnText())); 93 this, SLOT(searchOnText()));
92 94
93 connect(dayKey, SIGNAL(textChanged(const QString&)), 95 connect(dayKey, SIGNAL(textChanged(const QString&)),
94 this, SLOT(searchOnText())); 96 this, SLOT(searchOnText()));
95 connect(monthKey, SIGNAL(textChanged(const QString&)), 97 connect(monthKey, SIGNAL(textChanged(const QString&)),
96 this, SLOT(searchOnText())); 98 this, SLOT(searchOnText()));
97 connect(yearKey, SIGNAL(textChanged(const QString&)), 99 connect(yearKey, SIGNAL(textChanged(const QString&)),
98 this, SLOT(searchOnText())); 100 this, SLOT(searchOnText()));
99 101
100 connect(secondKey, SIGNAL(textChanged(const QString&)), 102 connect(secondKey, SIGNAL(textChanged(const QString&)),
101 this, SLOT(searchOnText())); 103 this, SLOT(searchOnText()));
102 connect(minuteKey, SIGNAL(textChanged(const QString&)), 104 connect(minuteKey, SIGNAL(textChanged(const QString&)),
103 this, SLOT(searchOnText())); 105 this, SLOT(searchOnText()));
104 connect(hourKey, SIGNAL(textChanged(const QString&)), 106 connect(hourKey, SIGNAL(textChanged(const QString&)),
105 this, SLOT(searchOnText())); 107 this, SLOT(searchOnText()));
106 108
107 h_layout->addWidget(ws); 109 h_layout->addWidget(ws);
108 h_layout->addWidget(resetButton); 110 h_layout->addWidget(resetButton);
109 h_layout->addWidget(changeKeyButton); 111 h_layout->addWidget(changeKeyButton);
110} 112}
111 113
112/*! 114/*!
113 Destructs the widget 115 Destructs the widget
114*/ 116*/
115TVBrowseKeyEntry::~TVBrowseKeyEntry() 117TVBrowseKeyEntry::~TVBrowseKeyEntry()
116{ 118{
117} 119}
118 120
119/*! 121/*!
@@ -133,23 +135,23 @@ void TVBrowseKeyEntry::changeKeySlot(int id_param)
133 case kt_time: 135 case kt_time:
134 ws->raiseWidget(1); 136 ws->raiseWidget(1);
135 break; 137 break;
136 case kt_date: 138 case kt_date:
137 ws->raiseWidget(2); 139 ws->raiseWidget(2);
138 break; 140 break;
139 default: 141 default:
140 return; 142 return;
141 } 143 }
142} 144}
143 145
144/*! 146/*!
145 Opens the change key menu 147 Opens the change key menu
146*/ 148*/
147void TVBrowseKeyEntry::changeKeyMenuSlot() 149void TVBrowseKeyEntry::changeKeyMenuSlot()
148{ 150{
149 if(ts) 151 if(ts)
150 keyMenu->exec(changeKeyButton->mapToGlobal(QPoint(0,0))); 152 keyMenu->exec(changeKeyButton->mapToGlobal(QPoint(0,0)));
151} 153}
152/*! 154/*!
153 Blanks the key entry widget 155 Blanks the key entry widget
154 \TODO the actual implmentation 156 \TODO the actual implmentation
155*/ 157*/
@@ -162,21 +164,21 @@ void TVBrowseKeyEntry::setTableState(TableState *t) {
162 ts = t; 164 ts = t;
163 165
164 /* clear the old */ 166 /* clear the old */
165 keyMenu->clear(); 167 keyMenu->clear();
166 168
167 for (i = 0; i < t->kRep->getNumFields(); i++) { 169 for (i = 0; i < t->kRep->getNumFields(); i++) {
168 keyMenu->insertItem(ts->kRep->getKeyName(i), this, 170 keyMenu->insertItem(ts->kRep->getKeyName(i), this,
169 SLOT(changeKeySlot(int)), 0, i); 171 SLOT(changeKeySlot(int)), 0, i);
170 keyMenu->setItemParameter(i, i); 172 keyMenu->setItemParameter(i, i);
171 } 173 }
172} 174}
173 175
174/*! 176/*!
175 Searches on the current value of the key entry provided that the 177 Searches on the current value of the key entry provided that the
176 current key is of type text WARNING, TODO fix memory leaks 178 current key is of type text WARNING, TODO fix memory leaks
177*/ 179*/
178void TVBrowseKeyEntry::searchOnText() 180void TVBrowseKeyEntry::searchOnText()
179{ 181{
180 void *sendkey; 182 void *sendkey;
181 int tmp; 183 int tmp;
182 184
@@ -225,18 +227,17 @@ void TVBrowseKeyEntry::searchOnText()
225 if(!QDate::isValid(y, m, d)) 227 if(!QDate::isValid(y, m, d))
226 return; 228 return;
227 sendkey = (void *) new QDate(y, m, d); 229 sendkey = (void *) new QDate(y, m, d);
228 break; 230 break;
229 } 231 }
230 default: 232 default:
231 qWarning("TVBrowseKeyEntry::searchOnText() " 233 owarn << "TVBrowseKeyEntry::searchOnText() cannot work out data type" << oendl;
232 "cannot work out data type");
233 return; 234 return;
234 } 235 }
235 emit searchOnKey(ts->current_column, sendkey); 236 emit searchOnKey(ts->current_column, sendkey);
236} 237}
237 238
238/*! \fn void TVBrowseKeyEntry::searchOnKey(int currentKeyId, void *v) 239/*! \fn void TVBrowseKeyEntry::searchOnKey(int currentKeyId, void *v)
239 240
240 This signal indicates that a search on key index currentKeyId should be 241 This signal indicates that a search on key index currentKeyId should be
241 done searching for the value v. 242 done searching for the value v.
242*/ 243*/
diff --git a/noncore/apps/tableviewer/db/common.cpp b/noncore/apps/tableviewer/db/common.cpp
index b58af85..c35dbea 100644
--- a/noncore/apps/tableviewer/db/common.cpp
+++ b/noncore/apps/tableviewer/db/common.cpp
@@ -13,14 +13,14 @@
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "common.h" 20#include "common.h"
21#include "datacache.h" 21#include "datacache.h"
22 22
23/* OPIE */ 23/* OPIE */
24#include <opie2/odebug.h> 24#include <opie2/odebug.h>
25#include <qpe/timestring.h> 25#include <qpe/timestring.h>
26using namespace Opie::Core; 26using namespace Opie::Core;
@@ -85,19 +85,19 @@ int parseNextNumber(QString *q) {
85 </UL> 85 </UL>
86*/ 86*/
87int QStringVector::compareItems(Item a, Item b) 87int QStringVector::compareItems(Item a, Item b)
88{ 88{
89 QString *qa = (QString *)a; 89 QString *qa = (QString *)a;
90 QString *qb = (QString *)b; 90 QString *qb = (QString *)b;
91 91
92 return QString::compare(*qa, *qb); 92 return QString::compare(*qa, *qb);
93} 93}
94 94
95/*! 95/*!
96 \class TVVariant 96 \class TVVariant
97 A way of abstracting void * and keeping information on 97 A way of abstracting void * and keeping information on
98 the keytypes and behaviours in one place 98 the keytypes and behaviours in one place
99*/ 99*/
100 100
101TVVariantPrivate::TVVariantPrivate() 101TVVariantPrivate::TVVariantPrivate()
102{ 102{
103 typ = TVVariant::Invalid; 103 typ = TVVariant::Invalid;
@@ -317,13 +317,13 @@ void TVVariant::load(QDataStream &s )
317 int x; 317 int x;
318 s >> x; 318 s >> x;
319 d->value.i = x; 319 d->value.i = x;
320 } 320 }
321 break; 321 break;
322 default: 322 default:
323 ofatal << "Unrecognized data type" << oendl; 323 ofatal << "Unrecognized data type" << oendl;
324 } 324 }
325} 325}
326 326
327void TVVariant::save( QDataStream &s ) const 327void TVVariant::save( QDataStream &s ) const
328{ 328{
329 s << type(); 329 s << type();
@@ -379,13 +379,13 @@ const QString TVVariant::toString() const
379 case String: 379 case String:
380 return *((QString*)d->value.ptr); 380 return *((QString*)d->value.ptr);
381 case Date: 381 case Date:
382 return ((QDate*)d->value.ptr)->toString(); 382 return ((QDate*)d->value.ptr)->toString();
383 case Time: 383 case Time:
384 return ((QTime*)d->value.ptr)->toString(); 384 return ((QTime*)d->value.ptr)->toString();
385 case Int: 385 case Int:
386 return QString::number(d->value.i); 386 return QString::number(d->value.i);
387 case Invalid: 387 case Invalid:
388 default: 388 default:
389 return QString::null; 389 return QString::null;
390 } 390 }
391 return QString::null; 391 return QString::null;
@@ -421,22 +421,22 @@ const QDate TVVariant::toDate() const
421 int month = parseNextNumber(&q); 421 int month = parseNextNumber(&q);
422 int year = parseNextNumber(&q); 422 int year = parseNextNumber(&q);
423 if (!QDate::isValid(year, month, day)) 423 if (!QDate::isValid(year, month, day))
424 return QDate(); 424 return QDate();
425 return QDate(year, month, day); 425 return QDate(year, month, day);
426 } 426 }
427 427
428 428
429 return QDate(); 429 return QDate();
430} 430}
431 431
432const QTime TVVariant::toTime() const 432const QTime TVVariant::toTime() const
433{ 433{
434 if(d->typ == Time) 434 if(d->typ == Time)
435 return *((QTime *)d->value.ptr); 435 return *((QTime *)d->value.ptr);
436 436
437 if(d->typ == String) { 437 if(d->typ == String) {
438 QString q = toString(); 438 QString q = toString();
439 int hour = parseNextNumber(&q); 439 int hour = parseNextNumber(&q);
440 int minute = parseNextNumber(&q); 440 int minute = parseNextNumber(&q);
441 int second = parseNextNumber(&q); 441 int second = parseNextNumber(&q);
442 int msecond = parseNextNumber(&q); 442 int msecond = parseNextNumber(&q);
@@ -451,13 +451,13 @@ const QTime TVVariant::toTime() const
451#define TV_VARIANT_AS( f ) Q##f& TVVariant::as##f() { \ 451#define TV_VARIANT_AS( f ) Q##f& TVVariant::as##f() { \
452 if ( d->typ != f ) \ 452 if ( d->typ != f ) \
453 *this = TVVariant( to##f() ); \ 453 *this = TVVariant( to##f() ); \
454 else \ 454 else \
455 detach(); \ 455 detach(); \
456 return *((Q##f*)d->value.ptr); } 456 return *((Q##f*)d->value.ptr); }
457 457
458TV_VARIANT_AS(String) 458TV_VARIANT_AS(String)
459TV_VARIANT_AS(Date) 459TV_VARIANT_AS(Date)
460TV_VARIANT_AS(Time) 460TV_VARIANT_AS(Time)
461 461
462#undef TV_VARIANT_AS 462#undef TV_VARIANT_AS
463 463
@@ -557,66 +557,66 @@ bool TVVariant::operator>( const TVVariant &v ) const
557 557
558/*! True if n is closer to this than o */ 558/*! True if n is closer to this than o */
559bool TVVariant::closer(TVVariant n, TVVariant o) 559bool TVVariant::closer(TVVariant n, TVVariant o)
560{ 560{
561 /* Nothing is close to an invalid, so nothing can be closer */ 561 /* Nothing is close to an invalid, so nothing can be closer */
562 if(d->typ == Invalid) 562 if(d->typ == Invalid)
563 return FALSE; 563 return FALSE;
564 564
565 /* can't be closer if of different type */ 565 /* can't be closer if of different type */
566 if(n.type() != type()) 566 if(n.type() != type())
567 return FALSE; 567 return FALSE;
568 568
569 /* if new shares type, and old doesn't, then new is closer */ 569 /* if new shares type, and old doesn't, then new is closer */
570 if(o.type() != type()) 570 if(o.type() != type())
571 return TRUE; 571 return TRUE;
572 572
573 switch(type()){ 573 switch(type()){
574 case String: { 574 case String: {
575 /* case for strings is close is a substring.. closer is 575 /* case for strings is close is a substring.. closer is
576 * earlier alphabetically */ 576 * earlier alphabetically */
577 QString qs1 = n.toString().lower(); 577 QString qs1 = n.toString().lower();
578 QString qs2 = o.toString().lower(); 578 QString qs2 = o.toString().lower();
579 QString qsv = toString().lower(); 579 QString qsv = toString().lower();
580 580
581 if (!qs1.startsWith(qsv)) 581 if (!qs1.startsWith(qsv))
582 return FALSE; 582 return FALSE;
583 583
584 /* contains sub-str, if later than is not closer */ 584 /* contains sub-str, if later than is not closer */
585 if(QString::compare(qs1, qs2) > 0) 585 if(QString::compare(qs1, qs2) > 0)
586 return FALSE; 586 return FALSE;
587 return TRUE; 587 return TRUE;
588 } 588 }
589 case Int: { 589 case Int: {
590 /* case for int is smallest absolute difference */ 590 /* case for int is smallest absolute difference */
591 int i1 = n.toInt(); 591 int i1 = n.toInt();
592 int i2 = o.toInt(); 592 int i2 = o.toInt();
593 int iv = toInt(); 593 int iv = toInt();
594 594
595 int diff1 = (i1 - iv); 595 int diff1 = (i1 - iv);
596 if (diff1 < 0) 596 if (diff1 < 0)
597 diff1 = -diff1; 597 diff1 = -diff1;
598 int diff2 = (i2 - iv); 598 int diff2 = (i2 - iv);
599 if (diff2 < 0) 599 if (diff2 < 0)
600 diff2 = -diff2; 600 diff2 = -diff2;
601 601
602 if (diff1 < diff2) 602 if (diff1 < diff2)
603 return TRUE; 603 return TRUE;
604 return FALSE; 604 return FALSE;
605 } 605 }
606 case Date: { 606 case Date: {
607 QDate i1 = n.toDate(); 607 QDate i1 = n.toDate();
608 QDate i2 = o.toDate(); 608 QDate i2 = o.toDate();
609 QDate iv = toDate(); 609 QDate iv = toDate();
610 610
611 /* definition of closer is the least difference in days */ 611 /* definition of closer is the least difference in days */
612 int diff1 = i1.daysTo(iv); 612 int diff1 = i1.daysTo(iv);
613 if (diff1 < 0) 613 if (diff1 < 0)
614 diff1 = -diff1; 614 diff1 = -diff1;
615 int diff2 = i2.daysTo(iv); 615 int diff2 = i2.daysTo(iv);
616 if (diff2 < 0) 616 if (diff2 < 0)
617 diff2 = -diff2; 617 diff2 = -diff2;
618 618
619 if (diff1 < diff2) 619 if (diff1 < diff2)
620 return TRUE; 620 return TRUE;
621 return FALSE; 621 return FALSE;
622 } 622 }
@@ -624,16 +624,16 @@ bool TVVariant::closer(TVVariant n, TVVariant o)
624 QTime i1 = n.toTime(); 624 QTime i1 = n.toTime();
625 QTime i2 = o.toTime(); 625 QTime i2 = o.toTime();
626 QTime iv = toTime(); 626 QTime iv = toTime();
627 627
628 /* definition of closer is the least difference in days */ 628 /* definition of closer is the least difference in days */
629 int diff1 = i1.msecsTo(iv); 629 int diff1 = i1.msecsTo(iv);
630 if (diff1 < 0) 630 if (diff1 < 0)
631 diff1 = -diff1; 631 diff1 = -diff1;
632 int diff2 = i2.msecsTo(iv); 632 int diff2 = i2.msecsTo(iv);
633 if (diff2 < 0) 633 if (diff2 < 0)
634 diff2 = -diff2; 634 diff2 = -diff2;
635 if (diff1 < diff2) 635 if (diff1 < diff2)
636 return TRUE; 636 return TRUE;
637 return FALSE; 637 return FALSE;
638 } 638 }
639 default: 639 default:
@@ -646,30 +646,30 @@ bool TVVariant::closer(TVVariant n, TVVariant o)
646 646
647/*! True if n is close to this */ 647/*! True if n is close to this */
648bool TVVariant::close(TVVariant n) 648bool TVVariant::close(TVVariant n)
649{ 649{
650 /* Nothing is close to an invalid, so nothing can be closer */ 650 /* Nothing is close to an invalid, so nothing can be closer */
651 if(type() == Invalid) 651 if(type() == Invalid)
652 return FALSE; 652 return FALSE;
653 653
654 /* can't be close if of different type */ 654 /* can't be close if of different type */
655 if(n.type() != type()) 655 if(n.type() != type())
656 return FALSE; 656 return FALSE;
657 657
658 switch(type()){ 658 switch(type()){
659 case String: { 659 case String: {
660 /* case for strings is close is a substring.. closer is 660 /* case for strings is close is a substring.. closer is
661 * earlier alphabetically */ 661 * earlier alphabetically */
662 QString qs1 = n.toString().lower(); 662 QString qs1 = n.toString().lower();
663 QString qsv = toString().lower(); 663 QString qsv = toString().lower();
664 664
665 if (!qs1.startsWith(qsv)) 665 if (!qs1.startsWith(qsv))
666 return FALSE; 666 return FALSE;
667 return TRUE; 667 return TRUE;
668 } 668 }
669 case Int: 669 case Int:
670 case Date: 670 case Date:
671 case Time: 671 case Time:
672 return TRUE; 672 return TRUE;
673 default: 673 default:
674 /* don't know how to do 'closer' on this type, hence never closer 674 /* don't know how to do 'closer' on this type, hence never closer
675 * or even close */ 675 * or even close */
@@ -678,29 +678,29 @@ bool TVVariant::close(TVVariant n)
678 return FALSE; 678 return FALSE;
679} 679}
680 680
681/*! 681/*!
682 \class Key 682 \class Key
683 \brief document me! 683 \brief document me!
684 684
685 document me! 685 document me!
686*/ 686*/
687 687
688Key::Key() : kname(), kexample(), kflags(0) { } 688Key::Key() : kname(), kexample(), kflags(0) { }
689 689
690Key::Key(QString name, TVVariant example, int flags) : 690Key::Key(QString name, TVVariant example, int flags) :
691 kname(name), kexample(example), kflags(flags) { } 691 kname(name), kexample(example), kflags(flags) { }
692 692
693Key::Key(const Key &other) 693Key::Key(const Key &other)
694{ 694{
695 kname = other.kname; 695 kname = other.kname;
696 kexample = other.kexample; 696 kexample = other.kexample;
697 kflags = other.kflags; 697 kflags = other.kflags;
698} 698}
699 699
700Key& Key::operator=(const Key& key) 700Key& Key::operator=(const Key& key)
701{ 701{
702 kname = key.kname; 702 kname = key.kname;
703 kexample = key.kexample; 703 kexample = key.kexample;
704 kflags = key.kflags; 704 kflags = key.kflags;
705 return *this; 705 return *this;
706} 706}
@@ -774,19 +774,19 @@ void Key::setNewFlag(bool v)
774 headings by DBStore. It stores the names and types of the keys 774 headings by DBStore. It stores the names and types of the keys
775*/ 775*/
776 776
777/*! 777/*!
778 Constructs a KeyList 778 Constructs a KeyList
779*/ 779*/
780KeyList::KeyList() : QIntDict<Key>(20) 780KeyList::KeyList() : QIntDict<Key>(20)
781{ 781{
782 setAutoDelete(TRUE); 782 setAutoDelete(TRUE);
783} 783}
784 784
785/* Should be deep copy, but isn't */ 785/* Should be deep copy, but isn't */
786KeyList::KeyList(const KeyList &k) : QIntDict<Key>(k) 786KeyList::KeyList(const KeyList &k) : QIntDict<Key>(k)
787{ 787{
788 KeyListIterator it(k); 788 KeyListIterator it(k);
789 while(it.current()) { 789 while(it.current()) {
790 replace(it.currentKey(), new Key(*it.current())); 790 replace(it.currentKey(), new Key(*it.current()));
791 ++it; 791 ++it;
792 } 792 }
@@ -819,13 +819,13 @@ bool KeyList::operator!=(const KeyList &other)
819 return FALSE; 819 return FALSE;
820} 820}
821 821
822/*! 822/*!
823 Returns the number of keys stored in the KeyList 823 Returns the number of keys stored in the KeyList
824*/ 824*/
825int KeyList::getNumFields() const 825int KeyList::getNumFields() const
826{ 826{
827 return count(); 827 return count();
828} 828}
829 829
830/*! 830/*!
831 Adds a new key to the KeyList 831 Adds a new key to the KeyList
@@ -844,67 +844,66 @@ int KeyList::addKey(QString name, TVVariant example)
844 844
845int KeyList::addKey(QString name, TVVariant::KeyType type) 845int KeyList::addKey(QString name, TVVariant::KeyType type)
846{ 846{
847 /* generate a valid type for the example? */ 847 /* generate a valid type for the example? */
848 TVVariant e = TVVariant("0"); 848 TVVariant e = TVVariant("0");
849 switch(type) { 849 switch(type) {
850 case TVVariant::String: 850 case TVVariant::String:
851 return addKey(name, TVVariant("<undefined>").asString()); 851 return addKey(name, TVVariant("<undefined>").asString());
852 break; 852 break;
853 case TVVariant::Date: 853 case TVVariant::Date:
854 return addKey(name, TVVariant(QDate::currentDate()).asDate()); 854 return addKey(name, TVVariant(QDate::currentDate()).asDate());
855 break; 855 break;
856 case TVVariant::Time: 856 case TVVariant::Time:
857 return addKey(name, TVVariant(QTime(0,0,0)).toTime()); 857 return addKey(name, TVVariant(QTime(0,0,0)).toTime());
858 break; 858 break;
859 case TVVariant::Int: 859 case TVVariant::Int:
860 return addKey(name, TVVariant(0).toInt()); 860 return addKey(name, TVVariant(0).toInt());
861 break; 861 break;
862 default: 862 default:
863 qWarning(QObject::tr("KeyList::addKey() Cannot make default " 863 owarn << "KeyList::addKey() Cannot make default value for type " << type << ", Key not added." << oendl;
864 "value for type %1, Key not added.").arg(type));
865 break; 864 break;
866 } 865 }
867 return -1; 866 return -1;
868} 867}
869 868
870void KeyList::setKeyFlags(int i, int flag) 869void KeyList::setKeyFlags(int i, int flag)
871{ 870{
872 if(find(i)) 871 if(find(i))
873 find(i)->setFlags(flag); 872 find(i)->setFlags(flag);
874} 873}
875 874
876int KeyList::getKeyFlags(int i) const 875int KeyList::getKeyFlags(int i) const
877{ 876{
878 if(find(i)) 877 if(find(i))
879 return find(i)->flags(); 878 return find(i)->flags();
880 return 0; 879 return 0;
881} 880}
882 881
883bool KeyList::checkNewFlag(int i) const 882bool KeyList::checkNewFlag(int i) const
884{ 883{
885 if (find(i)) 884 if (find(i))
886 return find(i)->newFlag(); 885 return find(i)->newFlag();
887 return false; 886 return false;
888} 887}
889 888
890void KeyList::setNewFlag(int i, bool f) 889void KeyList::setNewFlag(int i, bool f)
891{ 890{
892 if(!find(i)) 891 if(!find(i))
893 return; 892 return;
894 find(i)->setNewFlag(f); 893 find(i)->setNewFlag(f);
895} 894}
896 895
897bool KeyList::checkDeleteFlag(int i) const 896bool KeyList::checkDeleteFlag(int i) const
898{ 897{
899 if (find(i)) 898 if (find(i))
900 return find(i)->delFlag(); 899 return find(i)->delFlag();
901 return false; 900 return false;
902} 901}
903 902
904void KeyList::setDeleteFlag(int i, bool f) 903void KeyList::setDeleteFlag(int i, bool f)
905{ 904{
906 if(!find(i)) 905 if(!find(i))
907 return; 906 return;
908 find(i)->setDelFlag(f); 907 find(i)->setDelFlag(f);
909} 908}
910 909
@@ -915,13 +914,13 @@ QString KeyList::getKeyName(int i) const
915{ 914{
916 if (find (i)) 915 if (find (i))
917 return find(i)->name(); 916 return find(i)->name();
918 return QString(); 917 return QString();
919} 918}
920 919
921void KeyList::setKeyName(int i, const QString &n) 920void KeyList::setKeyName(int i, const QString &n)
922{ 921{
923 if(find(i)) 922 if(find(i))
924 find(i)->setName(n); 923 find(i)->setName(n);
925} 924}
926 925
927/*! 926/*!
@@ -931,13 +930,13 @@ TVVariant::KeyType KeyList::getKeyType(int i) const
931{ 930{
932 if(find(i)) 931 if(find(i))
933 return find(i)->type(); 932 return find(i)->type();
934 return TVVariant::Invalid; 933 return TVVariant::Invalid;
935} 934}
936 935
937void KeyList::setKeyType(int i, TVVariant::KeyType t) 936void KeyList::setKeyType(int i, TVVariant::KeyType t)
938{ 937{
939 if(!find(i)) 938 if(!find(i))
940 return; 939 return;
941 switch(t) { 940 switch(t) {
942 case TVVariant::String: 941 case TVVariant::String:
943 find(i)->setExample(TVVariant(QString("default"))); 942 find(i)->setExample(TVVariant(QString("default")));
@@ -1037,15 +1036,15 @@ QDataStream &operator>>( QDataStream &s, KeyList &k)
1037 1036
1038 This class holds the data of a row in a table. 1037 This class holds the data of a row in a table.
1039*/ 1038*/
1040 1039
1041 1040
1042/*! 1041/*!
1043 Constructs a DataElem. This function needs a container because the 1042 Constructs a DataElem. This function needs a container because the
1044 size, types of keys and primary key are all defined by the containing 1043 size, types of keys and primary key are all defined by the containing
1045 database 1044 database
1046*/ 1045*/
1047DataElem::DataElem(DBStore *c) : values(20) 1046DataElem::DataElem(DBStore *c) : values(20)
1048{ 1047{
1049 int size; 1048 int size;
1050 contained = c; 1049 contained = c;
1051 size = c->getNumFields(); 1050 size = c->getNumFields();
@@ -1083,13 +1082,13 @@ QDataStream &operator>>( QDataStream &s, DataElem &d)
1083 int size; 1082 int size;
1084 TVVariant t; 1083 TVVariant t;
1085 Q_UINT16 index = 0; 1084 Q_UINT16 index = 0;
1086 1085
1087 s >> size; /* redundent data but makes streaming easier */ 1086 s >> size; /* redundent data but makes streaming easier */
1088 if (size != d.getNumFields()) { 1087 if (size != d.getNumFields()) {
1089 owarn << "DataSize mis-match" << oendl; 1088 owarn << "DataSize mis-match" << oendl;
1090 return s; /* sanity check failed.. don't load */ 1089 return s; /* sanity check failed.. don't load */
1091 } 1090 }
1092 1091
1093 for(i = 0; i < size; i++) { 1092 for(i = 0; i < size; i++) {
1094 s >> index; 1093 s >> index;
1095 s >> t; 1094 s >> t;
@@ -1106,68 +1105,68 @@ int DataElem::getNumFields() const
1106 1105
1107KeyList DataElem::getKeys() const 1106KeyList DataElem::getKeys() const
1108{ 1107{
1109 return *(contained->getKeys()); 1108 return *(contained->getKeys());
1110} 1109}
1111 1110
1112/*! 1111/*!
1113 This function determines whether field index i of the element has been 1112 This function determines whether field index i of the element has been
1114 set yet. 1113 set yet.
1115 1114
1116 \return A boolean value that is TRUE if the specfied field of this 1115 \return A boolean value that is TRUE if the specfied field of this
1117 element has been set and FALSE if the field has not yet been set 1116 element has been set and FALSE if the field has not yet been set
1118*/ 1117*/
1119bool DataElem::hasValidValue(int i) const 1118bool DataElem::hasValidValue(int i) const
1120{ 1119{
1121 if(!values.find(i)) 1120 if(!values.find(i))
1122 return FALSE; 1121 return FALSE;
1123 if(!contained->getKeys()->validIndex(i)) 1122 if(!contained->getKeys()->validIndex(i))
1124 return FALSE; 1123 return FALSE;
1125 return values.find(i)->isValid(); 1124 return values.find(i)->isValid();
1126} 1125}
1127 1126
1128/*! 1127/*!
1129 This function determines whether field name qs of the element has been 1128 This function determines whether field name qs of the element has been
1130 set yet. 1129 set yet.
1131 1130
1132 \return A boolean value that is TRUE if the specfied field of this 1131 \return A boolean value that is TRUE if the specfied field of this
1133 element has been set and FALSE if the field has not yet been set 1132 element has been set and FALSE if the field has not yet been set
1134*/ 1133*/
1135bool DataElem::hasValidValue(QString qs) const 1134bool DataElem::hasValidValue(QString qs) const
1136{ 1135{
1137 int i = contained->getKeyIndex(qs); 1136 int i = contained->getKeyIndex(qs);
1138 return hasValidValue(i); 1137 return hasValidValue(i);
1139} 1138}
1140 1139
1141/*! returns the type of the field specified by index i */ 1140/*! returns the type of the field specified by index i */
1142TVVariant::KeyType DataElem::getFieldType(int i) const 1141TVVariant::KeyType DataElem::getFieldType(int i) const
1143{ 1142{
1144 return contained->getKeyType(i); 1143 return contained->getKeyType(i);
1145} 1144}
1146 1145
1147/*! returns the type of the field specified by name qs */ 1146/*! returns the type of the field specified by name qs */
1148TVVariant::KeyType DataElem::getFieldType(QString qs) const 1147TVVariant::KeyType DataElem::getFieldType(QString qs) const
1149{ 1148{
1150 int i = contained->getKeyIndex(qs); 1149 int i = contained->getKeyIndex(qs);
1151 return contained->getKeyType(i); 1150 return contained->getKeyType(i);
1152} 1151}
1153 1152
1154/*! 1153/*!
1155 returns a pointer to the data stored in field index i for this 1154 returns a pointer to the data stored in field index i for this
1156 data element, (value may not be valid) 1155 data element, (value may not be valid)
1157*/ 1156*/
1158TVVariant DataElem::getField(int i) const 1157TVVariant DataElem::getField(int i) const
1159{ 1158{
1160 if(hasValidValue(i)) 1159 if(hasValidValue(i))
1161 return TVVariant(*values.find(i)); 1160 return TVVariant(*values.find(i));
1162 return TVVariant(); 1161 return TVVariant();
1163} 1162}
1164 1163
1165/*! 1164/*!
1166 returns a pointer to the data stored in field name qs for this 1165 returns a pointer to the data stored in field name qs for this
1167 data element, (value may not be valid) 1166 data element, (value may not be valid)
1168*/ 1167*/
1169TVVariant DataElem::getField(QString qs) const 1168TVVariant DataElem::getField(QString qs) const
1170{ 1169{
1171 int i = contained->getKeyIndex(qs); 1170 int i = contained->getKeyIndex(qs);
1172 return getField(i); 1171 return getField(i);
1173} 1172}
@@ -1176,13 +1175,13 @@ TVVariant DataElem::getField(QString qs) const
1176 Sets the value of the elements field index i to the value represented in 1175 Sets the value of the elements field index i to the value represented in
1177 the QString q. 1176 the QString q.
1178 1177
1179 \param i index of the field to set 1178 \param i index of the field to set
1180 \param q a string that can be parsed to get the value to be set 1179 \param q a string that can be parsed to get the value to be set
1181*/ 1180*/
1182void DataElem::setField(int i, QString q) 1181void DataElem::setField(int i, QString q)
1183{ 1182{
1184 /* from the type of the field, parse q and store */ 1183 /* from the type of the field, parse q and store */
1185 TVVariant::KeyType kt = contained->getKeyType(i); 1184 TVVariant::KeyType kt = contained->getKeyType(i);
1186 1185
1187 TVVariant t = TVVariant(q); 1186 TVVariant t = TVVariant(q);
1188 1187
@@ -1205,26 +1204,24 @@ void DataElem::setField(int i, QString q)
1205 case TVVariant::Time: { 1204 case TVVariant::Time: {
1206 t.asTime(); 1205 t.asTime();
1207 setField(i, t); 1206 setField(i, t);
1208 return; 1207 return;
1209 } 1208 }
1210 default: 1209 default:
1211 qWarning( 1210 owarn << "DataElem::setField(" << i << ", " << q << ") No valid type found" << oendl;
1212 QObject::tr("DataElem::setField(%1, %2) No valid type found").arg(i).arg(q)
1213 );
1214 } 1211 }
1215} 1212}
1216 1213
1217/*! 1214/*!
1218 Sets the value of the elements field index i to the value at the pointer 1215 Sets the value of the elements field index i to the value at the pointer
1219 value. 1216 value.
1220 1217
1221 \param i index of the field to set 1218 \param i index of the field to set
1222 \param value a pointer to the (already allocated) value to set 1219 \param value a pointer to the (already allocated) value to set
1223*/ 1220*/
1224void DataElem::setField(int i, TVVariant value) 1221void DataElem::setField(int i, TVVariant value)
1225{ 1222{
1226 if (value.isValid()) { 1223 if (value.isValid()) {
1227 values.remove(i); 1224 values.remove(i);
1228 values.replace(i, new TVVariant(value)); 1225 values.replace(i, new TVVariant(value));
1229 } 1226 }
1230} 1227}
@@ -1233,25 +1230,25 @@ void DataElem::setField(int i, TVVariant value)
1233 Sets the value of the elements field name qs to the value represented in 1230 Sets the value of the elements field name qs to the value represented in
1234 the QString q. 1231 the QString q.
1235 1232
1236 \param qs name of the field to set 1233 \param qs name of the field to set
1237 \param q a string that can be parsed to get the value to be set 1234 \param q a string that can be parsed to get the value to be set
1238*/ 1235*/
1239void DataElem::setField(QString qs, QString q) 1236void DataElem::setField(QString qs, QString q)
1240{ 1237{
1241 /* from the type of the field, parse q and store */ 1238 /* from the type of the field, parse q and store */
1242 int i = contained->getKeyIndex(qs); 1239 int i = contained->getKeyIndex(qs);
1243 setField(i, qs); 1240 setField(i, qs);
1244} 1241}
1245 1242
1246/*! 1243/*!
1247 Sets the value of the elements field name qs to the value at the pointer 1244 Sets the value of the elements field name qs to the value at the pointer
1248 value. 1245 value.
1249 1246
1250 \param qs name of the field to set 1247 \param qs name of the field to set
1251 \param value a pointer to the (already allocated) value to set 1248 \param value a pointer to the (already allocated) value to set
1252*/ 1249*/
1253void DataElem::setField(QString qs, TVVariant value) 1250void DataElem::setField(QString qs, TVVariant value)
1254{ 1251{
1255 int i = contained->getKeyIndex(qs); 1252 int i = contained->getKeyIndex(qs);
1256 setField(i, value); 1253 setField(i, value);
1257} 1254}
@@ -1264,13 +1261,13 @@ void DataElem::unsetField(QString qs)
1264{ 1261{
1265 int i = contained->getKeyIndex(qs); 1262 int i = contained->getKeyIndex(qs);
1266 unsetField(i); 1263 unsetField(i);
1267} 1264}
1268 1265
1269/*! 1266/*!
1270 Converts the data element to a Rich Text QString 1267 Converts the data element to a Rich Text QString
1271*/ 1268*/
1272QString DataElem::toQString() const 1269QString DataElem::toQString() const
1273{ 1270{
1274 /* lets make an attempt at this function */ 1271 /* lets make an attempt at this function */
1275 int i; 1272 int i;
1276 QString scratch = ""; 1273 QString scratch = "";
@@ -1287,21 +1284,21 @@ QString DataElem::toQString() const
1287 ++it; 1284 ++it;
1288 } 1285 }
1289 return scratch; 1286 return scratch;
1290} 1287}
1291 1288
1292/*! formats individual fields to strings so can be displayed */ 1289/*! formats individual fields to strings so can be displayed */
1293QString DataElem::toQString(int i) const 1290QString DataElem::toQString(int i) const
1294{ 1291{
1295 if(hasValidValue(i)) { 1292 if(hasValidValue(i)) {
1296 return getField(i).toString(); 1293 return getField(i).toString();
1297 } 1294 }
1298 return ""; 1295 return "";
1299} 1296}
1300/*! formats individual fields to strings so can be sorted by QListView */ 1297/*! formats individual fields to strings so can be sorted by QListView */
1301QString DataElem::toSortableQString(int i) const 1298QString DataElem::toSortableQString(int i) const
1302{ 1299{
1303 QString scratch = ""; 1300 QString scratch = "";
1304 if(hasValidValue(i)) { 1301 if(hasValidValue(i)) {
1305 switch (contained->getKeyType(i)) { 1302 switch (contained->getKeyType(i)) {
1306 case TVVariant::String: { 1303 case TVVariant::String: {
1307 scratch += getField(i).toString(); 1304 scratch += getField(i).toString();
@@ -1310,19 +1307,19 @@ QString DataElem::toSortableQString(int i) const
1310 case TVVariant::Int: { 1307 case TVVariant::Int: {
1311 scratch.sprintf("%08d", getField(i).toInt()); 1308 scratch.sprintf("%08d", getField(i).toInt());
1312 break; 1309 break;
1313 } 1310 }
1314 case TVVariant::Date: { 1311 case TVVariant::Date: {
1315 static QDate epochD(1800, 1, 1); 1312 static QDate epochD(1800, 1, 1);
1316 scratch.sprintf("%08d", 1313 scratch.sprintf("%08d",
1317 epochD.daysTo(getField(i).toDate())); 1314 epochD.daysTo(getField(i).toDate()));
1318 break; 1315 break;
1319 } 1316 }
1320 case TVVariant::Time: { 1317 case TVVariant::Time: {
1321 static QTime epochT(0, 0, 0); 1318 static QTime epochT(0, 0, 0);
1322 scratch.sprintf("%08d", 1319 scratch.sprintf("%08d",
1323 epochT.msecsTo(getField(i).toTime())); 1320 epochT.msecsTo(getField(i).toTime()));
1324 break; 1321 break;
1325 } 1322 }
1326 default: 1323 default:
1327 scratch += "Unknown type"; 1324 scratch += "Unknown type";
1328 break; 1325 break;
@@ -1377,18 +1374,18 @@ bool DataElem::contains(int i, TVVariant v) const
1377 if (qs1.contains(qs2) > 0) return TRUE; 1374 if (qs1.contains(qs2) > 0) return TRUE;
1378 break; 1375 break;
1379 } 1376 }
1380 /* meaningless for ints */ 1377 /* meaningless for ints */
1381 /* meaningless for time */ 1378 /* meaningless for time */
1382 /* meaningless for dates */ 1379 /* meaningless for dates */
1383 case TVVariant::Int: 1380 case TVVariant::Int:
1384 case TVVariant::Time: 1381 case TVVariant::Time:
1385 case TVVariant::Date: 1382 case TVVariant::Date:
1386 break; 1383 break;
1387 default: 1384 default:
1388 owarn << "Tried to compare unknown data type" << oendl; 1385 owarn << "Tried to compare unknown data type" << oendl;
1389 } 1386 }
1390 return FALSE; 1387 return FALSE;
1391} 1388}
1392 1389
1393bool DataElem::startsWith(int i, TVVariant v) const 1390bool DataElem::startsWith(int i, TVVariant v) const
1394{ 1391{
@@ -1403,18 +1400,18 @@ bool DataElem::startsWith(int i, TVVariant v) const
1403 QString qs2 = v.toString().lower(); 1400 QString qs2 = v.toString().lower();
1404 return qs1.startsWith(qs2); 1401 return qs1.startsWith(qs2);
1405 } 1402 }
1406 /* meaningless for ints */ 1403 /* meaningless for ints */
1407 /* meaningless for time */ 1404 /* meaningless for time */
1408 /* meaningless for dates */ 1405 /* meaningless for dates */
1409 case TVVariant::Int: 1406 case TVVariant::Int:
1410 case TVVariant::Time: 1407 case TVVariant::Time:
1411 case TVVariant::Date: 1408 case TVVariant::Date:
1412 return FALSE; 1409 return FALSE;
1413 default: 1410 default:
1414 owarn << "Tried to compare unknown data type" << oendl; 1411 owarn << "Tried to compare unknown data type" << oendl;
1415 } 1412 }
1416 return FALSE; 1413 return FALSE;
1417} 1414}
1418 1415
1419bool DataElem::endsWith(int i, TVVariant v) const 1416bool DataElem::endsWith(int i, TVVariant v) const
1420{ 1417{
@@ -1429,50 +1426,50 @@ bool DataElem::endsWith(int i, TVVariant v) const
1429 QString qs2 = v.toString().lower(); 1426 QString qs2 = v.toString().lower();
1430 return qs1.startsWith(qs2); 1427 return qs1.startsWith(qs2);
1431 } 1428 }
1432 /* meaningless for ints */ 1429 /* meaningless for ints */
1433 /* meaningless for time */ 1430 /* meaningless for time */
1434 /* meaningless for dates */ 1431 /* meaningless for dates */
1435 case TVVariant::Int: 1432 case TVVariant::Int:
1436 case TVVariant::Time: 1433 case TVVariant::Time:
1437 case TVVariant::Date: 1434 case TVVariant::Date:
1438 return FALSE; 1435 return FALSE;
1439 default: 1436 default:
1440 owarn << "Tried to compare unknown data type" << oendl; 1437 owarn << "Tried to compare unknown data type" << oendl;
1441 } 1438 }
1442 return FALSE; 1439 return FALSE;
1443} 1440}
1444 1441
1445/*! 1442/*!
1446 Determins which of the first to parameters are closer to the third, target 1443 Determins which of the first to parameters are closer to the third, target
1447 parameter. 1444 parameter.
1448 1445
1449 \return 1446 \return
1450 <UL> 1447 <UL>
1451 <LI>TRUE if the first element is a closer match to the target than the 1448 <LI>TRUE if the first element is a closer match to the target than the
1452 second element</LI> 1449 second element</LI>
1453 <LI>FALSE if the first element is not a closer match to the target than 1450 <LI>FALSE if the first element is not a closer match to the target than
1454 the second element</LI> 1451 the second element</LI>
1455 </UL> 1452 </UL>
1456*/ 1453*/
1457bool DataElem::closer(DataElem*d1, DataElem *d2, TVVariant target, int column) 1454bool DataElem::closer(DataElem*d1, DataElem *d2, TVVariant target, int column)
1458{ 1455{
1459 int type; 1456 int type;
1460 1457
1461 if(!d1) return FALSE; 1458 if(!d1) return FALSE;
1462 1459
1463 if (!d1->hasValidValue(column)) return FALSE; 1460 if (!d1->hasValidValue(column)) return FALSE;
1464 1461
1465 if(!target.isValid()) return FALSE; 1462 if(!target.isValid()) return FALSE;
1466 1463
1467 type = d1->getField(column).type(); 1464 type = d1->getField(column).type();
1468 1465
1469 if(d2) { 1466 if(d2) {
1470 if (type != d2->getField(column).type()) { 1467 if (type != d2->getField(column).type()) {
1471 /* can't do compare */ 1468 /* can't do compare */
1472 owarn << "Tried to compare two incompatable types" << oendl; 1469 owarn << "Tried to compare two incompatable types" << oendl;
1473 return FALSE; 1470 return FALSE;
1474 } 1471 }
1475 return target.closer(d1->getField(column), d2->getField(column)); 1472 return target.closer(d1->getField(column), d2->getField(column));
1476 } 1473 }
1477 return target.close(d1->getField(column)); 1474 return target.close(d1->getField(column));
1478} 1475}
diff --git a/noncore/apps/tableviewer/db/datacache.cpp b/noncore/apps/tableviewer/db/datacache.cpp
index 6380e1b..de57961 100644
--- a/noncore/apps/tableviewer/db/datacache.cpp
+++ b/noncore/apps/tableviewer/db/datacache.cpp
@@ -13,13 +13,13 @@
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20/* 20/*
21 * This file is used to load the xml files that represent the database. 21 * This file is used to load the xml files that represent the database.
22 * The main requirment for said file is each data entry must contain a key, 22 * The main requirment for said file is each data entry must contain a key,
23 * otherwise any other data headings are allowed. 23 * otherwise any other data headings are allowed.
24 */ 24 */
25 25
@@ -60,16 +60,16 @@ DBStore::DBStore()
60 table_size = INIT_TABLE_SIZE; 60 table_size = INIT_TABLE_SIZE;
61 61
62 current_elem = 0; 62 current_elem = 0;
63 archive = 0; 63 archive = 0;
64} 64}
65 65
66//TODO 66//TODO
67/*! 67/*!
68 Reinitializes the table to empty (include a resize of the master table, 68 Reinitializes the table to empty (include a resize of the master table,
69 which should free some memory) 69 which should free some memory)
70*/ 70*/
71void DBStore::freeTable() 71void DBStore::freeTable()
72{ 72{
73 name = ""; 73 name = "";
74 if(archive) { 74 if(archive) {
75 delete archive; 75 delete archive;
@@ -90,62 +90,62 @@ void DBStore::freeTable()
90DBStore::~DBStore() 90DBStore::~DBStore()
91{ 91{
92 freeTable(); 92 freeTable();
93} 93}
94 94
95/*! 95/*!
96 This function opens the given xml file, loads it and sets up the 96 This function opens the given xml file, loads it and sets up the
97 appropriate data structures. 97 appropriate data structures.
98 98
99 \param file_name A string representing the name of the file to be opened 99 \param file_name A string representing the name of the file to be opened
100 \return true if successful, false otherwise. 100 \return true if successful, false otherwise.
101*/ 101*/
102bool DBStore::openSource(QIODevice *inDev, const QString &source) { 102bool DBStore::openSource(QIODevice *inDev, const QString &source) {
103 103
104 /* first check if db is already open, if contains data.. then clear */ 104 /* first check if db is already open, if contains data.. then clear */
105 if(number_elems > 0) { 105 if(number_elems > 0) {
106 freeTable(); 106 freeTable();
107 } 107 }
108 108
109 if (source == "text/x-xml-tableviewer") { 109 if (source == "text/x-xml-tableviewer") {
110 archive = new DBXml(this); 110 archive = new DBXml(this);
111 } else if (source == "text/csv") { 111 } else if (source == "text/csv") {
112 archive = new DBCsv(this); 112 archive = new DBCsv(this);
113 } else 113 } else
114 return false; 114 return false;
115 115
116 return (archive->openSource(inDev)); 116 return (archive->openSource(inDev));
117} 117}
118 118
119bool DBStore::saveSource(QIODevice *outDev, const QString &source) 119bool DBStore::saveSource(QIODevice *outDev, const QString &source)
120{ 120{
121 /* saving a new file */ 121 /* saving a new file */
122 if(!archive) { 122 if(!archive) {
123 if (source == "text/x-xml-tableviewer") { 123 if (source == "text/x-xml-tableviewer") {
124 archive = new DBXml(this); 124 archive = new DBXml(this);
125 } else if (source == "text/x-xml-tableviewer") { 125 } else if (source == "text/x-xml-tableviewer") {
126 archive = new DBCsv(this); 126 archive = new DBCsv(this);
127 } else 127 } else
128 return false; 128 return false;
129 } 129 }
130 130
131 /* changing file type */ 131 /* changing file type */
132 if(archive->type() != source) { 132 if(archive->type() != source) {
133 delete archive; 133 delete archive;
134 if (source == "text/x-xml-tableviewer") { 134 if (source == "text/x-xml-tableviewer") {
135 archive = new DBXml(this); 135 archive = new DBXml(this);
136 } else if (source == "text/x-xml-tableviewer") { 136 } else if (source == "text/x-xml-tableviewer") {
137 archive = new DBCsv(this); 137 archive = new DBCsv(this);
138 } else 138 } else
139 return false; 139 return false;
140 } 140 }
141 141
142 return (archive->saveSource(outDev)); 142 return (archive->saveSource(outDev));
143} 143}
144 144
145/*! 145/*!
146 This function is used to add new elements to the database. If the database 146 This function is used to add new elements to the database. If the database
147 has already reached the maximum allowable size this function does not alter 147 has already reached the maximum allowable size this function does not alter
148 the database. 148 the database.
149 149
150 \param delm An already allocated and initialized data element to be added 150 \param delm An already allocated and initialized data element to be added
151*/ 151*/
@@ -153,15 +153,15 @@ void DBStore::addItem(DataElem *delem)
153{ 153{
154 addItemInternal(delem); 154 addItemInternal(delem);
155} 155}
156 156
157void DBStore::addItemInternal(DataElem *delem) 157void DBStore::addItemInternal(DataElem *delem)
158{ 158{
159 /* if already full, don't over fill, do a qWarning though */ 159 /* if already full, don't over fill, do a owarn though */
160 if (full) { 160 if (full) {
161 owarn << "Attempted to add items to already full table" << oendl; 161 owarn << "Attempted to add items to already full table" << oendl;
162 return; 162 return;
163 } 163 }
164 164
165 master_table.insert(number_elems, delem); 165 master_table.insert(number_elems, delem);
166 166
167 current_elem = number_elems; 167 current_elem = number_elems;
@@ -182,43 +182,43 @@ void DBStore::addItemInternal(DataElem *delem)
182 } 182 }
183} 183}
184 184
185void DBStore::removeItem(DataElem *r) 185void DBStore::removeItem(DataElem *r)
186{ 186{
187 int position = master_table.findRef(r); 187 int position = master_table.findRef(r);
188 if(position != -1) { 188 if(position != -1) {
189 /* there is at least one item, this is it */ 189 /* there is at least one item, this is it */
190 /* replace this with the last element, decrease the element count */ 190 /* replace this with the last element, decrease the element count */
191 master_table.insert(position, master_table.at(--number_elems)); 191 master_table.insert(position, master_table.at(--number_elems));
192 master_table.remove(number_elems); 192 master_table.remove(number_elems);
193 delete r; 193 delete r;
194 } 194 }
195} 195}
196 196
197/*! 197/*!
198 Sets the name of the database 198 Sets the name of the database
199 199
200 \param n A string representing the new name of the database. 200 \param n A string representing the new name of the database.
201*/ 201*/
202void DBStore::setName(const QString &n) 202void DBStore::setName(const QString &n)
203{ 203{
204 name = n; 204 name = n;
205} 205}
206 206
207/*! 207/*!
208 Gets the name of the database 208 Gets the name of the database
209 209
210 \return A string representing the name of the database. 210 \return A string representing the name of the database.
211*/ 211*/
212QString DBStore::getName() 212QString DBStore::getName()
213{ 213{
214 return name; 214 return name;
215} 215}
216 216
217/*! 217/*!
218 Retrieves a pointer to the key representation of the database for 218 Retrieves a pointer to the key representation of the database for
219 other classes to use as reference. 219 other classes to use as reference.
220 220
221 \return a pointer to the databases key representaion 221 \return a pointer to the databases key representaion
222*/ 222*/
223KeyList *DBStore::getKeys() 223KeyList *DBStore::getKeys()
224{ 224{
@@ -232,21 +232,21 @@ KeyList *DBStore::getKeys()
232void DBStore::setKeys(KeyList *k) 232void DBStore::setKeys(KeyList *k)
233{ 233{
234 kRep = k; 234 kRep = k;
235} 235}
236 236
237/*! 237/*!
238 Sets the current element to the first element of the database 238 Sets the current element to the first element of the database
239*/ 239*/
240void DBStore::first() 240void DBStore::first()
241{ 241{
242 current_elem = 0; 242 current_elem = 0;
243} 243}
244 244
245/*! 245/*!
246 Sets the current element to the last element of the database 246 Sets the current element to the last element of the database
247*/ 247*/
248void DBStore::last() 248void DBStore::last()
249{ 249{
250 current_elem = number_elems - 1; 250 current_elem = number_elems - 1;
251} 251}
252 252
@@ -254,13 +254,13 @@ void DBStore::last()
254 Sets the current element to the next element of the database if 254 Sets the current element to the next element of the database if
255 there exists an element after the current one. 255 there exists an element after the current one.
256*/ 256*/
257bool DBStore::next() 257bool DBStore::next()
258{ 258{
259 unsigned int new_current_elem = current_elem + 1; 259 unsigned int new_current_elem = current_elem + 1;
260 if (current_elem < number_elems) 260 if (current_elem < number_elems)
261 /* was valid before inc (it is possible but unlikely that inc current 261 /* was valid before inc (it is possible but unlikely that inc current
262 elem will change it from invalid to valid) */ 262 elem will change it from invalid to valid) */
263 if (new_current_elem < number_elems) { 263 if (new_current_elem < number_elems) {
264 /* is valid after inc */ 264 /* is valid after inc */
265 current_elem = new_current_elem; 265 current_elem = new_current_elem;
266 return true; 266 return true;
@@ -275,27 +275,27 @@ bool DBStore::next()
275bool DBStore::previous() 275bool DBStore::previous()
276{ 276{
277 unsigned int new_current_elem = current_elem -1; 277 unsigned int new_current_elem = current_elem -1;
278 if (current_elem < number_elems) 278 if (current_elem < number_elems)
279 /* was valid */ 279 /* was valid */
280 if (new_current_elem < number_elems) { 280 if (new_current_elem < number_elems) {
281 /* still is (if was 0, then now -1, but as is unsigned will wrap 281 /* still is (if was 0, then now -1, but as is unsigned will wrap
282 and hence be invalid */ 282 and hence be invalid */
283 current_elem = new_current_elem; 283 current_elem = new_current_elem;
284 return true; 284 return true;
285 } 285 }
286 return false; 286 return false;
287} 287}
288 288
289/*! 289/*!
290 Returns the current data element in the database. Which element is current 290 Returns the current data element in the database. Which element is current
291 is affected by newly added items, findItem, next, previous, first and 291 is affected by newly added items, findItem, next, previous, first and
292 last functions 292 last functions
293 293
294 \return a pointer to the current data element 294 \return a pointer to the current data element
295*/ 295*/
296DataElem *DBStore::getCurrentData() 296DataElem *DBStore::getCurrentData()
297{ 297{
298 if (current_elem >= number_elems) 298 if (current_elem >= number_elems)
299 return NULL; 299 return NULL;
300 return master_table[current_elem]; 300 return master_table[current_elem];
301} 301}
diff --git a/noncore/apps/tableviewer/db/datacache.h b/noncore/apps/tableviewer/db/datacache.h
index c5dc637..e38050c 100644
--- a/noncore/apps/tableviewer/db/datacache.h
+++ b/noncore/apps/tableviewer/db/datacache.h
@@ -24,15 +24,21 @@
24 * otherwise any other data headings are allowed. 24 * otherwise any other data headings are allowed.
25 */ 25 */
26 26
27#ifndef __DATACACHE_H__ 27#ifndef __DATACACHE_H__
28#define __DATACACHE_H__ 28#define __DATACACHE_H__
29 29
30#include "common.h"
31
32/* OPIE */
33#include <opie2/odebug.h>
34using namespace Opie::Core;
35
36/* QT */
30#include <qstring.h> 37#include <qstring.h>
31#include <qvector.h> 38#include <qvector.h>
32#include "common.h"
33 39
34class DBStore; 40class DBStore;
35 41
36/*! Abstract class that defines how database stuff can be accessed */ 42/*! Abstract class that defines how database stuff can be accessed */
37class DBAccess { 43class DBAccess {
38public: 44public:
@@ -42,18 +48,18 @@ public:
42 48
43 virtual QString type() { 49 virtual QString type() {
44 return QString(); 50 return QString();
45 } 51 }
46 52
47 virtual bool openSource(QIODevice *) { 53 virtual bool openSource(QIODevice *) {
48 qWarning("DBAccess::openSource not yet implemented"); 54 owarn << "DBAccess::openSource not yet implemented" << oendl;
49 return false; 55 return false;
50 } 56 }
51 57
52 virtual bool saveSource(QIODevice *) { 58 virtual bool saveSource(QIODevice *) {
53 qWarning("DBAccess::saveSource(QString) not yet implemented"); 59 owarn << "DBAccess::saveSource(QString) not yet implemented" << oendl;
54 return false; 60 return false;
55 } 61 }
56 62
57protected: 63protected:
58 DBStore *dstore; 64 DBStore *dstore;
59 QString source_name; 65 QString source_name;
@@ -67,13 +73,13 @@ public:
67 bool openSource(QIODevice *, const QString &source); 73 bool openSource(QIODevice *, const QString &source);
68 bool saveSource(QIODevice *, const QString &source); 74 bool saveSource(QIODevice *, const QString &source);
69 75
70 // Add an item 76 // Add an item
71 void addItem(DataElem *); 77 void addItem(DataElem *);
72 void addItemInternal(DataElem *); 78 void addItemInternal(DataElem *);
73 void removeItem(DataElem *); 79 void removeItem(DataElem *);
74 80
75 // Set the name of the database 81 // Set the name of the database
76 void setName(const QString &name); 82 void setName(const QString &name);
77 83
78 // Get the name of the database 84 // Get the name of the database
79 QString getName(); 85 QString getName();
@@ -103,28 +109,28 @@ public:
103 109
104// Access functions.. iterator type stuff 110// Access functions.. iterator type stuff
105 111
106 void first(); 112 void first();
107 void last(); 113 void last();
108 114
109 bool next(); 115 bool next();
110 bool previous(); 116 bool previous();
111 117
112 DataElem* getCurrentData(); 118 DataElem* getCurrentData();
113 119
114private: 120private:
115 /* does the work of freeing used memory */ 121 /* does the work of freeing used memory */
116 void freeTable(); 122 void freeTable();
117 QString name; 123 QString name;
118 124
119 QVector<DataElem> master_table; 125 QVector<DataElem> master_table;
120 DBAccess *archive; 126 DBAccess *archive;
121 127
122 KeyList *kRep; 128 KeyList *kRep;
123 129
124 unsigned int number_elems; 130 unsigned int number_elems;
125 unsigned int table_size; /* should always be a power of 2 */ 131 unsigned int table_size; /* should always be a power of 2 */
126 bool full; /* since because we are using an int for indexing there is 132 bool full; /* since because we are using an int for indexing there is
127 an upper limit on the number of items we can store. */ 133 an upper limit on the number of items we can store. */
128 unsigned int current_elem; 134 unsigned int current_elem;
129}; 135};
130#endif 136#endif
diff --git a/noncore/apps/tableviewer/ui/browsekeyentry.cpp b/noncore/apps/tableviewer/ui/browsekeyentry.cpp
index 42e24dd..6b78437 100644
--- a/noncore/apps/tableviewer/ui/browsekeyentry.cpp
+++ b/noncore/apps/tableviewer/ui/browsekeyentry.cpp
@@ -13,39 +13,39 @@
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "browsekeyentry.h" 20#include "browsekeyentry.h"
21#include "commonwidgets.h" 21#include "commonwidgets.h"
22 22
23#include <opie2/odebug.h>
24using namespace Opie::Core;
25
23#include <qtoolbutton.h> 26#include <qtoolbutton.h>
24#include <qwidgetstack.h> 27#include <qwidgetstack.h>
25#include <qlayout.h> 28#include <qlayout.h>
26#include <qlineedit.h> 29#include <qlineedit.h>
27#include <qpushbutton.h> 30#include <qpushbutton.h>
28#include <qpopupmenu.h> 31#include <qpopupmenu.h>
29#include <qhbox.h> 32#include <qhbox.h>
30#include <qdatetime.h> 33#include <qdatetime.h>
31 34
32#include <qheader.h>
33// For qWarning(const char *)
34
35/*! 35/*!
36 \class TVBrowseKeyEntry 36 \class TVBrowseKeyEntry
37 \brief a Widget used enter keys into the TVBrowseViewWidget 37 \brief a Widget used enter keys into the TVBrowseViewWidget
38 38
39 The TVBrowseKeyEntry Widget provides the facility to enter 39 The TVBrowseKeyEntry Widget provides the facility to enter
40 various key types to be search on in the table. The key can be changed 40 various key types to be search on in the table. The key can be changed
41 and the entry field will update to the correct sort of widget appropriately 41 and the entry field will update to the correct sort of widget appropriately
42*/ 42*/
43 43
44/*! 44/*!
45 Constructs the widget 45 Constructs the widget
46*/ 46*/
47TVBrowseKeyEntry::TVBrowseKeyEntry(QWidget *parent, const char *name, WFlags f) 47TVBrowseKeyEntry::TVBrowseKeyEntry(QWidget *parent, const char *name, WFlags f)
48 : QWidget(parent, name, f) 48 : QWidget(parent, name, f)
49{ 49{
50 QHBoxLayout *h_layout = new QHBoxLayout(this); 50 QHBoxLayout *h_layout = new QHBoxLayout(this);
51 51
@@ -70,42 +70,42 @@ TVBrowseKeyEntry::TVBrowseKeyEntry(QWidget *parent, const char *name, WFlags f)
70 ws->addWidget(textKey, TVVariant::String); 70 ws->addWidget(textKey, TVVariant::String);
71 ws->addWidget(intKey, TVVariant::Int); 71 ws->addWidget(intKey, TVVariant::Int);
72 ws->addWidget(timeKey, TVVariant::Time); 72 ws->addWidget(timeKey, TVVariant::Time);
73 ws->addWidget(dateKey, TVVariant::Date); 73 ws->addWidget(dateKey, TVVariant::Date);
74 74
75 ws->raiseWidget(TVVariant::String); 75 ws->raiseWidget(TVVariant::String);
76 76
77 // TODO connect slots and signals.... 77 // TODO connect slots and signals....
78 connect(changeKeyButton, SIGNAL(clicked()), 78 connect(changeKeyButton, SIGNAL(clicked()),
79 this, SLOT(changeKeyMenuSlot())); 79 this, SLOT(changeKeyMenuSlot()));
80 80
81 connect(resetButton, SIGNAL(clicked()), 81 connect(resetButton, SIGNAL(clicked()),
82 textKey, SLOT(clear())); 82 textKey, SLOT(clear()));
83 connect(resetButton, SIGNAL(clicked()), 83 connect(resetButton, SIGNAL(clicked()),
84 intKey, SLOT(clear())); 84 intKey, SLOT(clear()));
85 connect(resetButton, SIGNAL(clicked()), 85 connect(resetButton, SIGNAL(clicked()),
86 dateKey, SLOT(clear())); 86 dateKey, SLOT(clear()));
87 connect(resetButton, SIGNAL(clicked()), 87 connect(resetButton, SIGNAL(clicked()),
88 timeKey, SLOT(clear())); 88 timeKey, SLOT(clear()));
89 89
90 h_layout->addWidget(ws); 90 h_layout->addWidget(ws);
91 h_layout->addWidget(resetButton); 91 h_layout->addWidget(resetButton);
92 h_layout->addWidget(changeKeyButton); 92 h_layout->addWidget(changeKeyButton);
93 93
94 connect(textKey, SIGNAL(textChanged(const QString&)), 94 connect(textKey, SIGNAL(textChanged(const QString&)),
95 this, SLOT(searchOnText())); 95 this, SLOT(searchOnText()));
96 connect(intKey, SIGNAL(valueChanged(int)), 96 connect(intKey, SIGNAL(valueChanged(int)),
97 this, SLOT(searchOnText())); 97 this, SLOT(searchOnText()));
98 connect(dateKey, SIGNAL(valueChanged(const QDate&)), 98 connect(dateKey, SIGNAL(valueChanged(const QDate&)),
99 this, SLOT(searchOnText())); 99 this, SLOT(searchOnText()));
100 connect(timeKey, SIGNAL(valueChanged(const QTime&)), 100 connect(timeKey, SIGNAL(valueChanged(const QTime&)),
101 this, SLOT(searchOnText())); 101 this, SLOT(searchOnText()));
102} 102}
103 103
104/*! 104/*!
105 Destructs the widget 105 Destructs the widget
106*/ 106*/
107TVBrowseKeyEntry::~TVBrowseKeyEntry() 107TVBrowseKeyEntry::~TVBrowseKeyEntry()
108{ 108{
109} 109}
110 110
111/*! 111/*!
@@ -123,13 +123,13 @@ void TVBrowseKeyEntry::changeKeySlot(int id_param)
123 123
124/*! 124/*!
125 Opens the change key menu 125 Opens the change key menu
126*/ 126*/
127void TVBrowseKeyEntry::changeKeyMenuSlot() 127void TVBrowseKeyEntry::changeKeyMenuSlot()
128{ 128{
129 if(ts) 129 if(ts)
130 keyMenu->exec(changeKeyButton->mapToGlobal(QPoint(0,0))); 130 keyMenu->exec(changeKeyButton->mapToGlobal(QPoint(0,0)));
131} 131}
132 132
133 133
134void TVBrowseKeyEntry::setTableState(TableState *t) { 134void TVBrowseKeyEntry::setTableState(TableState *t) {
135 ts = t; 135 ts = t;
@@ -143,13 +143,13 @@ void TVBrowseKeyEntry::rebuildKeys() {
143 /* clear the old */ 143 /* clear the old */
144 keyMenu->clear(); 144 keyMenu->clear();
145 145
146 KeyListIterator it(*ts->kRep); 146 KeyListIterator it(*ts->kRep);
147 147
148 for (i = 0; i < ts->kRep->getNumFields(); i++) { 148 for (i = 0; i < ts->kRep->getNumFields(); i++) {
149 keyMenu->insertItem(it.current()->name(), this, 149 keyMenu->insertItem(it.current()->name(), this,
150 SLOT(changeKeySlot(int)), 0, i); 150 SLOT(changeKeySlot(int)), 0, i);
151 keyMenu->setItemParameter(i, it.currentKey()); 151 keyMenu->setItemParameter(i, it.currentKey());
152 ++it; 152 ++it;
153 } 153 }
154} 154}
155 155
@@ -160,14 +160,14 @@ void TVBrowseKeyEntry::reset()
160 dateKey->clear(); 160 dateKey->clear();
161 timeKey->clear(); 161 timeKey->clear();
162 162
163 keyMenu->clear(); 163 keyMenu->clear();
164} 164}
165/*! 165/*!
166 Searches on the current value of the key entry provided that the 166 Searches on the current value of the key entry provided that the
167 current key is of type text WARNING, TODO fix memory leaks 167 current key is of type text WARNING, TODO fix memory leaks
168*/ 168*/
169void TVBrowseKeyEntry::searchOnText() 169void TVBrowseKeyEntry::searchOnText()
170{ 170{
171 TVVariant sendkey; 171 TVVariant sendkey;
172 172
173 if (!ts) 173 if (!ts)
@@ -186,21 +186,20 @@ void TVBrowseKeyEntry::searchOnText()
186 break; 186 break;
187 } 187 }
188 case TVVariant::Date: { 188 case TVVariant::Date: {
189 sendkey = TVVariant(QDate(dateKey->date())); 189 sendkey = TVVariant(QDate(dateKey->date()));
190 break; 190 break;
191 } 191 }
192 case TVVariant::Invalid: 192 case TVVariant::Invalid:
193 break; 193 break;
194 default: 194 default:
195 qWarning("TVBrowseKeyEntry::searchOnText() " 195 owarn << "TVBrowseKeyEntry::searchOnText() cannot work out data type" << oendl;
196 "cannot work out data type");
197 return; 196 return;
198 } 197 }
199 emit searchOnKey(ts->current_column, sendkey); 198 emit searchOnKey(ts->current_column, sendkey);
200} 199}
201 200
202/*! \fn void TVBrowseKeyEntry::searchOnKey(int currentKeyId, TVVariant) 201/*! \fn void TVBrowseKeyEntry::searchOnKey(int currentKeyId, TVVariant)
203 202
204 This signal indicates that a search on key index currentKeyId should be 203 This signal indicates that a search on key index currentKeyId should be
205 done searching for the value v. 204 done searching for the value v.
206*/ 205*/
diff --git a/noncore/apps/tableviewer/ui/filterkeyentry.cpp b/noncore/apps/tableviewer/ui/filterkeyentry.cpp
index d108fbd..4d74d6b 100644
--- a/noncore/apps/tableviewer/ui/filterkeyentry.cpp
+++ b/noncore/apps/tableviewer/ui/filterkeyentry.cpp
@@ -13,16 +13,21 @@
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "filterkeyentry.h" 20#include "filterkeyentry.h"
21#include "commonwidgets.h" 21#include "commonwidgets.h"
22 22
23/* OPIE */
24#include <opie2/odebug.h>
25using namespace Opie::Core;
26
27/* QT */
23#include <qwidgetstack.h> 28#include <qwidgetstack.h>
24#include <qcombobox.h> 29#include <qcombobox.h>
25#include <qlayout.h> 30#include <qlayout.h>
26#include <qlineedit.h> 31#include <qlineedit.h>
27#include <qsizepolicy.h> 32#include <qsizepolicy.h>
28#include <qdatetime.h> 33#include <qdatetime.h>
@@ -95,19 +100,19 @@ TVFilterKeyEntry::TVFilterKeyEntry(QWidget *parent, const char *name, WFlags f)
95 ws->addWidget(textEntry, TVVariant::String); 100 ws->addWidget(textEntry, TVVariant::String);
96 ws->addWidget(intEntry, TVVariant::Int); 101 ws->addWidget(intEntry, TVVariant::Int);
97 ws->addWidget(timeEntry, TVVariant::Time); 102 ws->addWidget(timeEntry, TVVariant::Time);
98 ws->addWidget(dateEntry, TVVariant::Date); 103 ws->addWidget(dateEntry, TVVariant::Date);
99 104
100 /* connect the signals down */ 105 /* connect the signals down */
101 connect(textKey, SIGNAL(textChanged(const QString&)), 106 connect(textKey, SIGNAL(textChanged(const QString&)),
102 this, SIGNAL(valueChanged())); 107 this, SIGNAL(valueChanged()));
103 connect(intKey, SIGNAL(valueChanged(int)), 108 connect(intKey, SIGNAL(valueChanged(int)),
104 this, SIGNAL(valueChanged())); 109 this, SIGNAL(valueChanged()));
105 connect(dateKey, SIGNAL(valueChanged(const QDate&)), 110 connect(dateKey, SIGNAL(valueChanged(const QDate&)),
106 this, SIGNAL(valueChanged())); 111 this, SIGNAL(valueChanged()));
107 connect(timeKey, SIGNAL(valueChanged(const QTime&)), 112 connect(timeKey, SIGNAL(valueChanged(const QTime&)),
108 this, SIGNAL(valueChanged())); 113 this, SIGNAL(valueChanged()));
109 114
110 connect(intCombo, SIGNAL(activated(int)), this, SIGNAL(valueChanged())); 115 connect(intCombo, SIGNAL(activated(int)), this, SIGNAL(valueChanged()));
111 connect(textCombo, SIGNAL(activated(int)), this, SIGNAL(valueChanged())); 116 connect(textCombo, SIGNAL(activated(int)), this, SIGNAL(valueChanged()));
112 connect(timeCombo, SIGNAL(activated(int)), this, SIGNAL(valueChanged())); 117 connect(timeCombo, SIGNAL(activated(int)), this, SIGNAL(valueChanged()));
113 connect(dateCombo, SIGNAL(activated(int)), this, SIGNAL(valueChanged())); 118 connect(dateCombo, SIGNAL(activated(int)), this, SIGNAL(valueChanged()));
@@ -116,19 +121,19 @@ TVFilterKeyEntry::TVFilterKeyEntry(QWidget *parent, const char *name, WFlags f)
116 layout->addWidget(ws); 121 layout->addWidget(ws);
117 122
118 current_type = TVVariant::String; 123 current_type = TVVariant::String;
119} 124}
120 125
121/*! 126/*!
122 Destructs the widget 127 Destructs the widget
123*/ 128*/
124TVFilterKeyEntry::~TVFilterKeyEntry() 129TVFilterKeyEntry::~TVFilterKeyEntry()
125{ 130{
126} 131}
127 132
128void TVFilterKeyEntry::setKey(int i) 133void TVFilterKeyEntry::setKey(int i)
129{ 134{
130 135
131 if (!ts) return; 136 if (!ts) return;
132 if (!ts->kRep) return; 137 if (!ts->kRep) return;
133 138
134 /* set up to raise appropriate widget set */ 139 /* set up to raise appropriate widget set */
@@ -180,29 +185,28 @@ CmpType TVFilterKeyEntry::getCompareType()
180TVVariant TVFilterKeyEntry::getCompareValue() 185TVVariant TVFilterKeyEntry::getCompareValue()
181{ 186{
182 TVVariant sendkey; 187 TVVariant sendkey;
183 int tmp; 188 int tmp;
184 189
185 switch(current_type) { 190 switch(current_type) {
186 case TVVariant::String: 191 case TVVariant::String:
187 sendkey = TVVariant(QString(textKey->text())); 192 sendkey = TVVariant(QString(textKey->text()));
188 break; 193 break;
189 case TVVariant::Int: { 194 case TVVariant::Int: {
190 sendkey = TVVariant(intKey->value()); 195 sendkey = TVVariant(intKey->value());
191 break; 196 break;
192 } 197 }
193 case TVVariant::Time: { 198 case TVVariant::Time: {
194 sendkey = TVVariant(QTime(timeKey->time())); 199 sendkey = TVVariant(QTime(timeKey->time()));
195 break; 200 break;
196 } 201 }
197 case TVVariant::Date: { 202 case TVVariant::Date: {
198 sendkey = TVVariant(QDate(dateKey->date())); 203 sendkey = TVVariant(QDate(dateKey->date()));
199 break; 204 break;
200 } 205 }
201 default: { 206 default: {
202 sendkey = TVVariant(0); 207 sendkey = TVVariant(0);
203 qWarning("TVFilterKeyEntry::getCompareValue() " 208 owarn << "TVFilterKeyEntry::getCompareValue() cannot work out data type" << oendl;
204 "cannot work out data type");
205 } 209 }
206 } 210 }
207 return sendkey; 211 return sendkey;
208} 212}
diff --git a/noncore/apps/tableviewer/ui/tvfilterview.cpp b/noncore/apps/tableviewer/ui/tvfilterview.cpp
index 22f1fb7..198c8b5 100644
--- a/noncore/apps/tableviewer/ui/tvfilterview.cpp
+++ b/noncore/apps/tableviewer/ui/tvfilterview.cpp
@@ -15,27 +15,33 @@
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#include "tvfilterview.h" 20#include "tvfilterview.h"
21
22/* OPIE */
23#include <opie2/odebug.h>
24#include <qpe/qpeapplication.h>
25using namespace Opie::Core;
26
27/* QT */
21#include <qtoolbutton.h> 28#include <qtoolbutton.h>
22#include <qcombobox.h> 29#include <qcombobox.h>
23#include <qlistview.h> 30#include <qlistview.h>
24#include <qlayout.h> 31#include <qlayout.h>
25#include <qheader.h> 32#include <qheader.h>
26#include <qpushbutton.h> 33#include <qpushbutton.h>
27#include <qlabel.h> 34#include <qlabel.h>
28 35
29#include <qpe/qpeapplication.h>
30 36
31TVFilterView::TVFilterView(TableState *t, QWidget* parent, 37TVFilterView::TVFilterView(TableState *t, QWidget* parent,
32 const char *name, WFlags fl ) : QDialog(parent, name, TRUE, fl) 38 const char *name, WFlags fl ) : QDialog(parent, name, TRUE, fl)
33{ 39{
34 if ( !name ) 40 if ( !name )
35 setName( "Filter View" ); 41 setName( "Filter View" );
36 42
37 QVBoxLayout *vlayout = new QVBoxLayout(this); 43 QVBoxLayout *vlayout = new QVBoxLayout(this);
38 44
39 display = new QListView(this, "display"); 45 display = new QListView(this, "display");
40 display->addColumn("Key"); 46 display->addColumn("Key");
41 display->addColumn("Constraint"); 47 display->addColumn("Constraint");
@@ -85,27 +91,27 @@ TVFilterView::TVFilterView(TableState *t, QWidget* parent,
85 connect(deleteFilterButton, SIGNAL( clicked() ), this, SLOT( deleteTerm())); 91 connect(deleteFilterButton, SIGNAL( clicked() ), this, SLOT( deleteTerm()));
86 connect(clearFilterButton, SIGNAL( clicked() ), this, SLOT( clearTerms())); 92 connect(clearFilterButton, SIGNAL( clicked() ), this, SLOT( clearTerms()));
87 93
88 connect(keyEntry, SIGNAL(valueChanged()), this, SLOT( updateTerm() )); 94 connect(keyEntry, SIGNAL(valueChanged()), this, SLOT( updateTerm() ));
89 connect(keyNameCombo, SIGNAL(activated(int)), this, SLOT( updateTerm() )); 95 connect(keyNameCombo, SIGNAL(activated(int)), this, SLOT( updateTerm() ));
90 96
91 connect(display, SIGNAL(selectionChanged(QListViewItem*)), this, 97 connect(display, SIGNAL(selectionChanged(QListViewItem*)), this,
92 SLOT(setTerm(QListViewItem*))); 98 SLOT(setTerm(QListViewItem*)));
93 99
94 ts = t; 100 ts = t;
95 current = 0; 101 current = 0;
96 terms.setAutoDelete(true); 102 terms.setAutoDelete(true);
97 do_filter = false; 103 do_filter = false;
98 104
99#ifdef Q_WS_QWS 105#ifdef Q_WS_QWS
100 QPEApplication::showDialog( this ); 106 QPEApplication::showDialog( this );
101#endif 107#endif
102} 108}
103 109
104/*! 110/*!
105 Destroys the TVFilterView widget 111 Destroys the TVFilterView widget
106*/ 112*/
107TVFilterView::~TVFilterView() 113TVFilterView::~TVFilterView()
108{ 114{
109} 115}
110 116
111void TVFilterView::rebuildData() 117void TVFilterView::rebuildData()
@@ -115,41 +121,41 @@ void TVFilterView::rebuildData()
115void TVFilterView::reset() 121void TVFilterView::reset()
116{ 122{
117 keyNameCombo->clear(); 123 keyNameCombo->clear();
118 keyIds.clear(); 124 keyIds.clear();
119} 125}
120 126
121void TVFilterView::rebuildKeys() 127void TVFilterView::rebuildKeys()
122{ 128{
123 int i; 129 int i;
124 130
125 if (!ts) return; 131 if (!ts) return;
126 if(!ts->kRep) return; 132 if(!ts->kRep) return;
127 keyEntry->setTableState(ts); 133 keyEntry->setTableState(ts);
128 134
129 /* set up the list of keys that can be compared on */ 135 /* set up the list of keys that can be compared on */
130 keyNameCombo->clear(); 136 keyNameCombo->clear();
131 KeyListIterator it(*ts->kRep); 137 KeyListIterator it(*ts->kRep);
132 138
133 i = 0; 139 i = 0;
134 while(it.current()) { 140 while(it.current()) {
135 if(ts->kRep->validIndex(it.currentKey())) { 141 if(ts->kRep->validIndex(it.currentKey())) {
136 keyNameCombo->insertItem(it.current()->name()); 142 keyNameCombo->insertItem(it.current()->name());
137 keyIds.insert(i, it.currentKey()); 143 keyIds.insert(i, it.currentKey());
138 ++i; 144 ++i;
139 } 145 }
140 ++it; 146 ++it;
141 } 147 }
142} 148}
143 149
144bool TVFilterView::passesFilter(DataElem *d) { 150bool TVFilterView::passesFilter(DataElem *d) {
145 if (!filterActive()) return true; 151 if (!filterActive()) return true;
146 152
147 153
148 FilterTerm *t; 154 FilterTerm *t;
149 155
150 for (t = terms.first(); t != 0; t = terms.next() ) { 156 for (t = terms.first(); t != 0; t = terms.next() ) {
151 /* check against filter */ 157 /* check against filter */
152 switch(t->ct) { 158 switch(t->ct) {
153 case ct_less: 159 case ct_less:
154 if (!d->lessThan(t->keyIndex, t->value)) 160 if (!d->lessThan(t->keyIndex, t->value))
155 return false; 161 return false;
@@ -172,14 +178,13 @@ bool TVFilterView::passesFilter(DataElem *d) {
172 break; 178 break;
173 case ct_endswith: 179 case ct_endswith:
174 if (!d->endsWith(t->keyIndex, t->value)) 180 if (!d->endsWith(t->keyIndex, t->value))
175 return false; 181 return false;
176 break; 182 break;
177 default: 183 default:
178 qWarning("TVFilterView::passesFilter() " 184 owarn << "TVFilterView::passesFilter() unrecognized filter type" << oendl;
179 "unrecognized filter type");
180 return false; 185 return false;
181 } 186 }
182 } 187 }
183 return true; 188 return true;
184} 189}
185 190
@@ -191,13 +196,13 @@ bool TVFilterView::filterActive() const
191 if (terms.isEmpty()) 196 if (terms.isEmpty())
192 return false; 197 return false;
193 return true; 198 return true;
194} 199}
195 200
196/* SLOTS */ 201/* SLOTS */
197void TVFilterView::newTerm() 202void TVFilterView::newTerm()
198{ 203{
199 if (!ts) return; 204 if (!ts) return;
200 205
201 FilterTerm *term = new FilterTerm; 206 FilterTerm *term = new FilterTerm;
202 current = term; 207 current = term;
203 208
@@ -209,13 +214,13 @@ void TVFilterView::newTerm()
209 terms.append(term); 214 terms.append(term);
210 215
211 keyEntry->setEnabled(true); 216 keyEntry->setEnabled(true);
212 keyNameCombo->setEnabled(true); 217 keyNameCombo->setEnabled(true);
213} 218}
214 219
215void TVFilterView::updateTerm() 220void TVFilterView::updateTerm()
216{ 221{
217 FilterTerm *term; 222 FilterTerm *term;
218 /* Read the widget values (keyname, compare type, value) 223 /* Read the widget values (keyname, compare type, value)
219 * and build the lists */ 224 * and build the lists */
220 if (!ts) return; 225 if (!ts) return;
221 if (!current) return; 226 if (!current) return;
@@ -228,13 +233,13 @@ void TVFilterView::updateTerm()
228 233
229 /* create new list item, set initial values, enable widgets */ 234 /* create new list item, set initial values, enable widgets */
230 term->keyIndex = keyIds[keyNameCombo->currentItem()]; 235 term->keyIndex = keyIds[keyNameCombo->currentItem()];
231 keyEntry->setKey(term->keyIndex); /* so the next two items make sense */ 236 keyEntry->setKey(term->keyIndex); /* so the next two items make sense */
232 term->ct = keyEntry->getCompareType(), 237 term->ct = keyEntry->getCompareType(),
233 term->value = keyEntry->getCompareValue(); 238 term->value = keyEntry->getCompareValue();
234 239
235 keyString = keyNameCombo->currentText(); 240 keyString = keyNameCombo->currentText();
236 241
237 switch(term->ct) { 242 switch(term->ct) {
238 case ct_less: 243 case ct_less:
239 cmpString = " less than "; 244 cmpString = " less than ";
240 break; 245 break;
@@ -257,20 +262,20 @@ void TVFilterView::updateTerm()
257 cmpString = " ERROR "; 262 cmpString = " ERROR ";
258 } 263 }
259 264
260 vString = term->value.toString(); 265 vString = term->value.toString();
261 266
262 /* remove old view */ 267 /* remove old view */
263 if (term->view) 268 if (term->view)
264 delete(term->view); 269 delete(term->view);
265 term->view = new QListViewItem(display, 0, keyString, cmpString, vString); 270 term->view = new QListViewItem(display, 0, keyString, cmpString, vString);
266 display->setSelected(term->view, true); 271 display->setSelected(term->view, true);
267} 272}
268 273
269/* deletes current term */ 274/* deletes current term */
270void TVFilterView::deleteTerm() 275void TVFilterView::deleteTerm()
271{ 276{
272 if(!current) return; 277 if(!current) return;
273 if (current->view) 278 if (current->view)
274 delete(current->view); 279 delete(current->view);
275 280
276 terms.removeRef(current); 281 terms.removeRef(current);
@@ -281,26 +286,26 @@ void TVFilterView::deleteTerm()
281 keyEntry->setEnabled(false); 286 keyEntry->setEnabled(false);
282 keyNameCombo->setEnabled(false); 287 keyNameCombo->setEnabled(false);
283 } 288 }
284} 289}
285 290
286/* clears all terminations */ 291/* clears all terminations */
287void TVFilterView::clearTerms() 292void TVFilterView::clearTerms()
288{ 293{
289 while(current) 294 while(current)
290 deleteTerm(); 295 deleteTerm();
291} 296}
292 297
293void TVFilterView::setTerm(QListViewItem *target) 298void TVFilterView::setTerm(QListViewItem *target)
294{ 299{
295 /* Iterate through the list to find item with view=target.. 300 /* Iterate through the list to find item with view=target..
296 * set as current, delete */ 301 * set as current, delete */
297 FilterTerm *term = current; 302 FilterTerm *term = current;
298 303
299 for (current = terms.first(); current != 0; current = terms.next() ) 304 for (current = terms.first(); current != 0; current = terms.next() )
300 if (current->view == target) 305 if (current->view == target)
301 break; 306 break;
302 307
303 if (!current) { 308 if (!current) {
304 current = term; 309 current = term;
305 } 310 }
306} 311}
diff --git a/noncore/apps/tinykate/libkate/kateconfig.cpp b/noncore/apps/tinykate/libkate/kateconfig.cpp
index 782b629..4b8ce78 100644
--- a/noncore/apps/tinykate/libkate/kateconfig.cpp
+++ b/noncore/apps/tinykate/libkate/kateconfig.cpp
@@ -21,12 +21,13 @@
21#define QTOPIA_INTERNAL_LANGLIST 21#define QTOPIA_INTERNAL_LANGLIST
22#include "kateconfig.h" 22#include "kateconfig.h"
23 23
24/* OPIE */ 24/* OPIE */
25#include <opie2/odebug.h> 25#include <opie2/odebug.h>
26#include <qpe/global.h> 26#include <qpe/global.h>
27using namespace Opie::Core;
27 28
28/* QT */ 29/* QT */
29#include <qdir.h> 30#include <qdir.h>
30#include <qmessagebox.h> 31#include <qmessagebox.h>
31#if QT_VERSION <= 230 && defined(QT_NO_CODECS) 32#if QT_VERSION <= 230 && defined(QT_NO_CODECS)
32#include <qtextcodec.h> 33#include <qtextcodec.h>
@@ -553,14 +554,13 @@ void KateConfig::write( const QString &fn )
553 return; 554 return;
554 } 555 }
555 556
556 f.close(); 557 f.close();
557 // now rename the file... 558 // now rename the file...
558 if ( rename( strNewFile, filename ) < 0 ) { 559 if ( rename( strNewFile, filename ) < 0 ) {
559 qWarning( "problem renaming the file %s to %s", strNewFile.latin1(), 560 owarn << "problem renaming the file " << strNewFile.latin1() << " to " << filename.latin1() << oendl;
560 filename.latin1() );
561 QFile::remove( strNewFile ); 561 QFile::remove( strNewFile );
562 } 562 }
563} 563}
564 564
565/*! 565/*!
566 Returns whether the KateConfig is in a valid state. 566 Returns whether the KateConfig is in a valid state.
diff --git a/noncore/apps/zsafe/main.cpp b/noncore/apps/zsafe/main.cpp
index 4fe319b..5f48f77 100644
--- a/noncore/apps/zsafe/main.cpp
+++ b/noncore/apps/zsafe/main.cpp
@@ -5,17 +5,25 @@
5** 5**
6** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html 6** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html
7*/ 7*/
8 8
9 9
10#include "zsafe.h" 10#include "zsafe.h"
11
12/* OPIE */
13#include <opie2/odebug.h>
14using namespace Opie::Core;
15
16/* QT */
11#ifdef DESKTOP 17#ifdef DESKTOP
12#include <qapplication.h> 18#include <qapplication.h>
13#else 19#else
14#include <qpe/qpeapplication.h> 20#include <qpe/qpeapplication.h>
15#endif 21#endif
22
23/* STD */
16#include <stdio.h> 24#include <stdio.h>
17#include <signal.h> 25#include <signal.h>
18 26
19ZSafe *zs; 27ZSafe *zs;
20#ifdef DESKTOP 28#ifdef DESKTOP
21QApplication *appl; 29QApplication *appl;
@@ -55,41 +63,38 @@ int main( int argc, char ** argv )
55 if (argc >= 3) 63 if (argc >= 3)
56 { 64 {
57#ifndef WIN32 65#ifndef WIN32
58 DeskW = atoi(argv[1]); 66 DeskW = atoi(argv[1]);
59 DeskH = atoi(argv[2]); 67 DeskH = atoi(argv[2]);
60#else 68#else
61 int w, h; 69 int w, h;
62 sscanf (argv[1], "%d", &w); 70 sscanf (argv[1], "%d", &w);
63 sscanf (argv[2], "%d", &h); 71 sscanf (argv[2], "%d", &h);
64 DeskW = w; 72 DeskW = w;
65 DeskH = h; 73 DeskH = h;
66#endif 74#endif
67 } 75 }
68 else 76 else
69 { 77 {
70 DeskW = 600; 78 DeskW = 600;
71 DeskH = 400; 79 DeskH = 400;
72 } 80 }
73#else 81#else
74 DeskW = a.desktop()->width(); 82 DeskW = a.desktop()->width();
75 DeskH = a.desktop()->height(); 83 DeskH = a.desktop()->height();
76 84
77 char buf[128]; 85 owarn << "Width: " << DeskW << " Height: " << DeskH << oendl;
78 sprintf (buf, "Width: %d Height: %d\n", DeskW, DeskH);
79 qWarning (buf);
80 86
81#ifdef JPATCH_HDE 87#ifdef JPATCH_HDE
82 // nothings 88 // nothings
83#else 89#else
84 if (DeskW > 240) 90 if (DeskW > 240)
85 { 91 {
86 DeskW -= 20; 92 DeskW -= 20;
87 DeskH += 25; 93 DeskH += 25;
88 sprintf (buf, "Changed width: %d Height: %d\n", DeskW, DeskH); 94 owarn << "Changed width: " << DeskW << " Height: " << DeskH << oendl;
89 qWarning (buf);
90 } 95 }
91#endif 96#endif
92 97
93#endif 98#endif
94 99
95 ZSafe mw; 100 ZSafe mw;
diff --git a/noncore/apps/zsafe/zlistview.cpp b/noncore/apps/zsafe/zlistview.cpp
index ba02a15..7d0b8c2 100644
--- a/noncore/apps/zsafe/zlistview.cpp
+++ b/noncore/apps/zsafe/zlistview.cpp
@@ -1,29 +1,32 @@
1/* 1/*
2** $Id$ 2** $Id$
3*/ 3*/
4 4
5#include "zlistview.h" 5#include "zlistview.h"
6#include <stdio.h>
7#include "zsafe.h" 6#include "zsafe.h"
8 7
8/* OPIE */
9//#include <opie2/odebug.h>
10
11/* STD */
12#include <stdio.h>
13
9ZListView::ZListView (ZSafe *zsafe, const char *id) : QListView(zsafe, id) 14ZListView::ZListView (ZSafe *zsafe, const char *id) : QListView(zsafe, id)
10{ 15{
11 zs = zsafe; 16 zs = zsafe;
12} 17}
13 18
14ZListView::~ZListView() 19ZListView::~ZListView()
15{ 20{
16} 21}
17 22
18void ZListView::keyPressEvent ( QKeyEvent *e ) 23void ZListView::keyPressEvent ( QKeyEvent *e )
19{ 24{
20/* 25/*
21 char buf[64]; 26 owarn << "key: " << e->key() << oendl;
22 sprintf (buf, "key: %d\n", e->key());
23 qWarning (buf);
24*/ 27*/
25 28
26 switch (e->key()) 29 switch (e->key())
27 { 30 {
28 case 32: // middle cursor key pressed 31 case 32: // middle cursor key pressed
29 zs->showInfo (zs->selectedItem); 32 zs->showInfo (zs->selectedItem);
diff --git a/noncore/apps/zsafe/zsafe.cpp b/noncore/apps/zsafe/zsafe.cpp
index 6ff05ac..ca3ff52 100644
--- a/noncore/apps/zsafe/zsafe.cpp
+++ b/noncore/apps/zsafe/zsafe.cpp
@@ -878,13 +878,13 @@ void ZSafe::findPwd()
878 QString comment; 878 QString comment;
879 if (result == Accepted) 879 if (result == Accepted)
880 { 880 {
881 name = dialog->NameField->text(); 881 name = dialog->NameField->text();
882 username = dialog->UsernameField->text(); 882 username = dialog->UsernameField->text();
883 comment = dialog->CommentField->text(); 883 comment = dialog->CommentField->text();
884 qWarning (name); 884 owarn << name << oendl;
885 } 885 }
886 else 886 else
887 { 887 {
888 delete dialog; 888 delete dialog;
889 return; 889 return;
890 } 890 }
@@ -924,13 +924,13 @@ void ZSafe::findPwd()
924 else 924 else
925 i = ListView->firstChild(); 925 i = ListView->firstChild();
926 for (; 926 for (;
927 i != NULL; 927 i != NULL;
928 i = i->nextSibling()) 928 i = i->nextSibling())
929 { 929 {
930 qWarning (i->text(0)); 930 owarn << i->text(0) << oendl;
931 i->setSelected(FALSE); 931 i->setSelected(FALSE);
932 932
933 // step through all subitems 933 // step through all subitems
934 QListViewItem *si; 934 QListViewItem *si;
935 if (lastSearchedItem) 935 if (lastSearchedItem)
936 si = lastSearchedItem; 936 si = lastSearchedItem;
@@ -938,13 +938,13 @@ void ZSafe::findPwd()
938 si = i->firstChild(); 938 si = i->firstChild();
939 // for (si = i->firstChild(); 939 // for (si = i->firstChild();
940 for (; 940 for (;
941 si != NULL; 941 si != NULL;
942 si = si->nextSibling()) 942 si = si->nextSibling())
943 { 943 {
944 qWarning (si->text(0)); 944 owarn << si->text(0) << oendl;
945 if (si->isSelected()) 945 if (si->isSelected())
946 si->setSelected(FALSE); 946 si->setSelected(FALSE);
947 // ListView->repaintItem(si); 947 // ListView->repaintItem(si);
948 948
949 bool n=TRUE; 949 bool n=TRUE;
950 bool u=TRUE; 950 bool u=TRUE;
@@ -955,13 +955,13 @@ void ZSafe::findPwd()
955 u = (si->text(1)).contains (username, FALSE); 955 u = (si->text(1)).contains (username, FALSE);
956 if (!comment.isEmpty()) 956 if (!comment.isEmpty())
957 c = (si->text(3)).contains (comment, FALSE); 957 c = (si->text(3)).contains (comment, FALSE);
958 958
959 if ((n && u && c ) && !found) 959 if ((n && u && c ) && !found)
960 { 960 {
961 qWarning ("Found"); 961 owarn << "Found" << oendl;
962 selectedItem = si; 962 selectedItem = si;
963 si->setSelected(TRUE); 963 si->setSelected(TRUE);
964 ListView->setCurrentItem(si); 964 ListView->setCurrentItem(si);
965 ListView->ensureItemVisible(si); 965 ListView->ensureItemVisible(si);
966 ListView->triggerUpdate(); 966 ListView->triggerUpdate();
967 967
@@ -1225,14 +1225,13 @@ void ZSafe::removeAsciiFile()
1225 1225
1226 if (fn && fn.length() > 0 ) 1226 if (fn && fn.length() > 0 )
1227 { 1227 {
1228 QFile f( fn ); 1228 QFile f( fn );
1229 if ( !f.remove() ) 1229 if ( !f.remove() )
1230 { 1230 {
1231 qWarning( QString("Could not remove file %1").arg(fn), 1231 owarn << "Could not remove file " << fn << oendl;
1232 2000 );
1233 QMessageBox::critical( 0, tr("ZSafe"), 1232 QMessageBox::critical( 0, tr("ZSafe"),
1234 tr("Could not remove text file.") ); 1233 tr("Could not remove text file.") );
1235 return; 1234 return;
1236 } 1235 }
1237 } 1236 }
1238} 1237}
@@ -1275,14 +1274,13 @@ void ZSafe::writeAllEntries()
1275 1274
1276 // open the new document 1275 // open the new document
1277 if (fn && fn.length() > 0 ) 1276 if (fn && fn.length() > 0 )
1278 { 1277 {
1279 QFile f( fn ); 1278 QFile f( fn );
1280 if ( !f.open( IO_WriteOnly ) ) { 1279 if ( !f.open( IO_WriteOnly ) ) {
1281 qWarning( QString("Could not write to file %1").arg(fn), 1280 owarn << "Could not write to file " << fn << oendl;
1282 2000 );
1283 QMessageBox::critical( 0, "ZSafe", 1281 QMessageBox::critical( 0, "ZSafe",
1284 QString("Could not export to text file.") ); 1282 QString("Could not export to text file.") );
1285 return; 1283 return;
1286 } 1284 }
1287 QTextStream t( &f ); 1285 QTextStream t( &f );
1288 1286
@@ -1319,16 +1317,16 @@ void ZSafe::writeAllEntries()
1319 oneEntry += "\""; 1317 oneEntry += "\"";
1320 oneEntry += si->text(4); 1318 oneEntry += si->text(4);
1321 oneEntry += "\";"; 1319 oneEntry += "\";";
1322 oneEntry += "\""; 1320 oneEntry += "\"";
1323 oneEntry += si->text(5); 1321 oneEntry += si->text(5);
1324 oneEntry += "\""; 1322 oneEntry += "\"";
1325 // qWarning (oneEntry); 1323 // owarn << oneEntry << oendl;
1326 t << oneEntry << endl; 1324 t << oneEntry << endl;
1327 1325
1328 // qWarning (si->text(0)); 1326 // owarn << si->text(0) << oendl;
1329 } 1327 }
1330 } 1328 }
1331 f.close(); 1329 f.close();
1332 } 1330 }
1333} 1331}
1334 1332
@@ -1370,14 +1368,13 @@ void ZSafe::readAllEntries()
1370 1368
1371 if (fn && fn.length() > 0 ) 1369 if (fn && fn.length() > 0 )
1372 { 1370 {
1373 QFile f( fn ); 1371 QFile f( fn );
1374 if ( !f.open( IO_ReadOnly ) ) 1372 if ( !f.open( IO_ReadOnly ) )
1375 { 1373 {
1376 qWarning( QString("Could not read file %1").arg(fn), 1374 owarn << "Could not read file " << fn << oendl;
1377 2000 );
1378 QMessageBox::critical( 0, "ZSafe", 1375 QMessageBox::critical( 0, "ZSafe",
1379 QString("Could not import text file.") ); 1376 QString("Could not import text file.") );
1380 return; 1377 return;
1381 } 1378 }
1382 1379
1383 modified = true; 1380 modified = true;
@@ -1400,13 +1397,13 @@ void ZSafe::readAllEntries()
1400 si = si->nextSibling(); 1397 si = si->nextSibling();
1401 i->takeItem(_si); // remove from view list 1398 i->takeItem(_si); // remove from view list
1402 if (_si) delete _si; 1399 if (_si) delete _si;
1403 } 1400 }
1404 } 1401 }
1405 1402
1406 qWarning ("ReadAllEntries(): "); 1403 owarn << "ReadAllEntries(): " << oendl;
1407 1404
1408 QTextStream t(&f); 1405 QTextStream t(&f);
1409 while ( !t.eof() ) 1406 while ( !t.eof() )
1410 { 1407 {
1411 QString s = t.readLine(); 1408 QString s = t.readLine();
1412 s.replace (QRegExp("\";\""), "\"|\""); 1409 s.replace (QRegExp("\";\""), "\"|\"");
@@ -1551,14 +1548,13 @@ void ZSafe::readAllEntries()
1551void ZSafe::writeAllEntries() 1548void ZSafe::writeAllEntries()
1552{ 1549{
1553 // open the file for writing 1550 // open the file for writing
1554 QString fn = filename + ".txt"; 1551 QString fn = filename + ".txt";
1555 QFile f( fn ); 1552 QFile f( fn );
1556 if ( !f.open( IO_WriteOnly ) ) { 1553 if ( !f.open( IO_WriteOnly ) ) {
1557 qWarning( QString("Could not write to file %1").arg(fn), 1554 owarn << "Could not write to file " << fn << oendl;
1558 2000 );
1559 QMessageBox::critical( 0, tr("ZSafe"), 1555 QMessageBox::critical( 0, tr("ZSafe"),
1560 tr("Could not export to text file.") ); 1556 tr("Could not export to text file.") );
1561 return; 1557 return;
1562 } 1558 }
1563 QTextStream t( &f ); 1559 QTextStream t( &f );
1564 1560
@@ -1590,29 +1586,28 @@ void ZSafe::writeAllEntries()
1590 oneEntry += "\""; 1586 oneEntry += "\"";
1591 // oneEntry += si->text(3); 1587 // oneEntry += si->text(3);
1592 QString comment = si->text(3); 1588 QString comment = si->text(3);
1593 comment.replace (QRegExp("\n"), "<br>"); 1589 comment.replace (QRegExp("\n"), "<br>");
1594 oneEntry += comment; 1590 oneEntry += comment;
1595 oneEntry += "\""; 1591 oneEntry += "\"";
1596 // qWarning (oneEntry); 1592 // owarn << oneEntry << oendl;
1597 t << oneEntry << endl; 1593 t << oneEntry << endl;
1598 1594
1599 // qWarning (si->text(0)); 1595 // owarn << si->text(0) << oendl;
1600 } 1596 }
1601 } 1597 }
1602 f.close(); 1598 f.close();
1603} 1599}
1604 1600
1605void ZSafe::readAllEntries() 1601void ZSafe::readAllEntries()
1606{ 1602{
1607 QString fn = filename + ".txt"; 1603 QString fn = filename + ".txt";
1608 QFile f( fn ); 1604 QFile f( fn );
1609 if ( !f.open( IO_ReadOnly ) ) 1605 if ( !f.open( IO_ReadOnly ) )
1610 { 1606 {
1611 qWarning( QString("Could not read file %1").arg(fn), 1607 owarn << "Could not read file " << fn << oendl;
1612 2000 );
1613 QMessageBox::critical( 0, tr("ZSafe"), 1608 QMessageBox::critical( 0, tr("ZSafe"),
1614 tr("Could not import text file.") ); 1609 tr("Could not import text file.") );
1615 return; 1610 return;
1616 } 1611 }
1617 1612
1618 modified = true; 1613 modified = true;
@@ -1635,13 +1630,13 @@ void ZSafe::readAllEntries()
1635 si = si->nextSibling(); 1630 si = si->nextSibling();
1636 i->takeItem(_si); // remove from view list 1631 i->takeItem(_si); // remove from view list
1637 if (_si) delete _si; 1632 if (_si) delete _si;
1638 } 1633 }
1639 } 1634 }
1640 1635
1641 qWarning ("ReadAllEntries(): "); 1636 owarn << "ReadAllEntries(): " << oendl;
1642 1637
1643 QTextStream t(&f); 1638 QTextStream t(&f);
1644 while ( !t.eof() ) 1639 while ( !t.eof() )
1645 { 1640 {
1646 QString s = t.readLine(); 1641 QString s = t.readLine();
1647 s.replace (QRegExp("\";\""), "\"|\""); 1642 s.replace (QRegExp("\";\""), "\"|\"");
@@ -1759,13 +1754,13 @@ void ZSafe::readAllEntries()
1759 1754
1760} 1755}
1761#endif // UNUSED 1756#endif // UNUSED
1762 1757
1763void ZSafe::resume(int) 1758void ZSafe::resume(int)
1764{ 1759{
1765 qWarning ("Resume"); 1760 owarn << "Resume" << oendl;
1766 // hide the main window 1761 // hide the main window
1767 1762
1768 infoForm->hide(); 1763 infoForm->hide();
1769 // open zsafe again 1764 // open zsafe again
1770 m_password = ""; 1765 m_password = "";
1771 selectedItem = NULL; 1766 selectedItem = NULL;
@@ -1815,22 +1810,22 @@ bool ZSafe::openDocument(const char* _filename, const char* )
1815 { 1810 {
1816 // ask with a dialog for the password 1811 // ask with a dialog for the password
1817 if (m_password.isEmpty()) 1812 if (m_password.isEmpty())
1818 getDocPassword(tr("Enter Password")); 1813 getDocPassword(tr("Enter Password"));
1819 if (m_password.isEmpty() && validationFlag == 0) 1814 if (m_password.isEmpty() && validationFlag == 0)
1820 { 1815 {
1821 qWarning ("Wrong password"); 1816 owarn << "Wrong password" << oendl;
1822 QMessageBox::critical( 0, tr("ZSafe"), 1817 QMessageBox::critical( 0, tr("ZSafe"),
1823 tr("Wrong password.\n\nZSafe will now exit.") ); 1818 tr("Wrong password.\n\nZSafe will now exit.") );
1824 exitZs (1); 1819 exitZs (1);
1825 } 1820 }
1826 1821
1827 retval = loadInit(_filename, m_password); 1822 retval = loadInit(_filename, m_password);
1828 if (retval != PWERR_GOOD) 1823 if (retval != PWERR_GOOD)
1829 { 1824 {
1830 qWarning ("Error loading Document"); 1825 owarn << "Error loading Document" << oendl;
1831 return false; 1826 return false;
1832 } 1827 }
1833 } 1828 }
1834 else 1829 else
1835 { 1830 {
1836#ifdef WIN32 1831#ifdef WIN32
@@ -2298,13 +2293,13 @@ void ZSafe::setPasswordDialogDone()
2298 newPwdDialogResult = true; 2293 newPwdDialogResult = true;
2299 newPwdDialog->close(); 2294 newPwdDialog->close();
2300} 2295}
2301 2296
2302void ZSafe::getDocPassword(QString title) 2297void ZSafe::getDocPassword(QString title)
2303{ 2298{
2304qWarning ("getDocPassword"); 2299 owarn << "getDocPassword" << oendl;
2305 // open the 'Password' dialog 2300 // open the 'Password' dialog
2306 PasswordForm *dialog = new PasswordForm(this, title, TRUE); 2301 PasswordForm *dialog = new PasswordForm(this, title, TRUE);
2307 newPwdDialog = dialog; 2302 newPwdDialog = dialog;
2308 newPwdDialogResult = false; 2303 newPwdDialogResult = false;
2309 2304
2310 connect( dialog->PasswordField, SIGNAL( returnPressed() ), 2305 connect( dialog->PasswordField, SIGNAL( returnPressed() ),
@@ -2477,13 +2472,13 @@ int ZSafe::saveFinalize(void)
2477 free(buffer); 2472 free(buffer);
2478 return retval; 2473 return retval;
2479} 2474}
2480 2475
2481void ZSafe::quitMe () 2476void ZSafe::quitMe ()
2482{ 2477{
2483 qWarning ("QUIT..."); 2478 owarn << "QUIT..." << oendl;
2484 2479
2485 if (modified) 2480 if (modified)
2486 { 2481 {
2487 switch( QMessageBox::information( this, tr("ZSafe"), 2482 switch( QMessageBox::information( this, tr("ZSafe"),
2488 tr("Do you want to save\nbefore exiting?"), 2483 tr("Do you want to save\nbefore exiting?"),
2489 tr("&Save"), 2484 tr("&Save"),
@@ -2681,13 +2676,13 @@ void ZSafe::addCategory()
2681 if (result == Accepted) 2676 if (result == Accepted)
2682 { 2677 {
2683 modified = true; 2678 modified = true;
2684 category = dialog->CategoryField->currentText(); 2679 category = dialog->CategoryField->currentText();
2685 icon = dialog->IconField->currentText()+".png"; 2680 icon = dialog->IconField->currentText()+".png";
2686 2681
2687 qWarning (category); 2682 owarn << category << oendl;
2688 2683
2689 QListViewItem *li = new ShadedListItem( 1, ListView ); 2684 QListViewItem *li = new ShadedListItem( 1, ListView );
2690 Category *c1 = new Category(); 2685 Category *c1 = new Category();
2691 c1->setCategoryName(category); 2686 c1->setCategoryName(category);
2692 2687
2693 // if (!icon.isEmpty() && !icon.isNull()) 2688 // if (!icon.isEmpty() && !icon.isNull())
@@ -3189,13 +3184,13 @@ void ZSafe::editCategory()
3189 } 3184 }
3190 3185
3191 // change the category name of the selected category 3186 // change the category name of the selected category
3192 QListViewItem *catItem = cat->getListItem(); 3187 QListViewItem *catItem = cat->getListItem();
3193 if (catItem) 3188 if (catItem)
3194 { 3189 {
3195 qWarning (category); 3190 owarn << category << oendl;
3196 catItem->setText( 0, tr( category ) ); 3191 catItem->setText( 0, tr( category ) );
3197 cat->setCategoryName (tr(category)); 3192 cat->setCategoryName (tr(category));
3198 3193
3199 cat->initListItem(); 3194 cat->initListItem();
3200 categories.insert (category, cat); 3195 categories.insert (category, cat);
3201 } 3196 }
@@ -3590,13 +3585,13 @@ void ZSafe::paintEvent( QPaintEvent * )
3590 infoForm->raise(); 3585 infoForm->raise();
3591 } 3586 }
3592} 3587}
3593 3588
3594void ZSafe::resizeEvent ( QResizeEvent * ) 3589void ZSafe::resizeEvent ( QResizeEvent * )
3595{ 3590{
3596 // qWarning ("resizeEvent"); 3591 // owarn << "resizeEvent" << oendl;
3597#ifndef DESKTOP 3592#ifndef DESKTOP
3598 DeskW = appl->desktop()->width(); 3593 DeskW = appl->desktop()->width();
3599 DeskH = appl->desktop()->height(); 3594 DeskH = appl->desktop()->height();
3600#else 3595#else
3601 DeskW = this->width(); 3596 DeskW = this->width();
3602 DeskH = this->height(); 3597 DeskH = this->height();