-rw-r--r-- | noncore/apps/opie-write/qcomplextext.cpp | 3 | ||||
-rw-r--r-- | noncore/apps/opie-write/qrichtext.cpp | 15 | ||||
-rw-r--r-- | noncore/apps/opie-write/qstylesheet.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/opie-write/qtextedit.cpp | 20 | ||||
-rw-r--r-- | noncore/apps/oxygen/calcdlgui.cpp | 1 | ||||
-rw-r--r-- | noncore/apps/oxygen/dataTable.cpp | 3 | ||||
-rw-r--r-- | noncore/apps/oxygen/datawidgetui.cpp | 5 | ||||
-rw-r--r-- | noncore/apps/oxygen/kmolcalc.cpp | 3 | ||||
-rw-r--r-- | noncore/apps/oxygen/oxyframe.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/oxygen/oxygen.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/oxygen/psewidget.cpp | 2 | ||||
-rwxr-xr-x | noncore/apps/qashmoney/account.cpp | 2 | ||||
-rwxr-xr-x | noncore/apps/qashmoney/accountdisplay.cpp | 2 | ||||
-rwxr-xr-x | noncore/apps/qashmoney/budgetdisplay.cpp | 3 | ||||
-rwxr-xr-x | noncore/apps/qashmoney/newaccount.cpp | 3 | ||||
-rwxr-xr-x | noncore/apps/qashmoney/newtransaction.cpp | 2 | ||||
-rwxr-xr-x | noncore/apps/qashmoney/preferencedialogs.cpp | 1 | ||||
-rwxr-xr-x | noncore/apps/qashmoney/transactiondisplay.cpp | 3 | ||||
-rwxr-xr-x | noncore/apps/qashmoney/transferdialog.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/tableviewer/tableviewer.cpp | 1 |
20 files changed, 0 insertions, 77 deletions
diff --git a/noncore/apps/opie-write/qcomplextext.cpp b/noncore/apps/opie-write/qcomplextext.cpp index e8b94da..473f184 100644 --- a/noncore/apps/opie-write/qcomplextext.cpp +++ b/noncore/apps/opie-write/qcomplextext.cpp | |||
@@ -1,149 +1,146 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** $Id$ | 2 | ** $Id$ |
3 | ** | 3 | ** |
4 | ** Implementation of some internal classes | 4 | ** Implementation of some internal classes |
5 | ** | 5 | ** |
6 | ** Created : | 6 | ** Created : |
7 | ** | 7 | ** |
8 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 8 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. |
9 | ** | 9 | ** |
10 | ** This file is part of the kernel module of the Qt GUI Toolkit. | 10 | ** This file is part of the kernel module of the Qt GUI Toolkit. |
11 | ** | 11 | ** |
12 | ** This file may be distributed under the terms of the Q Public License | 12 | ** This file may be distributed under the terms of the Q Public License |
13 | ** as defined by Trolltech AS of Norway and appearing in the file | 13 | ** as defined by Trolltech AS of Norway and appearing in the file |
14 | ** LICENSE.QPL included in the packaging of this file. | 14 | ** LICENSE.QPL included in the packaging of this file. |
15 | ** | 15 | ** |
16 | ** This file may be distributed and/or modified under the terms of the | 16 | ** This file may be distributed and/or modified under the terms of the |
17 | ** GNU General Public License version 2 as published by the Free Software | 17 | ** GNU General Public License version 2 as published by the Free Software |
18 | ** Foundation and appearing in the file LICENSE.GPL included in the | 18 | ** Foundation and appearing in the file LICENSE.GPL included in the |
19 | ** packaging of this file. | 19 | ** packaging of this file. |
20 | ** | 20 | ** |
21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition | 21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition |
22 | ** licenses may use this file in accordance with the Qt Commercial License | 22 | ** licenses may use this file in accordance with the Qt Commercial License |
23 | ** Agreement provided with the Software. | 23 | ** Agreement provided with the Software. |
24 | ** | 24 | ** |
25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
27 | ** | 27 | ** |
28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for | 28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for |
29 | ** information about Qt Commercial License Agreements. | 29 | ** information about Qt Commercial License Agreements. |
30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. | 30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. |
31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
32 | ** | 32 | ** |
33 | ** Contact info@trolltech.com if any conditions of this licensing are | 33 | ** Contact info@trolltech.com if any conditions of this licensing are |
34 | ** not clear to you. | 34 | ** not clear to you. |
35 | ** | 35 | ** |
36 | **********************************************************************/ | 36 | **********************************************************************/ |
37 | 37 | ||
38 | #include "qcomplextext_p.h" | ||
39 | 38 | ||
40 | #include "qrichtext_p.h" | 39 | #include "qrichtext_p.h" |
41 | #include "qfontmetrics.h" | ||
42 | #include "qrect.h" | ||
43 | 40 | ||
44 | #include <stdlib.h> | 41 | #include <stdlib.h> |
45 | 42 | ||
46 | using namespace Qt3; | 43 | using namespace Qt3; |
47 | 44 | ||
48 | // ----------------------------------------------------- | 45 | // ----------------------------------------------------- |
49 | 46 | ||
50 | /* a small helper class used internally to resolve Bidi embedding levels. | 47 | /* a small helper class used internally to resolve Bidi embedding levels. |
51 | Each line of text caches the embedding level at the start of the line for faster | 48 | Each line of text caches the embedding level at the start of the line for faster |
52 | relayouting | 49 | relayouting |
53 | */ | 50 | */ |
54 | QBidiContext::QBidiContext( uchar l, QChar::Direction e, QBidiContext *p, bool o ) | 51 | QBidiContext::QBidiContext( uchar l, QChar::Direction e, QBidiContext *p, bool o ) |
55 | : level(l) , override(o), dir(e) | 52 | : level(l) , override(o), dir(e) |
56 | { | 53 | { |
57 | if ( p ) | 54 | if ( p ) |
58 | p->ref(); | 55 | p->ref(); |
59 | parent = p; | 56 | parent = p; |
60 | count = 0; | 57 | count = 0; |
61 | } | 58 | } |
62 | 59 | ||
63 | QBidiContext::~QBidiContext() | 60 | QBidiContext::~QBidiContext() |
64 | { | 61 | { |
65 | if( parent && parent->deref() ) | 62 | if( parent && parent->deref() ) |
66 | delete parent; | 63 | delete parent; |
67 | } | 64 | } |
68 | 65 | ||
69 | /* | 66 | /* |
70 | Arabic shaping obeys a number of rules according to the joining classes (see Unicode book, section on | 67 | Arabic shaping obeys a number of rules according to the joining classes (see Unicode book, section on |
71 | arabic). | 68 | arabic). |
72 | 69 | ||
73 | Each unicode char has a joining class (right, dual (left&right), center (joincausing) or transparent). | 70 | Each unicode char has a joining class (right, dual (left&right), center (joincausing) or transparent). |
74 | transparent joining is not encoded in QChar::joining(), but applies to all combining marks and format marks. | 71 | transparent joining is not encoded in QChar::joining(), but applies to all combining marks and format marks. |
75 | 72 | ||
76 | Right join-causing: dual + center | 73 | Right join-causing: dual + center |
77 | Left join-causing: dual + right + center | 74 | Left join-causing: dual + right + center |
78 | 75 | ||
79 | Rules are as follows (for a string already in visual order, as we have it here): | 76 | Rules are as follows (for a string already in visual order, as we have it here): |
80 | 77 | ||
81 | R1 Transparent characters do not affect joining behaviour. | 78 | R1 Transparent characters do not affect joining behaviour. |
82 | R2 A right joining character, that has a right join-causing char on the right will get form XRight | 79 | R2 A right joining character, that has a right join-causing char on the right will get form XRight |
83 | (R3 A left joining character, that has a left join-causing char on the left will get form XLeft) | 80 | (R3 A left joining character, that has a left join-causing char on the left will get form XLeft) |
84 | Note: the above rule is meaningless, as there are no pure left joining characters defined in Unicode | 81 | Note: the above rule is meaningless, as there are no pure left joining characters defined in Unicode |
85 | R4 A dual joining character, that has a left join-causing char on the left and a right join-causing char on | 82 | R4 A dual joining character, that has a left join-causing char on the left and a right join-causing char on |
86 | the right will get form XMedial | 83 | the right will get form XMedial |
87 | R5 A dual joining character, that has a right join causing char on the right, and no left join causing char on the left | 84 | R5 A dual joining character, that has a right join causing char on the right, and no left join causing char on the left |
88 | will get form XRight | 85 | will get form XRight |
89 | R6 A dual joining character, that has a left join causing char on the left, and no right join causing char on the right | 86 | R6 A dual joining character, that has a left join causing char on the left, and no right join causing char on the right |
90 | will get form XLeft | 87 | will get form XLeft |
91 | R7 Otherwise the character will get form XIsolated | 88 | R7 Otherwise the character will get form XIsolated |
92 | 89 | ||
93 | Additionally we have to do the minimal ligature support for lam-alef ligatures: | 90 | Additionally we have to do the minimal ligature support for lam-alef ligatures: |
94 | 91 | ||
95 | L1 Transparent characters do not affect ligature behaviour. | 92 | L1 Transparent characters do not affect ligature behaviour. |
96 | L2 Any sequence of Alef(XRight) + Lam(XMedial) will form the ligature Alef.Lam(XLeft) | 93 | L2 Any sequence of Alef(XRight) + Lam(XMedial) will form the ligature Alef.Lam(XLeft) |
97 | L3 Any sequence of Alef(XRight) + Lam(XLeft) will form the ligature Alef.Lam(XIsolated) | 94 | L3 Any sequence of Alef(XRight) + Lam(XLeft) will form the ligature Alef.Lam(XIsolated) |
98 | 95 | ||
99 | The two functions defined in this class do shaping in visual and logical order. For logical order just replace right with | 96 | The two functions defined in this class do shaping in visual and logical order. For logical order just replace right with |
100 | previous and left with next in the above rules ;-) | 97 | previous and left with next in the above rules ;-) |
101 | */ | 98 | */ |
102 | 99 | ||
103 | /* | 100 | /* |
104 | Two small helper functions for arabic shaping. They get the next shape causing character on either | 101 | Two small helper functions for arabic shaping. They get the next shape causing character on either |
105 | side of the char in question. Implements rule R1. | 102 | side of the char in question. Implements rule R1. |
106 | 103 | ||
107 | leftChar() returns true if the char to the left is a left join-causing char | 104 | leftChar() returns true if the char to the left is a left join-causing char |
108 | rightChar() returns true if the char to the right is a right join-causing char | 105 | rightChar() returns true if the char to the right is a right join-causing char |
109 | */ | 106 | */ |
110 | static inline const QChar *prevChar( const QString &str, int pos ) | 107 | static inline const QChar *prevChar( const QString &str, int pos ) |
111 | { | 108 | { |
112 | //qDebug("leftChar: pos=%d", pos); | 109 | //qDebug("leftChar: pos=%d", pos); |
113 | pos--; | 110 | pos--; |
114 | const QChar *ch = str.unicode() + pos; | 111 | const QChar *ch = str.unicode() + pos; |
115 | while( pos > -1 ) { | 112 | while( pos > -1 ) { |
116 | if( !ch->isMark() ) | 113 | if( !ch->isMark() ) |
117 | return ch; | 114 | return ch; |
118 | pos--; | 115 | pos--; |
119 | ch--; | 116 | ch--; |
120 | } | 117 | } |
121 | return &QChar::replacement; | 118 | return &QChar::replacement; |
122 | } | 119 | } |
123 | 120 | ||
124 | static inline const QChar *nextChar( const QString &str, int pos) | 121 | static inline const QChar *nextChar( const QString &str, int pos) |
125 | { | 122 | { |
126 | pos++; | 123 | pos++; |
127 | int len = str.length(); | 124 | int len = str.length(); |
128 | const QChar *ch = str.unicode() + pos; | 125 | const QChar *ch = str.unicode() + pos; |
129 | while( pos < len ) { | 126 | while( pos < len ) { |
130 | //qDebug("rightChar: %d isLetter=%d, joining=%d", pos, ch.isLetter(), ch.joining()); | 127 | //qDebug("rightChar: %d isLetter=%d, joining=%d", pos, ch.isLetter(), ch.joining()); |
131 | if( !ch->isMark() ) | 128 | if( !ch->isMark() ) |
132 | return ch; | 129 | return ch; |
133 | // assume it's a transparent char, this might not be 100% correct | 130 | // assume it's a transparent char, this might not be 100% correct |
134 | pos++; | 131 | pos++; |
135 | ch++; | 132 | ch++; |
136 | } | 133 | } |
137 | return &QChar::replacement; | 134 | return &QChar::replacement; |
138 | } | 135 | } |
139 | 136 | ||
140 | static inline bool prevVisualCharJoins( const QString &str, int pos) | 137 | static inline bool prevVisualCharJoins( const QString &str, int pos) |
141 | { | 138 | { |
142 | return ( prevChar( str, pos )->joining() != QChar::OtherJoining ); | 139 | return ( prevChar( str, pos )->joining() != QChar::OtherJoining ); |
143 | } | 140 | } |
144 | 141 | ||
145 | static inline bool nextVisualCharJoins( const QString &str, int pos) | 142 | static inline bool nextVisualCharJoins( const QString &str, int pos) |
146 | { | 143 | { |
147 | QChar::Joining join = nextChar( str, pos )->joining(); | 144 | QChar::Joining join = nextChar( str, pos )->joining(); |
148 | return ( join == QChar::Dual || join == QChar::Center ); | 145 | return ( join == QChar::Dual || join == QChar::Center ); |
149 | } | 146 | } |
diff --git a/noncore/apps/opie-write/qrichtext.cpp b/noncore/apps/opie-write/qrichtext.cpp index 3b044c3..b77a0fc 100644 --- a/noncore/apps/opie-write/qrichtext.cpp +++ b/noncore/apps/opie-write/qrichtext.cpp | |||
@@ -1,185 +1,170 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** $Id$ | 2 | ** $Id$ |
3 | ** | 3 | ** |
4 | ** Implementation of the internal Qt classes dealing with rich text | 4 | ** Implementation of the internal Qt classes dealing with rich text |
5 | ** | 5 | ** |
6 | ** Created : 990101 | 6 | ** Created : 990101 |
7 | ** | 7 | ** |
8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. | 8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. |
9 | ** | 9 | ** |
10 | ** This file is part of the kernel module of the Qt GUI Toolkit. | 10 | ** This file is part of the kernel module of the Qt GUI Toolkit. |
11 | ** | 11 | ** |
12 | ** This file may be distributed under the terms of the Q Public License | 12 | ** This file may be distributed under the terms of the Q Public License |
13 | ** as defined by Trolltech AS of Norway and appearing in the file | 13 | ** as defined by Trolltech AS of Norway and appearing in the file |
14 | ** LICENSE.QPL included in the packaging of this file. | 14 | ** LICENSE.QPL included in the packaging of this file. |
15 | ** | 15 | ** |
16 | ** This file may be distributed and/or modified under the terms of the | 16 | ** This file may be distributed and/or modified under the terms of the |
17 | ** GNU General Public License version 2 as published by the Free Software | 17 | ** GNU General Public License version 2 as published by the Free Software |
18 | ** Foundation and appearing in the file LICENSE.GPL included in the | 18 | ** Foundation and appearing in the file LICENSE.GPL included in the |
19 | ** packaging of this file. | 19 | ** packaging of this file. |
20 | ** | 20 | ** |
21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition | 21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition |
22 | ** licenses may use this file in accordance with the Qt Commercial License | 22 | ** licenses may use this file in accordance with the Qt Commercial License |
23 | ** Agreement provided with the Software. | 23 | ** Agreement provided with the Software. |
24 | ** | 24 | ** |
25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
27 | ** | 27 | ** |
28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for | 28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for |
29 | ** information about Qt Commercial License Agreements. | 29 | ** information about Qt Commercial License Agreements. |
30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. | 30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. |
31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
32 | ** | 32 | ** |
33 | ** Contact info@trolltech.com if any conditions of this licensing are | 33 | ** Contact info@trolltech.com if any conditions of this licensing are |
34 | ** not clear to you. | 34 | ** not clear to you. |
35 | ** | 35 | ** |
36 | **********************************************************************/ | 36 | **********************************************************************/ |
37 | 37 | ||
38 | #include "qrichtext_p.h" | 38 | #include "qrichtext_p.h" |
39 | 39 | ||
40 | #include "qstringlist.h" | ||
41 | #include "qfont.h" | ||
42 | #include "qtextstream.h" | ||
43 | #include "qfile.h" | ||
44 | #include "qapplication.h" | ||
45 | #include "qmap.h" | ||
46 | #include "qfileinfo.h" | ||
47 | #include "qstylesheet.h" | ||
48 | #include "qmime.h" | ||
49 | #include "qimage.h" | ||
50 | #include "qdragobject.h" | 40 | #include "qdragobject.h" |
51 | #include "qpaintdevicemetrics.h" | 41 | #include "qpaintdevicemetrics.h" |
52 | #include "qpainter.h" | ||
53 | #include "qdrawutil.h" | 42 | #include "qdrawutil.h" |
54 | #include "qcursor.h" | ||
55 | #include "qstack.h" | ||
56 | #include "qstyle.h" | ||
57 | #include "qcomplextext_p.h" | ||
58 | #include "qcleanuphandler.h" | 43 | #include "qcleanuphandler.h" |
59 | 44 | ||
60 | #include <stdlib.h> | 45 | #include <stdlib.h> |
61 | 46 | ||
62 | using namespace Qt3; | 47 | using namespace Qt3; |
63 | 48 | ||
64 | static QTextCursor* richTextExportStart = 0; | 49 | static QTextCursor* richTextExportStart = 0; |
65 | static QTextCursor* richTextExportEnd = 0; | 50 | static QTextCursor* richTextExportEnd = 0; |
66 | 51 | ||
67 | static QTextFormatCollection *qFormatCollection = 0; | 52 | static QTextFormatCollection *qFormatCollection = 0; |
68 | 53 | ||
69 | const int border_tolerance = 2; | 54 | const int border_tolerance = 2; |
70 | 55 | ||
71 | #ifdef Q_WS_WIN | 56 | #ifdef Q_WS_WIN |
72 | #include "qt_windows.h" | 57 | #include "qt_windows.h" |
73 | #endif | 58 | #endif |
74 | 59 | ||
75 | #define QChar_linesep QChar(0x2028U) | 60 | #define QChar_linesep QChar(0x2028U) |
76 | 61 | ||
77 | static inline bool is_printer( QPainter *p ) | 62 | static inline bool is_printer( QPainter *p ) |
78 | { | 63 | { |
79 | if ( !p || !p->device() ) | 64 | if ( !p || !p->device() ) |
80 | return FALSE; | 65 | return FALSE; |
81 | return p->device()->devType() == QInternal::Printer; | 66 | return p->device()->devType() == QInternal::Printer; |
82 | } | 67 | } |
83 | 68 | ||
84 | static inline int scale( int value, QPainter *painter ) | 69 | static inline int scale( int value, QPainter *painter ) |
85 | { | 70 | { |
86 | if ( is_printer( painter ) ) { | 71 | if ( is_printer( painter ) ) { |
87 | QPaintDeviceMetrics metrics( painter->device() ); | 72 | QPaintDeviceMetrics metrics( painter->device() ); |
88 | #if defined(Q_WS_X11) | 73 | #if defined(Q_WS_X11) |
89 | value = value * metrics.logicalDpiY() / QPaintDevice::x11AppDpiY(); | 74 | value = value * metrics.logicalDpiY() / QPaintDevice::x11AppDpiY(); |
90 | #elif defined (Q_WS_WIN) | 75 | #elif defined (Q_WS_WIN) |
91 | HDC hdc = GetDC( 0 ); | 76 | HDC hdc = GetDC( 0 ); |
92 | int gdc = GetDeviceCaps( hdc, LOGPIXELSY ); | 77 | int gdc = GetDeviceCaps( hdc, LOGPIXELSY ); |
93 | if ( gdc ) | 78 | if ( gdc ) |
94 | value = value * metrics.logicalDpiY() / gdc; | 79 | value = value * metrics.logicalDpiY() / gdc; |
95 | ReleaseDC( 0, hdc ); | 80 | ReleaseDC( 0, hdc ); |
96 | #elif defined (Q_WS_MAC) | 81 | #elif defined (Q_WS_MAC) |
97 | value = value * metrics.logicalDpiY() / 75; // ##### FIXME | 82 | value = value * metrics.logicalDpiY() / 75; // ##### FIXME |
98 | #elif defined (Q_WS_QWS) | 83 | #elif defined (Q_WS_QWS) |
99 | value = value * metrics.logicalDpiY() / 75; | 84 | value = value * metrics.logicalDpiY() / 75; |
100 | #endif | 85 | #endif |
101 | } | 86 | } |
102 | return value; | 87 | return value; |
103 | } | 88 | } |
104 | 89 | ||
105 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 90 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
106 | 91 | ||
107 | void QTextCommandHistory::addCommand( QTextCommand *cmd ) | 92 | void QTextCommandHistory::addCommand( QTextCommand *cmd ) |
108 | { | 93 | { |
109 | if ( current < (int)history.count() - 1 ) { | 94 | if ( current < (int)history.count() - 1 ) { |
110 | QPtrList<QTextCommand> commands; | 95 | QPtrList<QTextCommand> commands; |
111 | commands.setAutoDelete( FALSE ); | 96 | commands.setAutoDelete( FALSE ); |
112 | 97 | ||
113 | for( int i = 0; i <= current; ++i ) { | 98 | for( int i = 0; i <= current; ++i ) { |
114 | commands.insert( i, history.at( 0 ) ); | 99 | commands.insert( i, history.at( 0 ) ); |
115 | history.take( 0 ); | 100 | history.take( 0 ); |
116 | } | 101 | } |
117 | 102 | ||
118 | commands.append( cmd ); | 103 | commands.append( cmd ); |
119 | history.clear(); | 104 | history.clear(); |
120 | history = commands; | 105 | history = commands; |
121 | history.setAutoDelete( TRUE ); | 106 | history.setAutoDelete( TRUE ); |
122 | } else { | 107 | } else { |
123 | history.append( cmd ); | 108 | history.append( cmd ); |
124 | } | 109 | } |
125 | 110 | ||
126 | if ( (int)history.count() > steps ) | 111 | if ( (int)history.count() > steps ) |
127 | history.removeFirst(); | 112 | history.removeFirst(); |
128 | else | 113 | else |
129 | ++current; | 114 | ++current; |
130 | } | 115 | } |
131 | 116 | ||
132 | QTextCursor *QTextCommandHistory::undo( QTextCursor *c ) | 117 | QTextCursor *QTextCommandHistory::undo( QTextCursor *c ) |
133 | { | 118 | { |
134 | if ( current > -1 ) { | 119 | if ( current > -1 ) { |
135 | QTextCursor *c2 = history.at( current )->unexecute( c ); | 120 | QTextCursor *c2 = history.at( current )->unexecute( c ); |
136 | --current; | 121 | --current; |
137 | return c2; | 122 | return c2; |
138 | } | 123 | } |
139 | return 0; | 124 | return 0; |
140 | } | 125 | } |
141 | 126 | ||
142 | QTextCursor *QTextCommandHistory::redo( QTextCursor *c ) | 127 | QTextCursor *QTextCommandHistory::redo( QTextCursor *c ) |
143 | { | 128 | { |
144 | if ( current > -1 ) { | 129 | if ( current > -1 ) { |
145 | if ( current < (int)history.count() - 1 ) { | 130 | if ( current < (int)history.count() - 1 ) { |
146 | ++current; | 131 | ++current; |
147 | return history.at( current )->execute( c ); | 132 | return history.at( current )->execute( c ); |
148 | } | 133 | } |
149 | } else { | 134 | } else { |
150 | if ( history.count() > 0 ) { | 135 | if ( history.count() > 0 ) { |
151 | ++current; | 136 | ++current; |
152 | return history.at( current )->execute( c ); | 137 | return history.at( current )->execute( c ); |
153 | } | 138 | } |
154 | } | 139 | } |
155 | return 0; | 140 | return 0; |
156 | } | 141 | } |
157 | 142 | ||
158 | bool QTextCommandHistory::isUndoAvailable() | 143 | bool QTextCommandHistory::isUndoAvailable() |
159 | { | 144 | { |
160 | return current > -1; | 145 | return current > -1; |
161 | } | 146 | } |
162 | 147 | ||
163 | bool QTextCommandHistory::isRedoAvailable() | 148 | bool QTextCommandHistory::isRedoAvailable() |
164 | { | 149 | { |
165 | return current > -1 && current < (int)history.count() - 1 || current == -1 && history.count() > 0; | 150 | return current > -1 && current < (int)history.count() - 1 || current == -1 && history.count() > 0; |
166 | } | 151 | } |
167 | 152 | ||
168 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 153 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
169 | 154 | ||
170 | QTextDeleteCommand::QTextDeleteCommand( QTextDocument *d, int i, int idx, const QMemArray<QTextStringChar> &str, | 155 | QTextDeleteCommand::QTextDeleteCommand( QTextDocument *d, int i, int idx, const QMemArray<QTextStringChar> &str, |
171 | const QByteArray& oldStyleInfo ) | 156 | const QByteArray& oldStyleInfo ) |
172 | : QTextCommand( d ), id( i ), index( idx ), parag( 0 ), text( str ), styleInformation( oldStyleInfo ) | 157 | : QTextCommand( d ), id( i ), index( idx ), parag( 0 ), text( str ), styleInformation( oldStyleInfo ) |
173 | { | 158 | { |
174 | for ( int j = 0; j < (int)text.size(); ++j ) { | 159 | for ( int j = 0; j < (int)text.size(); ++j ) { |
175 | if ( text[ j ].format() ) | 160 | if ( text[ j ].format() ) |
176 | text[ j ].format()->addRef(); | 161 | text[ j ].format()->addRef(); |
177 | } | 162 | } |
178 | } | 163 | } |
179 | 164 | ||
180 | QTextDeleteCommand::QTextDeleteCommand( QTextParagraph *p, int idx, const QMemArray<QTextStringChar> &str ) | 165 | QTextDeleteCommand::QTextDeleteCommand( QTextParagraph *p, int idx, const QMemArray<QTextStringChar> &str ) |
181 | : QTextCommand( 0 ), id( -1 ), index( idx ), parag( p ), text( str ) | 166 | : QTextCommand( 0 ), id( -1 ), index( idx ), parag( p ), text( str ) |
182 | { | 167 | { |
183 | for ( int i = 0; i < (int)text.size(); ++i ) { | 168 | for ( int i = 0; i < (int)text.size(); ++i ) { |
184 | if ( text[ i ].format() ) | 169 | if ( text[ i ].format() ) |
185 | text[ i ].format()->addRef(); | 170 | text[ i ].format()->addRef(); |
diff --git a/noncore/apps/opie-write/qstylesheet.cpp b/noncore/apps/opie-write/qstylesheet.cpp index 67cd828..ca634f7 100644 --- a/noncore/apps/opie-write/qstylesheet.cpp +++ b/noncore/apps/opie-write/qstylesheet.cpp | |||
@@ -1,170 +1,168 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** $Id$ | 2 | ** $Id$ |
3 | ** | 3 | ** |
4 | ** Implementation of the QStyleSheet class | 4 | ** Implementation of the QStyleSheet class |
5 | ** | 5 | ** |
6 | ** Created : 990101 | 6 | ** Created : 990101 |
7 | ** | 7 | ** |
8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. | 8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. |
9 | ** | 9 | ** |
10 | ** This file is part of the kernel module of the Qt GUI Toolkit. | 10 | ** This file is part of the kernel module of the Qt GUI Toolkit. |
11 | ** | 11 | ** |
12 | ** This file may be distributed under the terms of the Q Public License | 12 | ** This file may be distributed under the terms of the Q Public License |
13 | ** as defined by Trolltech AS of Norway and appearing in the file | 13 | ** as defined by Trolltech AS of Norway and appearing in the file |
14 | ** LICENSE.QPL included in the packaging of this file. | 14 | ** LICENSE.QPL included in the packaging of this file. |
15 | ** | 15 | ** |
16 | ** This file may be distributed and/or modified under the terms of the | 16 | ** This file may be distributed and/or modified under the terms of the |
17 | ** GNU General Public License version 2 as published by the Free Software | 17 | ** GNU General Public License version 2 as published by the Free Software |
18 | ** Foundation and appearing in the file LICENSE.GPL included in the | 18 | ** Foundation and appearing in the file LICENSE.GPL included in the |
19 | ** packaging of this file. | 19 | ** packaging of this file. |
20 | ** | 20 | ** |
21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition | 21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition |
22 | ** licenses may use this file in accordance with the Qt Commercial License | 22 | ** licenses may use this file in accordance with the Qt Commercial License |
23 | ** Agreement provided with the Software. | 23 | ** Agreement provided with the Software. |
24 | ** | 24 | ** |
25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
27 | ** | 27 | ** |
28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for | 28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for |
29 | ** information about Qt Commercial License Agreements. | 29 | ** information about Qt Commercial License Agreements. |
30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. | 30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. |
31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
32 | ** | 32 | ** |
33 | ** Contact info@trolltech.com if any conditions of this licensing are | 33 | ** Contact info@trolltech.com if any conditions of this licensing are |
34 | ** not clear to you. | 34 | ** not clear to you. |
35 | ** | 35 | ** |
36 | **********************************************************************/ | 36 | **********************************************************************/ |
37 | 37 | ||
38 | #include "qstylesheet.h" | 38 | #include "qstylesheet.h" |
39 | 39 | ||
40 | #include "qrichtext_p.h" | 40 | #include "qrichtext_p.h" |
41 | #include "qlayout.h" | ||
42 | #include "qpainter.h" | ||
43 | #include "qcleanuphandler.h" | 41 | #include "qcleanuphandler.h" |
44 | 42 | ||
45 | #include <stdio.h> | 43 | #include <stdio.h> |
46 | 44 | ||
47 | using namespace Qt3; | 45 | using namespace Qt3; |
48 | 46 | ||
49 | namespace Qt3 { | 47 | namespace Qt3 { |
50 | 48 | ||
51 | class QStyleSheetItemData | 49 | class QStyleSheetItemData |
52 | { | 50 | { |
53 | public: | 51 | public: |
54 | QStyleSheetItem::DisplayMode disp; | 52 | QStyleSheetItem::DisplayMode disp; |
55 | int fontitalic; | 53 | int fontitalic; |
56 | int fontunderline; | 54 | int fontunderline; |
57 | int fontstrikeout; | 55 | int fontstrikeout; |
58 | int fontweight; | 56 | int fontweight; |
59 | int fontsize; | 57 | int fontsize; |
60 | int fontsizelog; | 58 | int fontsizelog; |
61 | int fontsizestep; | 59 | int fontsizestep; |
62 | int lineSpacing; | 60 | int lineSpacing; |
63 | QString fontfamily; | 61 | QString fontfamily; |
64 | QStyleSheetItem *parentstyle; | 62 | QStyleSheetItem *parentstyle; |
65 | QString stylename; | 63 | QString stylename; |
66 | int ncolumns; | 64 | int ncolumns; |
67 | QColor col; | 65 | QColor col; |
68 | bool anchor; | 66 | bool anchor; |
69 | int align; | 67 | int align; |
70 | QStyleSheetItem::VerticalAlignment valign; | 68 | QStyleSheetItem::VerticalAlignment valign; |
71 | int margin[5]; | 69 | int margin[5]; |
72 | QStyleSheetItem::ListStyle list; | 70 | QStyleSheetItem::ListStyle list; |
73 | QStyleSheetItem::WhiteSpaceMode whitespacemode; | 71 | QStyleSheetItem::WhiteSpaceMode whitespacemode; |
74 | QString contxt; | 72 | QString contxt; |
75 | bool selfnest; | 73 | bool selfnest; |
76 | QStyleSheet* sheet; | 74 | QStyleSheet* sheet; |
77 | }; | 75 | }; |
78 | 76 | ||
79 | } | 77 | } |
80 | 78 | ||
81 | /*! | 79 | /*! |
82 | \class QStyleSheetItem qstylesheet.h | 80 | \class QStyleSheetItem qstylesheet.h |
83 | \brief The QStyleSheetItem class provides an encapsulation of a set of text styles. | 81 | \brief The QStyleSheetItem class provides an encapsulation of a set of text styles. |
84 | 82 | ||
85 | \ingroup text | 83 | \ingroup text |
86 | 84 | ||
87 | A style sheet item consists of a name and a set of attributes that | 85 | A style sheet item consists of a name and a set of attributes that |
88 | specifiy its font, color, etc. When used in a \link QStyleSheet | 86 | specifiy its font, color, etc. When used in a \link QStyleSheet |
89 | style sheet\endlink (see styleSheet()), items define the name() of | 87 | style sheet\endlink (see styleSheet()), items define the name() of |
90 | a rich text tag and the display property changes associated with | 88 | a rich text tag and the display property changes associated with |
91 | it. | 89 | it. |
92 | 90 | ||
93 | The \link QStyleSheetItem::DisplayMode display mode\endlink | 91 | The \link QStyleSheetItem::DisplayMode display mode\endlink |
94 | attribute indicates whether the item is a block, an inline element | 92 | attribute indicates whether the item is a block, an inline element |
95 | or a list element; see setDisplayMode(). The treatment of | 93 | or a list element; see setDisplayMode(). The treatment of |
96 | whitespace is controlled by the \link | 94 | whitespace is controlled by the \link |
97 | QStyleSheetItem::WhiteSpaceMode white space mode\endlink; see | 95 | QStyleSheetItem::WhiteSpaceMode white space mode\endlink; see |
98 | setWhiteSpaceMode(). An item's margins are set with setMargin(), | 96 | setWhiteSpaceMode(). An item's margins are set with setMargin(), |
99 | In the case of list items, the list style is set with | 97 | In the case of list items, the list style is set with |
100 | setListStyle(). An item may be a hypertext link anchor; see | 98 | setListStyle(). An item may be a hypertext link anchor; see |
101 | setAnchor(). Other attributes are set with setAlignment(), | 99 | setAnchor(). Other attributes are set with setAlignment(), |
102 | setVerticalAlignment(), setFontFamily(), setFontSize(), | 100 | setVerticalAlignment(), setFontFamily(), setFontSize(), |
103 | setFontWeight(), setFontItalic(), setFontUnderline(), | 101 | setFontWeight(), setFontItalic(), setFontUnderline(), |
104 | setFontStrikeOut and setColor(). | 102 | setFontStrikeOut and setColor(). |
105 | */ | 103 | */ |
106 | 104 | ||
107 | /*! \enum QStyleSheetItem::AdditionalStyleValues | 105 | /*! \enum QStyleSheetItem::AdditionalStyleValues |
108 | \internal | 106 | \internal |
109 | */ | 107 | */ |
110 | 108 | ||
111 | /*! | 109 | /*! |
112 | \enum QStyleSheetItem::WhiteSpaceMode | 110 | \enum QStyleSheetItem::WhiteSpaceMode |
113 | 111 | ||
114 | This enum defines the ways in which QStyleSheet can treat | 112 | This enum defines the ways in which QStyleSheet can treat |
115 | whitespace. | 113 | whitespace. |
116 | 114 | ||
117 | \value WhiteSpaceNormal any sequence of whitespace (including | 115 | \value WhiteSpaceNormal any sequence of whitespace (including |
118 | line-breaks) is equivalent to a single space. | 116 | line-breaks) is equivalent to a single space. |
119 | 117 | ||
120 | \value WhiteSpacePre whitespace must be output exactly as given | 118 | \value WhiteSpacePre whitespace must be output exactly as given |
121 | in the input. | 119 | in the input. |
122 | 120 | ||
123 | \value WhiteSpaceNoWrap multiple spaces are collapsed as with | 121 | \value WhiteSpaceNoWrap multiple spaces are collapsed as with |
124 | WhiteSpaceNormal, but no automatic line-breaks occur. To break | 122 | WhiteSpaceNormal, but no automatic line-breaks occur. To break |
125 | lines manually, use the \c{<br>} tag. | 123 | lines manually, use the \c{<br>} tag. |
126 | 124 | ||
127 | */ | 125 | */ |
128 | 126 | ||
129 | /*! | 127 | /*! |
130 | \enum QStyleSheetItem::Margin | 128 | \enum QStyleSheetItem::Margin |
131 | 129 | ||
132 | \value MarginLeft left margin | 130 | \value MarginLeft left margin |
133 | \value MarginRight right margin | 131 | \value MarginRight right margin |
134 | \value MarginTop top margin | 132 | \value MarginTop top margin |
135 | \value MarginBottom bottom margin | 133 | \value MarginBottom bottom margin |
136 | \value MarginAll all margins (left, right, top and bottom) | 134 | \value MarginAll all margins (left, right, top and bottom) |
137 | \value MarginVertical top and bottom margins | 135 | \value MarginVertical top and bottom margins |
138 | \value MarginHorizontal left and right margins | 136 | \value MarginHorizontal left and right margins |
139 | \value MarginFirstLine margin (indentation) of the first line of | 137 | \value MarginFirstLine margin (indentation) of the first line of |
140 | a paragarph (in addition to the MarginLeft of the paragraph) | 138 | a paragarph (in addition to the MarginLeft of the paragraph) |
141 | */ | 139 | */ |
142 | 140 | ||
143 | /*! | 141 | /*! |
144 | Constructs a new style called \a name for the stylesheet \a | 142 | Constructs a new style called \a name for the stylesheet \a |
145 | parent. | 143 | parent. |
146 | 144 | ||
147 | All properties in QStyleSheetItem are initially in the "do not | 145 | All properties in QStyleSheetItem are initially in the "do not |
148 | change" state, except \link QStyleSheetItem::DisplayMode display | 146 | change" state, except \link QStyleSheetItem::DisplayMode display |
149 | mode\endlink, which defaults to \c DisplayInline. | 147 | mode\endlink, which defaults to \c DisplayInline. |
150 | */ | 148 | */ |
151 | QStyleSheetItem::QStyleSheetItem( QStyleSheet* parent, const QString& name ) | 149 | QStyleSheetItem::QStyleSheetItem( QStyleSheet* parent, const QString& name ) |
152 | { | 150 | { |
153 | d = new QStyleSheetItemData; | 151 | d = new QStyleSheetItemData; |
154 | d->stylename = name.lower(); | 152 | d->stylename = name.lower(); |
155 | d->sheet = parent; | 153 | d->sheet = parent; |
156 | init(); | 154 | init(); |
157 | if (parent) | 155 | if (parent) |
158 | parent->insert( this ); | 156 | parent->insert( this ); |
159 | } | 157 | } |
160 | 158 | ||
161 | /*! | 159 | /*! |
162 | Copy constructor. Constructs a copy of \a other that is not bound | 160 | Copy constructor. Constructs a copy of \a other that is not bound |
163 | to any style sheet. | 161 | to any style sheet. |
164 | */ | 162 | */ |
165 | QStyleSheetItem::QStyleSheetItem( const QStyleSheetItem & other ) | 163 | QStyleSheetItem::QStyleSheetItem( const QStyleSheetItem & other ) |
166 | { | 164 | { |
167 | d = new QStyleSheetItemData; | 165 | d = new QStyleSheetItemData; |
168 | *d = *other.d; | 166 | *d = *other.d; |
169 | } | 167 | } |
170 | 168 | ||
diff --git a/noncore/apps/opie-write/qtextedit.cpp b/noncore/apps/opie-write/qtextedit.cpp index 82401c6..27dd515 100644 --- a/noncore/apps/opie-write/qtextedit.cpp +++ b/noncore/apps/opie-write/qtextedit.cpp | |||
@@ -1,190 +1,170 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** $Id$ | 2 | ** $Id$ |
3 | ** | 3 | ** |
4 | ** Implementation of the QTextEdit class | 4 | ** Implementation of the QTextEdit class |
5 | ** | 5 | ** |
6 | ** Created : 990101 | 6 | ** Created : 990101 |
7 | ** | 7 | ** |
8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. | 8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. |
9 | ** | 9 | ** |
10 | ** This file is part of the widgets module of the Qt GUI Toolkit. | 10 | ** This file is part of the widgets module of the Qt GUI Toolkit. |
11 | ** | 11 | ** |
12 | ** This file may be distributed under the terms of the Q Public License | 12 | ** This file may be distributed under the terms of the Q Public License |
13 | ** as defined by Trolltech AS of Norway and appearing in the file | 13 | ** as defined by Trolltech AS of Norway and appearing in the file |
14 | ** LICENSE.QPL included in the packaging of this file. | 14 | ** LICENSE.QPL included in the packaging of this file. |
15 | ** | 15 | ** |
16 | ** This file may be distributed and/or modified under the terms of the | 16 | ** This file may be distributed and/or modified under the terms of the |
17 | ** GNU General Public License version 2 as published by the Free Software | 17 | ** GNU General Public License version 2 as published by the Free Software |
18 | ** Foundation and appearing in the file LICENSE.GPL included in the | 18 | ** Foundation and appearing in the file LICENSE.GPL included in the |
19 | ** packaging of this file. | 19 | ** packaging of this file. |
20 | ** | 20 | ** |
21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition | 21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition |
22 | ** licenses may use this file in accordance with the Qt Commercial License | 22 | ** licenses may use this file in accordance with the Qt Commercial License |
23 | ** Agreement provided with the Software. | 23 | ** Agreement provided with the Software. |
24 | ** | 24 | ** |
25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
27 | ** | 27 | ** |
28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for | 28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for |
29 | ** information about Qt Commercial License Agreements. | 29 | ** information about Qt Commercial License Agreements. |
30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. | 30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. |
31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
32 | ** | 32 | ** |
33 | ** Contact info@trolltech.com if any conditions of this licensing are | 33 | ** Contact info@trolltech.com if any conditions of this licensing are |
34 | ** not clear to you. | 34 | ** not clear to you. |
35 | ** | 35 | ** |
36 | **********************************************************************/ | 36 | **********************************************************************/ |
37 | 37 | ||
38 | #include "qtextedit.h" | 38 | #include "qtextedit.h" |
39 | 39 | ||
40 | #include "qrichtext_p.h" | 40 | #include "qrichtext_p.h" |
41 | #include "qpainter.h" | ||
42 | #include "qpen.h" | ||
43 | #include "qbrush.h" | ||
44 | #include "qpixmap.h" | ||
45 | #include "qfont.h" | ||
46 | #include "qcolor.h" | ||
47 | #include "qstyle.h" | ||
48 | #include "qsize.h" | ||
49 | #include "qevent.h" | ||
50 | #include "qtimer.h" | ||
51 | #include "qapplication.h" | ||
52 | #include "qlistbox.h" | 41 | #include "qlistbox.h" |
53 | #include "qvbox.h" | ||
54 | #include "qapplication.h" | ||
55 | #include "qclipboard.h" | 42 | #include "qclipboard.h" |
56 | #include "qcolordialog.h" | ||
57 | #include "qfontdialog.h" | ||
58 | #include "qstylesheet.h" | ||
59 | #include "qdragobject.h" | ||
60 | #include "qurl.h" | ||
61 | #include "qcursor.h" | ||
62 | #include "qregexp.h" | ||
63 | #include "qpopupmenu.h" | 43 | #include "qpopupmenu.h" |
64 | 44 | ||
65 | #define ACCEL_KEY(k) "\t" + QString("Ctrl+" #k) | 45 | #define ACCEL_KEY(k) "\t" + QString("Ctrl+" #k) |
66 | 46 | ||
67 | using namespace Qt3; | 47 | using namespace Qt3; |
68 | 48 | ||
69 | static bool qt_enable_richtext_copy = FALSE; | 49 | static bool qt_enable_richtext_copy = FALSE; |
70 | 50 | ||
71 | struct QUndoRedoInfoPrivate | 51 | struct QUndoRedoInfoPrivate |
72 | { | 52 | { |
73 | QTextString text; | 53 | QTextString text; |
74 | }; | 54 | }; |
75 | 55 | ||
76 | namespace Qt3 { | 56 | namespace Qt3 { |
77 | 57 | ||
78 | class QTextEditPrivate | 58 | class QTextEditPrivate |
79 | { | 59 | { |
80 | public: | 60 | public: |
81 | QTextEditPrivate() | 61 | QTextEditPrivate() |
82 | :preeditStart(-1),preeditLength(-1),ensureCursorVisibleInShowEvent(FALSE) | 62 | :preeditStart(-1),preeditLength(-1),ensureCursorVisibleInShowEvent(FALSE) |
83 | { | 63 | { |
84 | for ( int i=0; i<7; i++ ) | 64 | for ( int i=0; i<7; i++ ) |
85 | id[i] = 0; | 65 | id[i] = 0; |
86 | } | 66 | } |
87 | int id[ 7 ]; | 67 | int id[ 7 ]; |
88 | int preeditStart; | 68 | int preeditStart; |
89 | int preeditLength; | 69 | int preeditLength; |
90 | bool ensureCursorVisibleInShowEvent; | 70 | bool ensureCursorVisibleInShowEvent; |
91 | QString scrollToAnchor; // used to deferr scrollToAnchor() until the show event when we are resized | 71 | QString scrollToAnchor; // used to deferr scrollToAnchor() until the show event when we are resized |
92 | }; | 72 | }; |
93 | 73 | ||
94 | } | 74 | } |
95 | 75 | ||
96 | static bool block_set_alignment = FALSE; | 76 | static bool block_set_alignment = FALSE; |
97 | 77 | ||
98 | /*! | 78 | /*! |
99 | \class QTextEdit qtextedit.h | 79 | \class QTextEdit qtextedit.h |
100 | \brief The QTextEdit widget provides a powerful single-page rich text editor. | 80 | \brief The QTextEdit widget provides a powerful single-page rich text editor. |
101 | 81 | ||
102 | \ingroup basic | 82 | \ingroup basic |
103 | \ingroup text | 83 | \ingroup text |
104 | \mainclass | 84 | \mainclass |
105 | 85 | ||
106 | \tableofcontents | 86 | \tableofcontents |
107 | 87 | ||
108 | \section1 Introduction and Concepts | 88 | \section1 Introduction and Concepts |
109 | 89 | ||
110 | QTextEdit is an advanced WYSIWYG viewer/editor supporting rich | 90 | QTextEdit is an advanced WYSIWYG viewer/editor supporting rich |
111 | text formatting using HTML-style tags. It is optimized to handle | 91 | text formatting using HTML-style tags. It is optimized to handle |
112 | large documents and to respond quickly to user input. | 92 | large documents and to respond quickly to user input. |
113 | 93 | ||
114 | QTextEdit has three modes of operation: | 94 | QTextEdit has three modes of operation: |
115 | \table | 95 | \table |
116 | \header \i Mode \i Command \i Notes | 96 | \header \i Mode \i Command \i Notes |
117 | \row \i Plain Text Editor \i setTextFormat(PlainText) | 97 | \row \i Plain Text Editor \i setTextFormat(PlainText) |
118 | \i Set text with setText(); text() returns plain text. Text | 98 | \i Set text with setText(); text() returns plain text. Text |
119 | attributes (e.g. colors) can be set, but plain text is always | 99 | attributes (e.g. colors) can be set, but plain text is always |
120 | returned.<sup>1.</sup> | 100 | returned.<sup>1.</sup> |
121 | \row \i Rich Text Editor \i setTextFormat(RichText) | 101 | \row \i Rich Text Editor \i setTextFormat(RichText) |
122 | \i Set text with setText(); text() returns rich text. Rich | 102 | \i Set text with setText(); text() returns rich text. Rich |
123 | text editing is fairly limited. You can't set margins or | 103 | text editing is fairly limited. You can't set margins or |
124 | insert images for example (although you can read and | 104 | insert images for example (although you can read and |
125 | correctly display files that have margins set and that | 105 | correctly display files that have margins set and that |
126 | include images). This mode is mostly useful for editing small | 106 | include images). This mode is mostly useful for editing small |
127 | amounts of rich text. <sup>2.</sup> | 107 | amounts of rich text. <sup>2.</sup> |
128 | \row \i Text Viewer<sup>3.</sup> \i setReadOnly(TRUE) | 108 | \row \i Text Viewer<sup>3.</sup> \i setReadOnly(TRUE) |
129 | \i Set text with setText() or append() (which has no undo | 109 | \i Set text with setText() or append() (which has no undo |
130 | history so is faster and uses less memory); text() returns | 110 | history so is faster and uses less memory); text() returns |
131 | plain or rich text depending on the textFormat(). This mode | 111 | plain or rich text depending on the textFormat(). This mode |
132 | can correctly display a large subset of HTML tags. | 112 | can correctly display a large subset of HTML tags. |
133 | \endtable | 113 | \endtable |
134 | 114 | ||
135 | <sup>1.</sup><small>We do \e not recommend using QTextEdit to | 115 | <sup>1.</sup><small>We do \e not recommend using QTextEdit to |
136 | create syntax highlighting editors because the current API is | 116 | create syntax highlighting editors because the current API is |
137 | insufficient for this purpose. We hope to release a more complete | 117 | insufficient for this purpose. We hope to release a more complete |
138 | API that will support syntax highlighting in a later | 118 | API that will support syntax highlighting in a later |
139 | release.</small> | 119 | release.</small> |
140 | 120 | ||
141 | <sup>2.</sup><small>A more complete API that supports setting | 121 | <sup>2.</sup><small>A more complete API that supports setting |
142 | margins, images, etc., is planned for a later Qt release.</small> | 122 | margins, images, etc., is planned for a later Qt release.</small> |
143 | 123 | ||
144 | <sup>3.</sup><small>Qt 3.1 will provide a Log Viewer mode which is | 124 | <sup>3.</sup><small>Qt 3.1 will provide a Log Viewer mode which is |
145 | optimised for the fast and memory efficient display of large | 125 | optimised for the fast and memory efficient display of large |
146 | amounts of read only text.</small> | 126 | amounts of read only text.</small> |
147 | 127 | ||
148 | We recommend that you always call setTextFormat() to set the mode | 128 | We recommend that you always call setTextFormat() to set the mode |
149 | you want to use. If you use \c AutoText then setText() and | 129 | you want to use. If you use \c AutoText then setText() and |
150 | append() will try to determine whether the text they are given is | 130 | append() will try to determine whether the text they are given is |
151 | plain text or rich text. If you use \c RichText then setText() and | 131 | plain text or rich text. If you use \c RichText then setText() and |
152 | append() will assume that the text they are given is rich text. | 132 | append() will assume that the text they are given is rich text. |
153 | insert() simply inserts the text it is given. | 133 | insert() simply inserts the text it is given. |
154 | 134 | ||
155 | QTextEdit works on paragraphs and characters. A paragraph is a | 135 | QTextEdit works on paragraphs and characters. A paragraph is a |
156 | formatted string which is word-wrapped to fit into the width of | 136 | formatted string which is word-wrapped to fit into the width of |
157 | the widget. By default when reading plain text, two newlines | 137 | the widget. By default when reading plain text, two newlines |
158 | signify a paragraph. A document consists of zero or more | 138 | signify a paragraph. A document consists of zero or more |
159 | paragraphs, indexed from 0. Characters are indexed on a | 139 | paragraphs, indexed from 0. Characters are indexed on a |
160 | per-paragraph basis, also indexed from 0. The words in the | 140 | per-paragraph basis, also indexed from 0. The words in the |
161 | paragraph are aligned in accordance with the paragraph's | 141 | paragraph are aligned in accordance with the paragraph's |
162 | alignment(). Paragraphs are separated by hard line breaks. Each | 142 | alignment(). Paragraphs are separated by hard line breaks. Each |
163 | character within a paragraph has its own attributes, for example, | 143 | character within a paragraph has its own attributes, for example, |
164 | font and color. | 144 | font and color. |
165 | 145 | ||
166 | The text edit documentation uses the following concepts: | 146 | The text edit documentation uses the following concepts: |
167 | \list | 147 | \list |
168 | \i \e{current format} -- | 148 | \i \e{current format} -- |
169 | this is the format at the current cursor position, \e and it | 149 | this is the format at the current cursor position, \e and it |
170 | is the format of the selected text if any. | 150 | is the format of the selected text if any. |
171 | \i \e{current paragraph} -- the paragraph which contains the | 151 | \i \e{current paragraph} -- the paragraph which contains the |
172 | cursor. | 152 | cursor. |
173 | \endlist | 153 | \endlist |
174 | 154 | ||
175 | QTextEdit can display images (using QMimeSourceFactory), lists and | 155 | QTextEdit can display images (using QMimeSourceFactory), lists and |
176 | tables. If the text is too large to view within the text edit's | 156 | tables. If the text is too large to view within the text edit's |
177 | viewport, scrollbars will appear. The text edit can load both | 157 | viewport, scrollbars will appear. The text edit can load both |
178 | plain text and HTML files (a subset of HTML 3.2 and 4). The | 158 | plain text and HTML files (a subset of HTML 3.2 and 4). The |
179 | rendering style and the set of valid tags are defined by a | 159 | rendering style and the set of valid tags are defined by a |
180 | styleSheet(). Custom tags can be created and placed in a custom | 160 | styleSheet(). Custom tags can be created and placed in a custom |
181 | style sheet. Change the style sheet with \l{setStyleSheet()}; see | 161 | style sheet. Change the style sheet with \l{setStyleSheet()}; see |
182 | QStyleSheet for details. The images identified by image tags are | 162 | QStyleSheet for details. The images identified by image tags are |
183 | displayed if they can be interpreted using the text edit's | 163 | displayed if they can be interpreted using the text edit's |
184 | \l{QMimeSourceFactory}; see setMimeSourceFactory(). | 164 | \l{QMimeSourceFactory}; see setMimeSourceFactory(). |
185 | 165 | ||
186 | If you want a text browser with more navigation use QTextBrowser. | 166 | If you want a text browser with more navigation use QTextBrowser. |
187 | If you just need to display a small piece of rich text use QLabel | 167 | If you just need to display a small piece of rich text use QLabel |
188 | or QSimpleRichText. | 168 | or QSimpleRichText. |
189 | 169 | ||
190 | If you create a new QTextEdit, and want to allow the user to edit | 170 | If you create a new QTextEdit, and want to allow the user to edit |
diff --git a/noncore/apps/oxygen/calcdlgui.cpp b/noncore/apps/oxygen/calcdlgui.cpp index f8dfde5..2bb8337 100644 --- a/noncore/apps/oxygen/calcdlgui.cpp +++ b/noncore/apps/oxygen/calcdlgui.cpp | |||
@@ -1,64 +1,63 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | application: : Oxygen | 2 | application: : Oxygen |
3 | 3 | ||
4 | begin : September 2002 | 4 | begin : September 2002 |
5 | copyright : ( C ) 2002 by Carsten Niehaus | 5 | copyright : ( C ) 2002 by Carsten Niehaus |
6 | email : cniehaus@handhelds.org | 6 | email : cniehaus@handhelds.org |
7 | **************************************************************************/ | 7 | **************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * ( at your option ) any later version. * | 14 | * ( at your option ) any later version. * |
15 | * * | 15 | * * |
16 | **************************************************************************/ | 16 | **************************************************************************/ |
17 | #include "oxygen.h" | ||
18 | 17 | ||
19 | #include "calcdlgui.h" | 18 | #include "calcdlgui.h" |
20 | #include "kmolcalc.h" | 19 | #include "kmolcalc.h" |
21 | #include <qlineedit.h> | 20 | #include <qlineedit.h> |
22 | #include <qmultilineedit.h> | 21 | #include <qmultilineedit.h> |
23 | #include <qpushbutton.h> | 22 | #include <qpushbutton.h> |
24 | 23 | ||
25 | calcDlgUI::calcDlgUI() : CalcDlg() | 24 | calcDlgUI::calcDlgUI() : CalcDlg() |
26 | { | 25 | { |
27 | kmolcalc = new KMolCalc; | 26 | kmolcalc = new KMolCalc; |
28 | connect( calculate, SIGNAL( clicked() ), this, SLOT( calc() ) ); | 27 | connect( calculate, SIGNAL( clicked() ), this, SLOT( calc() ) ); |
29 | connect( clear_fields, SIGNAL( clicked() ), this, SLOT( clear() ) ); | 28 | connect( clear_fields, SIGNAL( clicked() ), this, SLOT( clear() ) ); |
30 | result->setReadOnly( true ); | 29 | result->setReadOnly( true ); |
31 | } | 30 | } |
32 | 31 | ||
33 | void calcDlgUI::calc() | 32 | void calcDlgUI::calc() |
34 | { | 33 | { |
35 | QString compound( formula->text() ); | 34 | QString compound( formula->text() ); |
36 | if ( compound.isEmpty() ) { | 35 | if ( compound.isEmpty() ) { |
37 | clear(); | 36 | clear(); |
38 | return; | 37 | return; |
39 | } | 38 | } |
40 | QString errors( kmolcalc->readFormula( compound ) ); | 39 | QString errors( kmolcalc->readFormula( compound ) ); |
41 | QString mw, ea; | 40 | QString mw, ea; |
42 | double weight = kmolcalc->getWeight(); | 41 | double weight = kmolcalc->getWeight(); |
43 | if ( errors == "OK" ) { | 42 | if ( errors == "OK" ) { |
44 | mw.setNum( weight ); | 43 | mw.setNum( weight ); |
45 | ea = kmolcalc->getEmpFormula() + " :\n" + kmolcalc->getEA(); | 44 | ea = kmolcalc->getEmpFormula() + " :\n" + kmolcalc->getEA(); |
46 | } else { | 45 | } else { |
47 | mw = "???"; | 46 | mw = "???"; |
48 | ea = tr( "ERROR: \n" ).arg( errors )+ "\n"; | 47 | ea = tr( "ERROR: \n" ).arg( errors )+ "\n"; |
49 | } | 48 | } |
50 | result->setText( mw ); | 49 | result->setText( mw ); |
51 | anal_display->setText( ea ); | 50 | anal_display->setText( ea ); |
52 | } | 51 | } |
53 | 52 | ||
54 | /** | 53 | /** |
55 | * * Clear all text entry / result fields. | 54 | * * Clear all text entry / result fields. |
56 | * */ | 55 | * */ |
57 | void calcDlgUI::clear() | 56 | void calcDlgUI::clear() |
58 | { | 57 | { |
59 | formula->clear(); | 58 | formula->clear(); |
60 | result->clear(); | 59 | result->clear(); |
61 | anal_display->clear(); | 60 | anal_display->clear(); |
62 | } | 61 | } |
63 | 62 | ||
64 | 63 | ||
diff --git a/noncore/apps/oxygen/dataTable.cpp b/noncore/apps/oxygen/dataTable.cpp index e3906be..48e2b20 100644 --- a/noncore/apps/oxygen/dataTable.cpp +++ b/noncore/apps/oxygen/dataTable.cpp | |||
@@ -1,152 +1,149 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | application: : Oxygen | 2 | application: : Oxygen |
3 | 3 | ||
4 | begin : September 2002 | 4 | begin : September 2002 |
5 | copyright : ( C ) 2002 by Carsten Niehaus | 5 | copyright : ( C ) 2002 by Carsten Niehaus |
6 | email : cniehaus@handhelds.org | 6 | email : cniehaus@handhelds.org |
7 | **************************************************************************/ | 7 | **************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * ( at your option ) any later version. * | 14 | * ( at your option ) any later version. * |
15 | * * | 15 | * * |
16 | **************************************************************************/ | 16 | **************************************************************************/ |
17 | 17 | ||
18 | #include <qpe/config.h> | 18 | #include <qpe/config.h> |
19 | 19 | ||
20 | #include "dataTable.h" | 20 | #include "dataTable.h" |
21 | #include <qwidget.h> | ||
22 | #include <qhbox.h> | 21 | #include <qhbox.h> |
23 | #include <qlabel.h> | 22 | #include <qlabel.h> |
24 | #include <qfont.h> | ||
25 | #include <qlayout.h> | 23 | #include <qlayout.h> |
26 | #include <qpe/qpeapplication.h> | 24 | #include <qpe/qpeapplication.h> |
27 | 25 | ||
28 | #include <qstringlist.h> | ||
29 | 26 | ||
30 | OxydataWidget::OxydataWidget(QWidget *parent, const char *name, const QStringList &list ) : QWidget( parent,name ), names( list ) | 27 | OxydataWidget::OxydataWidget(QWidget *parent, const char *name, const QStringList &list ) : QWidget( parent,name ), names( list ) |
31 | { | 28 | { |
32 | QGridLayout *qgrid = new QGridLayout( this, 2,1 ); | 29 | QGridLayout *qgrid = new QGridLayout( this, 2,1 ); |
33 | 30 | ||
34 | QHBox *hbox = new QHBox( this ); | 31 | QHBox *hbox = new QHBox( this ); |
35 | left = new QLabel( hbox ); | 32 | left = new QLabel( hbox ); |
36 | middle = new QLabel( hbox ); | 33 | middle = new QLabel( hbox ); |
37 | right = new QLabel( hbox ); | 34 | right = new QLabel( hbox ); |
38 | 35 | ||
39 | right->setAlignment( AlignRight ); | 36 | right->setAlignment( AlignRight ); |
40 | middle->setAlignment( AlignHCenter ); | 37 | middle->setAlignment( AlignHCenter ); |
41 | 38 | ||
42 | QFont bf; | 39 | QFont bf; |
43 | bf.setBold( true ); | 40 | bf.setBold( true ); |
44 | bf.setPointSize( bf.pointSize()+2 ); | 41 | bf.setPointSize( bf.pointSize()+2 ); |
45 | middle->setFont( bf ); | 42 | middle->setFont( bf ); |
46 | 43 | ||
47 | DataTable = new OxydataTable( 9,2, this ); | 44 | DataTable = new OxydataTable( 9,2, this ); |
48 | setTable(); | 45 | setTable(); |
49 | 46 | ||
50 | qgrid->addWidget( hbox,0,0 ); | 47 | qgrid->addWidget( hbox,0,0 ); |
51 | qgrid->addWidget( DataTable,1,0 ); | 48 | qgrid->addWidget( DataTable,1,0 ); |
52 | } | 49 | } |
53 | 50 | ||
54 | void OxydataWidget::setElement( int el ) | 51 | void OxydataWidget::setElement( int el ) |
55 | { | 52 | { |
56 | QStringList::ConstIterator it = names.at(el); | 53 | QStringList::ConstIterator it = names.at(el); |
57 | Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File ); | 54 | Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File ); |
58 | 55 | ||
59 | configobj.setGroup( QString::number( el+1 )); | 56 | configobj.setGroup( QString::number( el+1 )); |
60 | 57 | ||
61 | left->setText( configobj.readEntry( "Symbol" ) ); | 58 | left->setText( configobj.readEntry( "Symbol" ) ); |
62 | middle->setText( *it ); | 59 | middle->setText( *it ); |
63 | right->setText( QString::number( el+1 ) ); | 60 | right->setText( QString::number( el+1 ) ); |
64 | 61 | ||
65 | 62 | ||
66 | DataTable->setText( 0,1,tr( "%1 u" ).arg( configobj.readEntry( "Weight" ) ) ); | 63 | DataTable->setText( 0,1,tr( "%1 u" ).arg( configobj.readEntry( "Weight" ) ) ); |
67 | DataTable->setText( 1,1,configobj.readEntry( "Block" ) ); | 64 | DataTable->setText( 1,1,configobj.readEntry( "Block" ) ); |
68 | DataTable->setText( 2,1,configobj.readEntry( "Group" ) ); | 65 | DataTable->setText( 2,1,configobj.readEntry( "Group" ) ); |
69 | DataTable->setText( 3,1,configobj.readEntry( "EN" ) ); | 66 | DataTable->setText( 3,1,configobj.readEntry( "EN" ) ); |
70 | DataTable->setText( 4,1,tr( "%1 pm" ).arg( configobj.readEntry( "AR" ) ) ) ; | 67 | DataTable->setText( 4,1,tr( "%1 pm" ).arg( configobj.readEntry( "AR" ) ) ) ; |
71 | DataTable->setText( 5,1,tr( "%1 J" ).arg( configobj.readEntry( "IE" ) ) ); | 68 | DataTable->setText( 5,1,tr( "%1 J" ).arg( configobj.readEntry( "IE" ) ) ); |
72 | DataTable->setText( 6,1,tr( "%1 g/cm^3" ).arg( configobj.readEntry( "Density" ) ) ); | 69 | DataTable->setText( 6,1,tr( "%1 g/cm^3" ).arg( configobj.readEntry( "Density" ) ) ); |
73 | DataTable->setText( 7,1,tr( "%1 K" ).arg( configobj.readEntry( "BP" ) ) ); | 70 | DataTable->setText( 7,1,tr( "%1 K" ).arg( configobj.readEntry( "BP" ) ) ); |
74 | DataTable->setText( 8,1,tr( "%1 K" ).arg( configobj.readEntry( "MP" ) ) ); | 71 | DataTable->setText( 8,1,tr( "%1 K" ).arg( configobj.readEntry( "MP" ) ) ); |
75 | } | 72 | } |
76 | 73 | ||
77 | void OxydataWidget::setTable() const | 74 | void OxydataWidget::setTable() const |
78 | { | 75 | { |
79 | DataTable->setText( 0,0, tr( "Weight" ) ); | 76 | DataTable->setText( 0,0, tr( "Weight" ) ); |
80 | DataTable->setText( 1,0, tr( "Block" )) ; | 77 | DataTable->setText( 1,0, tr( "Block" )) ; |
81 | DataTable->setText( 2,0, tr( "Group" )) ; | 78 | DataTable->setText( 2,0, tr( "Group" )) ; |
82 | DataTable->setText( 3,0, tr( "Electronegativity" )) ; | 79 | DataTable->setText( 3,0, tr( "Electronegativity" )) ; |
83 | DataTable->setText( 4,0, tr( "Atomic radius" )) ; | 80 | DataTable->setText( 4,0, tr( "Atomic radius" )) ; |
84 | DataTable->setText( 5,0, tr( "Ionization Energy" )) ; | 81 | DataTable->setText( 5,0, tr( "Ionization Energy" )) ; |
85 | DataTable->setText( 6,0, tr( "Density" )) ; | 82 | DataTable->setText( 6,0, tr( "Density" )) ; |
86 | DataTable->setText( 7,0, tr( "Boiling point" ) ); | 83 | DataTable->setText( 7,0, tr( "Boiling point" ) ); |
87 | DataTable->setText( 8,0, tr( "Melting point" ) ); | 84 | DataTable->setText( 8,0, tr( "Melting point" ) ); |
88 | } | 85 | } |
89 | 86 | ||
90 | void OxydataWidget::setLayout() | 87 | void OxydataWidget::setLayout() |
91 | { | 88 | { |
92 | #warning this is not working and I have no idea why! | 89 | #warning this is not working and I have no idea why! |
93 | // DataTable->setColumnWidth ( 0 , this->width()/2 ); | 90 | // DataTable->setColumnWidth ( 0 , this->width()/2 ); |
94 | // DataTable->setColumnWidth ( 1 , this->width()/2 ); | 91 | // DataTable->setColumnWidth ( 1 , this->width()/2 ); |
95 | 92 | ||
96 | //X DataTable->setColumnWidth ( 0 , 110 ); | 93 | //X DataTable->setColumnWidth ( 0 , 110 ); |
97 | //X DataTable->setColumnWidth ( 1 , 110 ); | 94 | //X DataTable->setColumnWidth ( 1 , 110 ); |
98 | } | 95 | } |
99 | 96 | ||
100 | OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent, | 97 | OxydataTable::OxydataTable(int numRows, int numCols, QWidget *parent, |
101 | const char *name) : QTable(numRows, numCols,parent, name) | 98 | const char *name) : QTable(numRows, numCols,parent, name) |
102 | { | 99 | { |
103 | 100 | ||
104 | for (int zeile = 0; zeile < numRows; zeile++) | 101 | for (int zeile = 0; zeile < numRows; zeile++) |
105 | for ( int spalte = 0; spalte < numCols; spalte++ ) | 102 | for ( int spalte = 0; spalte < numCols; spalte++ ) |
106 | { | 103 | { |
107 | OxydataQTI *testus = new OxydataQTI (this, OxydataQTI::Never, "hm" ); | 104 | OxydataQTI *testus = new OxydataQTI (this, OxydataQTI::Never, "hm" ); |
108 | setItem(zeile, spalte, (QTableItem*)testus); | 105 | setItem(zeile, spalte, (QTableItem*)testus); |
109 | } | 106 | } |
110 | 107 | ||
111 | 108 | ||
112 | this->setShowGrid( false ); | 109 | this->setShowGrid( false ); |
113 | this->setHScrollBarMode(QScrollView::AlwaysOff); | 110 | this->setHScrollBarMode(QScrollView::AlwaysOff); |
114 | this->horizontalHeader()->hide(); | 111 | this->horizontalHeader()->hide(); |
115 | this->verticalHeader()->hide(); | 112 | this->verticalHeader()->hide(); |
116 | this->setTopMargin( 0 ); | 113 | this->setTopMargin( 0 ); |
117 | this->setLeftMargin( 0 ); | 114 | this->setLeftMargin( 0 ); |
118 | } | 115 | } |
119 | 116 | ||
120 | void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected) | 117 | void OxydataTable::paintCell( QPainter *p, int row, int col, const QRect &cr, bool selected) |
121 | { | 118 | { |
122 | if ( cr.width() == 0 || cr.height() == 0 ) | 119 | if ( cr.width() == 0 || cr.height() == 0 ) |
123 | return; | 120 | return; |
124 | selected = FALSE; | 121 | selected = FALSE; |
125 | 122 | ||
126 | QTableItem *itm = item( row, col ); | 123 | QTableItem *itm = item( row, col ); |
127 | QColorGroup colgrp = colorGroup(); | 124 | QColorGroup colgrp = colorGroup(); |
128 | if ( itm ) | 125 | if ( itm ) |
129 | { | 126 | { |
130 | if ( row%2 ) | 127 | if ( row%2 ) |
131 | colgrp.setColor( QColorGroup::Base, QColor( 180,200,210 ) ); | 128 | colgrp.setColor( QColorGroup::Base, QColor( 180,200,210 ) ); |
132 | else | 129 | else |
133 | colgrp.setColor( QColorGroup::Base, QColor( 230,235,235 ) ); | 130 | colgrp.setColor( QColorGroup::Base, QColor( 230,235,235 ) ); |
134 | p->save(); | 131 | p->save(); |
135 | itm->paint( p, colgrp, cr, selected ); | 132 | itm->paint( p, colgrp, cr, selected ); |
136 | p->restore(); | 133 | p->restore(); |
137 | } | 134 | } |
138 | } | 135 | } |
139 | 136 | ||
140 | OxydataQTI::OxydataQTI(QTable * table, EditType et, const QString & text ) | 137 | OxydataQTI::OxydataQTI(QTable * table, EditType et, const QString & text ) |
141 | : QTableItem ( table, et, text ) | 138 | : QTableItem ( table, et, text ) |
142 | { | 139 | { |
143 | } | 140 | } |
144 | 141 | ||
145 | int OxydataQTI::alignment() const | 142 | int OxydataQTI::alignment() const |
146 | { | 143 | { |
147 | if ( col()%2 ) | 144 | if ( col()%2 ) |
148 | { | 145 | { |
149 | return AlignRight | AlignVCenter; | 146 | return AlignRight | AlignVCenter; |
150 | }else return AlignLeft | AlignVCenter; | 147 | }else return AlignLeft | AlignVCenter; |
151 | }; | 148 | }; |
152 | 149 | ||
diff --git a/noncore/apps/oxygen/datawidgetui.cpp b/noncore/apps/oxygen/datawidgetui.cpp index e1d6e41..dcb80e5 100644 --- a/noncore/apps/oxygen/datawidgetui.cpp +++ b/noncore/apps/oxygen/datawidgetui.cpp | |||
@@ -1,53 +1,48 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | application: : Oxygen | 2 | application: : Oxygen |
3 | 3 | ||
4 | begin : September 2002 | 4 | begin : September 2002 |
5 | copyright : ( C ) 2002 by Carsten Niehaus | 5 | copyright : ( C ) 2002 by Carsten Niehaus |
6 | email : cniehaus@handhelds.org | 6 | email : cniehaus@handhelds.org |
7 | **************************************************************************/ | 7 | **************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * ( at your option ) any later version. * | 14 | * ( at your option ) any later version. * |
15 | * * | 15 | * * |
16 | **************************************************************************/ | 16 | **************************************************************************/ |
17 | 17 | ||
18 | #include "datawidgetui.h" | 18 | #include "datawidgetui.h" |
19 | #include "dataTable.h" | 19 | #include "dataTable.h" |
20 | 20 | ||
21 | #include <qpe/config.h> | ||
22 | #include <qstring.h> | ||
23 | #include <qcombobox.h> | 21 | #include <qcombobox.h> |
24 | #include <qlayout.h> | 22 | #include <qlayout.h> |
25 | #include <qhbox.h> | ||
26 | #include <qlabel.h> | ||
27 | #include <qpe/qpeapplication.h> | ||
28 | 23 | ||
29 | dataWidgetUI::dataWidgetUI(const QStringList &list) : QWidget() | 24 | dataWidgetUI::dataWidgetUI(const QStringList &list) : QWidget() |
30 | { | 25 | { |
31 | names = list; | 26 | names = list; |
32 | 27 | ||
33 | this->setCaption( tr( "Chemical Data" )); | 28 | this->setCaption( tr( "Chemical Data" )); |
34 | QGridLayout *qgrid = new QGridLayout( this, 2,1 ); | 29 | QGridLayout *qgrid = new QGridLayout( this, 2,1 ); |
35 | 30 | ||
36 | dataCombo = new QComboBox( this ); | 31 | dataCombo = new QComboBox( this ); |
37 | 32 | ||
38 | //read in all names of the 118 elements | 33 | //read in all names of the 118 elements |
39 | int i = 0; | 34 | int i = 0; |
40 | for ( QStringList::ConstIterator it = names.begin() ; it != names.end() ; ++it,i++) | 35 | for ( QStringList::ConstIterator it = names.begin() ; it != names.end() ; ++it,i++) |
41 | { | 36 | { |
42 | dataCombo->insertItem( QString::number( i+1 )+" - "+*it ); | 37 | dataCombo->insertItem( QString::number( i+1 )+" - "+*it ); |
43 | } | 38 | } |
44 | OxydataWidget *oxyDW = new OxydataWidget(this, "OxydataWidget_oxyDW", names); | 39 | OxydataWidget *oxyDW = new OxydataWidget(this, "OxydataWidget_oxyDW", names); |
45 | connect ( dataCombo, SIGNAL( activated(int) ), oxyDW, SLOT( setElement(int) ) ); | 40 | connect ( dataCombo, SIGNAL( activated(int) ), oxyDW, SLOT( setElement(int) ) ); |
46 | oxyDW->setElement( 0 ); | 41 | oxyDW->setElement( 0 ); |
47 | oxyDW->setLayout(); | 42 | oxyDW->setLayout(); |
48 | 43 | ||
49 | qgrid->addWidget( dataCombo, 0,0); | 44 | qgrid->addWidget( dataCombo, 0,0); |
50 | qgrid->addWidget( oxyDW , 1,0 ); | 45 | qgrid->addWidget( oxyDW , 1,0 ); |
51 | } | 46 | } |
52 | 47 | ||
53 | 48 | ||
diff --git a/noncore/apps/oxygen/kmolcalc.cpp b/noncore/apps/oxygen/kmolcalc.cpp index 7a47942..b9f5209 100644 --- a/noncore/apps/oxygen/kmolcalc.cpp +++ b/noncore/apps/oxygen/kmolcalc.cpp | |||
@@ -1,145 +1,142 @@ | |||
1 | /* | 1 | /* |
2 | * kmolcalc.cpp | 2 | * kmolcalc.cpp |
3 | * | 3 | * |
4 | * Copyright (C) 2000,2001 Tomislav Gountchev <tomi@idiom.com> | 4 | * Copyright (C) 2000,2001 Tomislav Gountchev <tomi@idiom.com> |
5 | * Copyright (C) 2002 Carsten Niehaus <cniehaus@handhelds.org> | 5 | * Copyright (C) 2002 Carsten Niehaus <cniehaus@handhelds.org> |
6 | */ | 6 | */ |
7 | 7 | ||
8 | /** | 8 | /** |
9 | * KMOLCALC is the calculation engine. It knows about a hashtable of user defined atomic | 9 | * KMOLCALC is the calculation engine. It knows about a hashtable of user defined atomic |
10 | * weights and group definitions ELSTABLE, and the currently processed formula, stored | 10 | * weights and group definitions ELSTABLE, and the currently processed formula, stored |
11 | * as a list of elements and their coefficients, ELEMENTS. | 11 | * as a list of elements and their coefficients, ELEMENTS. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include "kmolcalc.h" | 14 | #include "kmolcalc.h" |
15 | #include <qdict.h> | ||
16 | #include <qdir.h> | ||
17 | #include <qfile.h> | ||
18 | #include <qpe/qpeapplication.h> | 15 | #include <qpe/qpeapplication.h> |
19 | 16 | ||
20 | 17 | ||
21 | /** | 18 | /** |
22 | * Construct a new calculator object. | 19 | * Construct a new calculator object. |
23 | */ | 20 | */ |
24 | KMolCalc::KMolCalc() { | 21 | KMolCalc::KMolCalc() { |
25 | elements = new ElementList; | 22 | elements = new ElementList; |
26 | elstable = NULL; | 23 | elstable = NULL; |
27 | readElstable(); | 24 | readElstable(); |
28 | } | 25 | } |
29 | 26 | ||
30 | KMolCalc::~KMolCalc() { | 27 | KMolCalc::~KMolCalc() { |
31 | delete elements; | 28 | delete elements; |
32 | } | 29 | } |
33 | 30 | ||
34 | void KMolCalc::readElstable() { | 31 | void KMolCalc::readElstable() { |
35 | weight = -1; // not calculated yet | 32 | weight = -1; // not calculated yet |
36 | if (elstable) delete elstable; | 33 | if (elstable) delete elstable; |
37 | elstable = new QDict<SubUnit> (197, TRUE); | 34 | elstable = new QDict<SubUnit> (197, TRUE); |
38 | elstable->setAutoDelete(TRUE); | 35 | elstable->setAutoDelete(TRUE); |
39 | mwfile = QPEApplication::qpeDir() +"share/oxygen/kmolweights"; | 36 | mwfile = QPEApplication::qpeDir() +"share/oxygen/kmolweights"; |
40 | QFile f(mwfile); | 37 | QFile f(mwfile); |
41 | if (f.exists()) readMwfile(f); | 38 | if (f.exists()) readMwfile(f); |
42 | } | 39 | } |
43 | 40 | ||
44 | 41 | ||
45 | /** | 42 | /** |
46 | * Parse a string S and construct the ElementList this->ELEMENTS, representing the | 43 | * Parse a string S and construct the ElementList this->ELEMENTS, representing the |
47 | * composition of S. Returns 0 if successful, or an error code (currently -1) if | 44 | * composition of S. Returns 0 if successful, or an error code (currently -1) if |
48 | * parsing failed. | 45 | * parsing failed. |
49 | * The elements is S must be valid element or group symbols, as stored in this->ELSTABLE. | 46 | * The elements is S must be valid element or group symbols, as stored in this->ELSTABLE. |
50 | * See help files for correct formula syntax. | 47 | * See help files for correct formula syntax. |
51 | */ | 48 | */ |
52 | QString KMolCalc::readFormula(const QString& s) { | 49 | QString KMolCalc::readFormula(const QString& s) { |
53 | weight = -1; | 50 | weight = -1; |
54 | if (elements) delete elements; | 51 | if (elements) delete elements; |
55 | elements = new ElementList; | 52 | elements = new ElementList; |
56 | return KMolCalc::readGroup(s, elements); | 53 | return KMolCalc::readGroup(s, elements); |
57 | } | 54 | } |
58 | 55 | ||
59 | // read a formula group recursively. Called by readFormula. | 56 | // read a formula group recursively. Called by readFormula. |
60 | QString KMolCalc::readGroup(const QString& s, ElementList* els) { | 57 | QString KMolCalc::readGroup(const QString& s, ElementList* els) { |
61 | if (s.isEmpty()) return QString ("Enter a formula."); //ERROR | 58 | if (s.isEmpty()) return QString ("Enter a formula."); //ERROR |
62 | int sl = s.length(); | 59 | int sl = s.length(); |
63 | int i = 0; | 60 | int i = 0; |
64 | QString errors ("OK"); | 61 | QString errors ("OK"); |
65 | bool ok = TRUE; | 62 | bool ok = TRUE; |
66 | while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; | 63 | while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; |
67 | double prefix = (i == 0 ? 1 : s.left(i).toDouble(&ok)); | 64 | double prefix = (i == 0 ? 1 : s.left(i).toDouble(&ok)); |
68 | if (! ok || i == sl || prefix == 0) return QString ("Bad formula."); // ERROR | 65 | if (! ok || i == sl || prefix == 0) return QString ("Bad formula."); // ERROR |
69 | ElementList* elstemp = new ElementList; | 66 | ElementList* elstemp = new ElementList; |
70 | while (i < sl) { | 67 | while (i < sl) { |
71 | int j = i; | 68 | int j = i; |
72 | if (s[i] == '(') { | 69 | if (s[i] == '(') { |
73 | ElementList* inner = new ElementList; | 70 | ElementList* inner = new ElementList; |
74 | int level = 1; // count levels of nested ( ). | 71 | int level = 1; // count levels of nested ( ). |
75 | while (1) { | 72 | while (1) { |
76 | if (i++ == sl) { | 73 | if (i++ == sl) { |
77 | delete inner; | 74 | delete inner; |
78 | delete elstemp; | 75 | delete elstemp; |
79 | return QString ("Bad formula."); //ERROR | 76 | return QString ("Bad formula."); //ERROR |
80 | } | 77 | } |
81 | if (s[i] == '(') level++; | 78 | if (s[i] == '(') level++; |
82 | if (s[i] == ')') level--; | 79 | if (s[i] == ')') level--; |
83 | if (level == 0) break; | 80 | if (level == 0) break; |
84 | } | 81 | } |
85 | errors = KMolCalc::readGroup(s.mid(j+1, i-j-1), inner); | 82 | errors = KMolCalc::readGroup(s.mid(j+1, i-j-1), inner); |
86 | j = ++i; | 83 | j = ++i; |
87 | while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; | 84 | while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; |
88 | double suffix = (i == j ? 1 : s.mid(j, i-j).toDouble(&ok)); | 85 | double suffix = (i == j ? 1 : s.mid(j, i-j).toDouble(&ok)); |
89 | if (! ok || suffix == 0) { | 86 | if (! ok || suffix == 0) { |
90 | delete inner; | 87 | delete inner; |
91 | delete elstemp; | 88 | delete elstemp; |
92 | return QString ("Bad formula."); // ERROR | 89 | return QString ("Bad formula."); // ERROR |
93 | } | 90 | } |
94 | inner->addTo(*elstemp, suffix); | 91 | inner->addTo(*elstemp, suffix); |
95 | delete inner; | 92 | delete inner; |
96 | inner = NULL; | 93 | inner = NULL; |
97 | } else if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) { | 94 | } else if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) { |
98 | while (++i < sl && ((s[i] >= 'a' && s[i] <= 'z') || s[i] == '*' || | 95 | while (++i < sl && ((s[i] >= 'a' && s[i] <= 'z') || s[i] == '*' || |
99 | s[i] == '\'')); | 96 | s[i] == '\'')); |
100 | QString elname = s.mid(j, i-j); | 97 | QString elname = s.mid(j, i-j); |
101 | j = i; | 98 | j = i; |
102 | while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; | 99 | while (i < sl && ((s[i] <= '9' && s[i] >= '0') || s[i] == '.')) i++; |
103 | double suffix = (i == j ? 1 : s.mid(j, i-j).toDouble(&ok)); | 100 | double suffix = (i == j ? 1 : s.mid(j, i-j).toDouble(&ok)); |
104 | if (! ok || suffix == 0) { | 101 | if (! ok || suffix == 0) { |
105 | delete elstemp; | 102 | delete elstemp; |
106 | return QString ("Bad formula."); // ERROR | 103 | return QString ("Bad formula."); // ERROR |
107 | } | 104 | } |
108 | SubUnit* group = elstable->find(elname); | 105 | SubUnit* group = elstable->find(elname); |
109 | if (group == 0) { | 106 | if (group == 0) { |
110 | delete elstemp; | 107 | delete elstemp; |
111 | return QString ("Undefined symbol: ") + elname; //ERROR | 108 | return QString ("Undefined symbol: ") + elname; //ERROR |
112 | } | 109 | } |
113 | group->addTo(*elstemp, suffix); | 110 | group->addTo(*elstemp, suffix); |
114 | } else if (s[i] == '+') { | 111 | } else if (s[i] == '+') { |
115 | if (elstemp->isEmpty()) { | 112 | if (elstemp->isEmpty()) { |
116 | delete elstemp; | 113 | delete elstemp; |
117 | return QString ("Bad formula."); //ERROR | 114 | return QString ("Bad formula."); //ERROR |
118 | } | 115 | } |
119 | elstemp->addTo(*els, prefix); | 116 | elstemp->addTo(*els, prefix); |
120 | delete elstemp; | 117 | delete elstemp; |
121 | errors = KMolCalc::readGroup(s.mid(i+1, sl-i-1), els); | 118 | errors = KMolCalc::readGroup(s.mid(i+1, sl-i-1), els); |
122 | return errors; | 119 | return errors; |
123 | } else { | 120 | } else { |
124 | delete elstemp; | 121 | delete elstemp; |
125 | return QString ("Bad formula."); //ERROR | 122 | return QString ("Bad formula."); //ERROR |
126 | } | 123 | } |
127 | } | 124 | } |
128 | elstemp->addTo(*els, prefix); | 125 | elstemp->addTo(*els, prefix); |
129 | delete elstemp; | 126 | delete elstemp; |
130 | return errors; | 127 | return errors; |
131 | } | 128 | } |
132 | 129 | ||
133 | /** | 130 | /** |
134 | * Calculate and return the molecular weight of the current chemical formula. | 131 | * Calculate and return the molecular weight of the current chemical formula. |
135 | */ | 132 | */ |
136 | double KMolCalc::getWeight() { | 133 | double KMolCalc::getWeight() { |
137 | if (weight == -1) weight = elements->getWeight(elstable); | 134 | if (weight == -1) weight = elements->getWeight(elstable); |
138 | return weight; | 135 | return weight; |
139 | } | 136 | } |
140 | 137 | ||
141 | /** | 138 | /** |
142 | * Return the elemental composition of the current formula, as a string of tab-separated | 139 | * Return the elemental composition of the current formula, as a string of tab-separated |
143 | * element - percentage pairs, separated by newlines. | 140 | * element - percentage pairs, separated by newlines. |
144 | */ | 141 | */ |
145 | QString KMolCalc::getEA() { | 142 | QString KMolCalc::getEA() { |
diff --git a/noncore/apps/oxygen/oxyframe.cpp b/noncore/apps/oxygen/oxyframe.cpp index 5a4dbbe..8cc520e 100644 --- a/noncore/apps/oxygen/oxyframe.cpp +++ b/noncore/apps/oxygen/oxyframe.cpp | |||
@@ -1,41 +1,39 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | application: : Oxygen | 2 | application: : Oxygen |
3 | 3 | ||
4 | begin : September 2002 | 4 | begin : September 2002 |
5 | copyright : ( C ) 2002 by Carsten Niehaus | 5 | copyright : ( C ) 2002 by Carsten Niehaus |
6 | email : cniehaus@handhelds.org | 6 | email : cniehaus@handhelds.org |
7 | **************************************************************************/ | 7 | **************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * ( at your option ) any later version. * | 14 | * ( at your option ) any later version. * |
15 | * * | 15 | * * |
16 | **************************************************************************/ | 16 | **************************************************************************/ |
17 | #include "oxygen.h" | ||
18 | 17 | ||
19 | #include <qpe/config.h> | ||
20 | #include "oxyframe.h" | 18 | #include "oxyframe.h" |
21 | 19 | ||
22 | OxyFrame::OxyFrame(QWidget *parent, const char *name, QString symbol ) | 20 | OxyFrame::OxyFrame(QWidget *parent, const char *name, QString symbol ) |
23 | : QLabel(parent,name) | 21 | : QLabel(parent,name) |
24 | { | 22 | { |
25 | N = name; | 23 | N = name; |
26 | this->setFrameStyle( QFrame::Box ); | 24 | this->setFrameStyle( QFrame::Box ); |
27 | this->setLineWidth( 0 ); | 25 | this->setLineWidth( 0 ); |
28 | this->setMidLineWidth( 1 ); | 26 | this->setMidLineWidth( 1 ); |
29 | this->setFrameShadow( QFrame::Sunken ); | 27 | this->setFrameShadow( QFrame::Sunken ); |
30 | setMinimumSize(6,6); | 28 | setMinimumSize(6,6); |
31 | setScaledContents( true ); | 29 | setScaledContents( true ); |
32 | QFont font; | 30 | QFont font; |
33 | font.setWeight(QFont::Light); | 31 | font.setWeight(QFont::Light); |
34 | font.setPixelSize(3); | 32 | font.setPixelSize(3); |
35 | setFont( font ); | 33 | setFont( font ); |
36 | setText( symbol ); | 34 | setText( symbol ); |
37 | } | 35 | } |
38 | 36 | ||
39 | void OxyFrame::mousePressEvent ( QMouseEvent* /*e*/ ){ | 37 | void OxyFrame::mousePressEvent ( QMouseEvent* /*e*/ ){ |
40 | emit num( N ); | 38 | emit num( N ); |
41 | }; | 39 | }; |
diff --git a/noncore/apps/oxygen/oxygen.cpp b/noncore/apps/oxygen/oxygen.cpp index 5bdc2aa..5ea97bf 100644 --- a/noncore/apps/oxygen/oxygen.cpp +++ b/noncore/apps/oxygen/oxygen.cpp | |||
@@ -1,150 +1,148 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | application: : Oxygen | 2 | application: : Oxygen |
3 | 3 | ||
4 | begin : September 2002 | 4 | begin : September 2002 |
5 | copyright : ( C ) 2002 by Carsten Niehaus | 5 | copyright : ( C ) 2002 by Carsten Niehaus |
6 | email : cniehaus@handhelds.org | 6 | email : cniehaus@handhelds.org |
7 | **************************************************************************/ | 7 | **************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * ( at your option ) any later version. * | 14 | * ( at your option ) any later version. * |
15 | * * | 15 | * * |
16 | **************************************************************************/ | 16 | **************************************************************************/ |
17 | #include "oxygen.h" | 17 | #include "oxygen.h" |
18 | 18 | ||
19 | #include <qapplication.h> | ||
20 | #include <qtabwidget.h> | 19 | #include <qtabwidget.h> |
21 | 20 | ||
22 | #include "calcdlg.h" | ||
23 | #include "calcdlgui.h" | 21 | #include "calcdlgui.h" |
24 | #include "datawidgetui.h" | 22 | #include "datawidgetui.h" |
25 | #include "psewidget.h" | 23 | #include "psewidget.h" |
26 | 24 | ||
27 | 25 | ||
28 | Oxygen::Oxygen( QWidget *parent, const char *name, WFlags f) : QMainWindow( parent, name, f ) | 26 | Oxygen::Oxygen( QWidget *parent, const char *name, WFlags f) : QMainWindow( parent, name, f ) |
29 | { | 27 | { |
30 | loadNames(); | 28 | loadNames(); |
31 | calcDlgUI *CalcDlgUI = new calcDlgUI(); | 29 | calcDlgUI *CalcDlgUI = new calcDlgUI(); |
32 | PSEWidget *pse = new PSEWidget(names); | 30 | PSEWidget *pse = new PSEWidget(names); |
33 | dataWidgetUI *DataWidgetUI = new dataWidgetUI(names); | 31 | dataWidgetUI *DataWidgetUI = new dataWidgetUI(names); |
34 | 32 | ||
35 | setCaption( tr( "Oxygen" ) ); | 33 | setCaption( tr( "Oxygen" ) ); |
36 | 34 | ||
37 | QTabWidget *tabw = new QTabWidget( this , "qtab" ); | 35 | QTabWidget *tabw = new QTabWidget( this , "qtab" ); |
38 | tabw->addTab( pse, tr( "PSE" )); | 36 | tabw->addTab( pse, tr( "PSE" )); |
39 | tabw->addTab( DataWidgetUI , tr( "Data" ) ); | 37 | tabw->addTab( DataWidgetUI , tr( "Data" ) ); |
40 | tabw->addTab( CalcDlgUI, tr( "Calculations" ) ); | 38 | tabw->addTab( CalcDlgUI, tr( "Calculations" ) ); |
41 | setCentralWidget( tabw ); | 39 | setCentralWidget( tabw ); |
42 | } | 40 | } |
43 | 41 | ||
44 | void Oxygen::loadNames() | 42 | void Oxygen::loadNames() |
45 | { | 43 | { |
46 | names.clear(); | 44 | names.clear(); |
47 | names.append( tr("Hydrogen") ); | 45 | names.append( tr("Hydrogen") ); |
48 | names.append( tr("Helium") ); | 46 | names.append( tr("Helium") ); |
49 | names.append( tr("Lithium") ); | 47 | names.append( tr("Lithium") ); |
50 | names.append( tr("Beryllium") ); | 48 | names.append( tr("Beryllium") ); |
51 | names.append( tr("Boron") ); | 49 | names.append( tr("Boron") ); |
52 | names.append( tr("Carbon") ); | 50 | names.append( tr("Carbon") ); |
53 | names.append( tr("Nitrogen") ); | 51 | names.append( tr("Nitrogen") ); |
54 | names.append( tr("Oxygen") ); | 52 | names.append( tr("Oxygen") ); |
55 | names.append( tr("Fluorine") ); | 53 | names.append( tr("Fluorine") ); |
56 | names.append( tr("Neon") ); | 54 | names.append( tr("Neon") ); |
57 | names.append( tr("Sodium") ); | 55 | names.append( tr("Sodium") ); |
58 | names.append( tr("Magnesium") ); | 56 | names.append( tr("Magnesium") ); |
59 | names.append( tr("Aluminum") ); | 57 | names.append( tr("Aluminum") ); |
60 | names.append( tr("Silicon") ); | 58 | names.append( tr("Silicon") ); |
61 | names.append( tr("Phosphorus") ); | 59 | names.append( tr("Phosphorus") ); |
62 | names.append( tr("Sulfur") ); | 60 | names.append( tr("Sulfur") ); |
63 | names.append( tr("Chlorine") ); | 61 | names.append( tr("Chlorine") ); |
64 | names.append( tr("Argon") ); | 62 | names.append( tr("Argon") ); |
65 | names.append( tr("Potassium") ); | 63 | names.append( tr("Potassium") ); |
66 | names.append( tr("Calcium") ); | 64 | names.append( tr("Calcium") ); |
67 | names.append( tr("Scandium") ); | 65 | names.append( tr("Scandium") ); |
68 | names.append( tr("Titanium") ); | 66 | names.append( tr("Titanium") ); |
69 | names.append( tr("Vanadium") ); | 67 | names.append( tr("Vanadium") ); |
70 | names.append( tr("Chromium") ); | 68 | names.append( tr("Chromium") ); |
71 | names.append( tr("Manganese") ); | 69 | names.append( tr("Manganese") ); |
72 | names.append( tr("Iron") ); | 70 | names.append( tr("Iron") ); |
73 | names.append( tr("Cobalt") ); | 71 | names.append( tr("Cobalt") ); |
74 | names.append( tr("Nickel") ); | 72 | names.append( tr("Nickel") ); |
75 | names.append( tr("Copper") ); | 73 | names.append( tr("Copper") ); |
76 | names.append( tr("Zinc") ); | 74 | names.append( tr("Zinc") ); |
77 | names.append( tr("Gallium") ); | 75 | names.append( tr("Gallium") ); |
78 | names.append( tr("Germanium") ); | 76 | names.append( tr("Germanium") ); |
79 | names.append( tr("Arsenic") ); | 77 | names.append( tr("Arsenic") ); |
80 | names.append( tr("Selenium") ); | 78 | names.append( tr("Selenium") ); |
81 | names.append( tr("Bromine") ); | 79 | names.append( tr("Bromine") ); |
82 | names.append( tr("Krypton") ); | 80 | names.append( tr("Krypton") ); |
83 | names.append( tr("Rubidium") ); | 81 | names.append( tr("Rubidium") ); |
84 | names.append( tr("Strontium") ); | 82 | names.append( tr("Strontium") ); |
85 | names.append( tr("Yttrium") ); | 83 | names.append( tr("Yttrium") ); |
86 | names.append( tr("Zirconium") ); | 84 | names.append( tr("Zirconium") ); |
87 | names.append( tr("Niobium") ); | 85 | names.append( tr("Niobium") ); |
88 | names.append( tr("Molybdenum") ); | 86 | names.append( tr("Molybdenum") ); |
89 | names.append( tr("Technetium") ); | 87 | names.append( tr("Technetium") ); |
90 | names.append( tr("Ruthenium") ); | 88 | names.append( tr("Ruthenium") ); |
91 | names.append( tr("Rhodium") ); | 89 | names.append( tr("Rhodium") ); |
92 | names.append( tr("Palladium") ); | 90 | names.append( tr("Palladium") ); |
93 | names.append( tr("Silver") ); | 91 | names.append( tr("Silver") ); |
94 | names.append( tr("Cadmium") ); | 92 | names.append( tr("Cadmium") ); |
95 | names.append( tr("Indium") ); | 93 | names.append( tr("Indium") ); |
96 | names.append( tr("Tin") ); | 94 | names.append( tr("Tin") ); |
97 | names.append( tr("Antimony") ); | 95 | names.append( tr("Antimony") ); |
98 | names.append( tr("Tellurium") ); | 96 | names.append( tr("Tellurium") ); |
99 | names.append( tr("Iodine") ); | 97 | names.append( tr("Iodine") ); |
100 | names.append( tr("Xenon") ); | 98 | names.append( tr("Xenon") ); |
101 | names.append( tr("Cesium") ); | 99 | names.append( tr("Cesium") ); |
102 | names.append( tr("Barium") ); | 100 | names.append( tr("Barium") ); |
103 | names.append( tr("Lanthanum") ); | 101 | names.append( tr("Lanthanum") ); |
104 | names.append( tr("Cerium") ); | 102 | names.append( tr("Cerium") ); |
105 | names.append( tr("Praseodymium") ); | 103 | names.append( tr("Praseodymium") ); |
106 | names.append( tr("Neodymium") ); | 104 | names.append( tr("Neodymium") ); |
107 | names.append( tr("Promethium") ); | 105 | names.append( tr("Promethium") ); |
108 | names.append( tr("Samarium") ); | 106 | names.append( tr("Samarium") ); |
109 | names.append( tr("Europium") ); | 107 | names.append( tr("Europium") ); |
110 | names.append( tr("Gadolinium") ); | 108 | names.append( tr("Gadolinium") ); |
111 | names.append( tr("Terbium") ); | 109 | names.append( tr("Terbium") ); |
112 | names.append( tr("Dysprosium") ); | 110 | names.append( tr("Dysprosium") ); |
113 | names.append( tr("Holmium") ); | 111 | names.append( tr("Holmium") ); |
114 | names.append( tr("Erbium") ); | 112 | names.append( tr("Erbium") ); |
115 | names.append( tr("Thulium") ); | 113 | names.append( tr("Thulium") ); |
116 | names.append( tr("Ytterbium") ); | 114 | names.append( tr("Ytterbium") ); |
117 | names.append( tr("Lutetium") ); | 115 | names.append( tr("Lutetium") ); |
118 | names.append( tr("Hafnium") ); | 116 | names.append( tr("Hafnium") ); |
119 | names.append( tr("Tantalum") ); | 117 | names.append( tr("Tantalum") ); |
120 | names.append( tr("Tungsten") ); | 118 | names.append( tr("Tungsten") ); |
121 | names.append( tr("Rhenium") ); | 119 | names.append( tr("Rhenium") ); |
122 | names.append( tr("Osmium") ); | 120 | names.append( tr("Osmium") ); |
123 | names.append( tr("Iridium") ); | 121 | names.append( tr("Iridium") ); |
124 | names.append( tr("Platinum") ); | 122 | names.append( tr("Platinum") ); |
125 | names.append( tr("Gold") ); | 123 | names.append( tr("Gold") ); |
126 | names.append( tr("Mercury") ); | 124 | names.append( tr("Mercury") ); |
127 | names.append( tr("Thallium") ); | 125 | names.append( tr("Thallium") ); |
128 | names.append( tr("Lead") ); | 126 | names.append( tr("Lead") ); |
129 | names.append( tr("Bismuth") ); | 127 | names.append( tr("Bismuth") ); |
130 | names.append( tr("Polonium") ); | 128 | names.append( tr("Polonium") ); |
131 | names.append( tr("Astatine") ); | 129 | names.append( tr("Astatine") ); |
132 | names.append( tr("Radon") ); | 130 | names.append( tr("Radon") ); |
133 | names.append( tr("Francium") ); | 131 | names.append( tr("Francium") ); |
134 | names.append( tr("Radium") ); | 132 | names.append( tr("Radium") ); |
135 | names.append( tr("Actinium") ); | 133 | names.append( tr("Actinium") ); |
136 | names.append( tr("Thorium") ); | 134 | names.append( tr("Thorium") ); |
137 | names.append( tr("Protactinium") ); | 135 | names.append( tr("Protactinium") ); |
138 | names.append( tr("Uranium") ); | 136 | names.append( tr("Uranium") ); |
139 | names.append( tr("Neptunium") ); | 137 | names.append( tr("Neptunium") ); |
140 | names.append( tr("Plutonium") ); | 138 | names.append( tr("Plutonium") ); |
141 | names.append( tr("Americium") ); | 139 | names.append( tr("Americium") ); |
142 | names.append( tr("Curium") ); | 140 | names.append( tr("Curium") ); |
143 | names.append( tr("Berkelium") ); | 141 | names.append( tr("Berkelium") ); |
144 | names.append( tr("Californium") ); | 142 | names.append( tr("Californium") ); |
145 | names.append( tr("Einsteinium") ); | 143 | names.append( tr("Einsteinium") ); |
146 | names.append( tr("Fermium") ); | 144 | names.append( tr("Fermium") ); |
147 | names.append( tr("Mendelevium") ); | 145 | names.append( tr("Mendelevium") ); |
148 | names.append( tr("Nobelium") ); | 146 | names.append( tr("Nobelium") ); |
149 | names.append( tr("Lawrencium") ); | 147 | names.append( tr("Lawrencium") ); |
150 | names.append( tr("Rutherfordium") ); | 148 | names.append( tr("Rutherfordium") ); |
diff --git a/noncore/apps/oxygen/psewidget.cpp b/noncore/apps/oxygen/psewidget.cpp index be5185b..7f7ae0c 100644 --- a/noncore/apps/oxygen/psewidget.cpp +++ b/noncore/apps/oxygen/psewidget.cpp | |||
@@ -1,152 +1,150 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | application: : Oxygen | 2 | application: : Oxygen |
3 | 3 | ||
4 | begin : September 2002 | 4 | begin : September 2002 |
5 | copyright : ( C ) 2002, 2003 by Carsten Niehaus | 5 | copyright : ( C ) 2002, 2003 by Carsten Niehaus |
6 | email : cniehaus@handhelds.org | 6 | email : cniehaus@handhelds.org |
7 | **************************************************************************/ | 7 | **************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * ( at your option ) any later version. * | 14 | * ( at your option ) any later version. * |
15 | * * | 15 | * * |
16 | **************************************************************************/ | 16 | **************************************************************************/ |
17 | 17 | ||
18 | #include <qpe/config.h> | 18 | #include <qpe/config.h> |
19 | #include <qlayout.h> | 19 | #include <qlayout.h> |
20 | #include <qpe/qpeapplication.h> | 20 | #include <qpe/qpeapplication.h> |
21 | #include <qlist.h> | ||
22 | #include "dataTable.h" | 21 | #include "dataTable.h" |
23 | #include "psewidget.h" | 22 | #include "psewidget.h" |
24 | #include "oxyframe.h" | ||
25 | 23 | ||
26 | 24 | ||
27 | PSEWidget::PSEWidget(const QStringList &list) : QWidget() | 25 | PSEWidget::PSEWidget(const QStringList &list) : QWidget() |
28 | { | 26 | { |
29 | this->setCaption( tr( "Periodic System" ) ); | 27 | this->setCaption( tr( "Periodic System" ) ); |
30 | 28 | ||
31 | lastElement=1; | 29 | lastElement=1; |
32 | names = list; | 30 | names = list; |
33 | 31 | ||
34 | QVBoxLayout *vlay = new QVBoxLayout( this ); | 32 | QVBoxLayout *vlay = new QVBoxLayout( this ); |
35 | 33 | ||
36 | QGridLayout *grid = new QGridLayout( 18,10 ); | 34 | QGridLayout *grid = new QGridLayout( 18,10 ); |
37 | int h=0, v=0; | 35 | int h=0, v=0; |
38 | 36 | ||
39 | Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File ); | 37 | Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File ); |
40 | for( int n = 0 ; n < 109 ; n++ ) | 38 | for( int n = 0 ; n < 109 ; n++ ) |
41 | { | 39 | { |
42 | configobj.setGroup( QString::number( n+1 )); | 40 | configobj.setGroup( QString::number( n+1 )); |
43 | 41 | ||
44 | position( n+1,h,v ); | 42 | position( n+1,h,v ); |
45 | PSEframe.append( new OxyFrame( this , QString::number(n), configobj.readEntry( "Symbol" ) ) ); | 43 | PSEframe.append( new OxyFrame( this , QString::number(n), configobj.readEntry( "Symbol" ) ) ); |
46 | grid->addWidget( PSEframe.current() , v/40+1 , h/40 ); | 44 | grid->addWidget( PSEframe.current() , v/40+1 , h/40 ); |
47 | PSEframe.current()->setMinimumHeight( 11 ); | 45 | PSEframe.current()->setMinimumHeight( 11 ); |
48 | PSEframe.current()->setPalette( QPalette( PSEColor( configobj.readEntry( "Block" ) ) ) ); | 46 | PSEframe.current()->setPalette( QPalette( PSEColor( configobj.readEntry( "Block" ) ) ) ); |
49 | connect( PSEframe.current(), SIGNAL( num(QString) ), this, SLOT( slotShowElement(QString) )); | 47 | connect( PSEframe.current(), SIGNAL( num(QString) ), this, SLOT( slotShowElement(QString) )); |
50 | connect( PSEframe.current(), SIGNAL( num(QString) ), this, SLOT( inverseColor(QString) )); | 48 | connect( PSEframe.current(), SIGNAL( num(QString) ), this, SLOT( inverseColor(QString) )); |
51 | } | 49 | } |
52 | 50 | ||
53 | oxyDW = new OxydataWidget(this, "PSEWidget_oxyDW", names); | 51 | oxyDW = new OxydataWidget(this, "PSEWidget_oxyDW", names); |
54 | oxyDW->setElement( 0 ); | 52 | oxyDW->setElement( 0 ); |
55 | oxyDW->setLayout(); | 53 | oxyDW->setLayout(); |
56 | 54 | ||
57 | vlay->addLayout( grid ); | 55 | vlay->addLayout( grid ); |
58 | vlay->addWidget( oxyDW ); | 56 | vlay->addWidget( oxyDW ); |
59 | } | 57 | } |
60 | 58 | ||
61 | QColor PSEWidget::PSEColor( QString block ) const | 59 | QColor PSEWidget::PSEColor( QString block ) const |
62 | { | 60 | { |
63 | QColor c; | 61 | QColor c; |
64 | if ( block == "s" ) c.setRgb( 213 , 233 , 231 ); | 62 | if ( block == "s" ) c.setRgb( 213 , 233 , 231 ); |
65 | else if ( block == "d" ) c.setRgb( 200,230,160 ); | 63 | else if ( block == "d" ) c.setRgb( 200,230,160 ); |
66 | else if ( block == "p" ) c.setRgb( 238,146,138 ); | 64 | else if ( block == "p" ) c.setRgb( 238,146,138 ); |
67 | else if ( block == "f" ) c.setRgb( 190 , 190 , 190 ); | 65 | else if ( block == "f" ) c.setRgb( 190 , 190 , 190 ); |
68 | return c; | 66 | return c; |
69 | }; | 67 | }; |
70 | 68 | ||
71 | void PSEWidget::inverseColor( QString number) | 69 | void PSEWidget::inverseColor( QString number) |
72 | { | 70 | { |
73 | Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File ); | 71 | Config configobj( QPEApplication::qpeDir() +"share/oxygen/oxygendata", Config::File ); |
74 | configobj.setGroup( number ); | 72 | configobj.setGroup( number ); |
75 | QString block = configobj.readEntry( "Block" ); | 73 | QString block = configobj.readEntry( "Block" ); |
76 | QColor c, d; | 74 | QColor c, d; |
77 | c = PSEColor( block ); | 75 | c = PSEColor( block ); |
78 | d = c.dark(); | 76 | d = c.dark(); |
79 | 77 | ||
80 | PSEframe.at( number.toUInt() )->setPalette( QPalette( d ) ); | 78 | PSEframe.at( number.toUInt() )->setPalette( QPalette( d ) ); |
81 | 79 | ||
82 | configobj.setGroup( QString::number( lastElement+1 ) ); | 80 | configobj.setGroup( QString::number( lastElement+1 ) ); |
83 | block = configobj.readEntry( "Block" ); | 81 | block = configobj.readEntry( "Block" ); |
84 | c = PSEColor( block ); | 82 | c = PSEColor( block ); |
85 | PSEframe.at( lastElement )->setPalette( QPalette( c ) ); | 83 | PSEframe.at( lastElement )->setPalette( QPalette( c ) ); |
86 | 84 | ||
87 | lastElement=number.toInt(); | 85 | lastElement=number.toInt(); |
88 | } | 86 | } |
89 | 87 | ||
90 | void PSEWidget::slotShowElement(QString number) | 88 | void PSEWidget::slotShowElement(QString number) |
91 | { | 89 | { |
92 | oxyDW->setElement( number.toInt() ); | 90 | oxyDW->setElement( number.toInt() ); |
93 | }; | 91 | }; |
94 | 92 | ||
95 | void PSEWidget::position(int n, int& h, int& v) | 93 | void PSEWidget::position(int n, int& h, int& v) |
96 | { | 94 | { |
97 | //Hydrogen | 95 | //Hydrogen |
98 | if (n == 1) | 96 | if (n == 1) |
99 | { | 97 | { |
100 | h=0; v=0; | 98 | h=0; v=0; |
101 | } | 99 | } |
102 | 100 | ||
103 | 101 | ||
104 | //Helium | 102 | //Helium |
105 | if (n == 2) | 103 | if (n == 2) |
106 | { | 104 | { |
107 | h=680; v=0; | 105 | h=680; v=0; |
108 | } | 106 | } |
109 | 107 | ||
110 | 108 | ||
111 | //Lithium | 109 | //Lithium |
112 | if (n == 3) | 110 | if (n == 3) |
113 | { | 111 | { |
114 | h=0; v=40; | 112 | h=0; v=40; |
115 | } | 113 | } |
116 | 114 | ||
117 | 115 | ||
118 | //Beryllium | 116 | //Beryllium |
119 | if (n == 4) | 117 | if (n == 4) |
120 | { | 118 | { |
121 | h=40; v=40; | 119 | h=40; v=40; |
122 | } | 120 | } |
123 | 121 | ||
124 | 122 | ||
125 | //Boron-->Neon or Aluminum --> Argon | 123 | //Boron-->Neon or Aluminum --> Argon |
126 | if ((n >= 5 && n <= 10) || (n >= 13 && n <= 18)) | 124 | if ((n >= 5 && n <= 10) || (n >= 13 && n <= 18)) |
127 | for (int i = 1; i <= (6-(10-n)); i++) | 125 | for (int i = 1; i <= (6-(10-n)); i++) |
128 | { | 126 | { |
129 | h=((i*40)+440); | 127 | h=((i*40)+440); |
130 | v = 40; | 128 | v = 40; |
131 | if (n >= 13) | 129 | if (n >= 13) |
132 | { | 130 | { |
133 | v=80; | 131 | v=80; |
134 | h=(h-320); | 132 | h=(h-320); |
135 | } | 133 | } |
136 | } | 134 | } |
137 | 135 | ||
138 | 136 | ||
139 | //Sodium | 137 | //Sodium |
140 | if (n == 11) | 138 | if (n == 11) |
141 | { | 139 | { |
142 | h=0; v=80; | 140 | h=0; v=80; |
143 | } | 141 | } |
144 | 142 | ||
145 | 143 | ||
146 | //Magnesium | 144 | //Magnesium |
147 | if (n == 12) | 145 | if (n == 12) |
148 | { | 146 | { |
149 | h=40; v=80; | 147 | h=40; v=80; |
150 | } | 148 | } |
151 | 149 | ||
152 | 150 | ||
diff --git a/noncore/apps/qashmoney/account.cpp b/noncore/apps/qashmoney/account.cpp index 181be23..f21598e 100755 --- a/noncore/apps/qashmoney/account.cpp +++ b/noncore/apps/qashmoney/account.cpp | |||
@@ -1,131 +1,129 @@ | |||
1 | #include "account.h" | 1 | #include "account.h" |
2 | #include "transaction.h" | ||
3 | #include "transfer.h" | ||
4 | #include "preferences.h" | 2 | #include "preferences.h" |
5 | 3 | ||
6 | #include <qpixmap.h> | 4 | #include <qpixmap.h> |
7 | #include <stdlib.h> | 5 | #include <stdlib.h> |
8 | 6 | ||
9 | extern Preferences *preferences; | 7 | extern Preferences *preferences; |
10 | 8 | ||
11 | Account::Account () | 9 | Account::Account () |
12 | { | 10 | { |
13 | adb = sqlite_open ( "qmaccounts.db", 0, NULL ); | 11 | adb = sqlite_open ( "qmaccounts.db", 0, NULL ); |
14 | } | 12 | } |
15 | 13 | ||
16 | Account::~Account () | 14 | Account::~Account () |
17 | { | 15 | { |
18 | sqlite_close ( adb ); | 16 | sqlite_close ( adb ); |
19 | } | 17 | } |
20 | 18 | ||
21 | void Account::addAccount ( QString name, int parentid, float balance, int type, QString description, float creditlimit, | 19 | void Account::addAccount ( QString name, int parentid, float balance, int type, QString description, float creditlimit, |
22 | int statementyear, int statementmonth, int statementday, float statementbalance, const char *currency ) | 20 | int statementyear, int statementmonth, int statementday, float statementbalance, const char *currency ) |
23 | { | 21 | { |
24 | sqlite_exec_printf ( adb, "insert into accounts2 values ( '%q', %i, %.2f, %i, '%q', %.2f, %i, %i, %i, %.2f, '%q', 0, 0, 0, 0, 0, NULL );", 0, 0, 0, | 22 | sqlite_exec_printf ( adb, "insert into accounts2 values ( '%q', %i, %.2f, %i, '%q', %.2f, %i, %i, %i, %.2f, '%q', 0, 0, 0, 0, 0, NULL );", 0, 0, 0, |
25 | (const char *) name, parentid, balance, type, (const char *) description, creditlimit, statementyear, statementmonth, statementday, statementbalance, currency ); | 23 | (const char *) name, parentid, balance, type, (const char *) description, creditlimit, statementyear, statementmonth, statementday, statementbalance, currency ); |
26 | } | 24 | } |
27 | 25 | ||
28 | void Account::updateAccount ( QString name, QString description, QString currencycode, int accountid ) | 26 | void Account::updateAccount ( QString name, QString description, QString currencycode, int accountid ) |
29 | { | 27 | { |
30 | sqlite_exec_printf ( adb, "update accounts2 set name = '%q', description = '%q', currency = '%q' where accountid = %i;", 0, 0, 0, ( const char * ) name, ( const char * ) description, ( const char * ) currencycode, accountid ); | 28 | sqlite_exec_printf ( adb, "update accounts2 set name = '%q', description = '%q', currency = '%q' where accountid = %i;", 0, 0, 0, ( const char * ) name, ( const char * ) description, ( const char * ) currencycode, accountid ); |
31 | } | 29 | } |
32 | 30 | ||
33 | void Account::deleteAccount ( int accountid ) | 31 | void Account::deleteAccount ( int accountid ) |
34 | { | 32 | { |
35 | sqlite_exec_printf ( adb, "delete from accounts2 where accountid = %i;", 0, 0, 0, accountid ); | 33 | sqlite_exec_printf ( adb, "delete from accounts2 where accountid = %i;", 0, 0, 0, accountid ); |
36 | } | 34 | } |
37 | 35 | ||
38 | void Account::setAccountExpanded ( int expanded, int accountid ) | 36 | void Account::setAccountExpanded ( int expanded, int accountid ) |
39 | { | 37 | { |
40 | sqlite_exec_printf ( adb, "update accounts2 set r1 = %i where accountid = %i;", 0, 0, 0, expanded, accountid ); | 38 | sqlite_exec_printf ( adb, "update accounts2 set r1 = %i where accountid = %i;", 0, 0, 0, expanded, accountid ); |
41 | } | 39 | } |
42 | 40 | ||
43 | int Account::getAccountExpanded ( int id ) | 41 | int Account::getAccountExpanded ( int id ) |
44 | { | 42 | { |
45 | char **results; | 43 | char **results; |
46 | sqlite_get_table_printf ( adb, "select r1 from accounts2 where accountid = %i;", &results, 0, 0, 0, id ); | 44 | sqlite_get_table_printf ( adb, "select r1 from accounts2 where accountid = %i;", &results, 0, 0, 0, id ); |
47 | if ( strlen ( results [1] ) == 0 ) | 45 | if ( strlen ( results [1] ) == 0 ) |
48 | return 0; | 46 | return 0; |
49 | else | 47 | else |
50 | return atoi ( results [ 1 ] ); | 48 | return atoi ( results [ 1 ] ); |
51 | } | 49 | } |
52 | 50 | ||
53 | int Account::getNumberOfAccounts () | 51 | int Account::getNumberOfAccounts () |
54 | { | 52 | { |
55 | char **results; | 53 | char **results; |
56 | sqlite_get_table ( adb, "select count() from accounts2;", &results, NULL, NULL, NULL ); | 54 | sqlite_get_table ( adb, "select count() from accounts2;", &results, NULL, NULL, NULL ); |
57 | return atoi ( results [ 1 ] ); | 55 | return atoi ( results [ 1 ] ); |
58 | } | 56 | } |
59 | 57 | ||
60 | int Account::getNumberOfChildAccounts ( int id ) | 58 | int Account::getNumberOfChildAccounts ( int id ) |
61 | { | 59 | { |
62 | char **results; | 60 | char **results; |
63 | sqlite_get_table_printf ( adb, "select count() from accounts2 where parent = %i;", &results, NULL, NULL, NULL, id ); | 61 | sqlite_get_table_printf ( adb, "select count() from accounts2 where parent = %i;", &results, NULL, NULL, NULL, id ); |
64 | return atoi ( results [ 1 ] ); | 62 | return atoi ( results [ 1 ] ); |
65 | } | 63 | } |
66 | 64 | ||
67 | void Account::updateAccountBalance ( int accountid ) | 65 | void Account::updateAccountBalance ( int accountid ) |
68 | { | 66 | { |
69 | // Here, we'll get a balance for the transactions in an account | 67 | // Here, we'll get a balance for the transactions in an account |
70 | sqlite *tdb = sqlite_open ( "qmtransactions.db", 0, NULL ); | 68 | sqlite *tdb = sqlite_open ( "qmtransactions.db", 0, NULL ); |
71 | int rows, columns; | 69 | int rows, columns; |
72 | char **results; | 70 | char **results; |
73 | sqlite_get_table_printf ( tdb, "select sum (amount) from transactions where accountid= %i;", &results, &rows, &columns, NULL, accountid ); | 71 | sqlite_get_table_printf ( tdb, "select sum (amount) from transactions where accountid= %i;", &results, &rows, &columns, NULL, accountid ); |
74 | float transactionsbalance = strtod ( results [ 1 ], 0 ); | 72 | float transactionsbalance = strtod ( results [ 1 ], 0 ); |
75 | sqlite_close ( tdb ); | 73 | sqlite_close ( tdb ); |
76 | 74 | ||
77 | // next, we'll get a balance for all the transfers from the account | 75 | // next, we'll get a balance for all the transfers from the account |
78 | sqlite *trdb = sqlite_open ( "qmtransfers.db", 0, NULL ); | 76 | sqlite *trdb = sqlite_open ( "qmtransfers.db", 0, NULL ); |
79 | rows = 0; | 77 | rows = 0; |
80 | columns = 0; | 78 | columns = 0; |
81 | char **results2; | 79 | char **results2; |
82 | sqlite_get_table_printf ( trdb, "select sum (amount) from transfers where fromaccount = %i;", &results2, &rows, &columns, NULL, accountid ); | 80 | sqlite_get_table_printf ( trdb, "select sum (amount) from transfers where fromaccount = %i;", &results2, &rows, &columns, NULL, accountid ); |
83 | float fromtransfersbalance = ( strtod ( results2 [ 1 ], 0 ) * -1 ); | 81 | float fromtransfersbalance = ( strtod ( results2 [ 1 ], 0 ) * -1 ); |
84 | 82 | ||
85 | // finally, we'll get a balance for all the transfers into the account | 83 | // finally, we'll get a balance for all the transfers into the account |
86 | rows = 0; | 84 | rows = 0; |
87 | columns= 0; | 85 | columns= 0; |
88 | char **results3; | 86 | char **results3; |
89 | sqlite_get_table_printf ( trdb, "select sum (amount) from transfers where toaccount = %i;", &results3, &rows, &columns, NULL, accountid ); | 87 | sqlite_get_table_printf ( trdb, "select sum (amount) from transfers where toaccount = %i;", &results3, &rows, &columns, NULL, accountid ); |
90 | float totransfersbalance = strtod ( results3 [ 1 ], 0 ); | 88 | float totransfersbalance = strtod ( results3 [ 1 ], 0 ); |
91 | 89 | ||
92 | sqlite_close ( trdb ); | 90 | sqlite_close ( trdb ); |
93 | 91 | ||
94 | // calculate and update new balance | 92 | // calculate and update new balance |
95 | sqlite_exec_printf ( adb, "update accounts2 set balance = %.2f where accountid = %i;", 0, 0, 0, | 93 | sqlite_exec_printf ( adb, "update accounts2 set balance = %.2f where accountid = %i;", 0, 0, 0, |
96 | ( transactionsbalance + fromtransfersbalance + totransfersbalance + getStatementBalance ( accountid ) ), accountid ); | 94 | ( transactionsbalance + fromtransfersbalance + totransfersbalance + getStatementBalance ( accountid ) ), accountid ); |
97 | } | 95 | } |
98 | 96 | ||
99 | void Account::changeParentAccountBalance ( int parentid ) | 97 | void Account::changeParentAccountBalance ( int parentid ) |
100 | { | 98 | { |
101 | // select all child balances that share the parent of the current child account | 99 | // select all child balances that share the parent of the current child account |
102 | char **results; | 100 | char **results; |
103 | int rows; | 101 | int rows; |
104 | sqlite_get_table_printf ( adb, "select sum ( balance ) from accounts2 where parent = %i;", &results, &rows, NULL, NULL, parentid ); | 102 | sqlite_get_table_printf ( adb, "select sum ( balance ) from accounts2 where parent = %i;", &results, &rows, NULL, NULL, parentid ); |
105 | sqlite_exec_printf ( adb, "update accounts2 set balance = %.2f where accountid = %i;", 0, 0, 0, strtod ( results[ 1 ], NULL ), parentid ); | 103 | sqlite_exec_printf ( adb, "update accounts2 set balance = %.2f where accountid = %i;", 0, 0, 0, strtod ( results[ 1 ], NULL ), parentid ); |
106 | } | 104 | } |
107 | 105 | ||
108 | int Account::getParentAccountID ( int id ) | 106 | int Account::getParentAccountID ( int id ) |
109 | { | 107 | { |
110 | char **results; | 108 | char **results; |
111 | sqlite_get_table_printf ( adb, "select parent from accounts2 where accountid = %i;", &results, NULL, NULL, NULL, id ); | 109 | sqlite_get_table_printf ( adb, "select parent from accounts2 where accountid = %i;", &results, NULL, NULL, NULL, id ); |
112 | return atoi ( results [ 1 ] ); | 110 | return atoi ( results [ 1 ] ); |
113 | } | 111 | } |
114 | 112 | ||
115 | int Account::getParentAccountID ( QString accountname ) | 113 | int Account::getParentAccountID ( QString accountname ) |
116 | { | 114 | { |
117 | char **results; | 115 | char **results; |
118 | sqlite_get_table_printf ( adb, "select parent from accounts2 where name= '%q';", &results, NULL, NULL, NULL, ( const char * ) accountname ); | 116 | sqlite_get_table_printf ( adb, "select parent from accounts2 where name= '%q';", &results, NULL, NULL, NULL, ( const char * ) accountname ); |
119 | return atoi ( results [ 1 ] ); | 117 | return atoi ( results [ 1 ] ); |
120 | } | 118 | } |
121 | 119 | ||
122 | void Account::displayAccounts ( QListView *listview ) | 120 | void Account::displayAccounts ( QListView *listview ) |
123 | { | 121 | { |
124 | char **results; | 122 | char **results; |
125 | int rows, columns; | 123 | int rows, columns; |
126 | sqlite_get_table ( adb, "select name, parent, balance, accountid, currency from accounts2;", &results, &rows, &columns, 0 ); | 124 | sqlite_get_table ( adb, "select name, parent, balance, accountid, currency from accounts2;", &results, &rows, &columns, 0 ); |
127 | 125 | ||
128 | // determine if we are using currency support | 126 | // determine if we are using currency support |
129 | int currency = preferences->getPreference ( 4 ); | 127 | int currency = preferences->getPreference ( 4 ); |
130 | 128 | ||
131 | // remove all columns from the account display | 129 | // remove all columns from the account display |
diff --git a/noncore/apps/qashmoney/accountdisplay.cpp b/noncore/apps/qashmoney/accountdisplay.cpp index d0ba82a..5ef5454 100755 --- a/noncore/apps/qashmoney/accountdisplay.cpp +++ b/noncore/apps/qashmoney/accountdisplay.cpp | |||
@@ -1,137 +1,135 @@ | |||
1 | #include <qdatetime.h> | ||
2 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
3 | #include <qheader.h> | 2 | #include <qheader.h> |
4 | 3 | ||
5 | #include "accountdisplay.h" | 4 | #include "accountdisplay.h" |
6 | #include "newaccount.h" | 5 | #include "newaccount.h" |
7 | #include "transaction.h" | 6 | #include "transaction.h" |
8 | #include "transferdialog.h" | 7 | #include "transferdialog.h" |
9 | #include "preferences.h" | ||
10 | #include "transfer.h" | 8 | #include "transfer.h" |
11 | 9 | ||
12 | extern Account *account; | 10 | extern Account *account; |
13 | extern Transaction *transaction; | 11 | extern Transaction *transaction; |
14 | extern Transfer *transfer; | 12 | extern Transfer *transfer; |
15 | extern Preferences *preferences; | 13 | extern Preferences *preferences; |
16 | 14 | ||
17 | AccountDisplay::AccountDisplay ( QWidget *parent ) : QWidget ( parent ) | 15 | AccountDisplay::AccountDisplay ( QWidget *parent ) : QWidget ( parent ) |
18 | { | 16 | { |
19 | cleared = 0; | 17 | cleared = 0; |
20 | 18 | ||
21 | firstline = new QHBox ( this ); | 19 | firstline = new QHBox ( this ); |
22 | firstline->setSpacing ( 2 ); | 20 | firstline->setSpacing ( 2 ); |
23 | 21 | ||
24 | newaccount = new QPushButton ( firstline ); | 22 | newaccount = new QPushButton ( firstline ); |
25 | newaccount->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); | 23 | newaccount->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); |
26 | connect ( newaccount, SIGNAL ( released () ), this, SLOT ( addAccount () ) ); | 24 | connect ( newaccount, SIGNAL ( released () ), this, SLOT ( addAccount () ) ); |
27 | 25 | ||
28 | editaccount = new QPushButton ( firstline ); | 26 | editaccount = new QPushButton ( firstline ); |
29 | editaccount->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); | 27 | editaccount->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); |
30 | connect ( editaccount, SIGNAL ( released () ), this, SLOT ( editAccount () ) ); | 28 | connect ( editaccount, SIGNAL ( released () ), this, SLOT ( editAccount () ) ); |
31 | 29 | ||
32 | deleteaccount = new QPushButton ( firstline ); | 30 | deleteaccount = new QPushButton ( firstline ); |
33 | deleteaccount->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); | 31 | deleteaccount->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); |
34 | connect ( deleteaccount, SIGNAL ( released () ), this, SLOT ( deleteAccount () ) ); | 32 | connect ( deleteaccount, SIGNAL ( released () ), this, SLOT ( deleteAccount () ) ); |
35 | 33 | ||
36 | transferbutton = new QPushButton ( firstline ); | 34 | transferbutton = new QPushButton ( firstline ); |
37 | transferbutton->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/transfer.png") ); | 35 | transferbutton->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/transfer.png") ); |
38 | transferbutton->setToggleButton ( TRUE ); | 36 | transferbutton->setToggleButton ( TRUE ); |
39 | connect ( transferbutton, SIGNAL ( toggled ( bool ) ), this, SLOT ( accountTransfer ( bool ) ) ); | 37 | connect ( transferbutton, SIGNAL ( toggled ( bool ) ), this, SLOT ( accountTransfer ( bool ) ) ); |
40 | 38 | ||
41 | listview = new QListView ( this ); | 39 | listview = new QListView ( this ); |
42 | listview->setAllColumnsShowFocus ( TRUE ); | 40 | listview->setAllColumnsShowFocus ( TRUE ); |
43 | listview->setShowSortIndicator ( TRUE ); | 41 | listview->setShowSortIndicator ( TRUE ); |
44 | listview->setRootIsDecorated ( TRUE ); | 42 | listview->setRootIsDecorated ( TRUE ); |
45 | listview->setMultiSelection ( FALSE ); | 43 | listview->setMultiSelection ( FALSE ); |
46 | connect ( listview, SIGNAL ( expanded ( QListViewItem * ) ), this, SLOT ( setAccountExpanded ( QListViewItem * ) ) ); | 44 | connect ( listview, SIGNAL ( expanded ( QListViewItem * ) ), this, SLOT ( setAccountExpanded ( QListViewItem * ) ) ); |
47 | connect ( listview, SIGNAL ( collapsed ( QListViewItem * ) ), this, SLOT ( setAccountCollapsed ( QListViewItem * ) ) ); | 45 | connect ( listview, SIGNAL ( collapsed ( QListViewItem * ) ), this, SLOT ( setAccountCollapsed ( QListViewItem * ) ) ); |
48 | 46 | ||
49 | listview->header()->setTracking ( FALSE ); | 47 | listview->header()->setTracking ( FALSE ); |
50 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); | 48 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); |
51 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); | 49 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); |
52 | 50 | ||
53 | layout = new QVBoxLayout ( this, 2, 5 ); | 51 | layout = new QVBoxLayout ( this, 2, 5 ); |
54 | layout->addWidget ( firstline ); | 52 | layout->addWidget ( firstline ); |
55 | layout->addWidget ( listview ); | 53 | layout->addWidget ( listview ); |
56 | } | 54 | } |
57 | 55 | ||
58 | void AccountDisplay::setTabs ( QWidget *newtab2, QTabWidget *newtabs ) | 56 | void AccountDisplay::setTabs ( QWidget *newtab2, QTabWidget *newtabs ) |
59 | { | 57 | { |
60 | tab2 = newtab2; | 58 | tab2 = newtab2; |
61 | maintabs = newtabs; | 59 | maintabs = newtabs; |
62 | } | 60 | } |
63 | 61 | ||
64 | void AccountDisplay::addAccount () | 62 | void AccountDisplay::addAccount () |
65 | { | 63 | { |
66 | // initialize local variables | 64 | // initialize local variables |
67 | int parentid = 0; | 65 | int parentid = 0; |
68 | type = 0; | 66 | type = 0; |
69 | QString parentlist [ listview->childCount() + 1 ] [ 3 ] ; | 67 | QString parentlist [ listview->childCount() + 1 ] [ 3 ] ; |
70 | 68 | ||
71 | // create new account window for entering data | 69 | // create new account window for entering data |
72 | NewAccount *newaccount = new NewAccount ( this ); | 70 | NewAccount *newaccount = new NewAccount ( this ); |
73 | int width = this->width(); | 71 | int width = this->width(); |
74 | newaccount->accountbox->setMaximumWidth ( ( int ) ( width * 0.5 ) ); | 72 | newaccount->accountbox->setMaximumWidth ( ( int ) ( width * 0.5 ) ); |
75 | newaccount->datebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 73 | newaccount->datebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
76 | newaccount->childbox->setMaximumWidth ( ( int ) ( width * 0.5 ) ); | 74 | newaccount->childbox->setMaximumWidth ( ( int ) ( width * 0.5 ) ); |
77 | newaccount->balancebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 75 | newaccount->balancebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
78 | newaccount->creditlimitbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 76 | newaccount->creditlimitbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
79 | 77 | ||
80 | // if there are no accounts, disable the child check box | 78 | // if there are no accounts, disable the child check box |
81 | if ( account->getNumberOfAccounts () == 0 ) | 79 | if ( account->getNumberOfAccounts () == 0 ) |
82 | newaccount->childcheckbox->setEnabled ( FALSE ); | 80 | newaccount->childcheckbox->setEnabled ( FALSE ); |
83 | 81 | ||
84 | // if there are accounts, fill up the pulldown menu for | 82 | // if there are accounts, fill up the pulldown menu for |
85 | // selecting a parent account. We should only add those parents without transactions | 83 | // selecting a parent account. We should only add those parents without transactions |
86 | else | 84 | else |
87 | { | 85 | { |
88 | int c = 0; | 86 | int c = 0; |
89 | QListViewItemIterator it ( listview ); | 87 | QListViewItemIterator it ( listview ); |
90 | for ( ; it.current(); ++it ) | 88 | for ( ; it.current(); ++it ) |
91 | { | 89 | { |
92 | int id = it.current()->text ( getIDColumn() ).toInt(); | 90 | int id = it.current()->text ( getIDColumn() ).toInt(); |
93 | // iterate through accountdisplay listview and add parents with no transactions | 91 | // iterate through accountdisplay listview and add parents with no transactions |
94 | // add this item to the list box only if it is a parent and has no transactions | 92 | // add this item to the list box only if it is a parent and has no transactions |
95 | if ( transfer->getNumberOfTransfers ( id ) == 0 && transaction->getNumberOfTransactions ( id ) == 0 && it.current()->parent() == 0 ) | 93 | if ( transfer->getNumberOfTransfers ( id ) == 0 && transaction->getNumberOfTransactions ( id ) == 0 && it.current()->parent() == 0 ) |
96 | { | 94 | { |
97 | newaccount->childbox->insertItem ( it.current()->text ( 0 ) ); | 95 | newaccount->childbox->insertItem ( it.current()->text ( 0 ) ); |
98 | parentlist [ c ] [ 0 ] = it.current()->text ( 0 ); | 96 | parentlist [ c ] [ 0 ] = it.current()->text ( 0 ); |
99 | parentlist [ c ] [ 1 ] = it.current()->text ( getIDColumn() ); | 97 | parentlist [ c ] [ 1 ] = it.current()->text ( getIDColumn() ); |
100 | parentlist [ c ] [ 2 ] = QString::number ( c ); | 98 | parentlist [ c ] [ 2 ] = QString::number ( c ); |
101 | c++; | 99 | c++; |
102 | } | 100 | } |
103 | } | 101 | } |
104 | } | 102 | } |
105 | 103 | ||
106 | if ( preferences->getPreference ( 4 ) == 0 ) | 104 | if ( preferences->getPreference ( 4 ) == 0 ) |
107 | newaccount->currencybox->setEnabled ( FALSE ); | 105 | newaccount->currencybox->setEnabled ( FALSE ); |
108 | 106 | ||
109 | // enter today's date in the date box as default | 107 | // enter today's date in the date box as default |
110 | QDate today = QDate::currentDate (); | 108 | QDate today = QDate::currentDate (); |
111 | int defaultday = today.day(); | 109 | int defaultday = today.day(); |
112 | int defaultmonth = today.month(); | 110 | int defaultmonth = today.month(); |
113 | int defaultyear = today.year(); | 111 | int defaultyear = today.year(); |
114 | newaccount->startdate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); | 112 | newaccount->startdate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); |
115 | 113 | ||
116 | //add account information if user pushes OK button | 114 | //add account information if user pushes OK button |
117 | if ( newaccount->exec() == QDialog::Accepted ) | 115 | if ( newaccount->exec() == QDialog::Accepted ) |
118 | { | 116 | { |
119 | if ( newaccount->childcheckbox->isChecked () == TRUE ) // set a parent id and type for a child account | 117 | if ( newaccount->childcheckbox->isChecked () == TRUE ) // set a parent id and type for a child account |
120 | { | 118 | { |
121 | // go through the parentlist we created and determine the parent accountid | 119 | // go through the parentlist we created and determine the parent accountid |
122 | // we can't use the name of the account because there may be two accounts | 120 | // we can't use the name of the account because there may be two accounts |
123 | // with the same name. This function does it all by accountid | 121 | // with the same name. This function does it all by accountid |
124 | int counter; | 122 | int counter; |
125 | for ( counter = 0; counter < listview->childCount() + 1; counter++ ) | 123 | for ( counter = 0; counter < listview->childCount() + 1; counter++ ) |
126 | if ( ( parentlist [ counter ] [ 2 ].toInt() ) == newaccount->childbox->currentItem() ) | 124 | if ( ( parentlist [ counter ] [ 2 ].toInt() ) == newaccount->childbox->currentItem() ) |
127 | { | 125 | { |
128 | parentid = parentlist [ counter ] [ 1 ].toInt(); | 126 | parentid = parentlist [ counter ] [ 1 ].toInt(); |
129 | break; | 127 | break; |
130 | } | 128 | } |
131 | type = ( newaccount->accounttype->currentItem() ) + 6; // sets account ids for child accounts. See accountdisplay.h for types | 129 | type = ( newaccount->accounttype->currentItem() ) + 6; // sets account ids for child accounts. See accountdisplay.h for types |
132 | } | 130 | } |
133 | else | 131 | else |
134 | { | 132 | { |
135 | parentid = -1; | 133 | parentid = -1; |
136 | type = newaccount->accounttype->currentItem(); // sets account ids for parent accounts | 134 | type = newaccount->accounttype->currentItem(); // sets account ids for parent accounts |
137 | } | 135 | } |
diff --git a/noncore/apps/qashmoney/budgetdisplay.cpp b/noncore/apps/qashmoney/budgetdisplay.cpp index 492595a..d4047bf 100755 --- a/noncore/apps/qashmoney/budgetdisplay.cpp +++ b/noncore/apps/qashmoney/budgetdisplay.cpp | |||
@@ -1,138 +1,135 @@ | |||
1 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
2 | #include <qheader.h> | 2 | #include <qheader.h> |
3 | #include <qfont.h> | ||
4 | #include <sqlite.h> | 3 | #include <sqlite.h> |
5 | 4 | ||
6 | #include "budgetdisplay.h" | 5 | #include "budgetdisplay.h" |
7 | #include "budget.h" | 6 | #include "budget.h" |
8 | #include "newaccount.h" | ||
9 | #include "datepicker.h" | 7 | #include "datepicker.h" |
10 | #include "preferences.h" | ||
11 | #include "transaction.h" | 8 | #include "transaction.h" |
12 | 9 | ||
13 | extern Preferences *preferences; | 10 | extern Preferences *preferences; |
14 | extern Budget *budget; | 11 | extern Budget *budget; |
15 | extern Transaction *transaction; | 12 | extern Transaction *transaction; |
16 | 13 | ||
17 | BudgetDisplay::BudgetDisplay ( QWidget *parent ) : QWidget ( parent ) | 14 | BudgetDisplay::BudgetDisplay ( QWidget *parent ) : QWidget ( parent ) |
18 | { | 15 | { |
19 | QFont font = this->font(); | 16 | QFont font = this->font(); |
20 | font.setWeight ( QFont::Bold ); | 17 | font.setWeight ( QFont::Bold ); |
21 | 18 | ||
22 | //set the default date to today | 19 | //set the default date to today |
23 | newDate = QDate::currentDate (); | 20 | newDate = QDate::currentDate (); |
24 | year = newDate.year(); | 21 | year = newDate.year(); |
25 | month = newDate.month(); | 22 | month = newDate.month(); |
26 | day = newDate.day(); | 23 | day = newDate.day(); |
27 | datelabel = preferences->getDate ( year, month ); | 24 | datelabel = preferences->getDate ( year, month ); |
28 | 25 | ||
29 | setCaption ( "Budget" ); | 26 | setCaption ( "Budget" ); |
30 | 27 | ||
31 | firstline = new QHBox ( this ); | 28 | firstline = new QHBox ( this ); |
32 | firstline->setSpacing ( 2 ); | 29 | firstline->setSpacing ( 2 ); |
33 | secondline = new QHBox ( this ); | 30 | secondline = new QHBox ( this ); |
34 | secondline->setSpacing ( 10 ); | 31 | secondline->setSpacing ( 10 ); |
35 | 32 | ||
36 | menu = new QMenuBar ( this ); | 33 | menu = new QMenuBar ( this ); |
37 | menu->setFrameStyle ( QFrame::Box | QFrame::Sunken ); | 34 | menu->setFrameStyle ( QFrame::Box | QFrame::Sunken ); |
38 | budgetmenu = new QPopupMenu ( this ); | 35 | budgetmenu = new QPopupMenu ( this ); |
39 | lineitemsmenu = new QPopupMenu ( this ); | 36 | lineitemsmenu = new QPopupMenu ( this ); |
40 | datemenu = new QPopupMenu ( this ); | 37 | datemenu = new QPopupMenu ( this ); |
41 | menu->insertItem ( "Budget", budgetmenu ); | 38 | menu->insertItem ( "Budget", budgetmenu ); |
42 | menu->insertItem ( "Line Item", lineitemsmenu ); | 39 | menu->insertItem ( "Line Item", lineitemsmenu ); |
43 | menu->insertItem ( "Date", datemenu ); | 40 | menu->insertItem ( "Date", datemenu ); |
44 | budgetmenu->insertItem ( "New", this, SLOT ( newBudget () ), 0, 1 ); | 41 | budgetmenu->insertItem ( "New", this, SLOT ( newBudget () ), 0, 1 ); |
45 | budgetmenu->insertItem ( "Edit", this, SLOT ( editBudget () ), 0, 2 ); | 42 | budgetmenu->insertItem ( "Edit", this, SLOT ( editBudget () ), 0, 2 ); |
46 | budgetmenu->insertItem ( "Delete", this, SLOT ( deleteBudget () ), 0, 3 ); | 43 | budgetmenu->insertItem ( "Delete", this, SLOT ( deleteBudget () ), 0, 3 ); |
47 | lineitemsmenu->insertItem ( "New", this, SLOT ( newLineItem () ), 0, 1 ); | 44 | lineitemsmenu->insertItem ( "New", this, SLOT ( newLineItem () ), 0, 1 ); |
48 | lineitemsmenu->insertItem ( "Edit", this, SLOT ( editLineItem () ), 0, 2 ); | 45 | lineitemsmenu->insertItem ( "Edit", this, SLOT ( editLineItem () ), 0, 2 ); |
49 | lineitemsmenu->insertItem ( "Delete", this, SLOT ( deleteLineItem () ), 0, 3 ); | 46 | lineitemsmenu->insertItem ( "Delete", this, SLOT ( deleteLineItem () ), 0, 3 ); |
50 | datemenu->insertItem ( "Change", this, SLOT ( showCalendar() ) ); | 47 | datemenu->insertItem ( "Change", this, SLOT ( showCalendar() ) ); |
51 | 48 | ||
52 | budgetbox = new QComboBox ( firstline ); | 49 | budgetbox = new QComboBox ( firstline ); |
53 | connect ( budgetbox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentBudget ( int ) ) ); | 50 | connect ( budgetbox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentBudget ( int ) ) ); |
54 | 51 | ||
55 | budgetview = new QComboBox ( firstline ); | 52 | budgetview = new QComboBox ( firstline ); |
56 | budgetview->insertItem ( "Month" ); | 53 | budgetview->insertItem ( "Month" ); |
57 | budgetview->insertItem ( "Year" ); | 54 | budgetview->insertItem ( "Year" ); |
58 | connect ( budgetview, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentView ( int ) ) ); | 55 | connect ( budgetview, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentView ( int ) ) ); |
59 | 56 | ||
60 | budgeted = new QLabel ( secondline ); | 57 | budgeted = new QLabel ( secondline ); |
61 | budgeted->setFont ( font ); | 58 | budgeted->setFont ( font ); |
62 | actual = new QLabel ( secondline ); | 59 | actual = new QLabel ( secondline ); |
63 | actual->setFont ( font ); | 60 | actual->setFont ( font ); |
64 | date = new QLabel ( secondline ); | 61 | date = new QLabel ( secondline ); |
65 | date->setFont ( font ); | 62 | date->setFont ( font ); |
66 | 63 | ||
67 | listview = new QListView ( this ); | 64 | listview = new QListView ( this ); |
68 | listview->setAllColumnsShowFocus ( TRUE ); | 65 | listview->setAllColumnsShowFocus ( TRUE ); |
69 | listview->setShowSortIndicator ( TRUE ); | 66 | listview->setShowSortIndicator ( TRUE ); |
70 | listview->setRootIsDecorated ( TRUE ); | 67 | listview->setRootIsDecorated ( TRUE ); |
71 | listview->setMultiSelection ( FALSE ); | 68 | listview->setMultiSelection ( FALSE ); |
72 | listview->addColumn ( "Line Item", preferences->getColumnPreference ( 13 ) ); // column id 13 | 69 | listview->addColumn ( "Line Item", preferences->getColumnPreference ( 13 ) ); // column id 13 |
73 | listview->addColumn ( "Budget", preferences->getColumnPreference ( 14 ) ); // column id 14 | 70 | listview->addColumn ( "Budget", preferences->getColumnPreference ( 14 ) ); // column id 14 |
74 | listview->addColumn ( "Actual", preferences->getColumnPreference ( 15 ) ); // column id 15 | 71 | listview->addColumn ( "Actual", preferences->getColumnPreference ( 15 ) ); // column id 15 |
75 | listview->addColumn ( "", 0 ); // line item ids | 72 | listview->addColumn ( "", 0 ); // line item ids |
76 | listview->setColumnWidthMode ( 0, QListView::Manual ); | 73 | listview->setColumnWidthMode ( 0, QListView::Manual ); |
77 | listview->setColumnWidthMode ( 1, QListView::Manual ); | 74 | listview->setColumnWidthMode ( 1, QListView::Manual ); |
78 | listview->setColumnWidthMode ( 2, QListView::Manual ); | 75 | listview->setColumnWidthMode ( 2, QListView::Manual ); |
79 | listview->setColumnAlignment ( 1, Qt::AlignRight ); | 76 | listview->setColumnAlignment ( 1, Qt::AlignRight ); |
80 | listview->setColumnAlignment ( 2, Qt::AlignRight ); | 77 | listview->setColumnAlignment ( 2, Qt::AlignRight ); |
81 | listview->setColumnWidthMode ( 3, QListView::Manual ); | 78 | listview->setColumnWidthMode ( 3, QListView::Manual ); |
82 | 79 | ||
83 | listview->header()->setTracking ( FALSE ); | 80 | listview->header()->setTracking ( FALSE ); |
84 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); | 81 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); |
85 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); | 82 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); |
86 | 83 | ||
87 | // pull the column sorting preference from the preferences table, and configure the listview accordingly | 84 | // pull the column sorting preference from the preferences table, and configure the listview accordingly |
88 | int column = 0; | 85 | int column = 0; |
89 | int direction = 0; | 86 | int direction = 0; |
90 | preferences->getSortingPreference ( 3, &column, &direction ); | 87 | preferences->getSortingPreference ( 3, &column, &direction ); |
91 | listview->setSorting ( column, direction ); | 88 | listview->setSorting ( column, direction ); |
92 | 89 | ||
93 | displayBudgetNames(); | 90 | displayBudgetNames(); |
94 | 91 | ||
95 | layout = new QVBoxLayout ( this, 2, 2 ); | 92 | layout = new QVBoxLayout ( this, 2, 2 ); |
96 | layout->setMenuBar ( menu ); | 93 | layout->setMenuBar ( menu ); |
97 | layout->addWidget ( firstline ); | 94 | layout->addWidget ( firstline ); |
98 | layout->addWidget ( secondline ); | 95 | layout->addWidget ( secondline ); |
99 | layout->addWidget ( listview ); | 96 | layout->addWidget ( listview ); |
100 | } | 97 | } |
101 | 98 | ||
102 | void BudgetDisplay::deleteBudget () | 99 | void BudgetDisplay::deleteBudget () |
103 | { | 100 | { |
104 | listview->clear(); | 101 | listview->clear(); |
105 | transaction->clearBudgetIDs ( currentbudget ); | 102 | transaction->clearBudgetIDs ( currentbudget ); |
106 | budget->deleteBudget ( currentbudget ); | 103 | budget->deleteBudget ( currentbudget ); |
107 | if ( budgetbox->count() != 0 ) | 104 | if ( budgetbox->count() != 0 ) |
108 | displayBudgetNames(); | 105 | displayBudgetNames(); |
109 | checkBudgets(); | 106 | checkBudgets(); |
110 | } | 107 | } |
111 | 108 | ||
112 | void BudgetDisplay::saveColumnSize ( int column, int oldsize, int newsize ) | 109 | void BudgetDisplay::saveColumnSize ( int column, int oldsize, int newsize ) |
113 | { | 110 | { |
114 | switch ( column ) | 111 | switch ( column ) |
115 | { | 112 | { |
116 | case 0: | 113 | case 0: |
117 | preferences->changeColumnPreference ( 13, newsize ); | 114 | preferences->changeColumnPreference ( 13, newsize ); |
118 | break; | 115 | break; |
119 | case 1: | 116 | case 1: |
120 | preferences->changeColumnPreference ( 14, newsize ); | 117 | preferences->changeColumnPreference ( 14, newsize ); |
121 | break; | 118 | break; |
122 | case 2: | 119 | case 2: |
123 | preferences->changeColumnPreference ( 15, newsize ); | 120 | preferences->changeColumnPreference ( 15, newsize ); |
124 | break; | 121 | break; |
125 | } | 122 | } |
126 | } | 123 | } |
127 | 124 | ||
128 | void BudgetDisplay::saveSortingPreference ( int column ) | 125 | void BudgetDisplay::saveSortingPreference ( int column ) |
129 | { | 126 | { |
130 | preferences->changeSortingPreference ( 3, column ); | 127 | preferences->changeSortingPreference ( 3, column ); |
131 | } | 128 | } |
132 | 129 | ||
133 | int BudgetDisplay::getIDColumn () | 130 | int BudgetDisplay::getIDColumn () |
134 | { | 131 | { |
135 | int counter; | 132 | int counter; |
136 | int columns = listview->columns(); | 133 | int columns = listview->columns(); |
137 | for ( counter = 0; counter <= columns; counter++ ) | 134 | for ( counter = 0; counter <= columns; counter++ ) |
138 | if ( listview->header()->label ( counter ).length() == 0 ) | 135 | if ( listview->header()->label ( counter ).length() == 0 ) |
diff --git a/noncore/apps/qashmoney/newaccount.cpp b/noncore/apps/qashmoney/newaccount.cpp index 2ad8f60..7e57a18 100755 --- a/noncore/apps/qashmoney/newaccount.cpp +++ b/noncore/apps/qashmoney/newaccount.cpp | |||
@@ -1,134 +1,131 @@ | |||
1 | #include "newaccount.h" | 1 | #include "newaccount.h" |
2 | #include "calculator.h" | 2 | #include "calculator.h" |
3 | #include "datepicker.h" | 3 | #include "datepicker.h" |
4 | #include "transaction.h" | ||
5 | #include "preferences.h" | ||
6 | #include <qdatetime.h> | ||
7 | #include <qmultilineedit.h> | 4 | #include <qmultilineedit.h> |
8 | 5 | ||
9 | extern Preferences *preferences; | 6 | extern Preferences *preferences; |
10 | 7 | ||
11 | NewAccount::NewAccount ( QWidget *parent, const char *name, bool modal ) : QDialog ( parent, name, modal ) | 8 | NewAccount::NewAccount ( QWidget *parent, const char *name, bool modal ) : QDialog ( parent, name, modal ) |
12 | { | 9 | { |
13 | accountdescription = ""; | 10 | accountdescription = ""; |
14 | dateedited = FALSE; | 11 | dateedited = FALSE; |
15 | setCaption( tr( "Account" ) ); | 12 | setCaption( tr( "Account" ) ); |
16 | 13 | ||
17 | namelabel = new QLabel ( "Account Name", this ); | 14 | namelabel = new QLabel ( "Account Name", this ); |
18 | 15 | ||
19 | accountbox = new QHBox ( this ); | 16 | accountbox = new QHBox ( this ); |
20 | accountname = new QLineEdit ( accountbox ); | 17 | accountname = new QLineEdit ( accountbox ); |
21 | descriptionbutton = new QPushButton ( accountbox ); | 18 | descriptionbutton = new QPushButton ( accountbox ); |
22 | descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); | 19 | descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); |
23 | 20 | ||
24 | datelabel = new QLabel ( "Date", this ); | 21 | datelabel = new QLabel ( "Date", this ); |
25 | 22 | ||
26 | datebox = new QHBox ( this ); | 23 | datebox = new QHBox ( this ); |
27 | startdate = new QLineEdit ( datebox ); | 24 | startdate = new QLineEdit ( datebox ); |
28 | startdate->setDisabled ( TRUE ); | 25 | startdate->setDisabled ( TRUE ); |
29 | datebutton = new QPushButton ( datebox ); | 26 | datebutton = new QPushButton ( datebox ); |
30 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); | 27 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); |
31 | 28 | ||
32 | childcheckbox = new QCheckBox ( this ); | 29 | childcheckbox = new QCheckBox ( this ); |
33 | childcheckbox->setText( tr ( "Child Account" ) ); | 30 | childcheckbox->setText( tr ( "Child Account" ) ); |
34 | 31 | ||
35 | childlabel = new QLabel ( "Child of", this ); | 32 | childlabel = new QLabel ( "Child of", this ); |
36 | childbox = new QComboBox ( FALSE, this ); | 33 | childbox = new QComboBox ( FALSE, this ); |
37 | hideChildPulldownMenu (); | 34 | hideChildPulldownMenu (); |
38 | 35 | ||
39 | balancelabel = new QLabel ( "Balance", this ); | 36 | balancelabel = new QLabel ( "Balance", this ); |
40 | 37 | ||
41 | balancebox = new QHBox ( this ); | 38 | balancebox = new QHBox ( this ); |
42 | accountbalance = new QLineEdit ( balancebox ); | 39 | accountbalance = new QLineEdit ( balancebox ); |
43 | accountbalance->setText ( "0.00" ); | 40 | accountbalance->setText ( "0.00" ); |
44 | balancecalculator = new QPushButton( balancebox ); | 41 | balancecalculator = new QPushButton( balancebox ); |
45 | balancecalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 42 | balancecalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
46 | 43 | ||
47 | creditlimitlabel = new QLabel ( "Credit Limit", this ); | 44 | creditlimitlabel = new QLabel ( "Credit Limit", this ); |
48 | 45 | ||
49 | creditlimitbox = new QHBox ( this ); | 46 | creditlimitbox = new QHBox ( this ); |
50 | creditlimit = new QLineEdit ( creditlimitbox ); | 47 | creditlimit = new QLineEdit ( creditlimitbox ); |
51 | creditlimitbox->setEnabled ( FALSE ); | 48 | creditlimitbox->setEnabled ( FALSE ); |
52 | creditlimitcalculator = new QPushButton( creditlimitbox ); | 49 | creditlimitcalculator = new QPushButton( creditlimitbox ); |
53 | creditlimitcalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 50 | creditlimitcalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
54 | 51 | ||
55 | currencybox = new Currency ( this ); | 52 | currencybox = new Currency ( this ); |
56 | 53 | ||
57 | typelabel = new QLabel ( "Type", this ); | 54 | typelabel = new QLabel ( "Type", this ); |
58 | accounttype = new QComboBox ( FALSE, this ); | 55 | accounttype = new QComboBox ( FALSE, this ); |
59 | accounttype->insertItem( tr( "Bank" ) ); | 56 | accounttype->insertItem( tr( "Bank" ) ); |
60 | accounttype->insertItem( tr( "Cash" ) ); | 57 | accounttype->insertItem( tr( "Cash" ) ); |
61 | accounttype->insertItem( tr( "Credit Card" ) ); | 58 | accounttype->insertItem( tr( "Credit Card" ) ); |
62 | accounttype->insertItem( tr( "Equity" ) ); | 59 | accounttype->insertItem( tr( "Equity" ) ); |
63 | accounttype->insertItem( tr( "Asset" ) ); | 60 | accounttype->insertItem( tr( "Asset" ) ); |
64 | accounttype->insertItem( tr( "Liability" ) ); | 61 | accounttype->insertItem( tr( "Liability" ) ); |
65 | 62 | ||
66 | layout = new QGridLayout ( this, 7, 2, 4, 2 ); | 63 | layout = new QGridLayout ( this, 7, 2, 4, 2 ); |
67 | layout->addWidget ( namelabel , 0, 0, Qt::AlignLeft ); | 64 | layout->addWidget ( namelabel , 0, 0, Qt::AlignLeft ); |
68 | layout->addWidget ( accountbox, 1, 0, Qt::AlignLeft ); | 65 | layout->addWidget ( accountbox, 1, 0, Qt::AlignLeft ); |
69 | layout->addWidget ( datelabel, 2, 0, Qt::AlignLeft ); | 66 | layout->addWidget ( datelabel, 2, 0, Qt::AlignLeft ); |
70 | layout->addWidget ( datebox, 3, 0, Qt::AlignLeft ); | 67 | layout->addWidget ( datebox, 3, 0, Qt::AlignLeft ); |
71 | layout->addWidget ( childcheckbox, 4, 0, Qt::AlignLeft ); | 68 | layout->addWidget ( childcheckbox, 4, 0, Qt::AlignLeft ); |
72 | layout->addWidget ( childlabel, 5, 0, Qt::AlignLeft ); | 69 | layout->addWidget ( childlabel, 5, 0, Qt::AlignLeft ); |
73 | layout->addWidget ( childbox, 6, 0, Qt::AlignLeft ); | 70 | layout->addWidget ( childbox, 6, 0, Qt::AlignLeft ); |
74 | layout->addWidget ( balancelabel, 0, 1, Qt::AlignLeft ); | 71 | layout->addWidget ( balancelabel, 0, 1, Qt::AlignLeft ); |
75 | layout->addWidget ( balancebox, 1, 1, Qt::AlignLeft ); | 72 | layout->addWidget ( balancebox, 1, 1, Qt::AlignLeft ); |
76 | layout->addWidget ( creditlimitlabel, 2, 1, Qt::AlignLeft ); | 73 | layout->addWidget ( creditlimitlabel, 2, 1, Qt::AlignLeft ); |
77 | layout->addWidget ( creditlimitbox, 3, 1, Qt::AlignLeft ); | 74 | layout->addWidget ( creditlimitbox, 3, 1, Qt::AlignLeft ); |
78 | layout->addWidget ( currencybox, 4, 1, Qt::AlignLeft ); | 75 | layout->addWidget ( currencybox, 4, 1, Qt::AlignLeft ); |
79 | layout->addWidget ( typelabel, 5, 1, Qt::AlignLeft ); | 76 | layout->addWidget ( typelabel, 5, 1, Qt::AlignLeft ); |
80 | layout->addWidget ( accounttype, 6, 1, Qt::AlignLeft ); | 77 | layout->addWidget ( accounttype, 6, 1, Qt::AlignLeft ); |
81 | 78 | ||
82 | connect ( childcheckbox, SIGNAL ( clicked () ), this, SLOT ( showChildPulldownMenu() ) ); | 79 | connect ( childcheckbox, SIGNAL ( clicked () ), this, SLOT ( showChildPulldownMenu() ) ); |
83 | connect ( balancecalculator, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); | 80 | connect ( balancecalculator, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); |
84 | connect ( creditlimitcalculator, SIGNAL ( released() ), this, SLOT ( showCreditLimitCalculator() ) ); | 81 | connect ( creditlimitcalculator, SIGNAL ( released() ), this, SLOT ( showCreditLimitCalculator() ) ); |
85 | connect ( accounttype, SIGNAL ( activated ( int ) ), this, SLOT ( activateCreditLimit ( int ) ) ); | 82 | connect ( accounttype, SIGNAL ( activated ( int ) ), this, SLOT ( activateCreditLimit ( int ) ) ); |
86 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); | 83 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); |
87 | connect ( descriptionbutton, SIGNAL ( released () ), this, SLOT ( addAccountDescription() ) ); | 84 | connect ( descriptionbutton, SIGNAL ( released () ), this, SLOT ( addAccountDescription() ) ); |
88 | } | 85 | } |
89 | 86 | ||
90 | NewAccount::~NewAccount () | 87 | NewAccount::~NewAccount () |
91 | { | 88 | { |
92 | } | 89 | } |
93 | 90 | ||
94 | void NewAccount::showChildPulldownMenu () | 91 | void NewAccount::showChildPulldownMenu () |
95 | { | 92 | { |
96 | if ( childcheckbox->isChecked() == TRUE ) | 93 | if ( childcheckbox->isChecked() == TRUE ) |
97 | { | 94 | { |
98 | childlabel->setEnabled ( TRUE ); | 95 | childlabel->setEnabled ( TRUE ); |
99 | childbox->setEnabled ( TRUE ); | 96 | childbox->setEnabled ( TRUE ); |
100 | } | 97 | } |
101 | else | 98 | else |
102 | hideChildPulldownMenu(); | 99 | hideChildPulldownMenu(); |
103 | } | 100 | } |
104 | 101 | ||
105 | void NewAccount::hideChildPulldownMenu () | 102 | void NewAccount::hideChildPulldownMenu () |
106 | { | 103 | { |
107 | childlabel->setEnabled ( FALSE ); | 104 | childlabel->setEnabled ( FALSE ); |
108 | childbox->setEnabled ( FALSE ); | 105 | childbox->setEnabled ( FALSE ); |
109 | } | 106 | } |
110 | 107 | ||
111 | void NewAccount::showCalculator () | 108 | void NewAccount::showCalculator () |
112 | { | 109 | { |
113 | Calculator *calculator = new Calculator ( this ); | 110 | Calculator *calculator = new Calculator ( this ); |
114 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 111 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
115 | if ( calculator->exec () == QDialog::Accepted ) | 112 | if ( calculator->exec () == QDialog::Accepted ) |
116 | accountbalance->setText ( calculator->display->text() ); | 113 | accountbalance->setText ( calculator->display->text() ); |
117 | } | 114 | } |
118 | 115 | ||
119 | void NewAccount::showCreditLimitCalculator () | 116 | void NewAccount::showCreditLimitCalculator () |
120 | { | 117 | { |
121 | Calculator *calculator = new Calculator ( this ); | 118 | Calculator *calculator = new Calculator ( this ); |
122 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 119 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
123 | if ( calculator->exec () == QDialog::Accepted ) | 120 | if ( calculator->exec () == QDialog::Accepted ) |
124 | creditlimit->setText ( calculator->display->text() ); | 121 | creditlimit->setText ( calculator->display->text() ); |
125 | } | 122 | } |
126 | 123 | ||
127 | void NewAccount::activateCreditLimit ( int index ) | 124 | void NewAccount::activateCreditLimit ( int index ) |
128 | { | 125 | { |
129 | if ( index == 2 || index == 5 ) | 126 | if ( index == 2 || index == 5 ) |
130 | creditlimitbox->setEnabled ( TRUE ); | 127 | creditlimitbox->setEnabled ( TRUE ); |
131 | else | 128 | else |
132 | { | 129 | { |
133 | creditlimit->clear (); | 130 | creditlimit->clear (); |
134 | creditlimitbox->setEnabled ( FALSE ); | 131 | creditlimitbox->setEnabled ( FALSE ); |
diff --git a/noncore/apps/qashmoney/newtransaction.cpp b/noncore/apps/qashmoney/newtransaction.cpp index 630a8b8..5c78139 100755 --- a/noncore/apps/qashmoney/newtransaction.cpp +++ b/noncore/apps/qashmoney/newtransaction.cpp | |||
@@ -1,135 +1,133 @@ | |||
1 | #include "newtransaction.h" | 1 | #include "newtransaction.h" |
2 | #include "calculator.h" | 2 | #include "calculator.h" |
3 | #include "datepicker.h" | 3 | #include "datepicker.h" |
4 | #include "memory.h" | ||
5 | #include "budget.h" | 4 | #include "budget.h" |
6 | 5 | ||
7 | #include <qdatetime.h> | ||
8 | #include <qmultilineedit.h> | 6 | #include <qmultilineedit.h> |
9 | 7 | ||
10 | extern Budget *budget; | 8 | extern Budget *budget; |
11 | extern Preferences *preferences; | 9 | extern Preferences *preferences; |
12 | 10 | ||
13 | NewTransaction::NewTransaction ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) | 11 | NewTransaction::NewTransaction ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) |
14 | { | 12 | { |
15 | transactiondescription = ""; | 13 | transactiondescription = ""; |
16 | currentlineitem = -1; | 14 | currentlineitem = -1; |
17 | currentbudget = -1; | 15 | currentbudget = -1; |
18 | dateedited = FALSE; | 16 | dateedited = FALSE; |
19 | setCaption( tr( "Transaction" ) ); | 17 | setCaption( tr( "Transaction" ) ); |
20 | 18 | ||
21 | // START FIRST COLUMN | 19 | // START FIRST COLUMN |
22 | 20 | ||
23 | namelabel = new QLabel ( "Transaction", this ); | 21 | namelabel = new QLabel ( "Transaction", this ); |
24 | 22 | ||
25 | transactionnamebox = new QHBox ( this ); | 23 | transactionnamebox = new QHBox ( this ); |
26 | transactionname = new QComboBox ( transactionnamebox ); | 24 | transactionname = new QComboBox ( transactionnamebox ); |
27 | transactionname->setEditable ( TRUE ); | 25 | transactionname->setEditable ( TRUE ); |
28 | descriptionbutton = new QPushButton ( transactionnamebox ); | 26 | descriptionbutton = new QPushButton ( transactionnamebox ); |
29 | descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); | 27 | descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); |
30 | connect ( descriptionbutton, SIGNAL ( released () ), this, SLOT ( addTransactionDescription() ) ); | 28 | connect ( descriptionbutton, SIGNAL ( released () ), this, SLOT ( addTransactionDescription() ) ); |
31 | 29 | ||
32 | amountlabel = new QLabel ( "Amount", this ); | 30 | amountlabel = new QLabel ( "Amount", this ); |
33 | 31 | ||
34 | transactionamountbox = new QHBox ( this ); | 32 | transactionamountbox = new QHBox ( this ); |
35 | transactionamount = new QLineEdit ( transactionamountbox ); | 33 | transactionamount = new QLineEdit ( transactionamountbox ); |
36 | transactionamount->setAlignment ( Qt::AlignRight ); | 34 | transactionamount->setAlignment ( Qt::AlignRight ); |
37 | transactionamount->setText ( "0.00" ); | 35 | transactionamount->setText ( "0.00" ); |
38 | calculatorbutton = new QPushButton( transactionamountbox ); | 36 | calculatorbutton = new QPushButton( transactionamountbox ); |
39 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 37 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
40 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); | 38 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); |
41 | 39 | ||
42 | datelabel = new QLabel ( "Date", this ); | 40 | datelabel = new QLabel ( "Date", this ); |
43 | 41 | ||
44 | transactiondatebox = new QHBox ( this ); | 42 | transactiondatebox = new QHBox ( this ); |
45 | transactiondate = new QLineEdit ( transactiondatebox ); | 43 | transactiondate = new QLineEdit ( transactiondatebox ); |
46 | transactiondate->setAlignment ( Qt::AlignRight ); | 44 | transactiondate->setAlignment ( Qt::AlignRight ); |
47 | transactiondate->setDisabled ( TRUE ); | 45 | transactiondate->setDisabled ( TRUE ); |
48 | datebutton = new QPushButton( transactiondatebox ); | 46 | datebutton = new QPushButton( transactiondatebox ); |
49 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); | 47 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); |
50 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); | 48 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); |
51 | 49 | ||
52 | clearedcheckbox = new QCheckBox ( "Cleared", this ); | 50 | clearedcheckbox = new QCheckBox ( "Cleared", this ); |
53 | depositbox = new QCheckBox ( "Credit", this ); | 51 | depositbox = new QCheckBox ( "Credit", this ); |
54 | 52 | ||
55 | // START SECOND COLUMN | 53 | // START SECOND COLUMN |
56 | 54 | ||
57 | numberlabel = new QLabel ( "Number", this ); | 55 | numberlabel = new QLabel ( "Number", this ); |
58 | transactionnumber = new QLineEdit ( this ); | 56 | transactionnumber = new QLineEdit ( this ); |
59 | 57 | ||
60 | budgetlabel = new QLabel ( "Budget", this ); | 58 | budgetlabel = new QLabel ( "Budget", this ); |
61 | budgetbox = new QComboBox ( FALSE, this ); | 59 | budgetbox = new QComboBox ( FALSE, this ); |
62 | 60 | ||
63 | lineitemlabel = new QLabel ( "LineItem", this ); | 61 | lineitemlabel = new QLabel ( "LineItem", this ); |
64 | lineitembox = new QComboBox ( FALSE, this ); | 62 | lineitembox = new QComboBox ( FALSE, this ); |
65 | 63 | ||
66 | layout = new QGridLayout ( this, 7, 2, 2, 2 ); | 64 | layout = new QGridLayout ( this, 7, 2, 2, 2 ); |
67 | layout->addWidget ( namelabel, 0, 0, Qt::AlignLeft ); | 65 | layout->addWidget ( namelabel, 0, 0, Qt::AlignLeft ); |
68 | layout->addWidget ( transactionnamebox, 1, 0, Qt::AlignLeft ); | 66 | layout->addWidget ( transactionnamebox, 1, 0, Qt::AlignLeft ); |
69 | layout->addWidget ( amountlabel, 2, 0, Qt::AlignLeft ); | 67 | layout->addWidget ( amountlabel, 2, 0, Qt::AlignLeft ); |
70 | layout->addWidget ( transactionamountbox, 3, 0, Qt::AlignLeft ); | 68 | layout->addWidget ( transactionamountbox, 3, 0, Qt::AlignLeft ); |
71 | layout->addWidget ( datelabel, 4, 0, Qt::AlignLeft ); | 69 | layout->addWidget ( datelabel, 4, 0, Qt::AlignLeft ); |
72 | layout->addWidget ( transactiondatebox, 5, 0, Qt::AlignLeft ); | 70 | layout->addWidget ( transactiondatebox, 5, 0, Qt::AlignLeft ); |
73 | layout->addWidget ( clearedcheckbox, 6, 0, Qt::AlignLeft ); | 71 | layout->addWidget ( clearedcheckbox, 6, 0, Qt::AlignLeft ); |
74 | layout->addWidget ( numberlabel, 0, 1, Qt::AlignLeft ); | 72 | layout->addWidget ( numberlabel, 0, 1, Qt::AlignLeft ); |
75 | layout->addWidget ( transactionnumber, 1, 1, Qt::AlignLeft ); | 73 | layout->addWidget ( transactionnumber, 1, 1, Qt::AlignLeft ); |
76 | layout->addWidget ( budgetlabel, 2, 1, Qt::AlignLeft ); | 74 | layout->addWidget ( budgetlabel, 2, 1, Qt::AlignLeft ); |
77 | layout->addWidget ( budgetbox, 3, 1, Qt::AlignLeft ); | 75 | layout->addWidget ( budgetbox, 3, 1, Qt::AlignLeft ); |
78 | layout->addWidget ( lineitemlabel, 4, 1, Qt::AlignLeft ); | 76 | layout->addWidget ( lineitemlabel, 4, 1, Qt::AlignLeft ); |
79 | layout->addWidget ( lineitembox, 5, 1, Qt::AlignLeft ); | 77 | layout->addWidget ( lineitembox, 5, 1, Qt::AlignLeft ); |
80 | layout->addWidget ( depositbox, 6, 1, Qt::AlignLeft ); | 78 | layout->addWidget ( depositbox, 6, 1, Qt::AlignLeft ); |
81 | 79 | ||
82 | if ( budget->getNumberOfBudgets() != 0 ) | 80 | if ( budget->getNumberOfBudgets() != 0 ) |
83 | { | 81 | { |
84 | budgetnameslist = budget->getBudgetNames(); | 82 | budgetnameslist = budget->getBudgetNames(); |
85 | budgetidslist = budget->getBudgetIDs(); | 83 | budgetidslist = budget->getBudgetIDs(); |
86 | budgetbox->insertStringList ( *budgetnameslist ); | 84 | budgetbox->insertStringList ( *budgetnameslist ); |
87 | lineitemlabel->setEnabled ( FALSE ); | 85 | lineitemlabel->setEnabled ( FALSE ); |
88 | lineitembox->setEnabled ( FALSE ); | 86 | lineitembox->setEnabled ( FALSE ); |
89 | connect ( budgetbox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentBudget ( int ) ) ); | 87 | connect ( budgetbox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentBudget ( int ) ) ); |
90 | connect ( lineitembox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentLineItem ( int ) ) ); | 88 | connect ( lineitembox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentLineItem ( int ) ) ); |
91 | } | 89 | } |
92 | else | 90 | else |
93 | { | 91 | { |
94 | budgetlabel->setEnabled ( FALSE ); | 92 | budgetlabel->setEnabled ( FALSE ); |
95 | budgetbox->setEnabled ( FALSE ); | 93 | budgetbox->setEnabled ( FALSE ); |
96 | lineitemlabel->setEnabled ( FALSE ); | 94 | lineitemlabel->setEnabled ( FALSE ); |
97 | lineitembox->setEnabled ( FALSE ); | 95 | lineitembox->setEnabled ( FALSE ); |
98 | } | 96 | } |
99 | 97 | ||
100 | } | 98 | } |
101 | 99 | ||
102 | NewTransaction::~NewTransaction () | 100 | NewTransaction::~NewTransaction () |
103 | { | 101 | { |
104 | } | 102 | } |
105 | 103 | ||
106 | void NewTransaction::showCalculator () | 104 | void NewTransaction::showCalculator () |
107 | { | 105 | { |
108 | Calculator *calculator = new Calculator ( this ); | 106 | Calculator *calculator = new Calculator ( this ); |
109 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 107 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
110 | if ( calculator->exec () == QDialog::Accepted ) | 108 | if ( calculator->exec () == QDialog::Accepted ) |
111 | transactionamount->setText ( calculator->display->text() ); | 109 | transactionamount->setText ( calculator->display->text() ); |
112 | } | 110 | } |
113 | 111 | ||
114 | void NewTransaction::showCalendar () | 112 | void NewTransaction::showCalendar () |
115 | { | 113 | { |
116 | QDate newDate = QDate::currentDate (); | 114 | QDate newDate = QDate::currentDate (); |
117 | DatePicker *dp = new DatePicker ( newDate ); | 115 | DatePicker *dp = new DatePicker ( newDate ); |
118 | dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 116 | dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
119 | 117 | ||
120 | int response = dp->exec(); | 118 | int response = dp->exec(); |
121 | if ( response == QDialog::Accepted ) | 119 | if ( response == QDialog::Accepted ) |
122 | { | 120 | { |
123 | // Set date integers | 121 | // Set date integers |
124 | year = dp->getYear(); | 122 | year = dp->getYear(); |
125 | month = dp->getMonth(); | 123 | month = dp->getMonth(); |
126 | day = dp->getDay(); | 124 | day = dp->getDay(); |
127 | 125 | ||
128 | // Set dateedited to TRUE | 126 | // Set dateedited to TRUE |
129 | // This tells the transactiondisplay object that the user edited an transaction | 127 | // This tells the transactiondisplay object that the user edited an transaction |
130 | // and did change the date3 | 128 | // and did change the date3 |
131 | dateedited = TRUE; | 129 | dateedited = TRUE; |
132 | 130 | ||
133 | // Display date with our selected format | 131 | // Display date with our selected format |
134 | transactiondate->setText ( preferences->getDate ( year, month, day ) ); | 132 | transactiondate->setText ( preferences->getDate ( year, month, day ) ); |
135 | } | 133 | } |
diff --git a/noncore/apps/qashmoney/preferencedialogs.cpp b/noncore/apps/qashmoney/preferencedialogs.cpp index d7c66d3..5408a5b 100755 --- a/noncore/apps/qashmoney/preferencedialogs.cpp +++ b/noncore/apps/qashmoney/preferencedialogs.cpp | |||
@@ -1,131 +1,130 @@ | |||
1 | #include "preferencedialogs.h" | 1 | #include "preferencedialogs.h" |
2 | #include "preferences.h" | 2 | #include "preferences.h" |
3 | #include <qlabel.h> | ||
4 | 3 | ||
5 | extern Preferences *preferences; | 4 | extern Preferences *preferences; |
6 | 5 | ||
7 | DatePreferences::DatePreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) | 6 | DatePreferences::DatePreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) |
8 | { | 7 | { |
9 | setCaption( tr( "Date" ) ); | 8 | setCaption( tr( "Date" ) ); |
10 | 9 | ||
11 | QLabel *datelabel = new QLabel ( "Format", this ); | 10 | QLabel *datelabel = new QLabel ( "Format", this ); |
12 | dateformat = new QComboBox ( this ); | 11 | dateformat = new QComboBox ( this ); |
13 | dateformat->setEditable ( FALSE ); | 12 | dateformat->setEditable ( FALSE ); |
14 | dateformat->insertItem ( "yyyymmdd" ); | 13 | dateformat->insertItem ( "yyyymmdd" ); |
15 | dateformat->insertItem ( "yymmdd" ); | 14 | dateformat->insertItem ( "yymmdd" ); |
16 | dateformat->insertItem ( "mmddyyyy" ); | 15 | dateformat->insertItem ( "mmddyyyy" ); |
17 | dateformat->insertItem ( "mmddyy" ); | 16 | dateformat->insertItem ( "mmddyy" ); |
18 | dateformat->insertItem ( "yyyyddmm" ); | 17 | dateformat->insertItem ( "yyyyddmm" ); |
19 | dateformat->insertItem ( "yyddmm" ); | 18 | dateformat->insertItem ( "yyddmm" ); |
20 | dateformat->insertItem ( "ddmmyyyy" ); | 19 | dateformat->insertItem ( "ddmmyyyy" ); |
21 | dateformat->insertItem ( "ddmmyy" ); | 20 | dateformat->insertItem ( "ddmmyy" ); |
22 | connect ( dateformat, SIGNAL ( activated ( int ) ), this, SLOT ( changeDateFormat ( int ) ) ); | 21 | connect ( dateformat, SIGNAL ( activated ( int ) ), this, SLOT ( changeDateFormat ( int ) ) ); |
23 | 22 | ||
24 | QLabel *dateseparatorlabel = new QLabel ( "Separator", this ); | 23 | QLabel *dateseparatorlabel = new QLabel ( "Separator", this ); |
25 | dateseparator = new QComboBox ( this ); | 24 | dateseparator = new QComboBox ( this ); |
26 | dateseparator->insertItem ( "/" ); | 25 | dateseparator->insertItem ( "/" ); |
27 | dateseparator->insertItem ( "-" ); | 26 | dateseparator->insertItem ( "-" ); |
28 | dateseparator->insertItem ( "." ); | 27 | dateseparator->insertItem ( "." ); |
29 | connect ( dateseparator, SIGNAL ( activated ( int ) ), this, SLOT ( changeDateSeparator ( int ) ) ); | 28 | connect ( dateseparator, SIGNAL ( activated ( int ) ), this, SLOT ( changeDateSeparator ( int ) ) ); |
30 | 29 | ||
31 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); | 30 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); |
32 | connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultDatePreferences () ) ); | 31 | connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultDatePreferences () ) ); |
33 | 32 | ||
34 | dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); | 33 | dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); |
35 | dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); | 34 | dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); |
36 | 35 | ||
37 | layout = new QVBoxLayout ( this, 2, 2 ); | 36 | layout = new QVBoxLayout ( this, 2, 2 ); |
38 | layout->addWidget ( datelabel ); | 37 | layout->addWidget ( datelabel ); |
39 | layout->addWidget ( dateformat ); | 38 | layout->addWidget ( dateformat ); |
40 | layout->addWidget ( dateseparatorlabel ); | 39 | layout->addWidget ( dateseparatorlabel ); |
41 | layout->addWidget ( dateseparator ); | 40 | layout->addWidget ( dateseparator ); |
42 | layout->insertSpacing ( 4, 5 ); | 41 | layout->insertSpacing ( 4, 5 ); |
43 | layout->addWidget ( defaults ); | 42 | layout->addWidget ( defaults ); |
44 | 43 | ||
45 | } | 44 | } |
46 | 45 | ||
47 | DatePreferences::~DatePreferences () | 46 | DatePreferences::~DatePreferences () |
48 | { | 47 | { |
49 | } | 48 | } |
50 | 49 | ||
51 | void DatePreferences::changeDateFormat ( int index ) | 50 | void DatePreferences::changeDateFormat ( int index ) |
52 | { | 51 | { |
53 | index ++; | 52 | index ++; |
54 | preferences->changePreference ( 1, index ); | 53 | preferences->changePreference ( 1, index ); |
55 | } | 54 | } |
56 | 55 | ||
57 | void DatePreferences::changeDateSeparator ( int index ) | 56 | void DatePreferences::changeDateSeparator ( int index ) |
58 | { | 57 | { |
59 | index ++; | 58 | index ++; |
60 | preferences->changePreference ( 2, index ); | 59 | preferences->changePreference ( 2, index ); |
61 | } | 60 | } |
62 | 61 | ||
63 | void DatePreferences::setDefaultDatePreferences () | 62 | void DatePreferences::setDefaultDatePreferences () |
64 | { | 63 | { |
65 | preferences->setDefaultDatePreferences (); | 64 | preferences->setDefaultDatePreferences (); |
66 | dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); | 65 | dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); |
67 | dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); | 66 | dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); |
68 | } | 67 | } |
69 | 68 | ||
70 | // START TRANSACTION PREFERENCES | 69 | // START TRANSACTION PREFERENCES |
71 | 70 | ||
72 | TransactionPreferences::TransactionPreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) | 71 | TransactionPreferences::TransactionPreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) |
73 | { | 72 | { |
74 | setCaption( tr ( "Transaction" ) ); | 73 | setCaption( tr ( "Transaction" ) ); |
75 | 74 | ||
76 | showclearedtransactions = new QCheckBox ( this ); | 75 | showclearedtransactions = new QCheckBox ( this ); |
77 | showclearedtransactions->setText ( "Show Cleared Transactions" ); | 76 | showclearedtransactions->setText ( "Show Cleared Transactions" ); |
78 | 77 | ||
79 | limittransactionsbox = new QHBox ( this ); | 78 | limittransactionsbox = new QHBox ( this ); |
80 | limittransactionsbox->setSpacing ( 2 ); | 79 | limittransactionsbox->setSpacing ( 2 ); |
81 | limittransactionslabel = new QLabel ( "Show ", limittransactionsbox ); | 80 | limittransactionslabel = new QLabel ( "Show ", limittransactionsbox ); |
82 | limittransactions = new QComboBox ( limittransactionsbox ); | 81 | limittransactions = new QComboBox ( limittransactionsbox ); |
83 | QLabel *limittransactionslabel2 = new QLabel ( "of cleared transactions. ", limittransactionsbox ); | 82 | QLabel *limittransactionslabel2 = new QLabel ( "of cleared transactions. ", limittransactionsbox ); |
84 | limittransactions->insertItem ( "14 days" ); | 83 | limittransactions->insertItem ( "14 days" ); |
85 | limittransactions->insertItem ( "30 days" ); | 84 | limittransactions->insertItem ( "30 days" ); |
86 | limittransactions->insertItem ( "90 days" ); | 85 | limittransactions->insertItem ( "90 days" ); |
87 | limittransactions->insertItem ( "180 days" ); | 86 | limittransactions->insertItem ( "180 days" ); |
88 | limittransactions->insertItem ( "365 days" ); | 87 | limittransactions->insertItem ( "365 days" ); |
89 | limittransactions->insertItem ( "All" ); | 88 | limittransactions->insertItem ( "All" ); |
90 | limittransactions->setCurrentItem ( preferences->getPreference ( 7 ) ); | 89 | limittransactions->setCurrentItem ( preferences->getPreference ( 7 ) ); |
91 | 90 | ||
92 | excludetransfers = new QCheckBox ( this ); | 91 | excludetransfers = new QCheckBox ( this ); |
93 | excludetransfers->setText ( "Include Transfers In Limit View" ); | 92 | excludetransfers->setText ( "Include Transfers In Limit View" ); |
94 | 93 | ||
95 | if ( preferences->getPreference ( 3 ) == 1 ) | 94 | if ( preferences->getPreference ( 3 ) == 1 ) |
96 | showclearedtransactions->setChecked ( TRUE ); | 95 | showclearedtransactions->setChecked ( TRUE ); |
97 | else | 96 | else |
98 | showclearedtransactions->setChecked ( FALSE ); | 97 | showclearedtransactions->setChecked ( FALSE ); |
99 | 98 | ||
100 | if ( preferences->getPreference ( 6 ) == 1 ) | 99 | if ( preferences->getPreference ( 6 ) == 1 ) |
101 | excludetransfers->setChecked ( TRUE ); | 100 | excludetransfers->setChecked ( TRUE ); |
102 | else | 101 | else |
103 | excludetransfers->setChecked ( FALSE ); | 102 | excludetransfers->setChecked ( FALSE ); |
104 | 103 | ||
105 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); | 104 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); |
106 | connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultTransactionPreferences () ) ); | 105 | connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultTransactionPreferences () ) ); |
107 | 106 | ||
108 | layout = new QVBoxLayout ( this, 2, 2 ); | 107 | layout = new QVBoxLayout ( this, 2, 2 ); |
109 | layout->addWidget ( showclearedtransactions ); | 108 | layout->addWidget ( showclearedtransactions ); |
110 | layout->addWidget ( limittransactionsbox ); | 109 | layout->addWidget ( limittransactionsbox ); |
111 | layout->addWidget ( excludetransfers ); | 110 | layout->addWidget ( excludetransfers ); |
112 | layout->insertSpacing ( 3, 5 ); | 111 | layout->insertSpacing ( 3, 5 ); |
113 | layout->addWidget ( defaults ); | 112 | layout->addWidget ( defaults ); |
114 | 113 | ||
115 | connect ( showclearedtransactions, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeShowClearedPreference ( bool ) ) ); | 114 | connect ( showclearedtransactions, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeShowClearedPreference ( bool ) ) ); |
116 | connect ( excludetransfers, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeExcludeTranfersPreference ( bool ) ) ); | 115 | connect ( excludetransfers, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeExcludeTranfersPreference ( bool ) ) ); |
117 | connect ( limittransactions, SIGNAL ( activated ( int ) ), this, SLOT ( changeLimitTransactionsPreference ( int ) ) ); | 116 | connect ( limittransactions, SIGNAL ( activated ( int ) ), this, SLOT ( changeLimitTransactionsPreference ( int ) ) ); |
118 | } | 117 | } |
119 | 118 | ||
120 | TransactionPreferences::~TransactionPreferences () | 119 | TransactionPreferences::~TransactionPreferences () |
121 | { | 120 | { |
122 | } | 121 | } |
123 | 122 | ||
124 | void TransactionPreferences::changeLimitTransactionsPreference ( int pref ) | 123 | void TransactionPreferences::changeLimitTransactionsPreference ( int pref ) |
125 | { | 124 | { |
126 | preferences->changePreference ( 7, pref ); | 125 | preferences->changePreference ( 7, pref ); |
127 | } | 126 | } |
128 | 127 | ||
129 | void TransactionPreferences::changeShowClearedPreference ( bool state ) | 128 | void TransactionPreferences::changeShowClearedPreference ( bool state ) |
130 | { | 129 | { |
131 | if ( state == TRUE ) | 130 | if ( state == TRUE ) |
diff --git a/noncore/apps/qashmoney/transactiondisplay.cpp b/noncore/apps/qashmoney/transactiondisplay.cpp index 78b8a00..474f11e 100755 --- a/noncore/apps/qashmoney/transactiondisplay.cpp +++ b/noncore/apps/qashmoney/transactiondisplay.cpp | |||
@@ -1,143 +1,140 @@ | |||
1 | #include "transactiondisplay.h" | 1 | #include "transactiondisplay.h" |
2 | #include "newtransaction.h" | 2 | #include "newtransaction.h" |
3 | #include "account.h" | 3 | #include "account.h" |
4 | #include "budget.h" | 4 | #include "budget.h" |
5 | #include "memory.h" | 5 | #include "memory.h" |
6 | #include "transfer.h" | 6 | #include "transfer.h" |
7 | #include "preferences.h" | ||
8 | #include "calculator.h" | 7 | #include "calculator.h" |
9 | #include "datepicker.h" | 8 | #include "datepicker.h" |
10 | 9 | ||
11 | #include <qdatetime.h> | ||
12 | #include <qmessagebox.h> | 10 | #include <qmessagebox.h> |
13 | #include <qheader.h> | 11 | #include <qheader.h> |
14 | #include <qmultilineedit.h> | 12 | #include <qmultilineedit.h> |
15 | #include <qdatetime.h> | ||
16 | 13 | ||
17 | extern Transaction *transaction; | 14 | extern Transaction *transaction; |
18 | extern Budget *budget; | 15 | extern Budget *budget; |
19 | extern Account *account; | 16 | extern Account *account; |
20 | extern Preferences *preferences; | 17 | extern Preferences *preferences; |
21 | extern Memory *memory; | 18 | extern Memory *memory; |
22 | extern Transfer *transfer; | 19 | extern Transfer *transfer; |
23 | 20 | ||
24 | TransactionDisplay::TransactionDisplay ( QWidget* parent ) : QWidget ( parent ) | 21 | TransactionDisplay::TransactionDisplay ( QWidget* parent ) : QWidget ( parent ) |
25 | { | 22 | { |
26 | // set transactiondisplay variables; | 23 | // set transactiondisplay variables; |
27 | accountid = 0; | 24 | accountid = 0; |
28 | children = TRUE; | 25 | children = TRUE; |
29 | 26 | ||
30 | firstline = new QHBox ( this ); | 27 | firstline = new QHBox ( this ); |
31 | firstline->setSpacing ( 2 ); | 28 | firstline->setSpacing ( 2 ); |
32 | 29 | ||
33 | newtransaction = new QPushButton ( firstline ); | 30 | newtransaction = new QPushButton ( firstline ); |
34 | newtransaction->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); | 31 | newtransaction->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); |
35 | connect ( newtransaction, SIGNAL ( released () ), this, SLOT ( addTransaction () ) ); | 32 | connect ( newtransaction, SIGNAL ( released () ), this, SLOT ( addTransaction () ) ); |
36 | 33 | ||
37 | edittransaction = new QPushButton ( firstline ); | 34 | edittransaction = new QPushButton ( firstline ); |
38 | edittransaction->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); | 35 | edittransaction->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); |
39 | connect ( edittransaction, SIGNAL ( released () ), this, SLOT ( checkListViewEdit () ) ); | 36 | connect ( edittransaction, SIGNAL ( released () ), this, SLOT ( checkListViewEdit () ) ); |
40 | 37 | ||
41 | deletetransaction = new QPushButton ( firstline ); | 38 | deletetransaction = new QPushButton ( firstline ); |
42 | deletetransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); | 39 | deletetransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); |
43 | connect ( deletetransaction, SIGNAL ( released () ), this, SLOT ( checkListViewDelete () ) ); | 40 | connect ( deletetransaction, SIGNAL ( released () ), this, SLOT ( checkListViewDelete () ) ); |
44 | 41 | ||
45 | toggletransaction = new QPushButton ( firstline ); | 42 | toggletransaction = new QPushButton ( firstline ); |
46 | toggletransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/redo.png") ); | 43 | toggletransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/redo.png") ); |
47 | connect ( toggletransaction, SIGNAL ( released () ), this, SLOT ( checkListViewToggle () ) ); | 44 | connect ( toggletransaction, SIGNAL ( released () ), this, SLOT ( checkListViewToggle () ) ); |
48 | 45 | ||
49 | viewtransactionnotes = new QPushButton ( firstline ); | 46 | viewtransactionnotes = new QPushButton ( firstline ); |
50 | viewtransactionnotes->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/info.png") ); | 47 | viewtransactionnotes->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/info.png") ); |
51 | connect ( viewtransactionnotes, SIGNAL ( released () ), this, SLOT ( showTransactionNotes () ) ); | 48 | connect ( viewtransactionnotes, SIGNAL ( released () ), this, SLOT ( showTransactionNotes () ) ); |
52 | 49 | ||
53 | secondline = new QHBox ( this ); | 50 | secondline = new QHBox ( this ); |
54 | secondline->setSpacing ( 5 ); | 51 | secondline->setSpacing ( 5 ); |
55 | 52 | ||
56 | name = new QLabel ( secondline ); | 53 | name = new QLabel ( secondline ); |
57 | balance = new QLabel ( secondline ); | 54 | balance = new QLabel ( secondline ); |
58 | 55 | ||
59 | QLabel *limit = new QLabel ( "Limit", secondline ); | 56 | QLabel *limit = new QLabel ( "Limit", secondline ); |
60 | limitbox = new QLineEdit ( secondline ); | 57 | limitbox = new QLineEdit ( secondline ); |
61 | limitbox->setMinimumWidth ( ( int ) ( this->width() / 6 ) ); | 58 | limitbox->setMinimumWidth ( ( int ) ( this->width() / 6 ) ); |
62 | connect ( limitbox, SIGNAL ( textChanged ( const QString & ) ), this, SLOT ( limitDisplay ( const QString & ) ) ); | 59 | connect ( limitbox, SIGNAL ( textChanged ( const QString & ) ), this, SLOT ( limitDisplay ( const QString & ) ) ); |
63 | 60 | ||
64 | listview = new QListView ( this ); | 61 | listview = new QListView ( this ); |
65 | listview->setAllColumnsShowFocus ( TRUE ); | 62 | listview->setAllColumnsShowFocus ( TRUE ); |
66 | listview->setShowSortIndicator ( TRUE ); | 63 | listview->setShowSortIndicator ( TRUE ); |
67 | listview->header()->setTracking ( FALSE ); | 64 | listview->header()->setTracking ( FALSE ); |
68 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); | 65 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); |
69 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); | 66 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); |
70 | 67 | ||
71 | layout = new QVBoxLayout ( this, 2, 2 ); | 68 | layout = new QVBoxLayout ( this, 2, 2 ); |
72 | layout->addWidget ( firstline ); | 69 | layout->addWidget ( firstline ); |
73 | layout->addWidget ( secondline ); | 70 | layout->addWidget ( secondline ); |
74 | layout->addWidget ( listview ); | 71 | layout->addWidget ( listview ); |
75 | } | 72 | } |
76 | 73 | ||
77 | void TransactionDisplay::addTransaction () | 74 | void TransactionDisplay::addTransaction () |
78 | { | 75 | { |
79 | // create local variables | 76 | // create local variables |
80 | int cleared = -1; | 77 | int cleared = -1; |
81 | 78 | ||
82 | // create new transaction window | 79 | // create new transaction window |
83 | NewTransaction *newtransaction = new NewTransaction ( this ); | 80 | NewTransaction *newtransaction = new NewTransaction ( this ); |
84 | int width = this->size().width(); | 81 | int width = this->size().width(); |
85 | newtransaction->transactionname->setMaximumWidth ( ( int ) ( width * 0.45 ) ); | 82 | newtransaction->transactionname->setMaximumWidth ( ( int ) ( width * 0.45 ) ); |
86 | newtransaction->transactionname->setMinimumWidth ( ( int ) ( width * 0.35 ) ); | 83 | newtransaction->transactionname->setMinimumWidth ( ( int ) ( width * 0.35 ) ); |
87 | newtransaction->lineitembox->setMaximumWidth ( ( int ) ( width * 0.45 ) ); | 84 | newtransaction->lineitembox->setMaximumWidth ( ( int ) ( width * 0.45 ) ); |
88 | newtransaction->transactiondatebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 85 | newtransaction->transactiondatebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
89 | newtransaction->transactionamountbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 86 | newtransaction->transactionamountbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
90 | newtransaction->transactionnumber->setMaximumWidth ( ( int ) ( width * 0.25 ) ); | 87 | newtransaction->transactionnumber->setMaximumWidth ( ( int ) ( width * 0.25 ) ); |
91 | 88 | ||
92 | // enter today's date in the date box as defaul | 89 | // enter today's date in the date box as defaul |
93 | QDate today = QDate::currentDate (); | 90 | QDate today = QDate::currentDate (); |
94 | int defaultday = today.day(); | 91 | int defaultday = today.day(); |
95 | int defaultmonth = today.month(); | 92 | int defaultmonth = today.month(); |
96 | int defaultyear = today.year(); | 93 | int defaultyear = today.year(); |
97 | newtransaction->transactiondate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); | 94 | newtransaction->transactiondate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); |
98 | 95 | ||
99 | // add memory items to the transactionname combobox | 96 | // add memory items to the transactionname combobox |
100 | memory->displayMemoryItems ( newtransaction->transactionname ); | 97 | memory->displayMemoryItems ( newtransaction->transactionname ); |
101 | newtransaction->transactionname->insertItem ( "", 0 ); | 98 | newtransaction->transactionname->insertItem ( "", 0 ); |
102 | 99 | ||
103 | if ( newtransaction->exec () == QDialog::Accepted ) | 100 | if ( newtransaction->exec () == QDialog::Accepted ) |
104 | { | 101 | { |
105 | if ( newtransaction->clearedcheckbox->isChecked () == TRUE ) // set a parent id and type for a child transaction | 102 | if ( newtransaction->clearedcheckbox->isChecked () == TRUE ) // set a parent id and type for a child transaction |
106 | cleared = 1; | 103 | cleared = 1; |
107 | else | 104 | else |
108 | cleared = 0; | 105 | cleared = 0; |
109 | 106 | ||
110 | float amount = newtransaction->transactionamount->text().toFloat(); | 107 | float amount = newtransaction->transactionamount->text().toFloat(); |
111 | if ( newtransaction->depositbox->isChecked() == FALSE ) | 108 | if ( newtransaction->depositbox->isChecked() == FALSE ) |
112 | amount = amount * -1; | 109 | amount = amount * -1; |
113 | 110 | ||
114 | // add the transaction name to the memory items | 111 | // add the transaction name to the memory items |
115 | memory->addMemoryItem ( newtransaction->transactionname->currentText() ); | 112 | memory->addMemoryItem ( newtransaction->transactionname->currentText() ); |
116 | 113 | ||
117 | // add the transaction | 114 | // add the transaction |
118 | if ( newtransaction->getDateEdited () == TRUE ) | 115 | if ( newtransaction->getDateEdited () == TRUE ) |
119 | transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), | 116 | transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), |
120 | newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(), | 117 | newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(), |
121 | newtransaction->getCurrentLineItem() ); | 118 | newtransaction->getCurrentLineItem() ); |
122 | else | 119 | else |
123 | transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), | 120 | transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), |
124 | newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() ); | 121 | newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() ); |
125 | 122 | ||
126 | // redisplay transactions | 123 | // redisplay transactions |
127 | listview->clear(); | 124 | listview->clear(); |
128 | QString displaytext = "%"; | 125 | QString displaytext = "%"; |
129 | displaytext.prepend ( limitbox->text() ); | 126 | displaytext.prepend ( limitbox->text() ); |
130 | setTransactionDisplayDate (); | 127 | setTransactionDisplayDate (); |
131 | if ( transaction->getNumberOfTransactions() > 0 ) | 128 | if ( transaction->getNumberOfTransactions() > 0 ) |
132 | transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate ); | 129 | transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate ); |
133 | 130 | ||
134 | // redisplay transfers | 131 | // redisplay transfers |
135 | if ( transfer->getNumberOfTransfers() > 0 ) | 132 | if ( transfer->getNumberOfTransfers() > 0 ) |
136 | transfer->displayTransfers ( listview, accountid, children, displaydate ); | 133 | transfer->displayTransfers ( listview, accountid, children, displaydate ); |
137 | 134 | ||
138 | // add the transaction amount to the account it's associated with | 135 | // add the transaction amount to the account it's associated with |
139 | // and update its parent account balance if necessary | 136 | // and update its parent account balance if necessary |
140 | account->updateAccountBalance ( accountid ); | 137 | account->updateAccountBalance ( accountid ); |
141 | if ( account->getParentAccountID ( accountid ) != -1 ) | 138 | if ( account->getParentAccountID ( accountid ) != -1 ) |
142 | account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) ); | 139 | account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) ); |
143 | 140 | ||
diff --git a/noncore/apps/qashmoney/transferdialog.cpp b/noncore/apps/qashmoney/transferdialog.cpp index f85c740..558abec 100755 --- a/noncore/apps/qashmoney/transferdialog.cpp +++ b/noncore/apps/qashmoney/transferdialog.cpp | |||
@@ -1,114 +1,112 @@ | |||
1 | #include "transferdialog.h" | 1 | #include "transferdialog.h" |
2 | #include "datepicker.h" | 2 | #include "datepicker.h" |
3 | #include "calculator.h" | 3 | #include "calculator.h" |
4 | 4 | ||
5 | #include <qdatetime.h> | ||
6 | #include <qfont.h> | ||
7 | 5 | ||
8 | extern Preferences *preferences; | 6 | extern Preferences *preferences; |
9 | extern Account *account; | 7 | extern Account *account; |
10 | 8 | ||
11 | TransferDialog::TransferDialog ( QWidget *parent, int fromaccountid, int toaccountid ) : QDialog ( parent, 0, TRUE ) | 9 | TransferDialog::TransferDialog ( QWidget *parent, int fromaccountid, int toaccountid ) : QDialog ( parent, 0, TRUE ) |
12 | { | 10 | { |
13 | dateedited = FALSE; | 11 | dateedited = FALSE; |
14 | setCaption ( "Transfer" ); | 12 | setCaption ( "Transfer" ); |
15 | 13 | ||
16 | fromaccountlabel = new QLabel ( "From account:", this ); | 14 | fromaccountlabel = new QLabel ( "From account:", this ); |
17 | QFont f = this->font(); | 15 | QFont f = this->font(); |
18 | f.setWeight ( QFont::Bold ); | 16 | f.setWeight ( QFont::Bold ); |
19 | fromaccountlabel->setFont ( f ); | 17 | fromaccountlabel->setFont ( f ); |
20 | fromaccount = new QLabel ( account->getAccountName ( fromaccountid ), this ); | 18 | fromaccount = new QLabel ( account->getAccountName ( fromaccountid ), this ); |
21 | 19 | ||
22 | toaccountlabel = new QLabel ( "To Account:", this ); | 20 | toaccountlabel = new QLabel ( "To Account:", this ); |
23 | toaccountlabel->setFont ( f ); | 21 | toaccountlabel->setFont ( f ); |
24 | toaccount = new QLabel ( account->getAccountName ( toaccountid ), this ); | 22 | toaccount = new QLabel ( account->getAccountName ( toaccountid ), this ); |
25 | 23 | ||
26 | datelabel = new QLabel ( "Date", this ); | 24 | datelabel = new QLabel ( "Date", this ); |
27 | 25 | ||
28 | datebox = new QHBox ( this ); | 26 | datebox = new QHBox ( this ); |
29 | datebox->setSpacing ( 2 ); | 27 | datebox->setSpacing ( 2 ); |
30 | date = new QLineEdit ( datebox ); | 28 | date = new QLineEdit ( datebox ); |
31 | date->setAlignment ( Qt::AlignRight ); | 29 | date->setAlignment ( Qt::AlignRight ); |
32 | date->setDisabled ( TRUE ); | 30 | date->setDisabled ( TRUE ); |
33 | datebutton = new QPushButton ( datebox ); | 31 | datebutton = new QPushButton ( datebox ); |
34 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); | 32 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); |
35 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); | 33 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); |
36 | 34 | ||
37 | amounttlabel = new QLabel ( "Amount", this ); | 35 | amounttlabel = new QLabel ( "Amount", this ); |
38 | 36 | ||
39 | amountbox = new QHBox ( this ); | 37 | amountbox = new QHBox ( this ); |
40 | amountbox->setSpacing ( 2 ); | 38 | amountbox->setSpacing ( 2 ); |
41 | amount = new QLineEdit ( amountbox ); | 39 | amount = new QLineEdit ( amountbox ); |
42 | amount->setAlignment ( Qt::AlignRight ); | 40 | amount->setAlignment ( Qt::AlignRight ); |
43 | calculatorbutton = new QPushButton( amountbox ); | 41 | calculatorbutton = new QPushButton( amountbox ); |
44 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 42 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
45 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); | 43 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); |
46 | 44 | ||
47 | clearedcheckbox = new QCheckBox ( "Cleared", this ); | 45 | clearedcheckbox = new QCheckBox ( "Cleared", this ); |
48 | 46 | ||
49 | layout = new QVBoxLayout ( this, 4, 2 ); | 47 | layout = new QVBoxLayout ( this, 4, 2 ); |
50 | layout->addWidget ( fromaccountlabel, Qt::AlignLeft ); | 48 | layout->addWidget ( fromaccountlabel, Qt::AlignLeft ); |
51 | layout->addWidget ( fromaccount, Qt::AlignLeft ); | 49 | layout->addWidget ( fromaccount, Qt::AlignLeft ); |
52 | layout->addWidget ( toaccountlabel, Qt::AlignLeft ); | 50 | layout->addWidget ( toaccountlabel, Qt::AlignLeft ); |
53 | layout->addWidget ( toaccount, Qt::AlignLeft ); | 51 | layout->addWidget ( toaccount, Qt::AlignLeft ); |
54 | layout->addSpacing ( 5 ); | 52 | layout->addSpacing ( 5 ); |
55 | layout->addWidget ( datelabel, Qt::AlignLeft ); | 53 | layout->addWidget ( datelabel, Qt::AlignLeft ); |
56 | layout->addWidget ( datebox, Qt::AlignLeft ); | 54 | layout->addWidget ( datebox, Qt::AlignLeft ); |
57 | layout->addWidget ( amounttlabel, Qt::AlignLeft ); | 55 | layout->addWidget ( amounttlabel, Qt::AlignLeft ); |
58 | layout->addWidget ( amountbox, Qt::AlignLeft ); | 56 | layout->addWidget ( amountbox, Qt::AlignLeft ); |
59 | layout->addWidget ( clearedcheckbox, Qt::AlignLeft ); | 57 | layout->addWidget ( clearedcheckbox, Qt::AlignLeft ); |
60 | } | 58 | } |
61 | 59 | ||
62 | bool TransferDialog::getDateEdited () | 60 | bool TransferDialog::getDateEdited () |
63 | { | 61 | { |
64 | return dateedited; | 62 | return dateedited; |
65 | } | 63 | } |
66 | 64 | ||
67 | void TransferDialog::showCalendar () | 65 | void TransferDialog::showCalendar () |
68 | { | 66 | { |
69 | QDate newDate = QDate::currentDate (); | 67 | QDate newDate = QDate::currentDate (); |
70 | DatePicker *dp = new DatePicker ( newDate ); | 68 | DatePicker *dp = new DatePicker ( newDate ); |
71 | if ( dp->exec () == QDialog::Accepted ) | 69 | if ( dp->exec () == QDialog::Accepted ) |
72 | { | 70 | { |
73 | // Set date integers | 71 | // Set date integers |
74 | year = dp->getYear(); | 72 | year = dp->getYear(); |
75 | month = dp->getMonth(); | 73 | month = dp->getMonth(); |
76 | day = dp->getDay(); | 74 | day = dp->getDay(); |
77 | 75 | ||
78 | // Set dateedited to TRUE | 76 | // Set dateedited to TRUE |
79 | // This tells the accountdisplay object that the user edited an account | 77 | // This tells the accountdisplay object that the user edited an account |
80 | // and did change the date | 78 | // and did change the date |
81 | dateedited = TRUE; | 79 | dateedited = TRUE; |
82 | 80 | ||
83 | // Display date with our selected format | 81 | // Display date with our selected format |
84 | date->setText ( preferences->getDate ( year, month, day ) ); | 82 | date->setText ( preferences->getDate ( year, month, day ) ); |
85 | } | 83 | } |
86 | } | 84 | } |
87 | 85 | ||
88 | int TransferDialog::getDay () | 86 | int TransferDialog::getDay () |
89 | { | 87 | { |
90 | return day; | 88 | return day; |
91 | } | 89 | } |
92 | 90 | ||
93 | int TransferDialog::getMonth () | 91 | int TransferDialog::getMonth () |
94 | { | 92 | { |
95 | return month; | 93 | return month; |
96 | } | 94 | } |
97 | 95 | ||
98 | int TransferDialog::getYear () | 96 | int TransferDialog::getYear () |
99 | { | 97 | { |
100 | return year; | 98 | return year; |
101 | } | 99 | } |
102 | 100 | ||
103 | void TransferDialog::showCalculator () | 101 | void TransferDialog::showCalculator () |
104 | { | 102 | { |
105 | Calculator *calculator = new Calculator ( this ); | 103 | Calculator *calculator = new Calculator ( this ); |
106 | if ( calculator->exec () == QDialog::Accepted ) | 104 | if ( calculator->exec () == QDialog::Accepted ) |
107 | amount->setText ( calculator->display->text() ); | 105 | amount->setText ( calculator->display->text() ); |
108 | } | 106 | } |
109 | 107 | ||
110 | 108 | ||
111 | 109 | ||
112 | 110 | ||
113 | 111 | ||
114 | 112 | ||
diff --git a/noncore/apps/tableviewer/tableviewer.cpp b/noncore/apps/tableviewer/tableviewer.cpp index 207172d..f35dfcd 100644 --- a/noncore/apps/tableviewer/tableviewer.cpp +++ b/noncore/apps/tableviewer/tableviewer.cpp | |||
@@ -1,165 +1,164 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
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 | /* local includes */ | 21 | /* local includes */ |
22 | #include "tableviewer.h" | 22 | #include "tableviewer.h" |
23 | #include "ui/tvbrowseview.h" | 23 | #include "ui/tvbrowseview.h" |
24 | #include "ui/tvfilterview.h" | 24 | #include "ui/tvfilterview.h" |
25 | #include "ui/tvlistview.h" | 25 | #include "ui/tvlistview.h" |
26 | #include "ui/tveditview.h" | 26 | #include "ui/tveditview.h" |
27 | #include "ui/tvkeyedit.h" | 27 | #include "ui/tvkeyedit.h" |
28 | #include "db/datacache.h" | 28 | #include "db/datacache.h" |
29 | 29 | ||
30 | /* QPE includes */ | 30 | /* QPE includes */ |
31 | #include <qpe/fileselector.h> | 31 | #include <qpe/fileselector.h> |
32 | #include <qpe/resource.h> | 32 | #include <qpe/resource.h> |
33 | #include <qpe/qpetoolbar.h> | 33 | #include <qpe/qpetoolbar.h> |
34 | 34 | ||
35 | /* QTE includes */ | 35 | /* QTE includes */ |
36 | #include <qmenubar.h> | 36 | #include <qmenubar.h> |
37 | #include <qpe/qpetoolbar.h> | ||
38 | #include <qpopupmenu.h> | 37 | #include <qpopupmenu.h> |
39 | #include <qapplication.h> | 38 | #include <qapplication.h> |
40 | #include <qwidgetstack.h> | 39 | #include <qwidgetstack.h> |
41 | #include <qlayout.h> | 40 | #include <qlayout.h> |
42 | #include <qbuffer.h> | 41 | #include <qbuffer.h> |
43 | /*! | 42 | /*! |
44 | \class TableViewerWindow | 43 | \class TableViewerWindow |
45 | \brief The main window widget of the application | 44 | \brief The main window widget of the application |
46 | 45 | ||
47 | This is the main widget of the table viewer application. | 46 | This is the main widget of the table viewer application. |
48 | It is the co-ordination point. | 47 | It is the co-ordination point. |
49 | */ | 48 | */ |
50 | 49 | ||
51 | /*! | 50 | /*! |
52 | Constructs a new TableViewerWindow | 51 | Constructs a new TableViewerWindow |
53 | */ | 52 | */ |
54 | TableViewerWindow::TableViewerWindow(QWidget *parent, const char *name, WFlags f) | 53 | TableViewerWindow::TableViewerWindow(QWidget *parent, const char *name, WFlags f) |
55 | : QMainWindow(parent, name, f) | 54 | : QMainWindow(parent, name, f) |
56 | { | 55 | { |
57 | setCaption(tr("Table Viewer")); | 56 | setCaption(tr("Table Viewer")); |
58 | 57 | ||
59 | /* Build data */ | 58 | /* Build data */ |
60 | ds = new DBStore(); | 59 | ds = new DBStore(); |
61 | doc.setType("text/x-xml-tableviewer"); | 60 | doc.setType("text/x-xml-tableviewer"); |
62 | doc.setName("table"); | 61 | doc.setName("table"); |
63 | 62 | ||
64 | dirty = FALSE; | 63 | dirty = FALSE; |
65 | ts.current_column = 0; | 64 | ts.current_column = 0; |
66 | ts.kRep = ds->getKeys(); | 65 | ts.kRep = ds->getKeys(); |
67 | 66 | ||
68 | /* build menus */ | 67 | /* build menus */ |
69 | menu = new QMenuBar(this, 0); | 68 | menu = new QMenuBar(this, 0); |
70 | 69 | ||
71 | QPopupMenu *file_menu = new QPopupMenu; | 70 | QPopupMenu *file_menu = new QPopupMenu; |
72 | file_menu->insertItem("New", this, SLOT(newDocument())); | 71 | file_menu->insertItem("New", this, SLOT(newDocument())); |
73 | 72 | ||
74 | file_menu->insertItem("Open", this, SLOT(selectDocument())); | 73 | file_menu->insertItem("Open", this, SLOT(selectDocument())); |
75 | file_menu->insertSeparator(); | 74 | file_menu->insertSeparator(); |
76 | file_menu->insertItem("Properties"); | 75 | file_menu->insertItem("Properties"); |
77 | 76 | ||
78 | /* later will want to set this up to clean up first via this, SLOT(quit) */ | 77 | /* later will want to set this up to clean up first via this, SLOT(quit) */ |
79 | menu->insertItem("Document", file_menu); | 78 | menu->insertItem("Document", file_menu); |
80 | 79 | ||
81 | QPopupMenu *edit_menu = new QPopupMenu; | 80 | QPopupMenu *edit_menu = new QPopupMenu; |
82 | edit_menu->insertItem("Edit Item", this, SLOT(editItemSlot())); | 81 | edit_menu->insertItem("Edit Item", this, SLOT(editItemSlot())); |
83 | edit_menu->insertItem("Edit Keys", this, SLOT(editKeysSlot())); | 82 | edit_menu->insertItem("Edit Keys", this, SLOT(editKeysSlot())); |
84 | edit_menu->insertItem("Edit filters", this, SLOT(filterViewSlot())); | 83 | edit_menu->insertItem("Edit filters", this, SLOT(filterViewSlot())); |
85 | menu->insertItem("Edit", edit_menu); | 84 | menu->insertItem("Edit", edit_menu); |
86 | 85 | ||
87 | QPopupMenu *view_menu = new QPopupMenu; | 86 | QPopupMenu *view_menu = new QPopupMenu; |
88 | view_menu->insertItem("Browse View", this, SLOT(browseViewSlot())); | 87 | view_menu->insertItem("Browse View", this, SLOT(browseViewSlot())); |
89 | view_menu->insertItem("List View", this, SLOT(listViewSlot())); | 88 | view_menu->insertItem("List View", this, SLOT(listViewSlot())); |
90 | menu->insertItem("View", view_menu); | 89 | menu->insertItem("View", view_menu); |
91 | 90 | ||
92 | QVBoxLayout *main_layout = new QVBoxLayout; | 91 | QVBoxLayout *main_layout = new QVBoxLayout; |
93 | 92 | ||
94 | /* Build tool bar */ | 93 | /* Build tool bar */ |
95 | navigation = new QToolBar(this, "navigation"); | 94 | navigation = new QToolBar(this, "navigation"); |
96 | QToolButton *newItemButton = new QToolButton( | 95 | QToolButton *newItemButton = new QToolButton( |
97 | QIconSet(Resource::loadPixmap("new")), "New Item", QString::null, | 96 | QIconSet(Resource::loadPixmap("new")), "New Item", QString::null, |
98 | this, SLOT(newItemSlot()), navigation, "New Item"); | 97 | this, SLOT(newItemSlot()), navigation, "New Item"); |
99 | QToolButton *editItemButton = new QToolButton( | 98 | QToolButton *editItemButton = new QToolButton( |
100 | QIconSet(Resource::loadPixmap("edit")), "Edit Item", QString::null, | 99 | QIconSet(Resource::loadPixmap("edit")), "Edit Item", QString::null, |
101 | this, SLOT(editItemSlot()), navigation, "Edit Item"); | 100 | this, SLOT(editItemSlot()), navigation, "Edit Item"); |
102 | QToolButton *deleteItemButton = new QToolButton( | 101 | QToolButton *deleteItemButton = new QToolButton( |
103 | QIconSet(Resource::loadPixmap("trash")), "Delete Item", | 102 | QIconSet(Resource::loadPixmap("trash")), "Delete Item", |
104 | QString::null, this, | 103 | QString::null, this, |
105 | SLOT(deleteItemSlot()), navigation, "Delete Item"); | 104 | SLOT(deleteItemSlot()), navigation, "Delete Item"); |
106 | 105 | ||
107 | navigation->addSeparator(); | 106 | navigation->addSeparator(); |
108 | 107 | ||
109 | QToolButton *firstItemButton = new QToolButton( | 108 | QToolButton *firstItemButton = new QToolButton( |
110 | QIconSet(Resource::loadPixmap("fastback")), "First Item", | 109 | QIconSet(Resource::loadPixmap("fastback")), "First Item", |
111 | QString::null, this, | 110 | QString::null, this, |
112 | SLOT(firstItem()), navigation, "First Item"); | 111 | SLOT(firstItem()), navigation, "First Item"); |
113 | QToolButton *previousItemButton = new QToolButton( | 112 | QToolButton *previousItemButton = new QToolButton( |
114 | QIconSet(Resource::loadPixmap("back")), "Previous Item", | 113 | QIconSet(Resource::loadPixmap("back")), "Previous Item", |
115 | QString::null, this, | 114 | QString::null, this, |
116 | SLOT(previousItem()), navigation, "Previous Item"); | 115 | SLOT(previousItem()), navigation, "Previous Item"); |
117 | QToolButton *nextItemButton = new QToolButton( | 116 | QToolButton *nextItemButton = new QToolButton( |
118 | QIconSet(Resource::loadPixmap("forward")), "Next Item", | 117 | QIconSet(Resource::loadPixmap("forward")), "Next Item", |
119 | QString::null, this, | 118 | QString::null, this, |
120 | SLOT(nextItem()), navigation, "Next Item"); | 119 | SLOT(nextItem()), navigation, "Next Item"); |
121 | QToolButton *lastItemButton = new QToolButton( | 120 | QToolButton *lastItemButton = new QToolButton( |
122 | QIconSet(Resource::loadPixmap("fastforward")), "Last Item", | 121 | QIconSet(Resource::loadPixmap("fastforward")), "Last Item", |
123 | QString::null, this, | 122 | QString::null, this, |
124 | SLOT(lastItem()), navigation, "Last Item"); | 123 | SLOT(lastItem()), navigation, "Last Item"); |
125 | 124 | ||
126 | navigation->addSeparator(); | 125 | navigation->addSeparator(); |
127 | QToolButton *browseButton = new QToolButton( | 126 | QToolButton *browseButton = new QToolButton( |
128 | QIconSet(Resource::loadPixmap("day")), "View Single Item", | 127 | QIconSet(Resource::loadPixmap("day")), "View Single Item", |
129 | QString::null, this, | 128 | QString::null, this, |
130 | SLOT(browseViewSlot()), navigation, "View Single Item"); | 129 | SLOT(browseViewSlot()), navigation, "View Single Item"); |
131 | QToolButton *listButton = new QToolButton( | 130 | QToolButton *listButton = new QToolButton( |
132 | QIconSet(Resource::loadPixmap("month")), "View Multiple Items", | 131 | QIconSet(Resource::loadPixmap("month")), "View Multiple Items", |
133 | QString::null, this, | 132 | QString::null, this, |
134 | SLOT(listViewSlot()), navigation, "View Multiple Items"); | 133 | SLOT(listViewSlot()), navigation, "View Multiple Items"); |
135 | 134 | ||
136 | setToolBarsMovable(FALSE); | 135 | setToolBarsMovable(FALSE); |
137 | setToolBarsMovable(FALSE); | 136 | setToolBarsMovable(FALSE); |
138 | setToolBarsMovable(FALSE); | 137 | setToolBarsMovable(FALSE); |
139 | 138 | ||
140 | /* Build widgets */ | 139 | /* Build widgets */ |
141 | browseView = new TVBrowseView(&ts, this, 0); | 140 | browseView = new TVBrowseView(&ts, this, 0); |
142 | listView = new TVListView(&ts, this, 0); | 141 | listView = new TVListView(&ts, this, 0); |
143 | filterView = new TVFilterView(&ts, this, 0); | 142 | filterView = new TVFilterView(&ts, this, 0); |
144 | fileSelector = new FileSelector("text/csv;text/x-xml-tableviewer", | 143 | fileSelector = new FileSelector("text/csv;text/x-xml-tableviewer", |
145 | this, "fileselector"); | 144 | this, "fileselector"); |
146 | fileSelector->setNewVisible(FALSE); | 145 | fileSelector->setNewVisible(FALSE); |
147 | fileSelector->setCloseVisible(FALSE); | 146 | fileSelector->setCloseVisible(FALSE); |
148 | 147 | ||
149 | cw = new QWidgetStack(this, 0); | 148 | cw = new QWidgetStack(this, 0); |
150 | cw->addWidget(listView, ListState); | 149 | cw->addWidget(listView, ListState); |
151 | cw->addWidget(browseView, BrowseState); | 150 | cw->addWidget(browseView, BrowseState); |
152 | cw->addWidget(filterView, FilterState); | 151 | cw->addWidget(filterView, FilterState); |
153 | cw->addWidget(fileSelector, FileState); | 152 | cw->addWidget(fileSelector, FileState); |
154 | 153 | ||
155 | current_view = FileState; | 154 | current_view = FileState; |
156 | cw->raiseWidget(current_view); | 155 | cw->raiseWidget(current_view); |
157 | fileSelector->reread(); | 156 | fileSelector->reread(); |
158 | 157 | ||
159 | connect(browseView, SIGNAL(searchOnKey(int, TVVariant)), | 158 | connect(browseView, SIGNAL(searchOnKey(int, TVVariant)), |
160 | this, SLOT(searchOnKey(int, TVVariant))); | 159 | this, SLOT(searchOnKey(int, TVVariant))); |
161 | connect(browseView, SIGNAL(sortChanged(int)), | 160 | connect(browseView, SIGNAL(sortChanged(int)), |
162 | this, SLOT(setPrimaryKey(int))); | 161 | this, SLOT(setPrimaryKey(int))); |
163 | 162 | ||
164 | connect(fileSelector, SIGNAL(closeMe()), this, SLOT(browseViewSlot())); | 163 | connect(fileSelector, SIGNAL(closeMe()), this, SLOT(browseViewSlot())); |
165 | connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), | 164 | connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), |