-rw-r--r-- | libopie/colordialog.cpp | 2 | ||||
-rw-r--r-- | libopie/colorpopupmenu.cpp | 1 | ||||
-rw-r--r-- | libopie/ocheckitem.cpp | 1 | ||||
-rw-r--r-- | libopie/ocolorbutton.cpp | 3 | ||||
-rw-r--r-- | libopie/odevice.cpp | 1 | ||||
-rw-r--r-- | libopie/odevicebutton.cpp | 2 | ||||
-rw-r--r-- | libopie/ofiledialog.cc | 3 | ||||
-rw-r--r-- | libopie/ofileselector.cpp | 5 | ||||
-rw-r--r-- | libopie/ofontselector.cpp | 1 | ||||
-rw-r--r-- | libopie/oprocctrl.cpp | 1 | ||||
-rw-r--r-- | libopie/oprocess.cpp | 1 | ||||
-rw-r--r-- | libopie/orecurrancewidget.cpp | 2 | ||||
-rw-r--r-- | libopie/oticker.cpp | 9 | ||||
-rw-r--r-- | libopie/otimepicker.cpp | 3 | ||||
-rw-r--r-- | libopie/owait.cpp | 2 | ||||
-rw-r--r-- | libopie/pim/ocontactaccessbackend_xml.cpp | 5 | ||||
-rw-r--r-- | libopie/pim/otodo.cpp | 3 |
17 files changed, 4 insertions, 41 deletions
diff --git a/libopie/colordialog.cpp b/libopie/colordialog.cpp index c7421ec..d46da41 100644 --- a/libopie/colordialog.cpp +++ b/libopie/colordialog.cpp | |||
@@ -1,179 +1,177 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** $Id$ | 2 | ** $Id$ |
3 | ** | 3 | ** |
4 | ** Implementation of OColorDialog class | 4 | ** Implementation of OColorDialog class |
5 | ** | 5 | ** |
6 | ** Created : 990222 | 6 | ** Created : 990222 |
7 | ** | 7 | ** |
8 | ** Copyright (C) 1999-2000 Trolltech AS. All rights reserved. | 8 | ** Copyright (C) 1999-2000 Trolltech AS. All rights reserved. |
9 | ** | 9 | ** |
10 | ** This file is part of the dialogs module of the Qt GUI Toolkit. | 10 | ** This file is part of the dialogs 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 "colordialog.h" | 38 | #include "colordialog.h" |
39 | 39 | ||
40 | #include "qpainter.h" | 40 | #include "qpainter.h" |
41 | #include "qlayout.h" | 41 | #include "qlayout.h" |
42 | #include "qlabel.h" | 42 | #include "qlabel.h" |
43 | #include "qpushbutton.h" | 43 | #include "qpushbutton.h" |
44 | #include "qlineedit.h" | 44 | #include "qlineedit.h" |
45 | #include "qimage.h" | 45 | #include "qimage.h" |
46 | #include "qpixmap.h" | 46 | #include "qpixmap.h" |
47 | #include "qdrawutil.h" | 47 | #include "qdrawutil.h" |
48 | #include "qvalidator.h" | 48 | #include "qvalidator.h" |
49 | #include "qdragobject.h" | ||
50 | #include "qapplication.h" | 49 | #include "qapplication.h" |
51 | #include "qdragobject.h" | ||
52 | 50 | ||
53 | static inline void rgb2hsv( QRgb rgb, int&h, int&s, int&v ) | 51 | static inline void rgb2hsv( QRgb rgb, int&h, int&s, int&v ) |
54 | { | 52 | { |
55 | QColor c; | 53 | QColor c; |
56 | c.setRgb( rgb ); | 54 | c.setRgb( rgb ); |
57 | c.getHsv(h,s,v); | 55 | c.getHsv(h,s,v); |
58 | } | 56 | } |
59 | 57 | ||
60 | /* | 58 | /* |
61 | * avoid clashes with the original Qt | 59 | * avoid clashes with the original Qt |
62 | */ | 60 | */ |
63 | namespace { | 61 | namespace { |
64 | 62 | ||
65 | class QColorPicker : public QFrame | 63 | class QColorPicker : public QFrame |
66 | { | 64 | { |
67 | Q_OBJECT | 65 | Q_OBJECT |
68 | public: | 66 | public: |
69 | QColorPicker(QWidget* parent=0, const char* name=0); | 67 | QColorPicker(QWidget* parent=0, const char* name=0); |
70 | ~QColorPicker(); | 68 | ~QColorPicker(); |
71 | 69 | ||
72 | public slots: | 70 | public slots: |
73 | void setCol( int h, int s ); | 71 | void setCol( int h, int s ); |
74 | 72 | ||
75 | signals: | 73 | signals: |
76 | void newCol( int h, int s ); | 74 | void newCol( int h, int s ); |
77 | 75 | ||
78 | protected: | 76 | protected: |
79 | QSize sizeHint() const; | 77 | QSize sizeHint() const; |
80 | QSizePolicy sizePolicy() const; | 78 | QSizePolicy sizePolicy() const; |
81 | void drawContents(QPainter* p); | 79 | void drawContents(QPainter* p); |
82 | void mouseMoveEvent( QMouseEvent * ); | 80 | void mouseMoveEvent( QMouseEvent * ); |
83 | void mousePressEvent( QMouseEvent * ); | 81 | void mousePressEvent( QMouseEvent * ); |
84 | 82 | ||
85 | private: | 83 | private: |
86 | int hue; | 84 | int hue; |
87 | int sat; | 85 | int sat; |
88 | 86 | ||
89 | QPoint colPt(); | 87 | QPoint colPt(); |
90 | int huePt( const QPoint &pt ); | 88 | int huePt( const QPoint &pt ); |
91 | int satPt( const QPoint &pt ); | 89 | int satPt( const QPoint &pt ); |
92 | void setCol( const QPoint &pt ); | 90 | void setCol( const QPoint &pt ); |
93 | 91 | ||
94 | QPixmap *pix; | 92 | QPixmap *pix; |
95 | }; | 93 | }; |
96 | 94 | ||
97 | static int pWidth = 200; | 95 | static int pWidth = 200; |
98 | static int pHeight = 200; | 96 | static int pHeight = 200; |
99 | 97 | ||
100 | class QColorLuminancePicker : public QWidget | 98 | class QColorLuminancePicker : public QWidget |
101 | { | 99 | { |
102 | Q_OBJECT | 100 | Q_OBJECT |
103 | public: | 101 | public: |
104 | QColorLuminancePicker(QWidget* parent=0, const char* name=0); | 102 | QColorLuminancePicker(QWidget* parent=0, const char* name=0); |
105 | ~QColorLuminancePicker(); | 103 | ~QColorLuminancePicker(); |
106 | 104 | ||
107 | public slots: | 105 | public slots: |
108 | void setCol( int h, int s, int v ); | 106 | void setCol( int h, int s, int v ); |
109 | void setCol( int h, int s ); | 107 | void setCol( int h, int s ); |
110 | 108 | ||
111 | signals: | 109 | signals: |
112 | void newHsv( int h, int s, int v ); | 110 | void newHsv( int h, int s, int v ); |
113 | 111 | ||
114 | protected: | 112 | protected: |
115 | // QSize sizeHint() const; | 113 | // QSize sizeHint() const; |
116 | // QSizePolicy sizePolicy() const; | 114 | // QSizePolicy sizePolicy() const; |
117 | void paintEvent( QPaintEvent*); | 115 | void paintEvent( QPaintEvent*); |
118 | void mouseMoveEvent( QMouseEvent * ); | 116 | void mouseMoveEvent( QMouseEvent * ); |
119 | void mousePressEvent( QMouseEvent * ); | 117 | void mousePressEvent( QMouseEvent * ); |
120 | 118 | ||
121 | private: | 119 | private: |
122 | enum { foff = 3, coff = 4 }; //frame and contents offset | 120 | enum { foff = 3, coff = 4 }; //frame and contents offset |
123 | int val; | 121 | int val; |
124 | int hue; | 122 | int hue; |
125 | int sat; | 123 | int sat; |
126 | 124 | ||
127 | int y2val( int y ); | 125 | int y2val( int y ); |
128 | int val2y( int val ); | 126 | int val2y( int val ); |
129 | void setVal( int v ); | 127 | void setVal( int v ); |
130 | 128 | ||
131 | QPixmap *pix; | 129 | QPixmap *pix; |
132 | }; | 130 | }; |
133 | 131 | ||
134 | 132 | ||
135 | int QColorLuminancePicker::y2val( int y ) | 133 | int QColorLuminancePicker::y2val( int y ) |
136 | { | 134 | { |
137 | int d = height() - 2*coff - 1; | 135 | int d = height() - 2*coff - 1; |
138 | return 255 - (y - coff)*255/d; | 136 | return 255 - (y - coff)*255/d; |
139 | } | 137 | } |
140 | 138 | ||
141 | int QColorLuminancePicker::val2y( int v ) | 139 | int QColorLuminancePicker::val2y( int v ) |
142 | { | 140 | { |
143 | int d = height() - 2*coff - 1; | 141 | int d = height() - 2*coff - 1; |
144 | return coff + (255-v)*d/255; | 142 | return coff + (255-v)*d/255; |
145 | } | 143 | } |
146 | 144 | ||
147 | QColorLuminancePicker::QColorLuminancePicker(QWidget* parent, | 145 | QColorLuminancePicker::QColorLuminancePicker(QWidget* parent, |
148 | const char* name) | 146 | const char* name) |
149 | :QWidget( parent, name ) | 147 | :QWidget( parent, name ) |
150 | { | 148 | { |
151 | hue = 100; val = 100; sat = 100; | 149 | hue = 100; val = 100; sat = 100; |
152 | pix = 0; | 150 | pix = 0; |
153 | // setBackgroundMode( NoBackground ); | 151 | // setBackgroundMode( NoBackground ); |
154 | } | 152 | } |
155 | 153 | ||
156 | QColorLuminancePicker::~QColorLuminancePicker() | 154 | QColorLuminancePicker::~QColorLuminancePicker() |
157 | { | 155 | { |
158 | delete pix; | 156 | delete pix; |
159 | } | 157 | } |
160 | 158 | ||
161 | void QColorLuminancePicker::mouseMoveEvent( QMouseEvent *m ) | 159 | void QColorLuminancePicker::mouseMoveEvent( QMouseEvent *m ) |
162 | { | 160 | { |
163 | setVal( y2val(m->y()) ); | 161 | setVal( y2val(m->y()) ); |
164 | } | 162 | } |
165 | void QColorLuminancePicker::mousePressEvent( QMouseEvent *m ) | 163 | void QColorLuminancePicker::mousePressEvent( QMouseEvent *m ) |
166 | { | 164 | { |
167 | setVal( y2val(m->y()) ); | 165 | setVal( y2val(m->y()) ); |
168 | } | 166 | } |
169 | 167 | ||
170 | void QColorLuminancePicker::setVal( int v ) | 168 | void QColorLuminancePicker::setVal( int v ) |
171 | { | 169 | { |
172 | if ( val == v ) | 170 | if ( val == v ) |
173 | return; | 171 | return; |
174 | val = QMAX( 0, QMIN(v,255)); | 172 | val = QMAX( 0, QMIN(v,255)); |
175 | delete pix; pix=0; | 173 | delete pix; pix=0; |
176 | repaint( FALSE ); //### | 174 | repaint( FALSE ); //### |
177 | emit newHsv( hue, sat, val ); | 175 | emit newHsv( hue, sat, val ); |
178 | } | 176 | } |
179 | 177 | ||
diff --git a/libopie/colorpopupmenu.cpp b/libopie/colorpopupmenu.cpp index 5a8d77e..0d66fba 100644 --- a/libopie/colorpopupmenu.cpp +++ b/libopie/colorpopupmenu.cpp | |||
@@ -1,164 +1,163 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2002 S. Prud'homme <prudhomme@laposte.net> | 4 | Copyright (c) 2002 S. Prud'homme <prudhomme@laposte.net> |
5 | Dan Williams <williamsdr@acm.org> | 5 | Dan Williams <williamsdr@acm.org> |
6 | =. | 6 | =. |
7 | .=l. | 7 | .=l. |
8 | .>+-= | 8 | .>+-= |
9 | _;:, .> :=|. This program is free software; you can | 9 | _;:, .> :=|. This program is free software; you can |
10 | .> <`_, > . <= redistribute it and/or modify it under | 10 | .> <`_, > . <= redistribute it and/or modify it under |
11 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 11 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
12 | .="- .-=="i, .._ License as published by the Free Software | 12 | .="- .-=="i, .._ License as published by the Free Software |
13 | - . .-<_> .<> Foundation; either version 2 of the License, | 13 | - . .-<_> .<> Foundation; either version 2 of the License, |
14 | ._= =} : or (at your option) any later version. | 14 | ._= =} : or (at your option) any later version. |
15 | .%`+i> _;_. | 15 | .%`+i> _;_. |
16 | .i_,=:_. -<s. This program is distributed in the hope that | 16 | .i_,=:_. -<s. This program is distributed in the hope that |
17 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 17 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
18 | : .. .:, . . . without even the implied warranty of | 18 | : .. .:, . . . without even the implied warranty of |
19 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 19 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
20 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 20 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
21 | ..}^=.= = ; Library General Public License for more | 21 | ..}^=.= = ; Library General Public License for more |
22 | ++= -. .` .: details. | 22 | ++= -. .` .: details. |
23 | : = ...= . :.=- | 23 | : = ...= . :.=- |
24 | -. .:....=;==+<; You should have received a copy of the GNU | 24 | -. .:....=;==+<; You should have received a copy of the GNU |
25 | -_. . . )=. = Library General Public License along with | 25 | -_. . . )=. = Library General Public License along with |
26 | -- :-=` this library; see the file COPYING.LIB. | 26 | -- :-=` this library; see the file COPYING.LIB. |
27 | If not, write to the Free Software Foundation, | 27 | If not, write to the Free Software Foundation, |
28 | Inc., 59 Temple Place - Suite 330, | 28 | Inc., 59 Temple Place - Suite 330, |
29 | Boston, MA 02111-1307, USA. | 29 | Boston, MA 02111-1307, USA. |
30 | 30 | ||
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include "colorpopupmenu.h" | 33 | #include "colorpopupmenu.h" |
34 | #include "colordialog.h" | 34 | #include "colordialog.h" |
35 | 35 | ||
36 | #include <qaction.h> | ||
37 | #include <qlayout.h> | 36 | #include <qlayout.h> |
38 | #include <qpainter.h> | 37 | #include <qpainter.h> |
39 | 38 | ||
40 | OColorPanelButton::OColorPanelButton( const QColor& color, QWidget* parent, const char* name ) | 39 | OColorPanelButton::OColorPanelButton( const QColor& color, QWidget* parent, const char* name ) |
41 | : QFrame( parent, name ) | 40 | : QFrame( parent, name ) |
42 | { | 41 | { |
43 | m_color = color; | 42 | m_color = color; |
44 | 43 | ||
45 | setFixedSize( 16, 16 ); | 44 | setFixedSize( 16, 16 ); |
46 | setActive( FALSE ); | 45 | setActive( FALSE ); |
47 | } | 46 | } |
48 | 47 | ||
49 | OColorPanelButton::~OColorPanelButton() | 48 | OColorPanelButton::~OColorPanelButton() |
50 | { | 49 | { |
51 | } | 50 | } |
52 | 51 | ||
53 | void OColorPanelButton::setActive( bool active ) | 52 | void OColorPanelButton::setActive( bool active ) |
54 | { | 53 | { |
55 | m_active = active; | 54 | m_active = active; |
56 | 55 | ||
57 | if ( m_active ) { | 56 | if ( m_active ) { |
58 | setFrameStyle( Panel | Sunken ); | 57 | setFrameStyle( Panel | Sunken ); |
59 | } else { | 58 | } else { |
60 | setFrameStyle( NoFrame ); | 59 | setFrameStyle( NoFrame ); |
61 | } | 60 | } |
62 | } | 61 | } |
63 | 62 | ||
64 | void OColorPanelButton::enterEvent( QEvent* ) | 63 | void OColorPanelButton::enterEvent( QEvent* ) |
65 | { | 64 | { |
66 | if ( !m_active ) { | 65 | if ( !m_active ) { |
67 | setFrameStyle( Panel | Sunken ); | 66 | setFrameStyle( Panel | Sunken ); |
68 | } | 67 | } |
69 | } | 68 | } |
70 | 69 | ||
71 | void OColorPanelButton::leaveEvent( QEvent* ) | 70 | void OColorPanelButton::leaveEvent( QEvent* ) |
72 | { | 71 | { |
73 | if ( !m_active ) { | 72 | if ( !m_active ) { |
74 | setFrameStyle( NoFrame ); | 73 | setFrameStyle( NoFrame ); |
75 | } | 74 | } |
76 | } | 75 | } |
77 | 76 | ||
78 | void OColorPanelButton::paintEvent( QPaintEvent* e ) | 77 | void OColorPanelButton::paintEvent( QPaintEvent* e ) |
79 | { | 78 | { |
80 | QFrame::paintEvent( e ); | 79 | QFrame::paintEvent( e ); |
81 | 80 | ||
82 | QPainter painter; | 81 | QPainter painter; |
83 | painter.begin( this ); | 82 | painter.begin( this ); |
84 | painter.fillRect( 2, 2, 12, 12, m_color ); | 83 | painter.fillRect( 2, 2, 12, 12, m_color ); |
85 | painter.setPen( Qt::black ); | 84 | painter.setPen( Qt::black ); |
86 | painter.drawRect( 2, 2, 12, 12 ); | 85 | painter.drawRect( 2, 2, 12, 12 ); |
87 | painter.end(); | 86 | painter.end(); |
88 | } | 87 | } |
89 | 88 | ||
90 | void OColorPanelButton::mouseReleaseEvent( QMouseEvent* ) | 89 | void OColorPanelButton::mouseReleaseEvent( QMouseEvent* ) |
91 | { | 90 | { |
92 | emit selected( m_color ); | 91 | emit selected( m_color ); |
93 | } | 92 | } |
94 | 93 | ||
95 | OColorPopupMenu::OColorPopupMenu( const QColor& color, QWidget* parent, const char* name ) | 94 | OColorPopupMenu::OColorPopupMenu( const QColor& color, QWidget* parent, const char* name ) |
96 | : QPopupMenu( parent, name ) | 95 | : QPopupMenu( parent, name ) |
97 | { | 96 | { |
98 | m_color = color; | 97 | m_color = color; |
99 | 98 | ||
100 | colorPanel = new QWidget( this ); | 99 | colorPanel = new QWidget( this ); |
101 | 100 | ||
102 | colorLayout = new QGridLayout(colorPanel, 5, 6); | 101 | colorLayout = new QGridLayout(colorPanel, 5, 6); |
103 | 102 | ||
104 | addColor(QColor(255, 255, 255), 0, 1); | 103 | addColor(QColor(255, 255, 255), 0, 1); |
105 | addColor(QColor(192, 192, 192), 0, 2); | 104 | addColor(QColor(192, 192, 192), 0, 2); |
106 | addColor(QColor(128, 128, 128), 0, 3); | 105 | addColor(QColor(128, 128, 128), 0, 3); |
107 | addColor(QColor(64, 64, 64), 0, 4); | 106 | addColor(QColor(64, 64, 64), 0, 4); |
108 | addColor(QColor(0, 0, 0), 0, 5); | 107 | addColor(QColor(0, 0, 0), 0, 5); |
109 | 108 | ||
110 | addColor(QColor(255, 0, 0), 1, 0); | 109 | addColor(QColor(255, 0, 0), 1, 0); |
111 | addColor(QColor(255, 128, 0), 1, 1); | 110 | addColor(QColor(255, 128, 0), 1, 1); |
112 | addColor(QColor(255, 255, 0), 1, 2); | 111 | addColor(QColor(255, 255, 0), 1, 2); |
113 | addColor(QColor(128, 255, 0), 1, 3); | 112 | addColor(QColor(128, 255, 0), 1, 3); |
114 | addColor(QColor(0, 255, 0), 1, 4); | 113 | addColor(QColor(0, 255, 0), 1, 4); |
115 | addColor(QColor(0, 255, 128), 1, 5); | 114 | addColor(QColor(0, 255, 128), 1, 5); |
116 | 115 | ||
117 | addColor(QColor(128, 0, 0), 2, 0); | 116 | addColor(QColor(128, 0, 0), 2, 0); |
118 | addColor(QColor(128, 64, 0), 2, 1); | 117 | addColor(QColor(128, 64, 0), 2, 1); |
119 | addColor(QColor(128, 128, 0), 2, 2); | 118 | addColor(QColor(128, 128, 0), 2, 2); |
120 | addColor(QColor(64, 128, 0), 2, 3); | 119 | addColor(QColor(64, 128, 0), 2, 3); |
121 | addColor(QColor(0, 128, 0), 2, 4); | 120 | addColor(QColor(0, 128, 0), 2, 4); |
122 | addColor(QColor(0, 128, 64), 2, 5); | 121 | addColor(QColor(0, 128, 64), 2, 5); |
123 | 122 | ||
124 | addColor(QColor(0, 255, 255), 3, 0); | 123 | addColor(QColor(0, 255, 255), 3, 0); |
125 | addColor(QColor(0, 128, 255), 3, 1); | 124 | addColor(QColor(0, 128, 255), 3, 1); |
126 | addColor(QColor(0, 0, 255), 3, 2); | 125 | addColor(QColor(0, 0, 255), 3, 2); |
127 | addColor(QColor(128, 0, 255), 3, 3); | 126 | addColor(QColor(128, 0, 255), 3, 3); |
128 | addColor(QColor(255, 0, 255), 3, 4); | 127 | addColor(QColor(255, 0, 255), 3, 4); |
129 | addColor(QColor(255, 0, 128), 3, 5); | 128 | addColor(QColor(255, 0, 128), 3, 5); |
130 | 129 | ||
131 | addColor(QColor(0, 128, 128), 4, 0); | 130 | addColor(QColor(0, 128, 128), 4, 0); |
132 | addColor(QColor(0, 64, 128), 4, 1); | 131 | addColor(QColor(0, 64, 128), 4, 1); |
133 | addColor(QColor(0, 0, 128), 4, 2); | 132 | addColor(QColor(0, 0, 128), 4, 2); |
134 | addColor(QColor(64, 0, 128), 4, 3); | 133 | addColor(QColor(64, 0, 128), 4, 3); |
135 | addColor(QColor(128, 0, 128), 4, 4); | 134 | addColor(QColor(128, 0, 128), 4, 4); |
136 | addColor(QColor(128, 0, 64), 4, 5); | 135 | addColor(QColor(128, 0, 64), 4, 5); |
137 | 136 | ||
138 | insertItem( colorPanel ); | 137 | insertItem( colorPanel ); |
139 | insertSeparator(); | 138 | insertSeparator(); |
140 | insertItem(tr("More"),this,SLOT( moreColorClicked())); | 139 | insertItem(tr("More"),this,SLOT( moreColorClicked())); |
141 | /* | 140 | /* |
142 | QAction* chooseColorAction = new QAction( tr( "More" ), tr( "More..." ), 0, colorPanel, "More" ); | 141 | QAction* chooseColorAction = new QAction( tr( "More" ), tr( "More..." ), 0, colorPanel, "More" ); |
143 | connect( chooseColorAction, SIGNAL( activated() ), this, SLOT( moreColorClicked() ) ); | 142 | connect( chooseColorAction, SIGNAL( activated() ), this, SLOT( moreColorClicked() ) ); |
144 | chooseColorAction->addTo( this ); | 143 | chooseColorAction->addTo( this ); |
145 | */ | 144 | */ |
146 | activateItemAt( 0 ); | 145 | activateItemAt( 0 ); |
147 | } | 146 | } |
148 | 147 | ||
149 | OColorPopupMenu::~OColorPopupMenu() | 148 | OColorPopupMenu::~OColorPopupMenu() |
150 | { | 149 | { |
151 | } | 150 | } |
152 | 151 | ||
153 | void OColorPopupMenu::addColor( const QColor& color, int row, int col ) | 152 | void OColorPopupMenu::addColor( const QColor& color, int row, int col ) |
154 | { | 153 | { |
155 | OColorPanelButton* panelButton = new OColorPanelButton( color, colorPanel ); | 154 | OColorPanelButton* panelButton = new OColorPanelButton( color, colorPanel ); |
156 | connect( panelButton, SIGNAL( selected( const QColor& ) ), this, SLOT( buttonSelected( const QColor& ) ) ); | 155 | connect( panelButton, SIGNAL( selected( const QColor& ) ), this, SLOT( buttonSelected( const QColor& ) ) ); |
157 | colorLayout->addWidget( panelButton, row, col ); | 156 | colorLayout->addWidget( panelButton, row, col ); |
158 | } | 157 | } |
159 | 158 | ||
160 | void OColorPopupMenu::buttonSelected( const QColor& color ) | 159 | void OColorPopupMenu::buttonSelected( const QColor& color ) |
161 | { | 160 | { |
162 | m_color = color; | 161 | m_color = color; |
163 | emit colorSelected( color ); | 162 | emit colorSelected( color ); |
164 | hide(); | 163 | hide(); |
diff --git a/libopie/ocheckitem.cpp b/libopie/ocheckitem.cpp index 082d7a2..cd763c1 100644 --- a/libopie/ocheckitem.cpp +++ b/libopie/ocheckitem.cpp | |||
@@ -1,106 +1,105 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2002 Stefan Eilers (se, eilers.stefan@epost.de | 2 | ** Copyright (C) 2002 Stefan Eilers (se, eilers.stefan@epost.de |
3 | ** | 3 | ** |
4 | ** This file may be distributed and/or modified under the terms of the | 4 | ** This file may be distributed and/or modified under the terms of the |
5 | ** GNU Library General Public License version 2 as published by the | 5 | ** GNU Library General Public License version 2 as published by the |
6 | ** Free Software Foundation and appearing in the file LICENSE.GPL | 6 | ** Free Software Foundation and appearing in the file LICENSE.GPL |
7 | ** included in the packaging of this file. | 7 | ** included in the packaging of this file. |
8 | ** | 8 | ** |
9 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 9 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
10 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 10 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
11 | **********************************************************************/ | 11 | **********************************************************************/ |
12 | 12 | ||
13 | #include <qpainter.h> | ||
14 | 13 | ||
15 | #include "ocheckitem.h" | 14 | #include "ocheckitem.h" |
16 | 15 | ||
17 | /** | 16 | /** |
18 | * Constructs an CheckItem with a QTable as parent | 17 | * Constructs an CheckItem with a QTable as parent |
19 | * and a sort key for. | 18 | * and a sort key for. |
20 | * The sort key will be used by QTable to sort the table later | 19 | * The sort key will be used by QTable to sort the table later |
21 | * @param t The parent QTable where the check item belongs | 20 | * @param t The parent QTable where the check item belongs |
22 | * @param key A sort key | 21 | * @param key A sort key |
23 | */ | 22 | */ |
24 | OCheckItem::OCheckItem( QTable *t, const QString &key ) | 23 | OCheckItem::OCheckItem( QTable *t, const QString &key ) |
25 | : QTableItem( t, Never, "" ), m_checked( FALSE ), m_sortKey( key ) | 24 | : QTableItem( t, Never, "" ), m_checked( FALSE ), m_sortKey( key ) |
26 | { | 25 | { |
27 | } | 26 | } |
28 | 27 | ||
29 | /** | 28 | /** |
30 | * reimplemted for internal reasons | 29 | * reimplemted for internal reasons |
31 | * @return Returns the sort key of the Item | 30 | * @return Returns the sort key of the Item |
32 | * @see QTableItem | 31 | * @see QTableItem |
33 | */ | 32 | */ |
34 | QString OCheckItem::key() const | 33 | QString OCheckItem::key() const |
35 | { | 34 | { |
36 | return m_sortKey; | 35 | return m_sortKey; |
37 | } | 36 | } |
38 | 37 | ||
39 | /** | 38 | /** |
40 | * This method can check or uncheck the item. It will | 39 | * This method can check or uncheck the item. It will |
41 | * call QTable to update the cell. | 40 | * call QTable to update the cell. |
42 | * | 41 | * |
43 | * @param b Whether to check or uncheck the item | 42 | * @param b Whether to check or uncheck the item |
44 | */ | 43 | */ |
45 | void OCheckItem::setChecked( bool b ) | 44 | void OCheckItem::setChecked( bool b ) |
46 | { | 45 | { |
47 | m_checked = b; | 46 | m_checked = b; |
48 | table()->updateCell( row(), col() ); | 47 | table()->updateCell( row(), col() ); |
49 | } | 48 | } |
50 | 49 | ||
51 | /** | 50 | /** |
52 | * This will toggle the item. If it is checked it'll get | 51 | * This will toggle the item. If it is checked it'll get |
53 | * unchecked by this method or vice versa. | 52 | * unchecked by this method or vice versa. |
54 | */ | 53 | */ |
55 | void OCheckItem::toggle() | 54 | void OCheckItem::toggle() |
56 | { | 55 | { |
57 | m_checked = !m_checked; | 56 | m_checked = !m_checked; |
58 | } | 57 | } |
59 | 58 | ||
60 | /** | 59 | /** |
61 | * This will return the state of the item. | 60 | * This will return the state of the item. |
62 | * | 61 | * |
63 | * @return Returns true if the item is checked | 62 | * @return Returns true if the item is checked |
64 | */ | 63 | */ |
65 | bool OCheckItem::isChecked() const | 64 | bool OCheckItem::isChecked() const |
66 | { | 65 | { |
67 | return m_checked; | 66 | return m_checked; |
68 | } | 67 | } |
69 | 68 | ||
70 | /** | 69 | /** |
71 | * @internal | 70 | * @internal |
72 | * This paints the item | 71 | * This paints the item |
73 | */ | 72 | */ |
74 | void OCheckItem::paint( QPainter *p, const QColorGroup &cg, const QRect &cr, | 73 | void OCheckItem::paint( QPainter *p, const QColorGroup &cg, const QRect &cr, |
75 | bool ) | 74 | bool ) |
76 | { | 75 | { |
77 | p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) ); | 76 | p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) ); |
78 | 77 | ||
79 | int marg = ( cr.width() - BoxSize ) / 2; | 78 | int marg = ( cr.width() - BoxSize ) / 2; |
80 | int x = 0; | 79 | int x = 0; |
81 | int y = ( cr.height() - BoxSize ) / 2; | 80 | int y = ( cr.height() - BoxSize ) / 2; |
82 | p->setPen( QPen( cg.text() ) ); | 81 | p->setPen( QPen( cg.text() ) ); |
83 | p->drawRect( x + marg, y, BoxSize, BoxSize ); | 82 | p->drawRect( x + marg, y, BoxSize, BoxSize ); |
84 | p->drawRect( x + marg+1, y+1, BoxSize-2, BoxSize-2 ); | 83 | p->drawRect( x + marg+1, y+1, BoxSize-2, BoxSize-2 ); |
85 | p->setPen( darkGreen ); | 84 | p->setPen( darkGreen ); |
86 | x += 1; | 85 | x += 1; |
87 | y += 1; | 86 | y += 1; |
88 | if ( m_checked ) { | 87 | if ( m_checked ) { |
89 | QPointArray a( 7*2 ); | 88 | QPointArray a( 7*2 ); |
90 | int i, xx, yy; | 89 | int i, xx, yy; |
91 | xx = x+1+marg; | 90 | xx = x+1+marg; |
92 | yy = y+2; | 91 | yy = y+2; |
93 | for ( i=0; i<3; i++ ) { | 92 | for ( i=0; i<3; i++ ) { |
94 | a.setPoint( 2*i, xx, yy ); | 93 | a.setPoint( 2*i, xx, yy ); |
95 | a.setPoint( 2*i+1, xx, yy+2 ); | 94 | a.setPoint( 2*i+1, xx, yy+2 ); |
96 | xx++; yy++; | 95 | xx++; yy++; |
97 | } | 96 | } |
98 | yy -= 2; | 97 | yy -= 2; |
99 | for ( i=3; i<7; i++ ) { | 98 | for ( i=3; i<7; i++ ) { |
100 | a.setPoint( 2*i, xx, yy ); | 99 | a.setPoint( 2*i, xx, yy ); |
101 | a.setPoint( 2*i+1, xx, yy+2 ); | 100 | a.setPoint( 2*i+1, xx, yy+2 ); |
102 | xx++; yy--; | 101 | xx++; yy--; |
103 | } | 102 | } |
104 | p->drawLineSegments( a ); | 103 | p->drawLineSegments( a ); |
105 | } | 104 | } |
106 | } | 105 | } |
diff --git a/libopie/ocolorbutton.cpp b/libopie/ocolorbutton.cpp index 113a77a..93fe5d0 100644 --- a/libopie/ocolorbutton.cpp +++ b/libopie/ocolorbutton.cpp | |||
@@ -1,142 +1,139 @@ | |||
1 | /* | 1 | /* |
2 | =. This file is part of the OPIE Project | 2 | =. This file is part of the OPIE Project |
3 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> | 3 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> |
4 | .>+-= | 4 | .>+-= |
5 | _;:, .> :=|. This library is free software; you can | 5 | _;:, .> :=|. This library is free software; you can |
6 | .> <`_, > . <= redistribute it and/or modify it under | 6 | .> <`_, > . <= redistribute it and/or modify it under |
7 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 7 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
8 | .="- .-=="i, .._ License as published by the Free Software | 8 | .="- .-=="i, .._ License as published by the Free Software |
9 | - . .-<_> .<> Foundation; either version 2 of the License, | 9 | - . .-<_> .<> Foundation; either version 2 of the License, |
10 | ._= =} : or (at your option) any later version. | 10 | ._= =} : or (at your option) any later version. |
11 | .%`+i> _;_. | 11 | .%`+i> _;_. |
12 | .i_,=:_. -<s. This library is distributed in the hope that | 12 | .i_,=:_. -<s. This library is distributed in the hope that |
13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
14 | : .. .:, . . . without even the implied warranty of | 14 | : .. .:, . . . without even the implied warranty of |
15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
17 | ..}^=.= = ; Library General Public License for more | 17 | ..}^=.= = ; Library General Public License for more |
18 | ++= -. .` .: details. | 18 | ++= -. .` .: details. |
19 | : = ...= . :.=- | 19 | : = ...= . :.=- |
20 | -. .:....=;==+<; You should have received a copy of the GNU | 20 | -. .:....=;==+<; You should have received a copy of the GNU |
21 | -_. . . )=. = Library General Public License along with | 21 | -_. . . )=. = Library General Public License along with |
22 | -- :-=` this library; see the file COPYING.LIB. | 22 | -- :-=` this library; see the file COPYING.LIB. |
23 | If not, write to the Free Software Foundation, | 23 | If not, write to the Free Software Foundation, |
24 | Inc., 59 Temple Place - Suite 330, | 24 | Inc., 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <opie/colorpopupmenu.h> | 29 | #include <opie/colorpopupmenu.h> |
30 | #include <opie/ocolorbutton.h> | 30 | #include <opie/ocolorbutton.h> |
31 | #include <qcolor.h> | ||
32 | #include <qpixmap.h> | ||
33 | #include <qimage.h> | ||
34 | 31 | ||
35 | #include <qpe/resource.h> | 32 | #include <qpe/resource.h> |
36 | 33 | ||
37 | struct OColorButtonPrivate { | 34 | struct OColorButtonPrivate { |
38 | QPopupMenu *m_menu; | 35 | QPopupMenu *m_menu; |
39 | QColor m_color; | 36 | QColor m_color; |
40 | }; | 37 | }; |
41 | 38 | ||
42 | 39 | ||
43 | /** | 40 | /** |
44 | * This concstructs a Color Button with @param color as the start color | 41 | * This concstructs a Color Button with @param color as the start color |
45 | * It'll use a OColorPopupMenu internally | 42 | * It'll use a OColorPopupMenu internally |
46 | * | 43 | * |
47 | * @param parent The parent of the Color Button | 44 | * @param parent The parent of the Color Button |
48 | * @param color The color from where to start on | 45 | * @param color The color from where to start on |
49 | * @param name @see QObject | 46 | * @param name @see QObject |
50 | */ | 47 | */ |
51 | OColorButton::OColorButton ( QWidget *parent, const QColor &color, const char *name ) | 48 | OColorButton::OColorButton ( QWidget *parent, const QColor &color, const char *name ) |
52 | : QPushButton ( parent, name ) | 49 | : QPushButton ( parent, name ) |
53 | { | 50 | { |
54 | d = new OColorButtonPrivate; | 51 | d = new OColorButtonPrivate; |
55 | 52 | ||
56 | d-> m_menu = new OColorPopupMenu ( color, 0, 0 ); | 53 | d-> m_menu = new OColorPopupMenu ( color, 0, 0 ); |
57 | setPopup ( d-> m_menu ); | 54 | setPopup ( d-> m_menu ); |
58 | //setPopupDelay ( 0 ); | 55 | //setPopupDelay ( 0 ); |
59 | connect ( d-> m_menu, SIGNAL( colorSelected ( const QColor & )), this, SLOT( updateColor ( const QColor & ))); | 56 | connect ( d-> m_menu, SIGNAL( colorSelected ( const QColor & )), this, SLOT( updateColor ( const QColor & ))); |
60 | 57 | ||
61 | updateColor ( color ); | 58 | updateColor ( color ); |
62 | 59 | ||
63 | QSize s = sizeHint ( ) + QSize ( 12, 0 ); | 60 | QSize s = sizeHint ( ) + QSize ( 12, 0 ); |
64 | setMinimumSize ( s ); | 61 | setMinimumSize ( s ); |
65 | setMaximumSize ( s. width ( ) * 2, s. height ( )); | 62 | setMaximumSize ( s. width ( ) * 2, s. height ( )); |
66 | } | 63 | } |
67 | 64 | ||
68 | /** | 65 | /** |
69 | * This destructs the object | 66 | * This destructs the object |
70 | */ | 67 | */ |
71 | OColorButton::~OColorButton ( ) | 68 | OColorButton::~OColorButton ( ) |
72 | { | 69 | { |
73 | delete d; | 70 | delete d; |
74 | } | 71 | } |
75 | 72 | ||
76 | /** | 73 | /** |
77 | * @return Returns the current color of the button | 74 | * @return Returns the current color of the button |
78 | */ | 75 | */ |
79 | QColor OColorButton::color ( ) const | 76 | QColor OColorButton::color ( ) const |
80 | { | 77 | { |
81 | return d-> m_color; | 78 | return d-> m_color; |
82 | } | 79 | } |
83 | 80 | ||
84 | /** | 81 | /** |
85 | * This method sets the color of the button | 82 | * This method sets the color of the button |
86 | * @param c The color to be set. | 83 | * @param c The color to be set. |
87 | */ | 84 | */ |
88 | void OColorButton::setColor ( const QColor &c ) | 85 | void OColorButton::setColor ( const QColor &c ) |
89 | { | 86 | { |
90 | updateColor ( c ); | 87 | updateColor ( c ); |
91 | } | 88 | } |
92 | 89 | ||
93 | /** | 90 | /** |
94 | * @internal | 91 | * @internal |
95 | */ | 92 | */ |
96 | void OColorButton::updateColor ( const QColor &c ) | 93 | void OColorButton::updateColor ( const QColor &c ) |
97 | { | 94 | { |
98 | d-> m_color = c; | 95 | d-> m_color = c; |
99 | 96 | ||
100 | QImage img ( 16, 16, 32 ); | 97 | QImage img ( 16, 16, 32 ); |
101 | img. fill ( 0 ); | 98 | img. fill ( 0 ); |
102 | 99 | ||
103 | int r, g, b; | 100 | int r, g, b; |
104 | c. rgb ( &r, &g, &b ); | 101 | c. rgb ( &r, &g, &b ); |
105 | 102 | ||
106 | int w = img. width ( ); | 103 | int w = img. width ( ); |
107 | int h = img. height ( ); | 104 | int h = img. height ( ); |
108 | 105 | ||
109 | int dx = w * 20 / 100; // 15% | 106 | int dx = w * 20 / 100; // 15% |
110 | int dy = h * 20 / 100; | 107 | int dy = h * 20 / 100; |
111 | 108 | ||
112 | for ( int y = 0; y < h; y++ ) { | 109 | for ( int y = 0; y < h; y++ ) { |
113 | for ( int x = 0; x < w; x++ ) { | 110 | for ( int x = 0; x < w; x++ ) { |
114 | double alpha = 1.0; | 111 | double alpha = 1.0; |
115 | 112 | ||
116 | if ( x < dx ) | 113 | if ( x < dx ) |
117 | alpha *= ( double ( x + 1 ) / dx ); | 114 | alpha *= ( double ( x + 1 ) / dx ); |
118 | else if ( x >= w - dx ) | 115 | else if ( x >= w - dx ) |
119 | alpha *= ( double ( w - x ) / dx ); | 116 | alpha *= ( double ( w - x ) / dx ); |
120 | if ( y < dy ) | 117 | if ( y < dy ) |
121 | alpha *= ( double ( y + 1 ) / dy ); | 118 | alpha *= ( double ( y + 1 ) / dy ); |
122 | else if ( y >= h - dy ) | 119 | else if ( y >= h - dy ) |
123 | alpha *= ( double ( h - y ) / dy ); | 120 | alpha *= ( double ( h - y ) / dy ); |
124 | 121 | ||
125 | int a = int ( alpha * 255.0 ); | 122 | int a = int ( alpha * 255.0 ); |
126 | if ( a < 0 ) | 123 | if ( a < 0 ) |
127 | a = 0; | 124 | a = 0; |
128 | if ( a > 255 ) | 125 | if ( a > 255 ) |
129 | a = 255; | 126 | a = 255; |
130 | 127 | ||
131 | img. setPixel ( x, y, qRgba ( r, g, b, a )); | 128 | img. setPixel ( x, y, qRgba ( r, g, b, a )); |
132 | } | 129 | } |
133 | } | 130 | } |
134 | img. setAlphaBuffer ( true ); | 131 | img. setAlphaBuffer ( true ); |
135 | 132 | ||
136 | QPixmap pix; | 133 | QPixmap pix; |
137 | pix. convertFromImage ( img ); | 134 | pix. convertFromImage ( img ); |
138 | setPixmap ( pix ); | 135 | setPixmap ( pix ); |
139 | 136 | ||
140 | emit colorSelected ( c ); | 137 | emit colorSelected ( c ); |
141 | } | 138 | } |
142 | 139 | ||
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index c5342e1..c0b6efa 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp | |||
@@ -1,159 +1,158 @@ | |||
1 | /* This file is part of the OPIE libraries | 1 | /* This file is part of the OPIE libraries |
2 | Copyright (C) 2002 Robert Griebl (sandman@handhelds.org) | 2 | Copyright (C) 2002 Robert Griebl (sandman@handhelds.org) |
3 | 3 | ||
4 | This library is free software; you can redistribute it and/or | 4 | This library is free software; you can redistribute it and/or |
5 | modify it under the terms of the GNU Library General Public | 5 | modify it under the terms of the GNU Library General Public |
6 | License as published by the Free Software Foundation; either | 6 | License as published by the Free Software Foundation; either |
7 | version 2 of the License, or (at your option) any later version. | 7 | version 2 of the License, or (at your option) any later version. |
8 | 8 | ||
9 | This library is distributed in the hope that it will be useful, | 9 | This library is distributed in the hope that it will be useful, |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | Library General Public License for more details. | 12 | Library General Public License for more details. |
13 | 13 | ||
14 | You should have received a copy of the GNU Library General Public License | 14 | You should have received a copy of the GNU Library General Public License |
15 | along with this library; see the file COPYING.LIB. If not, write to | 15 | along with this library; see the file COPYING.LIB. If not, write to |
16 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 16 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
17 | Boston, MA 02111-1307, USA. | 17 | Boston, MA 02111-1307, USA. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <stdlib.h> | 20 | #include <stdlib.h> |
21 | #include <unistd.h> | 21 | #include <unistd.h> |
22 | #include <fcntl.h> | 22 | #include <fcntl.h> |
23 | #include <sys/ioctl.h> | 23 | #include <sys/ioctl.h> |
24 | #include <signal.h> | 24 | #include <signal.h> |
25 | #include <sys/time.h> | 25 | #include <sys/time.h> |
26 | #ifndef QT_NO_SOUND | 26 | #ifndef QT_NO_SOUND |
27 | #include <linux/soundcard.h> | 27 | #include <linux/soundcard.h> |
28 | #endif | 28 | #endif |
29 | #include <math.h> | 29 | #include <math.h> |
30 | 30 | ||
31 | #include <qapplication.h> | ||
32 | 31 | ||
33 | #include <qfile.h> | 32 | #include <qfile.h> |
34 | #include <qtextstream.h> | 33 | #include <qtextstream.h> |
35 | #include <qpe/sound.h> | 34 | #include <qpe/sound.h> |
36 | #include <qpe/resource.h> | 35 | #include <qpe/resource.h> |
37 | #include <qpe/config.h> | 36 | #include <qpe/config.h> |
38 | #include <qpe/qcopenvelope_qws.h> | 37 | #include <qpe/qcopenvelope_qws.h> |
39 | 38 | ||
40 | #include "odevice.h" | 39 | #include "odevice.h" |
41 | 40 | ||
42 | #include <qwindowsystem_qws.h> | 41 | #include <qwindowsystem_qws.h> |
43 | 42 | ||
44 | #ifndef ARRAY_SIZE | 43 | #ifndef ARRAY_SIZE |
45 | #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) | 44 | #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) |
46 | #endif | 45 | #endif |
47 | 46 | ||
48 | // _IO and friends are only defined in kernel headers ... | 47 | // _IO and friends are only defined in kernel headers ... |
49 | 48 | ||
50 | #define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) | 49 | #define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) |
51 | 50 | ||
52 | #define OD_IO(type,number) OD_IOC(0,type,number,0) | 51 | #define OD_IO(type,number) OD_IOC(0,type,number,0) |
53 | #define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) | 52 | #define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) |
54 | #define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) | 53 | #define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) |
55 | #define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) | 54 | #define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) |
56 | 55 | ||
57 | using namespace Opie; | 56 | using namespace Opie; |
58 | 57 | ||
59 | class ODeviceData { | 58 | class ODeviceData { |
60 | public: | 59 | public: |
61 | QString m_vendorstr; | 60 | QString m_vendorstr; |
62 | OVendor m_vendor; | 61 | OVendor m_vendor; |
63 | 62 | ||
64 | QString m_modelstr; | 63 | QString m_modelstr; |
65 | OModel m_model; | 64 | OModel m_model; |
66 | 65 | ||
67 | QString m_systemstr; | 66 | QString m_systemstr; |
68 | OSystem m_system; | 67 | OSystem m_system; |
69 | 68 | ||
70 | QString m_sysverstr; | 69 | QString m_sysverstr; |
71 | 70 | ||
72 | Transformation m_rotation; | 71 | Transformation m_rotation; |
73 | ODirection m_direction; | 72 | ODirection m_direction; |
74 | 73 | ||
75 | QValueList <ODeviceButton> *m_buttons; | 74 | QValueList <ODeviceButton> *m_buttons; |
76 | uint m_holdtime; | 75 | uint m_holdtime; |
77 | QStrList *m_cpu_frequencies; | 76 | QStrList *m_cpu_frequencies; |
78 | 77 | ||
79 | }; | 78 | }; |
80 | 79 | ||
81 | class iPAQ : public ODevice, public QWSServer::KeyboardFilter { | 80 | class iPAQ : public ODevice, public QWSServer::KeyboardFilter { |
82 | protected: | 81 | protected: |
83 | virtual void init ( ); | 82 | virtual void init ( ); |
84 | virtual void initButtons ( ); | 83 | virtual void initButtons ( ); |
85 | 84 | ||
86 | public: | 85 | public: |
87 | virtual bool setSoftSuspend ( bool soft ); | 86 | virtual bool setSoftSuspend ( bool soft ); |
88 | 87 | ||
89 | virtual bool setDisplayBrightness ( int b ); | 88 | virtual bool setDisplayBrightness ( int b ); |
90 | virtual int displayBrightnessResolution ( ) const; | 89 | virtual int displayBrightnessResolution ( ) const; |
91 | 90 | ||
92 | virtual void alarmSound ( ); | 91 | virtual void alarmSound ( ); |
93 | 92 | ||
94 | virtual QValueList <OLed> ledList ( ) const; | 93 | virtual QValueList <OLed> ledList ( ) const; |
95 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; | 94 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; |
96 | virtual OLedState ledState ( OLed led ) const; | 95 | virtual OLedState ledState ( OLed led ) const; |
97 | virtual bool setLedState ( OLed led, OLedState st ); | 96 | virtual bool setLedState ( OLed led, OLedState st ); |
98 | 97 | ||
99 | virtual bool hasLightSensor ( ) const; | 98 | virtual bool hasLightSensor ( ) const; |
100 | virtual int readLightSensor ( ); | 99 | virtual int readLightSensor ( ); |
101 | virtual int lightSensorResolution ( ) const; | 100 | virtual int lightSensorResolution ( ) const; |
102 | 101 | ||
103 | protected: | 102 | protected: |
104 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); | 103 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); |
105 | virtual void timerEvent ( QTimerEvent *te ); | 104 | virtual void timerEvent ( QTimerEvent *te ); |
106 | 105 | ||
107 | int m_power_timer; | 106 | int m_power_timer; |
108 | 107 | ||
109 | OLedState m_leds [2]; | 108 | OLedState m_leds [2]; |
110 | }; | 109 | }; |
111 | 110 | ||
112 | class Jornada : public ODevice { | 111 | class Jornada : public ODevice { |
113 | protected: | 112 | protected: |
114 | virtual void init ( ); | 113 | virtual void init ( ); |
115 | //virtual void initButtons ( ); | 114 | //virtual void initButtons ( ); |
116 | public: | 115 | public: |
117 | virtual bool setSoftSuspend ( bool soft ); | 116 | virtual bool setSoftSuspend ( bool soft ); |
118 | virtual bool setDisplayBrightness ( int b ); | 117 | virtual bool setDisplayBrightness ( int b ); |
119 | virtual int displayBrightnessResolution ( ) const; | 118 | virtual int displayBrightnessResolution ( ) const; |
120 | static bool isJornada(); | 119 | static bool isJornada(); |
121 | 120 | ||
122 | }; | 121 | }; |
123 | 122 | ||
124 | class Zaurus : public ODevice { | 123 | class Zaurus : public ODevice { |
125 | protected: | 124 | protected: |
126 | virtual void init ( ); | 125 | virtual void init ( ); |
127 | virtual void initButtons ( ); | 126 | virtual void initButtons ( ); |
128 | 127 | ||
129 | public: | 128 | public: |
130 | virtual bool setSoftSuspend ( bool soft ); | 129 | virtual bool setSoftSuspend ( bool soft ); |
131 | 130 | ||
132 | virtual bool setDisplayBrightness ( int b ); | 131 | virtual bool setDisplayBrightness ( int b ); |
133 | virtual int displayBrightnessResolution ( ) const; | 132 | virtual int displayBrightnessResolution ( ) const; |
134 | 133 | ||
135 | virtual void alarmSound ( ); | 134 | virtual void alarmSound ( ); |
136 | virtual void keySound ( ); | 135 | virtual void keySound ( ); |
137 | virtual void touchSound ( ); | 136 | virtual void touchSound ( ); |
138 | 137 | ||
139 | virtual QValueList <OLed> ledList ( ) const; | 138 | virtual QValueList <OLed> ledList ( ) const; |
140 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; | 139 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; |
141 | virtual OLedState ledState ( OLed led ) const; | 140 | virtual OLedState ledState ( OLed led ) const; |
142 | virtual bool setLedState ( OLed led, OLedState st ); | 141 | virtual bool setLedState ( OLed led, OLedState st ); |
143 | 142 | ||
144 | bool hasHingeSensor() const; | 143 | bool hasHingeSensor() const; |
145 | OHingeStatus readHingeSensor(); | 144 | OHingeStatus readHingeSensor(); |
146 | 145 | ||
147 | static bool isZaurus(); | 146 | static bool isZaurus(); |
148 | 147 | ||
149 | // Does this break BC? | 148 | // Does this break BC? |
150 | virtual bool suspend ( ); | 149 | virtual bool suspend ( ); |
151 | Transformation rotation ( ) const; | 150 | Transformation rotation ( ) const; |
152 | ODirection direction ( ) const; | 151 | ODirection direction ( ) const; |
153 | 152 | ||
154 | protected: | 153 | protected: |
155 | virtual void buzzer ( int snd ); | 154 | virtual void buzzer ( int snd ); |
156 | 155 | ||
157 | OLedState m_leds [1]; | 156 | OLedState m_leds [1]; |
158 | bool m_embedix; | 157 | bool m_embedix; |
159 | void virtual_hook( int id, void *data ); | 158 | void virtual_hook( int id, void *data ); |
diff --git a/libopie/odevicebutton.cpp b/libopie/odevicebutton.cpp index 314eb51..647ac4b 100644 --- a/libopie/odevicebutton.cpp +++ b/libopie/odevicebutton.cpp | |||
@@ -1,150 +1,148 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #include <qpixmap.h> | ||
22 | #include <qstring.h> | ||
23 | 21 | ||
24 | #include <qpe/qcopenvelope_qws.h> | 22 | #include <qpe/qcopenvelope_qws.h> |
25 | #include <opie/odevicebutton.h> | 23 | #include <opie/odevicebutton.h> |
26 | 24 | ||
27 | using namespace Opie; | 25 | using namespace Opie; |
28 | 26 | ||
29 | 27 | ||
30 | class OQCopMessageData { | 28 | class OQCopMessageData { |
31 | public: | 29 | public: |
32 | QCString m_channel; | 30 | QCString m_channel; |
33 | QCString m_message; | 31 | QCString m_message; |
34 | QByteArray m_data; | 32 | QByteArray m_data; |
35 | }; | 33 | }; |
36 | 34 | ||
37 | 35 | ||
38 | OQCopMessage::OQCopMessage ( ) | 36 | OQCopMessage::OQCopMessage ( ) |
39 | : d ( 0 ) | 37 | : d ( 0 ) |
40 | { | 38 | { |
41 | init ( QCString ( ), QCString ( ), QByteArray ( )); | 39 | init ( QCString ( ), QCString ( ), QByteArray ( )); |
42 | } | 40 | } |
43 | 41 | ||
44 | OQCopMessage::OQCopMessage ( const OQCopMessage © ) | 42 | OQCopMessage::OQCopMessage ( const OQCopMessage © ) |
45 | : d ( 0 ) | 43 | : d ( 0 ) |
46 | { | 44 | { |
47 | init ( copy. channel ( ), copy. message ( ), copy. data ( )); | 45 | init ( copy. channel ( ), copy. message ( ), copy. data ( )); |
48 | } | 46 | } |
49 | 47 | ||
50 | OQCopMessage &OQCopMessage::operator = ( const OQCopMessage &assign ) | 48 | OQCopMessage &OQCopMessage::operator = ( const OQCopMessage &assign ) |
51 | { | 49 | { |
52 | init ( assign. channel ( ), assign. message ( ), assign. data ( )); | 50 | init ( assign. channel ( ), assign. message ( ), assign. data ( )); |
53 | return *this; | 51 | return *this; |
54 | } | 52 | } |
55 | 53 | ||
56 | OQCopMessage::OQCopMessage ( const QCString &ch, const QCString &m, const QByteArray &arg ) | 54 | OQCopMessage::OQCopMessage ( const QCString &ch, const QCString &m, const QByteArray &arg ) |
57 | : d ( 0 ) | 55 | : d ( 0 ) |
58 | { | 56 | { |
59 | init ( ch, m, arg ); | 57 | init ( ch, m, arg ); |
60 | } | 58 | } |
61 | 59 | ||
62 | void OQCopMessage::init ( const QCString &ch, const QCString &m, const QByteArray &arg ) | 60 | void OQCopMessage::init ( const QCString &ch, const QCString &m, const QByteArray &arg ) |
63 | { | 61 | { |
64 | if ( !d ) | 62 | if ( !d ) |
65 | d = new OQCopMessageData ( ); | 63 | d = new OQCopMessageData ( ); |
66 | d-> m_channel = ch; | 64 | d-> m_channel = ch; |
67 | d-> m_message = m; | 65 | d-> m_message = m; |
68 | d-> m_data = arg; | 66 | d-> m_data = arg; |
69 | } | 67 | } |
70 | 68 | ||
71 | bool OQCopMessage::send ( ) | 69 | bool OQCopMessage::send ( ) |
72 | { | 70 | { |
73 | if ( d-> m_channel. isEmpty ( ) || d-> m_message. isEmpty ( ) ) | 71 | if ( d-> m_channel. isEmpty ( ) || d-> m_message. isEmpty ( ) ) |
74 | return false; | 72 | return false; |
75 | 73 | ||
76 | QCopEnvelope e ( d-> m_channel, d-> m_message ); | 74 | QCopEnvelope e ( d-> m_channel, d-> m_message ); |
77 | 75 | ||
78 | if ( d-> m_data. size ( )) | 76 | if ( d-> m_data. size ( )) |
79 | e. writeRawBytes ( d-> m_data. data ( ), d-> m_data. size ( )); | 77 | e. writeRawBytes ( d-> m_data. data ( ), d-> m_data. size ( )); |
80 | 78 | ||
81 | return true; | 79 | return true; |
82 | } | 80 | } |
83 | 81 | ||
84 | QCString OQCopMessage::channel ( ) const | 82 | QCString OQCopMessage::channel ( ) const |
85 | { | 83 | { |
86 | return d-> m_channel; | 84 | return d-> m_channel; |
87 | } | 85 | } |
88 | 86 | ||
89 | QCString OQCopMessage::message ( ) const | 87 | QCString OQCopMessage::message ( ) const |
90 | { | 88 | { |
91 | return d-> m_message; | 89 | return d-> m_message; |
92 | } | 90 | } |
93 | 91 | ||
94 | QByteArray OQCopMessage::data ( ) const | 92 | QByteArray OQCopMessage::data ( ) const |
95 | { | 93 | { |
96 | return d-> m_data; | 94 | return d-> m_data; |
97 | } | 95 | } |
98 | 96 | ||
99 | bool OQCopMessage::isNull() const | 97 | bool OQCopMessage::isNull() const |
100 | { | 98 | { |
101 | return d-> m_message.isNull() || d-> m_channel.isNull(); | 99 | return d-> m_message.isNull() || d-> m_channel.isNull(); |
102 | } | 100 | } |
103 | void OQCopMessage::setChannel ( const QCString &ch ) | 101 | void OQCopMessage::setChannel ( const QCString &ch ) |
104 | { | 102 | { |
105 | d-> m_channel = ch; | 103 | d-> m_channel = ch; |
106 | } | 104 | } |
107 | 105 | ||
108 | void OQCopMessage::setMessage ( const QCString &m ) | 106 | void OQCopMessage::setMessage ( const QCString &m ) |
109 | { | 107 | { |
110 | d-> m_message = m; | 108 | d-> m_message = m; |
111 | } | 109 | } |
112 | 110 | ||
113 | void OQCopMessage::setData ( const QByteArray &data ) | 111 | void OQCopMessage::setData ( const QByteArray &data ) |
114 | { | 112 | { |
115 | d-> m_data = data; | 113 | d-> m_data = data; |
116 | } | 114 | } |
117 | 115 | ||
118 | /*! \class Opie::ODeviceButton | 116 | /*! \class Opie::ODeviceButton |
119 | \brief The Opie::ODeviceButton class represents a physical user mappable button on a Qtopia device. | 117 | \brief The Opie::ODeviceButton class represents a physical user mappable button on a Qtopia device. |
120 | 118 | ||
121 | This class represents a physical button on a Qtopia device. A | 119 | This class represents a physical button on a Qtopia device. A |
122 | device may have "user programmable" buttons. | 120 | device may have "user programmable" buttons. |
123 | The location and number of buttons will vary from device to | 121 | The location and number of buttons will vary from device to |
124 | device. userText() and pixmap() may be used to describe this button | 122 | device. userText() and pixmap() may be used to describe this button |
125 | to the user in help documentation. | 123 | to the user in help documentation. |
126 | 124 | ||
127 | \ingroup qtopiaemb | 125 | \ingroup qtopiaemb |
128 | \internal | 126 | \internal |
129 | */ | 127 | */ |
130 | 128 | ||
131 | ODeviceButton::ODeviceButton() | 129 | ODeviceButton::ODeviceButton() |
132 | { | 130 | { |
133 | } | 131 | } |
134 | 132 | ||
135 | ODeviceButton::~ODeviceButton() | 133 | ODeviceButton::~ODeviceButton() |
136 | { | 134 | { |
137 | } | 135 | } |
138 | 136 | ||
139 | /*! | 137 | /*! |
140 | Returns the button's keycode. | 138 | Returns the button's keycode. |
141 | */ | 139 | */ |
142 | ushort ODeviceButton::keycode() const | 140 | ushort ODeviceButton::keycode() const |
143 | { | 141 | { |
144 | return m_Keycode; | 142 | return m_Keycode; |
145 | } | 143 | } |
146 | 144 | ||
147 | 145 | ||
148 | /*! | 146 | /*! |
149 | This function returns a human readable, translated description of the button. | 147 | This function returns a human readable, translated description of the button. |
150 | */ | 148 | */ |
diff --git a/libopie/ofiledialog.cc b/libopie/ofiledialog.cc index 5511b24..47306b6 100644 --- a/libopie/ofiledialog.cc +++ b/libopie/ofiledialog.cc | |||
@@ -1,163 +1,160 @@ | |||
1 | /* | 1 | /* |
2 | =. This file is part of the OPIE Project | 2 | =. This file is part of the OPIE Project |
3 | .=l. Copyright (c) 2002,2003 <zecke@handhelds.org> | 3 | .=l. Copyright (c) 2002,2003 <zecke@handhelds.org> |
4 | .>+-= | 4 | .>+-= |
5 | _;:, .> :=|. This library is free software; you can | 5 | _;:, .> :=|. This library is free software; you can |
6 | .> <`_, > . <= redistribute it and/or modify it under | 6 | .> <`_, > . <= redistribute it and/or modify it under |
7 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 7 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
8 | .="- .-=="i, .._ License as published by the Free Software | 8 | .="- .-=="i, .._ License as published by the Free Software |
9 | - . .-<_> .<> Foundation; either version 2 of the License, | 9 | - . .-<_> .<> Foundation; either version 2 of the License, |
10 | ._= =} : or (at your option) any later version. | 10 | ._= =} : or (at your option) any later version. |
11 | .%`+i> _;_. | 11 | .%`+i> _;_. |
12 | .i_,=:_. -<s. This library is distributed in the hope that | 12 | .i_,=:_. -<s. This library is distributed in the hope that |
13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
14 | : .. .:, . . . without even the implied warranty of | 14 | : .. .:, . . . without even the implied warranty of |
15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
17 | ..}^=.= = ; Library General Public License for more | 17 | ..}^=.= = ; Library General Public License for more |
18 | ++= -. .` .: details. | 18 | ++= -. .` .: details. |
19 | : = ...= . :.=- | 19 | : = ...= . :.=- |
20 | -. .:....=;==+<; You should have received a copy of the GNU | 20 | -. .:....=;==+<; You should have received a copy of the GNU |
21 | -_. . . )=. = Library General Public License along with | 21 | -_. . . )=. = Library General Public License along with |
22 | -- :-=` this library; see the file COPYING.LIB. | 22 | -- :-=` this library; see the file COPYING.LIB. |
23 | If not, write to the Free Software Foundation, | 23 | If not, write to the Free Software Foundation, |
24 | Inc., 59 Temple Place - Suite 330, | 24 | Inc., 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <qpe/applnk.h> | ||
30 | #include <qpe/config.h> | 29 | #include <qpe/config.h> |
31 | #include <qpe/qpeapplication.h> | 30 | #include <qpe/qpeapplication.h> |
32 | 31 | ||
33 | #include <qfileinfo.h> | 32 | #include <qfileinfo.h> |
34 | #include <qstring.h> | ||
35 | #include <qapplication.h> | ||
36 | #include <qlayout.h> | 33 | #include <qlayout.h> |
37 | 34 | ||
38 | 35 | ||
39 | #include "ofiledialog.h" | 36 | #include "ofiledialog.h" |
40 | 37 | ||
41 | 38 | ||
42 | namespace { | 39 | namespace { |
43 | /* | 40 | /* |
44 | * helper functions to load the start dir | 41 | * helper functions to load the start dir |
45 | * and to save it | 42 | * and to save it |
46 | * helper to extract the dir out of a file name | 43 | * helper to extract the dir out of a file name |
47 | */ | 44 | */ |
48 | /** | 45 | /** |
49 | * This method will use Config( argv[0] ); | 46 | * This method will use Config( argv[0] ); |
50 | * @param key The group key used | 47 | * @param key The group key used |
51 | */ | 48 | */ |
52 | QString lastUsedDir( const QString& key ) { | 49 | QString lastUsedDir( const QString& key ) { |
53 | if ( qApp->argc() < 1 ) | 50 | if ( qApp->argc() < 1 ) |
54 | return QString::null; | 51 | return QString::null; |
55 | 52 | ||
56 | Config cfg( QFileInfo(qApp->argv()[0]).fileName() ); // appname | 53 | Config cfg( QFileInfo(qApp->argv()[0]).fileName() ); // appname |
57 | cfg.setGroup( key ); | 54 | cfg.setGroup( key ); |
58 | return cfg.readEntry("LastDir", QPEApplication::documentDir() ); | 55 | return cfg.readEntry("LastDir", QPEApplication::documentDir() ); |
59 | } | 56 | } |
60 | 57 | ||
61 | void saveLastDir( const QString& key, const QString& file ) { | 58 | void saveLastDir( const QString& key, const QString& file ) { |
62 | if ( qApp->argc() < 1 ) | 59 | if ( qApp->argc() < 1 ) |
63 | return; | 60 | return; |
64 | 61 | ||
65 | Config cfg( QFileInfo(qApp->argv()[0]).fileName() ); | 62 | Config cfg( QFileInfo(qApp->argv()[0]).fileName() ); |
66 | cfg.setGroup( key ); | 63 | cfg.setGroup( key ); |
67 | QFileInfo inf( file ); | 64 | QFileInfo inf( file ); |
68 | cfg.writeEntry("LastDir", inf.dirPath( true ) ); | 65 | cfg.writeEntry("LastDir", inf.dirPath( true ) ); |
69 | } | 66 | } |
70 | }; | 67 | }; |
71 | 68 | ||
72 | /** | 69 | /** |
73 | * This constructs a modal dialog | 70 | * This constructs a modal dialog |
74 | * | 71 | * |
75 | * @param caption The caption of the dialog | 72 | * @param caption The caption of the dialog |
76 | * @param wid The parent widget | 73 | * @param wid The parent widget |
77 | * @param mode The mode of the OFileSelector @see OFileSelector | 74 | * @param mode The mode of the OFileSelector @see OFileSelector |
78 | * @param selector The selector of the OFileSelector | 75 | * @param selector The selector of the OFileSelector |
79 | * @param dirName the dir or resource to start from | 76 | * @param dirName the dir or resource to start from |
80 | * @param fileName a proposed or existing filename | 77 | * @param fileName a proposed or existing filename |
81 | * @param mimetypes The mimeTypes | 78 | * @param mimetypes The mimeTypes |
82 | */ | 79 | */ |
83 | OFileDialog::OFileDialog(const QString &caption, | 80 | OFileDialog::OFileDialog(const QString &caption, |
84 | QWidget *wid, int mode, int selector, | 81 | QWidget *wid, int mode, int selector, |
85 | const QString &dirName, | 82 | const QString &dirName, |
86 | const QString &fileName, | 83 | const QString &fileName, |
87 | const QMap<QString,QStringList>& mimetypes ) | 84 | const QMap<QString,QStringList>& mimetypes ) |
88 | : QDialog( wid, "OFileDialog", true ) | 85 | : QDialog( wid, "OFileDialog", true ) |
89 | { | 86 | { |
90 | // QVBoxLayout *lay = new QVBoxLayout(this); | 87 | // QVBoxLayout *lay = new QVBoxLayout(this); |
91 | //showMaximized(); | 88 | //showMaximized(); |
92 | QVBoxLayout *lay = new QVBoxLayout(this ); | 89 | QVBoxLayout *lay = new QVBoxLayout(this ); |
93 | file = new OFileSelector(this , mode, selector, | 90 | file = new OFileSelector(this , mode, selector, |
94 | dirName, fileName, | 91 | dirName, fileName, |
95 | mimetypes ); | 92 | mimetypes ); |
96 | lay->addWidget( file ); | 93 | lay->addWidget( file ); |
97 | 94 | ||
98 | //lay->addWidget( file ); | 95 | //lay->addWidget( file ); |
99 | //showFullScreen(); | 96 | //showFullScreen(); |
100 | setCaption( caption.isEmpty() ? tr("FileDialog") : caption ); | 97 | setCaption( caption.isEmpty() ? tr("FileDialog") : caption ); |
101 | connect(file, SIGNAL(fileSelected(const QString&) ), | 98 | connect(file, SIGNAL(fileSelected(const QString&) ), |
102 | this, SLOT(slotFileSelected(const QString&) ) ); | 99 | this, SLOT(slotFileSelected(const QString&) ) ); |
103 | connect(file, SIGNAL(ok() ), | 100 | connect(file, SIGNAL(ok() ), |
104 | this, SLOT(slotSelectorOk()) ) ; | 101 | this, SLOT(slotSelectorOk()) ) ; |
105 | 102 | ||
106 | connect(file, SIGNAL(dirSelected(const QString&) ), this, SLOT(slotDirSelected(const QString&) ) ); | 103 | connect(file, SIGNAL(dirSelected(const QString&) ), this, SLOT(slotDirSelected(const QString&) ) ); |
107 | 104 | ||
108 | #if 0 | 105 | #if 0 |
109 | connect(file, SIGNAL(dirSelected(const QString &) ), | 106 | connect(file, SIGNAL(dirSelected(const QString &) ), |
110 | this, SLOT(slotDirSelected(const QString &) ) ); | 107 | this, SLOT(slotDirSelected(const QString &) ) ); |
111 | #endif | 108 | #endif |
112 | } | 109 | } |
113 | /** | 110 | /** |
114 | * @returns the mimetype of the selected | 111 | * @returns the mimetype of the selected |
115 | * currently it return QString::null | 112 | * currently it return QString::null |
116 | */ | 113 | */ |
117 | QString OFileDialog::mimetype()const | 114 | QString OFileDialog::mimetype()const |
118 | { | 115 | { |
119 | return QString::null; | 116 | return QString::null; |
120 | } | 117 | } |
121 | 118 | ||
122 | /** | 119 | /** |
123 | * @return the fileName | 120 | * @return the fileName |
124 | */ | 121 | */ |
125 | QString OFileDialog::fileName()const | 122 | QString OFileDialog::fileName()const |
126 | { | 123 | { |
127 | return file->selectedName(); | 124 | return file->selectedName(); |
128 | } | 125 | } |
129 | 126 | ||
130 | /** | 127 | /** |
131 | * return a DocLnk to the current file | 128 | * return a DocLnk to the current file |
132 | */ | 129 | */ |
133 | DocLnk OFileDialog::selectedDocument()const | 130 | DocLnk OFileDialog::selectedDocument()const |
134 | { | 131 | { |
135 | return file->selectedDocument(); | 132 | return file->selectedDocument(); |
136 | } | 133 | } |
137 | 134 | ||
138 | /** | 135 | /** |
139 | * This opens up a filedialog in Open mode | 136 | * This opens up a filedialog in Open mode |
140 | * | 137 | * |
141 | * @param selector the Selector Mode | 138 | * @param selector the Selector Mode |
142 | * @param startDir Where to start from | 139 | * @param startDir Where to start from |
143 | * @param file A proposed filename | 140 | * @param file A proposed filename |
144 | * @param mimes A list of MimeTypes | 141 | * @param mimes A list of MimeTypes |
145 | * @param wid the parent | 142 | * @param wid the parent |
146 | * @param caption of the dialog if QString::null tr("Open") will be used | 143 | * @param caption of the dialog if QString::null tr("Open") will be used |
147 | * @return the fileName or QString::null | 144 | * @return the fileName or QString::null |
148 | */ | 145 | */ |
149 | QString OFileDialog::getOpenFileName(int selector, | 146 | QString OFileDialog::getOpenFileName(int selector, |
150 | const QString &_startDir, | 147 | const QString &_startDir, |
151 | const QString &file, | 148 | const QString &file, |
152 | const MimeTypes &mimes, | 149 | const MimeTypes &mimes, |
153 | QWidget *wid, | 150 | QWidget *wid, |
154 | const QString &caption ) | 151 | const QString &caption ) |
155 | { | 152 | { |
156 | QString ret; | 153 | QString ret; |
157 | QString startDir = _startDir; | 154 | QString startDir = _startDir; |
158 | if (startDir.isEmpty() ) | 155 | if (startDir.isEmpty() ) |
159 | startDir = lastUsedDir( "FileDialog-OPEN" ); | 156 | startDir = lastUsedDir( "FileDialog-OPEN" ); |
160 | 157 | ||
161 | 158 | ||
162 | OFileDialog dlg( caption.isEmpty() ? tr("Open") : caption, | 159 | OFileDialog dlg( caption.isEmpty() ? tr("Open") : caption, |
163 | wid, OFileSelector::Open, selector, startDir, file, mimes); | 160 | wid, OFileSelector::Open, selector, startDir, file, mimes); |
diff --git a/libopie/ofileselector.cpp b/libopie/ofileselector.cpp index 9ac2981..1ba94ae 100644 --- a/libopie/ofileselector.cpp +++ b/libopie/ofileselector.cpp | |||
@@ -1,140 +1,135 @@ | |||
1 | #include <qcombobox.h> | 1 | #include <qcombobox.h> |
2 | #include <qdir.h> | 2 | #include <qdir.h> |
3 | #include <qhbox.h> | ||
4 | #include <qheader.h> | ||
5 | #include <qlabel.h> | 3 | #include <qlabel.h> |
6 | #include <qlayout.h> | 4 | #include <qlayout.h> |
7 | #include <qlineedit.h> | 5 | #include <qlineedit.h> |
8 | #include <qlistview.h> | ||
9 | #include <qpopupmenu.h> | 6 | #include <qpopupmenu.h> |
10 | #include <qwidgetstack.h> | 7 | #include <qwidgetstack.h> |
11 | #include <qregexp.h> | ||
12 | #include <qobjectlist.h> | ||
13 | 8 | ||
14 | /* hacky but we need to get FileSelector::filter */ | 9 | /* hacky but we need to get FileSelector::filter */ |
15 | #define private public | 10 | #define private public |
16 | #include <qpe/fileselector.h> | 11 | #include <qpe/fileselector.h> |
17 | #undef private | 12 | #undef private |
18 | 13 | ||
19 | #include <qpe/qpeapplication.h> | 14 | #include <qpe/qpeapplication.h> |
20 | #include <qpe/mimetype.h> | 15 | #include <qpe/mimetype.h> |
21 | #include <qpe/resource.h> | 16 | #include <qpe/resource.h> |
22 | #include <qpe/storage.h> | 17 | #include <qpe/storage.h> |
23 | 18 | ||
24 | #include "ofileselector_p.h" | 19 | #include "ofileselector_p.h" |
25 | #include "ofileselector.h" | 20 | #include "ofileselector.h" |
26 | 21 | ||
27 | 22 | ||
28 | 23 | ||
29 | OFileViewInterface::OFileViewInterface( OFileSelector* selector ) | 24 | OFileViewInterface::OFileViewInterface( OFileSelector* selector ) |
30 | : m_selector( selector ) { | 25 | : m_selector( selector ) { |
31 | } | 26 | } |
32 | OFileViewInterface::~OFileViewInterface() { | 27 | OFileViewInterface::~OFileViewInterface() { |
33 | } | 28 | } |
34 | QString OFileViewInterface::name()const{ | 29 | QString OFileViewInterface::name()const{ |
35 | return m_name; | 30 | return m_name; |
36 | } | 31 | } |
37 | void OFileViewInterface::setName( const QString& name ) { | 32 | void OFileViewInterface::setName( const QString& name ) { |
38 | m_name = name; | 33 | m_name = name; |
39 | } | 34 | } |
40 | OFileSelector* OFileViewInterface::selector()const { | 35 | OFileSelector* OFileViewInterface::selector()const { |
41 | return m_selector; | 36 | return m_selector; |
42 | } | 37 | } |
43 | DocLnk OFileViewInterface::selectedDocument()const { | 38 | DocLnk OFileViewInterface::selectedDocument()const { |
44 | return DocLnk( selectedName() ); | 39 | return DocLnk( selectedName() ); |
45 | } | 40 | } |
46 | bool OFileViewInterface::showNew()const { | 41 | bool OFileViewInterface::showNew()const { |
47 | return selector()->showNew(); | 42 | return selector()->showNew(); |
48 | } | 43 | } |
49 | bool OFileViewInterface::showClose()const { | 44 | bool OFileViewInterface::showClose()const { |
50 | return selector()->showClose(); | 45 | return selector()->showClose(); |
51 | } | 46 | } |
52 | MimeTypes OFileViewInterface::mimeTypes()const { | 47 | MimeTypes OFileViewInterface::mimeTypes()const { |
53 | return selector()->mimeTypes(); | 48 | return selector()->mimeTypes(); |
54 | } | 49 | } |
55 | QStringList OFileViewInterface::currentMimeType()const { | 50 | QStringList OFileViewInterface::currentMimeType()const { |
56 | return selector()->currentMimeType(); | 51 | return selector()->currentMimeType(); |
57 | } | 52 | } |
58 | void OFileViewInterface::activate( const QString& ) { | 53 | void OFileViewInterface::activate( const QString& ) { |
59 | // not implemented here | 54 | // not implemented here |
60 | } | 55 | } |
61 | void OFileViewInterface::ok() { | 56 | void OFileViewInterface::ok() { |
62 | emit selector()->ok(); | 57 | emit selector()->ok(); |
63 | } | 58 | } |
64 | void OFileViewInterface::cancel() { | 59 | void OFileViewInterface::cancel() { |
65 | emit selector()->cancel(); | 60 | emit selector()->cancel(); |
66 | } | 61 | } |
67 | void OFileViewInterface::closeMe() { | 62 | void OFileViewInterface::closeMe() { |
68 | emit selector()->closeMe(); | 63 | emit selector()->closeMe(); |
69 | } | 64 | } |
70 | void OFileViewInterface::fileSelected( const QString& str) { | 65 | void OFileViewInterface::fileSelected( const QString& str) { |
71 | emit selector()->fileSelected( str); | 66 | emit selector()->fileSelected( str); |
72 | } | 67 | } |
73 | void OFileViewInterface::fileSelected( const DocLnk& lnk) { | 68 | void OFileViewInterface::fileSelected( const DocLnk& lnk) { |
74 | emit selector()->fileSelected( lnk ); | 69 | emit selector()->fileSelected( lnk ); |
75 | } | 70 | } |
76 | void OFileViewInterface::setCurrentFileName( const QString& str ) { | 71 | void OFileViewInterface::setCurrentFileName( const QString& str ) { |
77 | selector()->m_lneEdit->setText( str ); | 72 | selector()->m_lneEdit->setText( str ); |
78 | } | 73 | } |
79 | QString OFileViewInterface::currentFileName()const{ | 74 | QString OFileViewInterface::currentFileName()const{ |
80 | return selector()->m_lneEdit->text(); | 75 | return selector()->m_lneEdit->text(); |
81 | } | 76 | } |
82 | QString OFileViewInterface::startDirectory()const{ | 77 | QString OFileViewInterface::startDirectory()const{ |
83 | return selector()->m_startDir; | 78 | return selector()->m_startDir; |
84 | } | 79 | } |
85 | 80 | ||
86 | 81 | ||
87 | ODocumentFileView::ODocumentFileView( OFileSelector* selector ) | 82 | ODocumentFileView::ODocumentFileView( OFileSelector* selector ) |
88 | : OFileViewInterface( selector ) { | 83 | : OFileViewInterface( selector ) { |
89 | m_selector = 0; | 84 | m_selector = 0; |
90 | setName( QObject::tr("Documents") ); | 85 | setName( QObject::tr("Documents") ); |
91 | } | 86 | } |
92 | ODocumentFileView::~ODocumentFileView() { | 87 | ODocumentFileView::~ODocumentFileView() { |
93 | 88 | ||
94 | } | 89 | } |
95 | QString ODocumentFileView::selectedName()const { | 90 | QString ODocumentFileView::selectedName()const { |
96 | if (!m_selector) | 91 | if (!m_selector) |
97 | return QString::null; | 92 | return QString::null; |
98 | 93 | ||
99 | return m_selector->selectedDocument().file(); | 94 | return m_selector->selectedDocument().file(); |
100 | } | 95 | } |
101 | QString ODocumentFileView::selectedPath()const { | 96 | QString ODocumentFileView::selectedPath()const { |
102 | return QPEApplication::documentDir(); | 97 | return QPEApplication::documentDir(); |
103 | } | 98 | } |
104 | QString ODocumentFileView::directory()const { | 99 | QString ODocumentFileView::directory()const { |
105 | return selectedPath(); | 100 | return selectedPath(); |
106 | } | 101 | } |
107 | void ODocumentFileView::reread() { | 102 | void ODocumentFileView::reread() { |
108 | if (!m_selector) | 103 | if (!m_selector) |
109 | return; | 104 | return; |
110 | 105 | ||
111 | m_selector->setNewVisible( showNew() ); | 106 | m_selector->setNewVisible( showNew() ); |
112 | m_selector->setCloseVisible( showClose() ); | 107 | m_selector->setCloseVisible( showClose() ); |
113 | m_selector->filter = currentMimeType().join(";"); | 108 | m_selector->filter = currentMimeType().join(";"); |
114 | m_selector->reread(); | 109 | m_selector->reread(); |
115 | } | 110 | } |
116 | int ODocumentFileView::fileCount()const { | 111 | int ODocumentFileView::fileCount()const { |
117 | if (!m_selector) | 112 | if (!m_selector) |
118 | return -1; | 113 | return -1; |
119 | 114 | ||
120 | return m_selector->fileCount(); | 115 | return m_selector->fileCount(); |
121 | } | 116 | } |
122 | DocLnk ODocumentFileView::selectedDocument()const { | 117 | DocLnk ODocumentFileView::selectedDocument()const { |
123 | if (!m_selector) | 118 | if (!m_selector) |
124 | return DocLnk(); | 119 | return DocLnk(); |
125 | 120 | ||
126 | return m_selector->selectedDocument(); | 121 | return m_selector->selectedDocument(); |
127 | } | 122 | } |
128 | QWidget* ODocumentFileView::widget( QWidget* parent ) { | 123 | QWidget* ODocumentFileView::widget( QWidget* parent ) { |
129 | if (!m_selector ) { | 124 | if (!m_selector ) { |
130 | m_selector = new FileSelector(currentMimeType().join(";"), parent, "fileselector", showNew(), showClose() ); | 125 | m_selector = new FileSelector(currentMimeType().join(";"), parent, "fileselector", showNew(), showClose() ); |
131 | QObject::connect(m_selector, SIGNAL(fileSelected( const DocLnk& ) ), | 126 | QObject::connect(m_selector, SIGNAL(fileSelected( const DocLnk& ) ), |
132 | selector(), SLOT(slotDocLnkBridge(const DocLnk&) ) ); | 127 | selector(), SLOT(slotDocLnkBridge(const DocLnk&) ) ); |
133 | QObject::connect(m_selector, SIGNAL(closeMe() ), | 128 | QObject::connect(m_selector, SIGNAL(closeMe() ), |
134 | selector(), SIGNAL(closeMe() ) ); | 129 | selector(), SIGNAL(closeMe() ) ); |
135 | QObject::connect(m_selector, SIGNAL(newSelected(const DocLnk& ) ), | 130 | QObject::connect(m_selector, SIGNAL(newSelected(const DocLnk& ) ), |
136 | selector(), SIGNAL(newSelected(const DocLnk& ) ) ); | 131 | selector(), SIGNAL(newSelected(const DocLnk& ) ) ); |
137 | } | 132 | } |
138 | 133 | ||
139 | return m_selector; | 134 | return m_selector; |
140 | } | 135 | } |
diff --git a/libopie/ofontselector.cpp b/libopie/ofontselector.cpp index c8471cc..7e07008 100644 --- a/libopie/ofontselector.cpp +++ b/libopie/ofontselector.cpp | |||
@@ -1,161 +1,160 @@ | |||
1 | /* | 1 | /* |
2 | =. This file is part of the OPIE Project | 2 | =. This file is part of the OPIE Project |
3 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> | 3 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> |
4 | .>+-= | 4 | .>+-= |
5 | _;:, .> :=|. This library is free software; you can | 5 | _;:, .> :=|. This library is free software; you can |
6 | .> <`_, > . <= redistribute it and/or modify it under | 6 | .> <`_, > . <= redistribute it and/or modify it under |
7 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 7 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
8 | .="- .-=="i, .._ License as published by the Free Software | 8 | .="- .-=="i, .._ License as published by the Free Software |
9 | - . .-<_> .<> Foundation; either version 2 of the License, | 9 | - . .-<_> .<> Foundation; either version 2 of the License, |
10 | ._= =} : or (at your option) any later version. | 10 | ._= =} : or (at your option) any later version. |
11 | .%`+i> _;_. | 11 | .%`+i> _;_. |
12 | .i_,=:_. -<s. This library is distributed in the hope that | 12 | .i_,=:_. -<s. This library is distributed in the hope that |
13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
14 | : .. .:, . . . without even the implied warranty of | 14 | : .. .:, . . . without even the implied warranty of |
15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
17 | ..}^=.= = ; Library General Public License for more | 17 | ..}^=.= = ; Library General Public License for more |
18 | ++= -. .` .: details. | 18 | ++= -. .` .: details. |
19 | : = ...= . :.=- | 19 | : = ...= . :.=- |
20 | -. .:....=;==+<; You should have received a copy of the GNU | 20 | -. .:....=;==+<; You should have received a copy of the GNU |
21 | -_. . . )=. = Library General Public License along with | 21 | -_. . . )=. = Library General Public License along with |
22 | -- :-=` this library; see the file COPYING.LIB. | 22 | -- :-=` this library; see the file COPYING.LIB. |
23 | If not, write to the Free Software Foundation, | 23 | If not, write to the Free Software Foundation, |
24 | Inc., 59 Temple Place - Suite 330, | 24 | Inc., 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <qlayout.h> | 29 | #include <qlayout.h> |
30 | #include <qlistbox.h> | 30 | #include <qlistbox.h> |
31 | #include <qcombobox.h> | 31 | #include <qcombobox.h> |
32 | #include <qlabel.h> | 32 | #include <qlabel.h> |
33 | #include <qfont.h> | ||
34 | #include <qmultilineedit.h> | 33 | #include <qmultilineedit.h> |
35 | 34 | ||
36 | #include <qpe/fontdatabase.h> | 35 | #include <qpe/fontdatabase.h> |
37 | 36 | ||
38 | #include "ofontselector.h" | 37 | #include "ofontselector.h" |
39 | 38 | ||
40 | class OFontSelectorPrivate { | 39 | class OFontSelectorPrivate { |
41 | public: | 40 | public: |
42 | QListBox * m_font_family_list; | 41 | QListBox * m_font_family_list; |
43 | QComboBox * m_font_style_list; | 42 | QComboBox * m_font_style_list; |
44 | QComboBox * m_font_size_list; | 43 | QComboBox * m_font_size_list; |
45 | QMultiLineEdit *m_preview; | 44 | QMultiLineEdit *m_preview; |
46 | 45 | ||
47 | bool m_pointbug : 1; | 46 | bool m_pointbug : 1; |
48 | 47 | ||
49 | FontDatabase m_fdb; | 48 | FontDatabase m_fdb; |
50 | }; | 49 | }; |
51 | 50 | ||
52 | namespace { | 51 | namespace { |
53 | 52 | ||
54 | class FontListItem : public QListBoxText { | 53 | class FontListItem : public QListBoxText { |
55 | public: | 54 | public: |
56 | FontListItem ( const QString &t, const QStringList &styles, const QValueList<int> &sizes ) : QListBoxText ( ) | 55 | FontListItem ( const QString &t, const QStringList &styles, const QValueList<int> &sizes ) : QListBoxText ( ) |
57 | { | 56 | { |
58 | m_name = t; | 57 | m_name = t; |
59 | m_styles = styles; | 58 | m_styles = styles; |
60 | m_sizes = sizes; | 59 | m_sizes = sizes; |
61 | 60 | ||
62 | QString str = t; | 61 | QString str = t; |
63 | str [0] = str [0]. upper ( ); | 62 | str [0] = str [0]. upper ( ); |
64 | setText ( str ); | 63 | setText ( str ); |
65 | } | 64 | } |
66 | 65 | ||
67 | QString family ( ) const | 66 | QString family ( ) const |
68 | { | 67 | { |
69 | return m_name; | 68 | return m_name; |
70 | } | 69 | } |
71 | 70 | ||
72 | const QStringList &styles ( ) const | 71 | const QStringList &styles ( ) const |
73 | { | 72 | { |
74 | return m_styles; | 73 | return m_styles; |
75 | } | 74 | } |
76 | 75 | ||
77 | const QValueList<int> &sizes ( ) const | 76 | const QValueList<int> &sizes ( ) const |
78 | { | 77 | { |
79 | return m_sizes; | 78 | return m_sizes; |
80 | } | 79 | } |
81 | 80 | ||
82 | private: | 81 | private: |
83 | QStringList m_styles; | 82 | QStringList m_styles; |
84 | QValueList<int> m_sizes; | 83 | QValueList<int> m_sizes; |
85 | QString m_name; | 84 | QString m_name; |
86 | }; | 85 | }; |
87 | 86 | ||
88 | 87 | ||
89 | static int findItemCB ( QComboBox *box, const QString &str ) | 88 | static int findItemCB ( QComboBox *box, const QString &str ) |
90 | { | 89 | { |
91 | for ( int i = 0; i < box-> count ( ); i++ ) { | 90 | for ( int i = 0; i < box-> count ( ); i++ ) { |
92 | if ( box-> text ( i ) == str ) | 91 | if ( box-> text ( i ) == str ) |
93 | return i; | 92 | return i; |
94 | } | 93 | } |
95 | return -1; | 94 | return -1; |
96 | } | 95 | } |
97 | 96 | ||
98 | } | 97 | } |
99 | /* static same as anon. namespace */ | 98 | /* static same as anon. namespace */ |
100 | static int qt_version ( ) | 99 | static int qt_version ( ) |
101 | { | 100 | { |
102 | const char *qver = qVersion ( ); | 101 | const char *qver = qVersion ( ); |
103 | 102 | ||
104 | return ( qver [0] - '0' ) * 100 + ( qver [2] - '0' ) * 10 + ( qver [4] - '0' ); | 103 | return ( qver [0] - '0' ) * 100 + ( qver [2] - '0' ) * 10 + ( qver [4] - '0' ); |
105 | } | 104 | } |
106 | 105 | ||
107 | /** | 106 | /** |
108 | * Constructs the Selector object | 107 | * Constructs the Selector object |
109 | * @param withpreview If a font preview should be given | 108 | * @param withpreview If a font preview should be given |
110 | * @param parent The parent of the Font Selector | 109 | * @param parent The parent of the Font Selector |
111 | * @param name The name of the object | 110 | * @param name The name of the object |
112 | * @param fl WidgetFlags | 111 | * @param fl WidgetFlags |
113 | */ | 112 | */ |
114 | OFontSelector::OFontSelector ( bool withpreview, QWidget *parent, const char *name, WFlags fl ) : QWidget ( parent, name, fl ) | 113 | OFontSelector::OFontSelector ( bool withpreview, QWidget *parent, const char *name, WFlags fl ) : QWidget ( parent, name, fl ) |
115 | { | 114 | { |
116 | d = new OFontSelectorPrivate ( ); | 115 | d = new OFontSelectorPrivate ( ); |
117 | 116 | ||
118 | QGridLayout *gridLayout = new QGridLayout ( this, 0, 0, 4, 4 ); | 117 | QGridLayout *gridLayout = new QGridLayout ( this, 0, 0, 4, 4 ); |
119 | gridLayout->setRowStretch ( 4, 10 ); | 118 | gridLayout->setRowStretch ( 4, 10 ); |
120 | 119 | ||
121 | d-> m_font_family_list = new QListBox( this, "FontListBox" ); | 120 | d-> m_font_family_list = new QListBox( this, "FontListBox" ); |
122 | gridLayout->addMultiCellWidget( d-> m_font_family_list, 0, 4, 0, 0 ); | 121 | gridLayout->addMultiCellWidget( d-> m_font_family_list, 0, 4, 0, 0 ); |
123 | connect( d-> m_font_family_list, SIGNAL( highlighted( int ) ), this, SLOT( fontFamilyClicked( int ) ) ); | 122 | connect( d-> m_font_family_list, SIGNAL( highlighted( int ) ), this, SLOT( fontFamilyClicked( int ) ) ); |
124 | 123 | ||
125 | QLabel *label = new QLabel( tr( "Style" ), this ); | 124 | QLabel *label = new QLabel( tr( "Style" ), this ); |
126 | gridLayout->addWidget( label, 0, 1 ); | 125 | gridLayout->addWidget( label, 0, 1 ); |
127 | 126 | ||
128 | d-> m_font_style_list = new QComboBox( this, "StyleListBox" ); | 127 | d-> m_font_style_list = new QComboBox( this, "StyleListBox" ); |
129 | connect( d-> m_font_style_list, SIGNAL( activated( int ) ), this, SLOT( fontStyleClicked( int ) ) ); | 128 | connect( d-> m_font_style_list, SIGNAL( activated( int ) ), this, SLOT( fontStyleClicked( int ) ) ); |
130 | gridLayout->addWidget( d-> m_font_style_list, 1, 1 ); | 129 | gridLayout->addWidget( d-> m_font_style_list, 1, 1 ); |
131 | 130 | ||
132 | label = new QLabel( tr( "Size" ), this ); | 131 | label = new QLabel( tr( "Size" ), this ); |
133 | gridLayout->addWidget( label, 2, 1 ); | 132 | gridLayout->addWidget( label, 2, 1 ); |
134 | 133 | ||
135 | d-> m_font_size_list = new QComboBox( this, "SizeListBox" ); | 134 | d-> m_font_size_list = new QComboBox( this, "SizeListBox" ); |
136 | connect( d-> m_font_size_list, SIGNAL( activated( int ) ), | 135 | connect( d-> m_font_size_list, SIGNAL( activated( int ) ), |
137 | this, SLOT( fontSizeClicked( int ) ) ); | 136 | this, SLOT( fontSizeClicked( int ) ) ); |
138 | gridLayout->addWidget( d-> m_font_size_list, 3, 1 ); | 137 | gridLayout->addWidget( d-> m_font_size_list, 3, 1 ); |
139 | 138 | ||
140 | d-> m_pointbug = ( qt_version ( ) <= 233 ); | 139 | d-> m_pointbug = ( qt_version ( ) <= 233 ); |
141 | 140 | ||
142 | if ( withpreview ) { | 141 | if ( withpreview ) { |
143 | d-> m_preview = new QMultiLineEdit ( this, "Preview" ); | 142 | d-> m_preview = new QMultiLineEdit ( this, "Preview" ); |
144 | d-> m_preview-> setAlignment ( AlignCenter ); | 143 | d-> m_preview-> setAlignment ( AlignCenter ); |
145 | d-> m_preview-> setWordWrap ( QMultiLineEdit::WidgetWidth ); | 144 | d-> m_preview-> setWordWrap ( QMultiLineEdit::WidgetWidth ); |
146 | d-> m_preview-> setMargin ( 3 ); | 145 | d-> m_preview-> setMargin ( 3 ); |
147 | d-> m_preview-> setText ( tr( "The Quick Brown Fox Jumps Over The Lazy Dog" )); | 146 | d-> m_preview-> setText ( tr( "The Quick Brown Fox Jumps Over The Lazy Dog" )); |
148 | gridLayout-> addRowSpacing ( 5, 4 ); | 147 | gridLayout-> addRowSpacing ( 5, 4 ); |
149 | gridLayout-> addMultiCellWidget ( d-> m_preview, 6, 6, 0, 1 ); | 148 | gridLayout-> addMultiCellWidget ( d-> m_preview, 6, 6, 0, 1 ); |
150 | gridLayout-> setRowStretch ( 6, 5 ); | 149 | gridLayout-> setRowStretch ( 6, 5 ); |
151 | } | 150 | } |
152 | else | 151 | else |
153 | d-> m_preview = 0; | 152 | d-> m_preview = 0; |
154 | 153 | ||
155 | loadFonts ( d-> m_font_family_list ); | 154 | loadFonts ( d-> m_font_family_list ); |
156 | } | 155 | } |
157 | 156 | ||
158 | OFontSelector::~OFontSelector ( ) | 157 | OFontSelector::~OFontSelector ( ) |
159 | { | 158 | { |
160 | delete d; | 159 | delete d; |
161 | } | 160 | } |
diff --git a/libopie/oprocctrl.cpp b/libopie/oprocctrl.cpp index e7db622..df8da1e 100644 --- a/libopie/oprocctrl.cpp +++ b/libopie/oprocctrl.cpp | |||
@@ -1,170 +1,169 @@ | |||
1 | /* This file is part of the KDE libraries | 1 | /* This file is part of the KDE libraries |
2 | Copyright (C) 1997 Christian Czezakte (e9025461@student.tuwien.ac.at) | 2 | Copyright (C) 1997 Christian Czezakte (e9025461@student.tuwien.ac.at) |
3 | 3 | ||
4 | This library is free software; you can redistribute it and/or | 4 | This library is free software; you can redistribute it and/or |
5 | modify it under the terms of the GNU Library General Public | 5 | modify it under the terms of the GNU Library General Public |
6 | License as published by the Free Software Foundation; either | 6 | License as published by the Free Software Foundation; either |
7 | version 2 of the License, or (at your option) any later version. | 7 | version 2 of the License, or (at your option) any later version. |
8 | 8 | ||
9 | This library is distributed in the hope that it will be useful, | 9 | This library is distributed in the hope that it will be useful, |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | Library General Public License for more details. | 12 | Library General Public License for more details. |
13 | 13 | ||
14 | You should have received a copy of the GNU Library General Public License | 14 | You should have received a copy of the GNU Library General Public License |
15 | along with this library; see the file COPYING.LIB. If not, write to | 15 | along with this library; see the file COPYING.LIB. If not, write to |
16 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 16 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
17 | Boston, MA 02111-1307, USA. | 17 | Boston, MA 02111-1307, USA. |
18 | */ | 18 | */ |
19 | // | 19 | // |
20 | // KPROCESSCONTROLLER -- A helper class for KProcess | 20 | // KPROCESSCONTROLLER -- A helper class for KProcess |
21 | // | 21 | // |
22 | // version 0.3.1, Jan, 8th 1997 | 22 | // version 0.3.1, Jan, 8th 1997 |
23 | // | 23 | // |
24 | // (C) Christian Czezatke | 24 | // (C) Christian Czezatke |
25 | // e9025461@student.tuwien.ac.at | 25 | // e9025461@student.tuwien.ac.at |
26 | // Ported by Holger Freyther | 26 | // Ported by Holger Freyther |
27 | // | 27 | // |
28 | 28 | ||
29 | //#include <config.h> | 29 | //#include <config.h> |
30 | 30 | ||
31 | #include <sys/types.h> | 31 | #include <sys/types.h> |
32 | #include <sys/socket.h> | 32 | #include <sys/socket.h> |
33 | 33 | ||
34 | #include <errno.h> | 34 | #include <errno.h> |
35 | #include <fcntl.h> | 35 | #include <fcntl.h> |
36 | #include <stdio.h> | 36 | #include <stdio.h> |
37 | #include <string.h> | 37 | #include <string.h> |
38 | #include <unistd.h> | 38 | #include <unistd.h> |
39 | #include <assert.h> | 39 | #include <assert.h> |
40 | 40 | ||
41 | #include <qsocketnotifier.h> | 41 | #include <qsocketnotifier.h> |
42 | #include "oprocess.h" | ||
43 | #include "oprocctrl.h" | 42 | #include "oprocctrl.h" |
44 | 43 | ||
45 | OProcessController *OProcessController::theOProcessController = 0; | 44 | OProcessController *OProcessController::theOProcessController = 0; |
46 | 45 | ||
47 | struct sigaction OProcessController::oldChildHandlerData; | 46 | struct sigaction OProcessController::oldChildHandlerData; |
48 | bool OProcessController::handlerSet = false; | 47 | bool OProcessController::handlerSet = false; |
49 | 48 | ||
50 | OProcessController::OProcessController() | 49 | OProcessController::OProcessController() |
51 | { | 50 | { |
52 | assert( theOProcessController == 0 ); | 51 | assert( theOProcessController == 0 ); |
53 | 52 | ||
54 | if (0 > pipe(fd)) | 53 | if (0 > pipe(fd)) |
55 | printf(strerror(errno)); | 54 | printf(strerror(errno)); |
56 | 55 | ||
57 | notifier = new QSocketNotifier(fd[0], QSocketNotifier::Read); | 56 | notifier = new QSocketNotifier(fd[0], QSocketNotifier::Read); |
58 | notifier->setEnabled(true); | 57 | notifier->setEnabled(true); |
59 | QObject::connect(notifier, SIGNAL(activated(int)), | 58 | QObject::connect(notifier, SIGNAL(activated(int)), |
60 | this, SLOT(slotDoHousekeeping(int))); | 59 | this, SLOT(slotDoHousekeeping(int))); |
61 | connect( &delayedChildrenCleanupTimer, SIGNAL( timeout()), | 60 | connect( &delayedChildrenCleanupTimer, SIGNAL( timeout()), |
62 | SLOT( delayedChildrenCleanup())); | 61 | SLOT( delayedChildrenCleanup())); |
63 | 62 | ||
64 | theOProcessController = this; | 63 | theOProcessController = this; |
65 | 64 | ||
66 | setupHandlers(); | 65 | setupHandlers(); |
67 | } | 66 | } |
68 | 67 | ||
69 | 68 | ||
70 | void OProcessController::setupHandlers() | 69 | void OProcessController::setupHandlers() |
71 | { | 70 | { |
72 | if( handlerSet ) | 71 | if( handlerSet ) |
73 | return; | 72 | return; |
74 | struct sigaction act; | 73 | struct sigaction act; |
75 | act.sa_handler=theSigCHLDHandler; | 74 | act.sa_handler=theSigCHLDHandler; |
76 | sigemptyset(&(act.sa_mask)); | 75 | sigemptyset(&(act.sa_mask)); |
77 | sigaddset(&(act.sa_mask), SIGCHLD); | 76 | sigaddset(&(act.sa_mask), SIGCHLD); |
78 | // Make sure we don't block this signal. gdb tends to do that :-( | 77 | // Make sure we don't block this signal. gdb tends to do that :-( |
79 | sigprocmask(SIG_UNBLOCK, &(act.sa_mask), 0); | 78 | sigprocmask(SIG_UNBLOCK, &(act.sa_mask), 0); |
80 | 79 | ||
81 | act.sa_flags = SA_NOCLDSTOP; | 80 | act.sa_flags = SA_NOCLDSTOP; |
82 | 81 | ||
83 | // CC: take care of SunOS which automatically restarts interrupted system | 82 | // CC: take care of SunOS which automatically restarts interrupted system |
84 | // calls (and thus does not have SA_RESTART) | 83 | // calls (and thus does not have SA_RESTART) |
85 | 84 | ||
86 | #ifdef SA_RESTART | 85 | #ifdef SA_RESTART |
87 | act.sa_flags |= SA_RESTART; | 86 | act.sa_flags |= SA_RESTART; |
88 | #endif | 87 | #endif |
89 | 88 | ||
90 | sigaction( SIGCHLD, &act, &oldChildHandlerData ); | 89 | sigaction( SIGCHLD, &act, &oldChildHandlerData ); |
91 | 90 | ||
92 | act.sa_handler=SIG_IGN; | 91 | act.sa_handler=SIG_IGN; |
93 | sigemptyset(&(act.sa_mask)); | 92 | sigemptyset(&(act.sa_mask)); |
94 | sigaddset(&(act.sa_mask), SIGPIPE); | 93 | sigaddset(&(act.sa_mask), SIGPIPE); |
95 | act.sa_flags = 0; | 94 | act.sa_flags = 0; |
96 | sigaction( SIGPIPE, &act, 0L); | 95 | sigaction( SIGPIPE, &act, 0L); |
97 | handlerSet = true; | 96 | handlerSet = true; |
98 | } | 97 | } |
99 | 98 | ||
100 | void OProcessController::resetHandlers() | 99 | void OProcessController::resetHandlers() |
101 | { | 100 | { |
102 | if( !handlerSet ) | 101 | if( !handlerSet ) |
103 | return; | 102 | return; |
104 | sigaction( SIGCHLD, &oldChildHandlerData, 0 ); | 103 | sigaction( SIGCHLD, &oldChildHandlerData, 0 ); |
105 | // there should be no problem with SIGPIPE staying SIG_IGN | 104 | // there should be no problem with SIGPIPE staying SIG_IGN |
106 | handlerSet = false; | 105 | handlerSet = false; |
107 | } | 106 | } |
108 | 107 | ||
109 | // block SIGCHLD handler, because it accesses processList | 108 | // block SIGCHLD handler, because it accesses processList |
110 | void OProcessController::addOProcess( OProcess* p ) | 109 | void OProcessController::addOProcess( OProcess* p ) |
111 | { | 110 | { |
112 | sigset_t newset, oldset; | 111 | sigset_t newset, oldset; |
113 | sigemptyset( &newset ); | 112 | sigemptyset( &newset ); |
114 | sigaddset( &newset, SIGCHLD ); | 113 | sigaddset( &newset, SIGCHLD ); |
115 | sigprocmask( SIG_BLOCK, &newset, &oldset ); | 114 | sigprocmask( SIG_BLOCK, &newset, &oldset ); |
116 | processList.append( p ); | 115 | processList.append( p ); |
117 | sigprocmask( SIG_SETMASK, &oldset, 0 ); | 116 | sigprocmask( SIG_SETMASK, &oldset, 0 ); |
118 | } | 117 | } |
119 | 118 | ||
120 | void OProcessController::removeOProcess( OProcess* p ) | 119 | void OProcessController::removeOProcess( OProcess* p ) |
121 | { | 120 | { |
122 | sigset_t newset, oldset; | 121 | sigset_t newset, oldset; |
123 | sigemptyset( &newset ); | 122 | sigemptyset( &newset ); |
124 | sigaddset( &newset, SIGCHLD ); | 123 | sigaddset( &newset, SIGCHLD ); |
125 | sigprocmask( SIG_BLOCK, &newset, &oldset ); | 124 | sigprocmask( SIG_BLOCK, &newset, &oldset ); |
126 | processList.remove( p ); | 125 | processList.remove( p ); |
127 | sigprocmask( SIG_SETMASK, &oldset, 0 ); | 126 | sigprocmask( SIG_SETMASK, &oldset, 0 ); |
128 | } | 127 | } |
129 | 128 | ||
130 | //using a struct which contains both the pid and the status makes it easier to write | 129 | //using a struct which contains both the pid and the status makes it easier to write |
131 | //and read the data into the pipe | 130 | //and read the data into the pipe |
132 | //especially this solves a problem which appeared on my box where slotDoHouseKeeping() received | 131 | //especially this solves a problem which appeared on my box where slotDoHouseKeeping() received |
133 | //only 4 bytes (with some debug output around the write()'s it received all 8 bytes) | 132 | //only 4 bytes (with some debug output around the write()'s it received all 8 bytes) |
134 | //don't know why this happened, but when writing all 8 bytes at once it works here, aleXXX | 133 | //don't know why this happened, but when writing all 8 bytes at once it works here, aleXXX |
135 | struct waitdata | 134 | struct waitdata |
136 | { | 135 | { |
137 | pid_t pid; | 136 | pid_t pid; |
138 | int status; | 137 | int status; |
139 | }; | 138 | }; |
140 | 139 | ||
141 | void OProcessController::theSigCHLDHandler(int arg) | 140 | void OProcessController::theSigCHLDHandler(int arg) |
142 | { | 141 | { |
143 | struct waitdata wd; | 142 | struct waitdata wd; |
144 | // int status; | 143 | // int status; |
145 | // pid_t this_pid; | 144 | // pid_t this_pid; |
146 | int saved_errno; | 145 | int saved_errno; |
147 | 146 | ||
148 | saved_errno = errno; | 147 | saved_errno = errno; |
149 | // since waitpid and write change errno, we have to save it and restore it | 148 | // since waitpid and write change errno, we have to save it and restore it |
150 | // (Richard Stevens, Advanced programming in the Unix Environment) | 149 | // (Richard Stevens, Advanced programming in the Unix Environment) |
151 | 150 | ||
152 | bool found = false; | 151 | bool found = false; |
153 | if( theOProcessController != 0 ) { | 152 | if( theOProcessController != 0 ) { |
154 | // iterating the list doesn't perform any system call | 153 | // iterating the list doesn't perform any system call |
155 | for( QValueList<OProcess*>::ConstIterator it = theOProcessController->processList.begin(); | 154 | for( QValueList<OProcess*>::ConstIterator it = theOProcessController->processList.begin(); |
156 | it != theOProcessController->processList.end(); | 155 | it != theOProcessController->processList.end(); |
157 | ++it ) | 156 | ++it ) |
158 | { | 157 | { |
159 | if( !(*it)->isRunning()) | 158 | if( !(*it)->isRunning()) |
160 | continue; | 159 | continue; |
161 | wd.pid = waitpid( (*it)->pid(), &wd.status, WNOHANG ); | 160 | wd.pid = waitpid( (*it)->pid(), &wd.status, WNOHANG ); |
162 | if ( wd.pid > 0 ) { | 161 | if ( wd.pid > 0 ) { |
163 | ::write(theOProcessController->fd[1], &wd, sizeof(wd)); | 162 | ::write(theOProcessController->fd[1], &wd, sizeof(wd)); |
164 | found = true; | 163 | found = true; |
165 | } | 164 | } |
166 | } | 165 | } |
167 | } | 166 | } |
168 | if( !found && oldChildHandlerData.sa_handler != SIG_IGN | 167 | if( !found && oldChildHandlerData.sa_handler != SIG_IGN |
169 | && oldChildHandlerData.sa_handler != SIG_DFL ) | 168 | && oldChildHandlerData.sa_handler != SIG_DFL ) |
170 | oldChildHandlerData.sa_handler( arg ); // call the old handler | 169 | oldChildHandlerData.sa_handler( arg ); // call the old handler |
diff --git a/libopie/oprocess.cpp b/libopie/oprocess.cpp index 5db2b6c..c19881a 100644 --- a/libopie/oprocess.cpp +++ b/libopie/oprocess.cpp | |||
@@ -1,184 +1,183 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | $Id$ | 3 | $Id$ |
4 | 4 | ||
5 | This file is part of the KDE libraries | 5 | This file is part of the KDE libraries |
6 | Copyright (C) 1997 Christian Czezatke (e9025461@student.tuwien.ac.at) | 6 | Copyright (C) 1997 Christian Czezatke (e9025461@student.tuwien.ac.at) |
7 | 7 | ||
8 | This library is free software; you can redistribute it and/or | 8 | This library is free software; you can redistribute it and/or |
9 | modify it under the terms of the GNU Library General Public | 9 | modify it under the terms of the GNU Library General Public |
10 | License as published by the Free Software Foundation; either | 10 | License as published by the Free Software Foundation; either |
11 | version 2 of the License, or (at your option) any later version. | 11 | version 2 of the License, or (at your option) any later version. |
12 | 12 | ||
13 | This library is distributed in the hope that it will be useful, | 13 | This library is distributed in the hope that it will be useful, |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
16 | Library General Public License for more details. | 16 | Library General Public License for more details. |
17 | 17 | ||
18 | You should have received a copy of the GNU Library General Public License | 18 | You should have received a copy of the GNU Library General Public License |
19 | along with this library; see the file COPYING.LIB. If not, write to | 19 | along with this library; see the file COPYING.LIB. If not, write to |
20 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 20 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
21 | Boston, MA 02111-1307, USA. | 21 | Boston, MA 02111-1307, USA. |
22 | 22 | ||
23 | */ | 23 | */ |
24 | 24 | ||
25 | 25 | ||
26 | // | 26 | // |
27 | // KPROCESS -- A class for handling child processes in KDE without | 27 | // KPROCESS -- A class for handling child processes in KDE without |
28 | // having to take care of Un*x specific implementation details | 28 | // having to take care of Un*x specific implementation details |
29 | // | 29 | // |
30 | // version 0.3.1, Jan 8th 1998 | 30 | // version 0.3.1, Jan 8th 1998 |
31 | // | 31 | // |
32 | // (C) Christian Czezatke | 32 | // (C) Christian Czezatke |
33 | // e9025461@student.tuwien.ac.at | 33 | // e9025461@student.tuwien.ac.at |
34 | // | 34 | // |
35 | // Changes: | 35 | // Changes: |
36 | // | 36 | // |
37 | // March 2nd, 1998: Changed parameter list for KShellProcess: | 37 | // March 2nd, 1998: Changed parameter list for KShellProcess: |
38 | // Arguments are now placed in a single string so that | 38 | // Arguments are now placed in a single string so that |
39 | // <shell> -c <commandstring> is passed to the shell | 39 | // <shell> -c <commandstring> is passed to the shell |
40 | // to make the use of "operator<<" consistent with KProcess | 40 | // to make the use of "operator<<" consistent with KProcess |
41 | // | 41 | // |
42 | // | 42 | // |
43 | // Ported by Holger Freyther | 43 | // Ported by Holger Freyther |
44 | // <zekce> Harlekin: oprocess and say it was ported to Qt by the Opie developers an Qt 2 | 44 | // <zekce> Harlekin: oprocess and say it was ported to Qt by the Opie developers an Qt 2 |
45 | 45 | ||
46 | 46 | ||
47 | 47 | ||
48 | #include "oprocess.h" | 48 | #include "oprocess.h" |
49 | #define _MAY_INCLUDE_KPROCESSCONTROLLER_ | 49 | #define _MAY_INCLUDE_KPROCESSCONTROLLER_ |
50 | #include "oprocctrl.h" | 50 | #include "oprocctrl.h" |
51 | 51 | ||
52 | //#include <config.h> | 52 | //#include <config.h> |
53 | 53 | ||
54 | #include <qfile.h> | 54 | #include <qfile.h> |
55 | #include <qsocketnotifier.h> | 55 | #include <qsocketnotifier.h> |
56 | #include <qregexp.h> | ||
57 | 56 | ||
58 | #include <sys/time.h> | 57 | #include <sys/time.h> |
59 | #include <sys/types.h> | 58 | #include <sys/types.h> |
60 | #include <sys/stat.h> | 59 | #include <sys/stat.h> |
61 | #include <sys/socket.h> | 60 | #include <sys/socket.h> |
62 | 61 | ||
63 | #include <errno.h> | 62 | #include <errno.h> |
64 | #include <fcntl.h> | 63 | #include <fcntl.h> |
65 | #include <stdlib.h> | 64 | #include <stdlib.h> |
66 | #include <signal.h> | 65 | #include <signal.h> |
67 | #include <stdio.h> | 66 | #include <stdio.h> |
68 | #include <string.h> | 67 | #include <string.h> |
69 | #include <unistd.h> | 68 | #include <unistd.h> |
70 | #ifdef HAVE_SYS_SELECT_H | 69 | #ifdef HAVE_SYS_SELECT_H |
71 | #include <sys/select.h> | 70 | #include <sys/select.h> |
72 | #endif | 71 | #endif |
73 | #ifdef HAVE_INITGROUPS | 72 | #ifdef HAVE_INITGROUPS |
74 | #include <grp.h> | 73 | #include <grp.h> |
75 | #endif | 74 | #endif |
76 | #include <pwd.h> | 75 | #include <pwd.h> |
77 | 76 | ||
78 | #include <qapplication.h> | 77 | #include <qapplication.h> |
79 | #include <qmap.h> | 78 | #include <qmap.h> |
80 | //#include <kdebug.h> | 79 | //#include <kdebug.h> |
81 | 80 | ||
82 | ///////////////////////////// | 81 | ///////////////////////////// |
83 | // public member functions // | 82 | // public member functions // |
84 | ///////////////////////////// | 83 | ///////////////////////////// |
85 | 84 | ||
86 | class OProcessPrivate { | 85 | class OProcessPrivate { |
87 | public: | 86 | public: |
88 | OProcessPrivate() : useShell(false) { } | 87 | OProcessPrivate() : useShell(false) { } |
89 | 88 | ||
90 | bool useShell; | 89 | bool useShell; |
91 | QMap<QString,QString> env; | 90 | QMap<QString,QString> env; |
92 | QString wd; | 91 | QString wd; |
93 | QCString shell; | 92 | QCString shell; |
94 | }; | 93 | }; |
95 | 94 | ||
96 | 95 | ||
97 | OProcess::OProcess(QObject *parent, const char *name) | 96 | OProcess::OProcess(QObject *parent, const char *name) |
98 | : QObject(parent, name) | 97 | : QObject(parent, name) |
99 | { | 98 | { |
100 | init ( ); | 99 | init ( ); |
101 | } | 100 | } |
102 | 101 | ||
103 | OProcess::OProcess(const QString &arg0, QObject *parent, const char *name) | 102 | OProcess::OProcess(const QString &arg0, QObject *parent, const char *name) |
104 | : QObject(parent, name) | 103 | : QObject(parent, name) |
105 | { | 104 | { |
106 | init ( ); | 105 | init ( ); |
107 | *this << arg0; | 106 | *this << arg0; |
108 | } | 107 | } |
109 | 108 | ||
110 | OProcess::OProcess(const QStringList &args, QObject *parent, const char *name) | 109 | OProcess::OProcess(const QStringList &args, QObject *parent, const char *name) |
111 | : QObject(parent, name) | 110 | : QObject(parent, name) |
112 | { | 111 | { |
113 | init ( ); | 112 | init ( ); |
114 | *this << args; | 113 | *this << args; |
115 | } | 114 | } |
116 | 115 | ||
117 | void OProcess::init ( ) | 116 | void OProcess::init ( ) |
118 | { | 117 | { |
119 | run_mode = NotifyOnExit; | 118 | run_mode = NotifyOnExit; |
120 | runs = false; | 119 | runs = false; |
121 | pid_ = 0; | 120 | pid_ = 0; |
122 | status = 0; | 121 | status = 0; |
123 | keepPrivs = false; | 122 | keepPrivs = false; |
124 | innot = 0; | 123 | innot = 0; |
125 | outnot = 0; | 124 | outnot = 0; |
126 | errnot = 0; | 125 | errnot = 0; |
127 | communication = NoCommunication; | 126 | communication = NoCommunication; |
128 | input_data = 0; | 127 | input_data = 0; |
129 | input_sent = 0; | 128 | input_sent = 0; |
130 | input_total = 0; | 129 | input_total = 0; |
131 | d = 0; | 130 | d = 0; |
132 | 131 | ||
133 | if (0 == OProcessController::theOProcessController) { | 132 | if (0 == OProcessController::theOProcessController) { |
134 | (void) new OProcessController(); | 133 | (void) new OProcessController(); |
135 | CHECK_PTR(OProcessController::theOProcessController); | 134 | CHECK_PTR(OProcessController::theOProcessController); |
136 | } | 135 | } |
137 | 136 | ||
138 | OProcessController::theOProcessController->addOProcess(this); | 137 | OProcessController::theOProcessController->addOProcess(this); |
139 | out[0] = out[1] = -1; | 138 | out[0] = out[1] = -1; |
140 | in[0] = in[1] = -1; | 139 | in[0] = in[1] = -1; |
141 | err[0] = err[1] = -1; | 140 | err[0] = err[1] = -1; |
142 | } | 141 | } |
143 | 142 | ||
144 | void | 143 | void |
145 | OProcess::setEnvironment(const QString &name, const QString &value) | 144 | OProcess::setEnvironment(const QString &name, const QString &value) |
146 | { | 145 | { |
147 | if (!d) | 146 | if (!d) |
148 | d = new OProcessPrivate; | 147 | d = new OProcessPrivate; |
149 | d->env.insert(name, value); | 148 | d->env.insert(name, value); |
150 | } | 149 | } |
151 | 150 | ||
152 | void | 151 | void |
153 | OProcess::setWorkingDirectory(const QString &dir) | 152 | OProcess::setWorkingDirectory(const QString &dir) |
154 | { | 153 | { |
155 | if (!d) | 154 | if (!d) |
156 | d = new OProcessPrivate; | 155 | d = new OProcessPrivate; |
157 | d->wd = dir; | 156 | d->wd = dir; |
158 | } | 157 | } |
159 | 158 | ||
160 | void | 159 | void |
161 | OProcess::setupEnvironment() | 160 | OProcess::setupEnvironment() |
162 | { | 161 | { |
163 | if (d) | 162 | if (d) |
164 | { | 163 | { |
165 | QMap<QString,QString>::Iterator it; | 164 | QMap<QString,QString>::Iterator it; |
166 | for(it = d->env.begin(); it != d->env.end(); ++it) | 165 | for(it = d->env.begin(); it != d->env.end(); ++it) |
167 | setenv(QFile::encodeName(it.key()).data(), | 166 | setenv(QFile::encodeName(it.key()).data(), |
168 | QFile::encodeName(it.data()).data(), 1); | 167 | QFile::encodeName(it.data()).data(), 1); |
169 | if (!d->wd.isEmpty()) | 168 | if (!d->wd.isEmpty()) |
170 | chdir(QFile::encodeName(d->wd).data()); | 169 | chdir(QFile::encodeName(d->wd).data()); |
171 | } | 170 | } |
172 | } | 171 | } |
173 | 172 | ||
174 | void | 173 | void |
175 | OProcess::setRunPrivileged(bool keepPrivileges) | 174 | OProcess::setRunPrivileged(bool keepPrivileges) |
176 | { | 175 | { |
177 | keepPrivs = keepPrivileges; | 176 | keepPrivs = keepPrivileges; |
178 | } | 177 | } |
179 | 178 | ||
180 | bool | 179 | bool |
181 | OProcess::runPrivileged() const | 180 | OProcess::runPrivileged() const |
182 | { | 181 | { |
183 | return keepPrivs; | 182 | return keepPrivs; |
184 | } | 183 | } |
diff --git a/libopie/orecurrancewidget.cpp b/libopie/orecurrancewidget.cpp index be8ec30..d81851e 100644 --- a/libopie/orecurrancewidget.cpp +++ b/libopie/orecurrancewidget.cpp | |||
@@ -1,134 +1,132 @@ | |||
1 | #include <qapplication.h> | 1 | #include <qapplication.h> |
2 | #include <qlabel.h> | 2 | #include <qlabel.h> |
3 | #include <qpopupmenu.h> | ||
4 | #include <qspinbox.h> | 3 | #include <qspinbox.h> |
5 | 4 | ||
6 | #include <qpe/timestring.h> | ||
7 | 5 | ||
8 | #include "orecurrancewidget.h" | 6 | #include "orecurrancewidget.h" |
9 | 7 | ||
10 | // Global Templates for use in setting up the repeat label... | 8 | // Global Templates for use in setting up the repeat label... |
11 | // the problem is these strings get initialized before QPEApplication can install the translator -zecke | 9 | // the problem is these strings get initialized before QPEApplication can install the translator -zecke |
12 | namespace { | 10 | namespace { |
13 | QString strDayTemplate; | 11 | QString strDayTemplate; |
14 | QString strYearTemplate; | 12 | QString strYearTemplate; |
15 | QString strMonthDateTemplate; | 13 | QString strMonthDateTemplate; |
16 | QString strMonthDayTemplate; | 14 | QString strMonthDayTemplate; |
17 | QString strWeekTemplate; | 15 | QString strWeekTemplate; |
18 | QString dayLabel[7]; | 16 | QString dayLabel[7]; |
19 | } | 17 | } |
20 | 18 | ||
21 | /* | 19 | /* |
22 | * static linkage to not polute the symbol table... | 20 | * static linkage to not polute the symbol table... |
23 | * The problem is that const and static linkage are resolved prior to installing a translator | 21 | * The problem is that const and static linkage are resolved prior to installing a translator |
24 | * leading to that the above strings are translted but to the original we delay the init of these strings... | 22 | * leading to that the above strings are translted but to the original we delay the init of these strings... |
25 | * -zecke | 23 | * -zecke |
26 | */ | 24 | */ |
27 | static void fillStrings() { | 25 | static void fillStrings() { |
28 | strDayTemplate = QObject::tr("Every"); | 26 | strDayTemplate = QObject::tr("Every"); |
29 | strYearTemplate = QObject::tr("%1 %2 every "); | 27 | strYearTemplate = QObject::tr("%1 %2 every "); |
30 | strMonthDateTemplate = QObject::tr("The %1 every "); | 28 | strMonthDateTemplate = QObject::tr("The %1 every "); |
31 | strMonthDayTemplate = QObject::tr("The %1 %2 of every"); | 29 | strMonthDayTemplate = QObject::tr("The %1 %2 of every"); |
32 | strWeekTemplate = QObject::tr("Every "); | 30 | strWeekTemplate = QObject::tr("Every "); |
33 | dayLabel[0] = QObject::tr("Monday"); | 31 | dayLabel[0] = QObject::tr("Monday"); |
34 | dayLabel[1] = QObject::tr("Tuesday"); | 32 | dayLabel[1] = QObject::tr("Tuesday"); |
35 | dayLabel[2] = QObject::tr("Wednesday"); | 33 | dayLabel[2] = QObject::tr("Wednesday"); |
36 | dayLabel[3] = QObject::tr("Thursday"); | 34 | dayLabel[3] = QObject::tr("Thursday"); |
37 | dayLabel[4] = QObject::tr("Friday"); | 35 | dayLabel[4] = QObject::tr("Friday"); |
38 | dayLabel[5] = QObject::tr("Saturday"); | 36 | dayLabel[5] = QObject::tr("Saturday"); |
39 | dayLabel[6] = QObject::tr("Sunday"); | 37 | dayLabel[6] = QObject::tr("Sunday"); |
40 | } | 38 | } |
41 | 39 | ||
42 | static QString numberPlacing( int x );// return the proper word format for | 40 | static QString numberPlacing( int x );// return the proper word format for |
43 | // x (1st, 2nd, etc) | 41 | // x (1st, 2nd, etc) |
44 | static int week( const QDate &dt ); // what week in the month is dt? | 42 | static int week( const QDate &dt ); // what week in the month is dt? |
45 | 43 | ||
46 | /** | 44 | /** |
47 | * Constructs the Widget | 45 | * Constructs the Widget |
48 | * @param startOnMonday Does the week start on monday | 46 | * @param startOnMonday Does the week start on monday |
49 | * @param newStart The start date of the recurrence | 47 | * @param newStart The start date of the recurrence |
50 | * @param parent The parent widget | 48 | * @param parent The parent widget |
51 | * @param name the name of object | 49 | * @param name the name of object |
52 | * @param modal if the dialog should be modal | 50 | * @param modal if the dialog should be modal |
53 | * @param fl Additional window flags | 51 | * @param fl Additional window flags |
54 | */ | 52 | */ |
55 | ORecurranceWidget::ORecurranceWidget( bool startOnMonday, | 53 | ORecurranceWidget::ORecurranceWidget( bool startOnMonday, |
56 | const QDate& newStart, | 54 | const QDate& newStart, |
57 | QWidget* parent, | 55 | QWidget* parent, |
58 | const char* name, | 56 | const char* name, |
59 | bool modal, | 57 | bool modal, |
60 | WFlags fl ) | 58 | WFlags fl ) |
61 | : ORecurranceBase( parent, name, modal, fl ), | 59 | : ORecurranceBase( parent, name, modal, fl ), |
62 | start( newStart ), | 60 | start( newStart ), |
63 | currInterval( None ), | 61 | currInterval( None ), |
64 | startWeekOnMonday( startOnMonday ) | 62 | startWeekOnMonday( startOnMonday ) |
65 | { | 63 | { |
66 | if (strDayTemplate.isEmpty() ) | 64 | if (strDayTemplate.isEmpty() ) |
67 | fillStrings(); | 65 | fillStrings(); |
68 | 66 | ||
69 | init(); | 67 | init(); |
70 | fraType->setButton( currInterval ); | 68 | fraType->setButton( currInterval ); |
71 | chkNoEnd->setChecked( TRUE ); | 69 | chkNoEnd->setChecked( TRUE ); |
72 | setupNone(); | 70 | setupNone(); |
73 | } | 71 | } |
74 | 72 | ||
75 | /** | 73 | /** |
76 | * Different constructor | 74 | * Different constructor |
77 | * @param startOnMonday Does the week start on monday? | 75 | * @param startOnMonday Does the week start on monday? |
78 | * @param rp Already set ORecur object | 76 | * @param rp Already set ORecur object |
79 | * @param startDate The start date | 77 | * @param startDate The start date |
80 | * @param parent The parent widget | 78 | * @param parent The parent widget |
81 | * @param name The name of the object | 79 | * @param name The name of the object |
82 | * @param modal | 80 | * @param modal |
83 | * @param fl The flags for window | 81 | * @param fl The flags for window |
84 | */ | 82 | */ |
85 | ORecurranceWidget::ORecurranceWidget( bool startOnMonday, | 83 | ORecurranceWidget::ORecurranceWidget( bool startOnMonday, |
86 | const ORecur& rp, const QDate& startDate, | 84 | const ORecur& rp, const QDate& startDate, |
87 | QWidget* parent, const char* name, | 85 | QWidget* parent, const char* name, |
88 | bool modal, WFlags fl) | 86 | bool modal, WFlags fl) |
89 | : ORecurranceBase( parent, name, modal, fl ), | 87 | : ORecurranceBase( parent, name, modal, fl ), |
90 | start( startDate ), | 88 | start( startDate ), |
91 | end( rp.endDate() ), | 89 | end( rp.endDate() ), |
92 | startWeekOnMonday( startOnMonday ) | 90 | startWeekOnMonday( startOnMonday ) |
93 | { | 91 | { |
94 | if (strDayTemplate.isEmpty() ) | 92 | if (strDayTemplate.isEmpty() ) |
95 | fillStrings(); | 93 | fillStrings(); |
96 | // do some stuff with the repeat pattern | 94 | // do some stuff with the repeat pattern |
97 | init(); | 95 | init(); |
98 | setRecurrence( rp ); | 96 | setRecurrence( rp ); |
99 | } | 97 | } |
100 | 98 | ||
101 | ORecurranceWidget::~ORecurranceWidget() { | 99 | ORecurranceWidget::~ORecurranceWidget() { |
102 | } | 100 | } |
103 | 101 | ||
104 | /** | 102 | /** |
105 | * set the start date | 103 | * set the start date |
106 | * @param date the new start date | 104 | * @param date the new start date |
107 | */ | 105 | */ |
108 | void ORecurranceWidget::setStartDate( const QDate& date ) { | 106 | void ORecurranceWidget::setStartDate( const QDate& date ) { |
109 | setRecurrence( recurrence(), date ); | 107 | setRecurrence( recurrence(), date ); |
110 | } | 108 | } |
111 | /** | 109 | /** |
112 | * set the recurrence | 110 | * set the recurrence |
113 | * @param rp The ORecur object with the new recurrence rules | 111 | * @param rp The ORecur object with the new recurrence rules |
114 | */ | 112 | */ |
115 | void ORecurranceWidget::setRecurrence( const ORecur& rp ) { | 113 | void ORecurranceWidget::setRecurrence( const ORecur& rp ) { |
116 | setRecurrence( rp, start ); | 114 | setRecurrence( rp, start ); |
117 | } | 115 | } |
118 | 116 | ||
119 | /** | 117 | /** |
120 | * overloaded method taking ORecur and a new start date | 118 | * overloaded method taking ORecur and a new start date |
121 | * @param rp Recurrence rule | 119 | * @param rp Recurrence rule |
122 | * @param date The new start date | 120 | * @param date The new start date |
123 | */ | 121 | */ |
124 | void ORecurranceWidget::setRecurrence( const ORecur& rp, const QDate& date ) { | 122 | void ORecurranceWidget::setRecurrence( const ORecur& rp, const QDate& date ) { |
125 | start = date; | 123 | start = date; |
126 | end = rp.endDate(); | 124 | end = rp.endDate(); |
127 | switch ( rp.type() ) { | 125 | switch ( rp.type() ) { |
128 | default: | 126 | default: |
129 | case ORecur::NoRepeat: | 127 | case ORecur::NoRepeat: |
130 | currInterval = None; | 128 | currInterval = None; |
131 | setupNone(); | 129 | setupNone(); |
132 | break; | 130 | break; |
133 | case ORecur::Daily: | 131 | case ORecur::Daily: |
134 | currInterval = Day; | 132 | currInterval = Day; |
diff --git a/libopie/oticker.cpp b/libopie/oticker.cpp index 4fb5945..c05c2a8 100644 --- a/libopie/oticker.cpp +++ b/libopie/oticker.cpp | |||
@@ -1,139 +1,130 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> | 3 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> |
4 | =. | 4 | =. |
5 | .=l. | 5 | .=l. |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This program is free software; you can | 7 | _;:, .> :=|. This program is free software; you can |
8 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
10 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
11 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
12 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
13 | .%`+i> _;_. | 13 | .%`+i> _;_. |
14 | .i_,=:_. -<s. This program is distributed in the hope that | 14 | .i_,=:_. -<s. This program is distributed in the hope that |
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
16 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
19 | ..}^=.= = ; Library General Public License for more | 19 | ..}^=.= = ; Library General Public License for more |
20 | ++= -. .` .: details. | 20 | ++= -. .` .: details. |
21 | : = ...= . :.=- | 21 | : = ...= . :.=- |
22 | -. .:....=;==+<; You should have received a copy of the GNU | 22 | -. .:....=;==+<; You should have received a copy of the GNU |
23 | -_. . . )=. = Library General Public License along with | 23 | -_. . . )=. = Library General Public License along with |
24 | -- :-=` this library; see the file COPYING.LIB. | 24 | -- :-=` this library; see the file COPYING.LIB. |
25 | If not, write to the Free Software Foundation, | 25 | If not, write to the Free Software Foundation, |
26 | Inc., 59 Temple Place - Suite 330, | 26 | Inc., 59 Temple Place - Suite 330, |
27 | Boston, MA 02111-1307, USA. | 27 | Boston, MA 02111-1307, USA. |
28 | 28 | ||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <qpe/qpeapplication.h> | ||
32 | #include <qpe/resource.h> | ||
33 | #include <qpe/config.h> | 31 | #include <qpe/config.h> |
34 | 32 | ||
35 | #include <qwidget.h> | ||
36 | #include <qpixmap.h> | ||
37 | #include <qbutton.h> | ||
38 | #include <qpainter.h> | ||
39 | #include <qframe.h> | ||
40 | #include <qlayout.h> | ||
41 | #include <qdir.h> | ||
42 | #include <stdlib.h> | 33 | #include <stdlib.h> |
43 | #include <stdio.h> | 34 | #include <stdio.h> |
44 | 35 | ||
45 | #include "oticker.h" | 36 | #include "oticker.h" |
46 | 37 | ||
47 | OTicker::OTicker( QWidget* parent ) | 38 | OTicker::OTicker( QWidget* parent ) |
48 | : QLabel( parent ) { | 39 | : QLabel( parent ) { |
49 | // : QFrame( parent ) { | 40 | // : QFrame( parent ) { |
50 | setTextFormat(Qt::RichText); | 41 | setTextFormat(Qt::RichText); |
51 | Config cfg("qpe"); | 42 | Config cfg("qpe"); |
52 | cfg.setGroup("Appearance"); | 43 | cfg.setGroup("Appearance"); |
53 | backgroundcolor = QColor( cfg.readEntry( "Background", "#E5E1D5" ) ); | 44 | backgroundcolor = QColor( cfg.readEntry( "Background", "#E5E1D5" ) ); |
54 | foregroundcolor= Qt::black; | 45 | foregroundcolor= Qt::black; |
55 | updateTimerTime = 50; | 46 | updateTimerTime = 50; |
56 | scrollLength = 1; | 47 | scrollLength = 1; |
57 | } | 48 | } |
58 | 49 | ||
59 | OTicker::~OTicker() { | 50 | OTicker::~OTicker() { |
60 | } | 51 | } |
61 | 52 | ||
62 | void OTicker::setBackgroundColor(const QColor& backcolor) { | 53 | void OTicker::setBackgroundColor(const QColor& backcolor) { |
63 | backgroundcolor = backcolor; | 54 | backgroundcolor = backcolor; |
64 | update(); | 55 | update(); |
65 | } | 56 | } |
66 | 57 | ||
67 | void OTicker::setForegroundColor(const QColor& backcolor) { | 58 | void OTicker::setForegroundColor(const QColor& backcolor) { |
68 | foregroundcolor = backcolor; | 59 | foregroundcolor = backcolor; |
69 | update(); | 60 | update(); |
70 | } | 61 | } |
71 | 62 | ||
72 | void OTicker::setFrame(int frameStyle) { | 63 | void OTicker::setFrame(int frameStyle) { |
73 | setFrameStyle( frameStyle/*WinPanel | Sunken */); | 64 | setFrameStyle( frameStyle/*WinPanel | Sunken */); |
74 | update(); | 65 | update(); |
75 | } | 66 | } |
76 | 67 | ||
77 | void OTicker::setText( const QString& text ) { | 68 | void OTicker::setText( const QString& text ) { |
78 | pos = 0; // reset it everytime the text is changed | 69 | pos = 0; // reset it everytime the text is changed |
79 | scrollText = text; | 70 | scrollText = text; |
80 | qDebug(scrollText); | 71 | qDebug(scrollText); |
81 | 72 | ||
82 | int pixelLen = 0; | 73 | int pixelLen = 0; |
83 | bool bigger = false; | 74 | bool bigger = false; |
84 | int contWidth = contentsRect().width(); | 75 | int contWidth = contentsRect().width(); |
85 | int contHeight = contentsRect().height(); | 76 | int contHeight = contentsRect().height(); |
86 | int pixelTextLen = fontMetrics().width( text ); | 77 | int pixelTextLen = fontMetrics().width( text ); |
87 | printf("<<<<<<<height %d, width %d, text width %d %d\n", contHeight, contWidth, pixelTextLen, scrollText.length()); | 78 | printf("<<<<<<<height %d, width %d, text width %d %d\n", contHeight, contWidth, pixelTextLen, scrollText.length()); |
88 | if( pixelTextLen < contWidth) | 79 | if( pixelTextLen < contWidth) |
89 | { | 80 | { |
90 | pixelLen = contWidth; | 81 | pixelLen = contWidth; |
91 | } | 82 | } |
92 | else | 83 | else |
93 | { | 84 | { |
94 | bigger = true; | 85 | bigger = true; |
95 | pixelLen = pixelTextLen; | 86 | pixelLen = pixelTextLen; |
96 | } | 87 | } |
97 | QPixmap pm( pixelLen, contHeight); | 88 | QPixmap pm( pixelLen, contHeight); |
98 | // pm.fill( QColor( 167, 212, 167 )); | 89 | // pm.fill( QColor( 167, 212, 167 )); |
99 | 90 | ||
100 | pm.fill(backgroundcolor); | 91 | pm.fill(backgroundcolor); |
101 | QPainter pmp( &pm ); | 92 | QPainter pmp( &pm ); |
102 | pmp.setPen(foregroundcolor ); | 93 | pmp.setPen(foregroundcolor ); |
103 | pmp.drawText( 0, 0, pixelTextLen, contHeight, AlignVCenter, scrollText ); | 94 | pmp.drawText( 0, 0, pixelTextLen, contHeight, AlignVCenter, scrollText ); |
104 | pmp.end(); | 95 | pmp.end(); |
105 | scrollTextPixmap = pm; | 96 | scrollTextPixmap = pm; |
106 | 97 | ||
107 | killTimers(); | 98 | killTimers(); |
108 | // qDebug("Scrollupdate %d", updateTimerTime); | 99 | // qDebug("Scrollupdate %d", updateTimerTime); |
109 | if ( bigger /*pixelTextLen > contWidth*/ ) | 100 | if ( bigger /*pixelTextLen > contWidth*/ ) |
110 | startTimer( updateTimerTime); | 101 | startTimer( updateTimerTime); |
111 | update(); | 102 | update(); |
112 | } | 103 | } |
113 | 104 | ||
114 | 105 | ||
115 | void OTicker::timerEvent( QTimerEvent * ) { | 106 | void OTicker::timerEvent( QTimerEvent * ) { |
116 | pos = ( pos <= 0 ) ? scrollTextPixmap.width() : pos - scrollLength;//1; | 107 | pos = ( pos <= 0 ) ? scrollTextPixmap.width() : pos - scrollLength;//1; |
117 | repaint( FALSE ); | 108 | repaint( FALSE ); |
118 | } | 109 | } |
119 | 110 | ||
120 | void OTicker::drawContents( QPainter *p ) { | 111 | void OTicker::drawContents( QPainter *p ) { |
121 | int pixelLen = scrollTextPixmap.width(); | 112 | int pixelLen = scrollTextPixmap.width(); |
122 | p->drawPixmap( pos, contentsRect().y(), scrollTextPixmap ); | 113 | p->drawPixmap( pos, contentsRect().y(), scrollTextPixmap ); |
123 | if ( pixelLen > contentsRect().width() ) // Scrolling | 114 | if ( pixelLen > contentsRect().width() ) // Scrolling |
124 | p->drawPixmap( pos - pixelLen, contentsRect().y(), scrollTextPixmap ); | 115 | p->drawPixmap( pos - pixelLen, contentsRect().y(), scrollTextPixmap ); |
125 | } | 116 | } |
126 | 117 | ||
127 | void OTicker::mouseReleaseEvent( QMouseEvent * ) { | 118 | void OTicker::mouseReleaseEvent( QMouseEvent * ) { |
128 | // qDebug("<<<<<<<>>>>>>>>>"); | 119 | // qDebug("<<<<<<<>>>>>>>>>"); |
129 | emit mousePressed(); | 120 | emit mousePressed(); |
130 | } | 121 | } |
131 | 122 | ||
132 | void OTicker::setUpdateTime(int time) { | 123 | void OTicker::setUpdateTime(int time) { |
133 | updateTimerTime=time; | 124 | updateTimerTime=time; |
134 | } | 125 | } |
135 | 126 | ||
136 | void OTicker::setScrollLength(int len) { | 127 | void OTicker::setScrollLength(int len) { |
137 | scrollLength=len; | 128 | scrollLength=len; |
138 | } | 129 | } |
139 | 130 | ||
diff --git a/libopie/otimepicker.cpp b/libopie/otimepicker.cpp index 115d39b..1eca7c5 100644 --- a/libopie/otimepicker.cpp +++ b/libopie/otimepicker.cpp | |||
@@ -1,134 +1,131 @@ | |||
1 | #include "otimepicker.h" | 1 | #include "otimepicker.h" |
2 | 2 | ||
3 | #include <qbuttongroup.h> | ||
4 | #include <qtoolbutton.h> | ||
5 | #include <qlayout.h> | 3 | #include <qlayout.h> |
6 | #include <qstring.h> | ||
7 | #include <stdio.h> | 4 | #include <stdio.h> |
8 | #include <qlineedit.h> | 5 | #include <qlineedit.h> |
9 | 6 | ||
10 | 7 | ||
11 | /** | 8 | /** |
12 | * Constructs the widget | 9 | * Constructs the widget |
13 | * @param parent The parent of the OTimePicker | 10 | * @param parent The parent of the OTimePicker |
14 | * @param name The name of the object | 11 | * @param name The name of the object |
15 | * @param fl Window Flags | 12 | * @param fl Window Flags |
16 | */ | 13 | */ |
17 | OTimePicker::OTimePicker(QWidget* parent, const char* name, | 14 | OTimePicker::OTimePicker(QWidget* parent, const char* name, |
18 | WFlags fl) : | 15 | WFlags fl) : |
19 | QWidget(parent,name,fl) | 16 | QWidget(parent,name,fl) |
20 | { | 17 | { |
21 | 18 | ||
22 | QVBoxLayout *vbox=new QVBoxLayout(this); | 19 | QVBoxLayout *vbox=new QVBoxLayout(this); |
23 | 20 | ||
24 | OClickableLabel *r; | 21 | OClickableLabel *r; |
25 | QString s; | 22 | QString s; |
26 | 23 | ||
27 | // Hour Row | 24 | // Hour Row |
28 | QWidget *row=new QWidget(this); | 25 | QWidget *row=new QWidget(this); |
29 | QHBoxLayout *l=new QHBoxLayout(row); | 26 | QHBoxLayout *l=new QHBoxLayout(row); |
30 | vbox->addWidget(row); | 27 | vbox->addWidget(row); |
31 | 28 | ||
32 | 29 | ||
33 | for (int i=0; i<24; i++) { | 30 | for (int i=0; i<24; i++) { |
34 | r=new OClickableLabel(row); | 31 | r=new OClickableLabel(row); |
35 | hourLst.append(r); | 32 | hourLst.append(r); |
36 | s.sprintf("%.2d",i); | 33 | s.sprintf("%.2d",i); |
37 | r->setText(s); | 34 | r->setText(s); |
38 | r->setToggleButton(true); | 35 | r->setToggleButton(true); |
39 | r->setAlignment(AlignHCenter | AlignVCenter); | 36 | r->setAlignment(AlignHCenter | AlignVCenter); |
40 | l->addWidget(r); | 37 | l->addWidget(r); |
41 | connect(r, SIGNAL(toggled(bool)), | 38 | connect(r, SIGNAL(toggled(bool)), |
42 | this, SLOT(slotHour(bool))); | 39 | this, SLOT(slotHour(bool))); |
43 | 40 | ||
44 | if (i==11) { // Second row | 41 | if (i==11) { // Second row |
45 | row=new QWidget(this); | 42 | row=new QWidget(this); |
46 | l=new QHBoxLayout(row); | 43 | l=new QHBoxLayout(row); |
47 | vbox->addWidget(row); | 44 | vbox->addWidget(row); |
48 | } | 45 | } |
49 | } | 46 | } |
50 | 47 | ||
51 | // Minute Row | 48 | // Minute Row |
52 | row=new QWidget(this); | 49 | row=new QWidget(this); |
53 | l=new QHBoxLayout(row); | 50 | l=new QHBoxLayout(row); |
54 | vbox->addWidget(row); | 51 | vbox->addWidget(row); |
55 | 52 | ||
56 | for (int i=0; i<60; i+=5) { | 53 | for (int i=0; i<60; i+=5) { |
57 | r=new OClickableLabel(row); | 54 | r=new OClickableLabel(row); |
58 | minuteLst.append(r); | 55 | minuteLst.append(r); |
59 | s.sprintf("%.2d",i); | 56 | s.sprintf("%.2d",i); |
60 | r->setText(s); | 57 | r->setText(s); |
61 | r->setToggleButton(true); | 58 | r->setToggleButton(true); |
62 | r->setAlignment(AlignHCenter | AlignVCenter); | 59 | r->setAlignment(AlignHCenter | AlignVCenter); |
63 | l->addWidget(r); | 60 | l->addWidget(r); |
64 | connect(r, SIGNAL(toggled(bool)), | 61 | connect(r, SIGNAL(toggled(bool)), |
65 | this, SLOT(slotMinute(bool))); | 62 | this, SLOT(slotMinute(bool))); |
66 | } | 63 | } |
67 | } | 64 | } |
68 | 65 | ||
69 | /** | 66 | /** |
70 | * This method return the current time | 67 | * This method return the current time |
71 | * @return the time | 68 | * @return the time |
72 | */ | 69 | */ |
73 | QTime OTimePicker::time()const { | 70 | QTime OTimePicker::time()const { |
74 | return tm; | 71 | return tm; |
75 | } | 72 | } |
76 | 73 | ||
77 | void OTimePicker::slotHour(bool b) { | 74 | void OTimePicker::slotHour(bool b) { |
78 | 75 | ||
79 | OClickableLabel *r = (OClickableLabel *) sender(); | 76 | OClickableLabel *r = (OClickableLabel *) sender(); |
80 | 77 | ||
81 | if (b) { | 78 | if (b) { |
82 | QValueListIterator<OClickableLabel *> it; | 79 | QValueListIterator<OClickableLabel *> it; |
83 | for (it=hourLst.begin(); it!=hourLst.end(); it++) { | 80 | for (it=hourLst.begin(); it!=hourLst.end(); it++) { |
84 | if (*it != r) (*it)->setOn(false); | 81 | if (*it != r) (*it)->setOn(false); |
85 | else tm.setHMS((*it)->text().toInt(), tm.minute(), 0); | 82 | else tm.setHMS((*it)->text().toInt(), tm.minute(), 0); |
86 | } | 83 | } |
87 | emit timeChanged(tm); | 84 | emit timeChanged(tm); |
88 | } else { | 85 | } else { |
89 | r->setOn(true); | 86 | r->setOn(true); |
90 | } | 87 | } |
91 | 88 | ||
92 | } | 89 | } |
93 | 90 | ||
94 | void OTimePicker::slotMinute(bool b) { | 91 | void OTimePicker::slotMinute(bool b) { |
95 | 92 | ||
96 | OClickableLabel *r = (OClickableLabel *) sender(); | 93 | OClickableLabel *r = (OClickableLabel *) sender(); |
97 | 94 | ||
98 | if (b) { | 95 | if (b) { |
99 | QValueListIterator<OClickableLabel *> it; | 96 | QValueListIterator<OClickableLabel *> it; |
100 | for (it=minuteLst.begin(); it!=minuteLst.end(); it++) { | 97 | for (it=minuteLst.begin(); it!=minuteLst.end(); it++) { |
101 | if (*it != r) (*it)->setOn(false); | 98 | if (*it != r) (*it)->setOn(false); |
102 | else tm.setHMS(tm.hour(),(*it)->text().toInt(), 0); | 99 | else tm.setHMS(tm.hour(),(*it)->text().toInt(), 0); |
103 | } | 100 | } |
104 | emit timeChanged(tm); | 101 | emit timeChanged(tm); |
105 | } else { | 102 | } else { |
106 | r->setOn(true); | 103 | r->setOn(true); |
107 | } | 104 | } |
108 | 105 | ||
109 | } | 106 | } |
110 | 107 | ||
111 | /** | 108 | /** |
112 | * Method to set the time. No signal gets emitted during this method call | 109 | * Method to set the time. No signal gets emitted during this method call |
113 | * Minutes must be within 5 minutes step starting at 0 ( 0,5,10,15,20... ) | 110 | * Minutes must be within 5 minutes step starting at 0 ( 0,5,10,15,20... ) |
114 | * @param t The time to be set | 111 | * @param t The time to be set |
115 | */ | 112 | */ |
116 | void OTimePicker::setTime( const QTime& t) { | 113 | void OTimePicker::setTime( const QTime& t) { |
117 | setTime( t.hour(), t.minute() ); | 114 | setTime( t.hour(), t.minute() ); |
118 | } | 115 | } |
119 | 116 | ||
120 | /** | 117 | /** |
121 | * Method to set the time. No signal gets emitted during this method call | 118 | * Method to set the time. No signal gets emitted during this method call |
122 | * @param h The hour | 119 | * @param h The hour |
123 | * @param m The minute. Minutes need to set by 5 minute steps | 120 | * @param m The minute. Minutes need to set by 5 minute steps |
124 | */ | 121 | */ |
125 | void OTimePicker::setTime( int h, int m ) { | 122 | void OTimePicker::setTime( int h, int m ) { |
126 | setHour(h); | 123 | setHour(h); |
127 | setMinute(m); | 124 | setMinute(m); |
128 | } | 125 | } |
129 | 126 | ||
130 | /* | 127 | /* |
131 | * FIXME round minutes to the 5 minute arrangement -zecke | 128 | * FIXME round minutes to the 5 minute arrangement -zecke |
132 | */ | 129 | */ |
133 | /** | 130 | /** |
134 | * Method to set the minutes | 131 | * Method to set the minutes |
diff --git a/libopie/owait.cpp b/libopie/owait.cpp index 0fdf08d..a0f3834 100644 --- a/libopie/owait.cpp +++ b/libopie/owait.cpp | |||
@@ -1,93 +1,91 @@ | |||
1 | /* This file is part of the OPIE libraries | 1 | /* This file is part of the OPIE libraries |
2 | Copyright (C) 2003 Maximilian Reiss (harlekin@handhelds.org) | 2 | Copyright (C) 2003 Maximilian Reiss (harlekin@handhelds.org) |
3 | 3 | ||
4 | This library is free software; you can redistribute it and/or | 4 | This library is free software; you can redistribute it and/or |
5 | modify it under the terms of the GNU Library General Public | 5 | modify it under the terms of the GNU Library General Public |
6 | License as published by the Free Software Foundation; either | 6 | License as published by the Free Software Foundation; either |
7 | version 2 of the License, or (at your option) any later version. | 7 | version 2 of the License, or (at your option) any later version. |
8 | 8 | ||
9 | This library is distributed in the hope that it will be useful, | 9 | This library is distributed in the hope that it will be useful, |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | Library General Public License for more details. | 12 | Library General Public License for more details. |
13 | 13 | ||
14 | You should have received a copy of the GNU Library General Public License | 14 | You should have received a copy of the GNU Library General Public License |
15 | along with this library; see the file COPYING.LIB. If not, write to | 15 | along with this library; see the file COPYING.LIB. If not, write to |
16 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 16 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
17 | Boston, MA 02111-1307, USA. | 17 | Boston, MA 02111-1307, USA. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <qlabel.h> | ||
21 | #include <qlayout.h> | 20 | #include <qlayout.h> |
22 | #include <qtimer.h> | ||
23 | #include <qpe/qpeapplication.h> | 21 | #include <qpe/qpeapplication.h> |
24 | #include <qpainter.h> | 22 | #include <qpainter.h> |
25 | 23 | ||
26 | #include "owait.h" | 24 | #include "owait.h" |
27 | 25 | ||
28 | #include <qpe/resource.h> | 26 | #include <qpe/resource.h> |
29 | 27 | ||
30 | static int frame = 0; | 28 | static int frame = 0; |
31 | 29 | ||
32 | /** | 30 | /** |
33 | * This will construct a modal dialog. | 31 | * This will construct a modal dialog. |
34 | * | 32 | * |
35 | * The default timer length is 10. | 33 | * The default timer length is 10. |
36 | * | 34 | * |
37 | * @param parent The parent of the widget | 35 | * @param parent The parent of the widget |
38 | * @param msg The name of the object | 36 | * @param msg The name of the object |
39 | * @param dispIcon Display Icon? | 37 | * @param dispIcon Display Icon? |
40 | */ | 38 | */ |
41 | OWait::OWait(QWidget *parent, const char* msg, bool dispIcon ) | 39 | OWait::OWait(QWidget *parent, const char* msg, bool dispIcon ) |
42 | :QDialog(parent, msg, TRUE,WStyle_Customize) { | 40 | :QDialog(parent, msg, TRUE,WStyle_Customize) { |
43 | 41 | ||
44 | 42 | ||
45 | QHBoxLayout *hbox = new QHBoxLayout( this ); | 43 | QHBoxLayout *hbox = new QHBoxLayout( this ); |
46 | 44 | ||
47 | m_lb = new QLabel( this ); | 45 | m_lb = new QLabel( this ); |
48 | m_lb->setBackgroundMode ( NoBackground ); | 46 | m_lb->setBackgroundMode ( NoBackground ); |
49 | 47 | ||
50 | hbox->addWidget( m_lb ); | 48 | hbox->addWidget( m_lb ); |
51 | hbox->activate(); | 49 | hbox->activate(); |
52 | 50 | ||
53 | m_pix = Resource::loadPixmap( "BigBusy" ); | 51 | m_pix = Resource::loadPixmap( "BigBusy" ); |
54 | m_aniSize = m_pix.height(); | 52 | m_aniSize = m_pix.height(); |
55 | resize( m_aniSize, m_aniSize ); | 53 | resize( m_aniSize, m_aniSize ); |
56 | 54 | ||
57 | m_timerLength = 10; | 55 | m_timerLength = 10; |
58 | 56 | ||
59 | m_waitTimer = new QTimer( this ); | 57 | m_waitTimer = new QTimer( this ); |
60 | connect( m_waitTimer, SIGNAL( timeout() ), this, SLOT( hide() ) ); | 58 | connect( m_waitTimer, SIGNAL( timeout() ), this, SLOT( hide() ) ); |
61 | } | 59 | } |
62 | 60 | ||
63 | void OWait::timerEvent( QTimerEvent * ) { | 61 | void OWait::timerEvent( QTimerEvent * ) { |
64 | frame = (++frame) % 4; | 62 | frame = (++frame) % 4; |
65 | repaint(); | 63 | repaint(); |
66 | } | 64 | } |
67 | 65 | ||
68 | void OWait::paintEvent( QPaintEvent * ) { | 66 | void OWait::paintEvent( QPaintEvent * ) { |
69 | QPainter p( m_lb ); | 67 | QPainter p( m_lb ); |
70 | p.drawPixmap( 0, 0, m_pix, m_aniSize * frame, 0, m_aniSize, m_aniSize ); | 68 | p.drawPixmap( 0, 0, m_pix, m_aniSize * frame, 0, m_aniSize, m_aniSize ); |
71 | } | 69 | } |
72 | 70 | ||
73 | void OWait::show() { | 71 | void OWait::show() { |
74 | 72 | ||
75 | move( ( ( qApp->desktop()->width() ) / 2 ) - ( m_aniSize / 2 ), ( ( qApp->desktop()->height() ) / 2 ) - ( m_aniSize / 2 ) ); | 73 | move( ( ( qApp->desktop()->width() ) / 2 ) - ( m_aniSize / 2 ), ( ( qApp->desktop()->height() ) / 2 ) - ( m_aniSize / 2 ) ); |
76 | startTimer( 300 ); | 74 | startTimer( 300 ); |
77 | m_waitTimer->start( m_timerLength * 1000, true ); | 75 | m_waitTimer->start( m_timerLength * 1000, true ); |
78 | QDialog::show(); | 76 | QDialog::show(); |
79 | } | 77 | } |
80 | 78 | ||
81 | void OWait::hide() { | 79 | void OWait::hide() { |
82 | killTimers(); | 80 | killTimers(); |
83 | m_waitTimer->stop(); | 81 | m_waitTimer->stop(); |
84 | frame = 0; | 82 | frame = 0; |
85 | QDialog::hide(); | 83 | QDialog::hide(); |
86 | } | 84 | } |
87 | 85 | ||
88 | void OWait::setTimerLength( int length ) { | 86 | void OWait::setTimerLength( int length ) { |
89 | m_timerLength = length; | 87 | m_timerLength = length; |
90 | } | 88 | } |
91 | 89 | ||
92 | OWait::~OWait() { | 90 | OWait::~OWait() { |
93 | } | 91 | } |
diff --git a/libopie/pim/ocontactaccessbackend_xml.cpp b/libopie/pim/ocontactaccessbackend_xml.cpp index aae7fca..2373ad6 100644 --- a/libopie/pim/ocontactaccessbackend_xml.cpp +++ b/libopie/pim/ocontactaccessbackend_xml.cpp | |||
@@ -1,241 +1,242 @@ | |||
1 | /* | 1 | /* |
2 | * XML Backend for the OPIE-Contact Database. | 2 | * XML Backend for the OPIE-Contact Database. |
3 | * | 3 | * |
4 | * Copyright (c) 2002 by Stefan Eilers (Eilers.Stefan@epost.de) | 4 | * Copyright (c) 2002 by Stefan Eilers (Eilers.Stefan@epost.de) |
5 | * | 5 | * |
6 | * ===================================================================== | 6 | * ===================================================================== |
7 | *This program is free software; you can redistribute it and/or | 7 | *This program is free software; you can redistribute it and/or |
8 | *modify it under the terms of the GNU Library General Public | 8 | *modify it under the terms of the GNU Library General Public |
9 | * License as published by the Free Software Foundation; either | 9 | * License as published by the Free Software Foundation; either |
10 | * version 2 of the License, or (at your option) any later version. | 10 | * version 2 of the License, or (at your option) any later version. |
11 | * ===================================================================== | 11 | * ===================================================================== |
12 | * | 12 | * |
13 | * ===================================================================== | 13 | * ===================================================================== |
14 | * Version: $Id$ | 14 | * Version: $Id$ |
15 | * ===================================================================== | 15 | * ===================================================================== |
16 | * History: | 16 | * History: |
17 | * $Log$ | 17 | * $Log$ |
18 | * Revision 1.10 2004/03/01 15:44:36 chicken | ||
19 | * fix includes | ||
20 | * | ||
18 | * Revision 1.9 2003/09/22 14:31:16 eilers | 21 | * Revision 1.9 2003/09/22 14:31:16 eilers |
19 | * Added first experimental incarnation of sql-backend for addressbook. | 22 | * Added first experimental incarnation of sql-backend for addressbook. |
20 | * Some modifications to be able to compile the todo sql-backend. | 23 | * Some modifications to be able to compile the todo sql-backend. |
21 | * A lot of changes fill follow... | 24 | * A lot of changes fill follow... |
22 | * | 25 | * |
23 | * Revision 1.8 2003/08/30 15:28:26 eilers | 26 | * Revision 1.8 2003/08/30 15:28:26 eilers |
24 | * Removed some unimportant debug output which causes slow down.. | 27 | * Removed some unimportant debug output which causes slow down.. |
25 | * | 28 | * |
26 | * Revision 1.7 2003/08/01 12:30:16 eilers | 29 | * Revision 1.7 2003/08/01 12:30:16 eilers |
27 | * Merging changes from BRANCH_1_0 to HEAD | 30 | * Merging changes from BRANCH_1_0 to HEAD |
28 | * | 31 | * |
29 | * Revision 1.6 2003/07/07 16:19:47 eilers | 32 | * Revision 1.6 2003/07/07 16:19:47 eilers |
30 | * Fixing serious bug in hasQuerySettings() | 33 | * Fixing serious bug in hasQuerySettings() |
31 | * | 34 | * |
32 | * Revision 1.5 2003/04/13 18:07:10 zecke | 35 | * Revision 1.5 2003/04/13 18:07:10 zecke |
33 | * More API doc | 36 | * More API doc |
34 | * QString -> const QString& | 37 | * QString -> const QString& |
35 | * QString = 0l -> QString::null | 38 | * QString = 0l -> QString::null |
36 | * | 39 | * |
37 | * Revision 1.4 2003/03/21 14:32:54 mickeyl | 40 | * Revision 1.4 2003/03/21 14:32:54 mickeyl |
38 | * g++ compliance fix: default arguments belong into the declaration, but not the definition | 41 | * g++ compliance fix: default arguments belong into the declaration, but not the definition |
39 | * | 42 | * |
40 | * Revision 1.3 2003/03/21 12:26:28 eilers | 43 | * Revision 1.3 2003/03/21 12:26:28 eilers |
41 | * Fixing small bug: If we search a birthday from today to today, it returned | 44 | * Fixing small bug: If we search a birthday from today to today, it returned |
42 | * every contact .. | 45 | * every contact .. |
43 | * | 46 | * |
44 | * Revision 1.2 2003/03/21 10:33:09 eilers | 47 | * Revision 1.2 2003/03/21 10:33:09 eilers |
45 | * Merged speed optimized xml backend for contacts to main. | 48 | * Merged speed optimized xml backend for contacts to main. |
46 | * Added QDateTime to querybyexample. For instance, it is now possible to get | 49 | * Added QDateTime to querybyexample. For instance, it is now possible to get |
47 | * all Birthdays/Anniversaries between two dates. This should be used | 50 | * all Birthdays/Anniversaries between two dates. This should be used |
48 | * to show all birthdays in the datebook.. | 51 | * to show all birthdays in the datebook.. |
49 | * This change is sourcecode backward compatible but you have to upgrade | 52 | * This change is sourcecode backward compatible but you have to upgrade |
50 | * the binaries for today-addressbook. | 53 | * the binaries for today-addressbook. |
51 | * | 54 | * |
52 | * Revision 1.1.2.2 2003/02/11 12:17:28 eilers | 55 | * Revision 1.1.2.2 2003/02/11 12:17:28 eilers |
53 | * Speed optimization. Removed the sequential search loops. | 56 | * Speed optimization. Removed the sequential search loops. |
54 | * | 57 | * |
55 | * Revision 1.1.2.1 2003/02/10 15:31:38 eilers | 58 | * Revision 1.1.2.1 2003/02/10 15:31:38 eilers |
56 | * Writing offsets to debug output.. | 59 | * Writing offsets to debug output.. |
57 | * | 60 | * |
58 | * Revision 1.1 2003/02/09 15:05:01 eilers | 61 | * Revision 1.1 2003/02/09 15:05:01 eilers |
59 | * Nothing happened.. Just some cleanup before I will start.. | 62 | * Nothing happened.. Just some cleanup before I will start.. |
60 | * | 63 | * |
61 | * Revision 1.12 2003/01/03 16:58:03 eilers | 64 | * Revision 1.12 2003/01/03 16:58:03 eilers |
62 | * Reenable debug output | 65 | * Reenable debug output |
63 | * | 66 | * |
64 | * Revision 1.11 2003/01/03 12:31:28 eilers | 67 | * Revision 1.11 2003/01/03 12:31:28 eilers |
65 | * Bugfix for calculating data diffs.. | 68 | * Bugfix for calculating data diffs.. |
66 | * | 69 | * |
67 | * Revision 1.10 2003/01/02 14:27:12 eilers | 70 | * Revision 1.10 2003/01/02 14:27:12 eilers |
68 | * Improved query by example: Search by date is possible.. First step | 71 | * Improved query by example: Search by date is possible.. First step |
69 | * for a today plugin for birthdays.. | 72 | * for a today plugin for birthdays.. |
70 | * | 73 | * |
71 | * Revision 1.9 2002/12/08 12:48:57 eilers | 74 | * Revision 1.9 2002/12/08 12:48:57 eilers |
72 | * Moved journal-enum from ocontact into i the xml-backend.. | 75 | * Moved journal-enum from ocontact into i the xml-backend.. |
73 | * | 76 | * |
74 | * Revision 1.8 2002/11/14 17:04:24 eilers | 77 | * Revision 1.8 2002/11/14 17:04:24 eilers |
75 | * Sorting will now work if fullname is identical on some entries | 78 | * Sorting will now work if fullname is identical on some entries |
76 | * | 79 | * |
77 | * Revision 1.7 2002/11/13 15:02:46 eilers | 80 | * Revision 1.7 2002/11/13 15:02:46 eilers |
78 | * Small Bug in sorted fixed | 81 | * Small Bug in sorted fixed |
79 | * | 82 | * |
80 | * Revision 1.6 2002/11/13 14:14:51 eilers | 83 | * Revision 1.6 2002/11/13 14:14:51 eilers |
81 | * Added sorted for Contacts.. | 84 | * Added sorted for Contacts.. |
82 | * | 85 | * |
83 | * Revision 1.5 2002/11/01 15:10:42 eilers | 86 | * Revision 1.5 2002/11/01 15:10:42 eilers |
84 | * Added regExp-search in database for all fields in a contact. | 87 | * Added regExp-search in database for all fields in a contact. |
85 | * | 88 | * |
86 | * Revision 1.4 2002/10/16 10:52:40 eilers | 89 | * Revision 1.4 2002/10/16 10:52:40 eilers |
87 | * Added some docu to the interface and now using the cache infrastucture by zecke.. :) | 90 | * Added some docu to the interface and now using the cache infrastucture by zecke.. :) |
88 | * | 91 | * |
89 | * Revision 1.3 2002/10/14 16:21:54 eilers | 92 | * Revision 1.3 2002/10/14 16:21:54 eilers |
90 | * Some minor interface updates | 93 | * Some minor interface updates |
91 | * | 94 | * |
92 | * Revision 1.2 2002/10/07 17:34:24 eilers | 95 | * Revision 1.2 2002/10/07 17:34:24 eilers |
93 | * added OBackendFactory for advanced backend access | 96 | * added OBackendFactory for advanced backend access |
94 | * | 97 | * |
95 | * Revision 1.1 2002/09/27 17:11:44 eilers | 98 | * Revision 1.1 2002/09/27 17:11:44 eilers |
96 | * Added API for accessing the Contact-Database ! It is compiling, but | 99 | * Added API for accessing the Contact-Database ! It is compiling, but |
97 | * please do not expect that anything is working ! | 100 | * please do not expect that anything is working ! |
98 | * I will debug that stuff in the next time .. | 101 | * I will debug that stuff in the next time .. |
99 | * Please read README_COMPILE for compiling ! | 102 | * Please read README_COMPILE for compiling ! |
100 | * | 103 | * |
101 | * | 104 | * |
102 | */ | 105 | */ |
103 | 106 | ||
104 | #include "ocontactaccessbackend_xml.h" | 107 | #include "ocontactaccessbackend_xml.h" |
105 | 108 | ||
106 | #include <qasciidict.h> | 109 | #include <qasciidict.h> |
107 | #include <qdatetime.h> | ||
108 | #include <qfile.h> | 110 | #include <qfile.h> |
109 | #include <qfileinfo.h> | 111 | #include <qfileinfo.h> |
110 | #include <qregexp.h> | 112 | #include <qregexp.h> |
111 | #include <qarray.h> | 113 | #include <qarray.h> |
112 | #include <qmap.h> | 114 | #include <qmap.h> |
113 | #include <qdatetime.h> | ||
114 | 115 | ||
115 | #include <qpe/global.h> | 116 | #include <qpe/global.h> |
116 | 117 | ||
117 | #include <opie/xmltree.h> | 118 | #include <opie/xmltree.h> |
118 | #include "ocontactaccessbackend.h" | 119 | #include "ocontactaccessbackend.h" |
119 | #include "ocontactaccess.h" | 120 | #include "ocontactaccess.h" |
120 | 121 | ||
121 | #include <stdlib.h> | 122 | #include <stdlib.h> |
122 | #include <errno.h> | 123 | #include <errno.h> |
123 | 124 | ||
124 | using namespace Opie; | 125 | using namespace Opie; |
125 | 126 | ||
126 | 127 | ||
127 | OContactAccessBackend_XML::OContactAccessBackend_XML ( const QString& appname, const QString& filename ): | 128 | OContactAccessBackend_XML::OContactAccessBackend_XML ( const QString& appname, const QString& filename ): |
128 | m_changed( false ) | 129 | m_changed( false ) |
129 | { | 130 | { |
130 | // Just m_contactlist should call delete if an entry | 131 | // Just m_contactlist should call delete if an entry |
131 | // is removed. | 132 | // is removed. |
132 | m_contactList.setAutoDelete( true ); | 133 | m_contactList.setAutoDelete( true ); |
133 | m_uidToContact.setAutoDelete( false ); | 134 | m_uidToContact.setAutoDelete( false ); |
134 | 135 | ||
135 | m_appName = appname; | 136 | m_appName = appname; |
136 | 137 | ||
137 | /* Set journalfile name ... */ | 138 | /* Set journalfile name ... */ |
138 | m_journalName = getenv("HOME"); | 139 | m_journalName = getenv("HOME"); |
139 | m_journalName +="/.abjournal" + appname; | 140 | m_journalName +="/.abjournal" + appname; |
140 | 141 | ||
141 | /* Expecting to access the default filename if nothing else is set */ | 142 | /* Expecting to access the default filename if nothing else is set */ |
142 | if ( filename.isEmpty() ){ | 143 | if ( filename.isEmpty() ){ |
143 | m_fileName = Global::applicationFileName( "addressbook","addressbook.xml" ); | 144 | m_fileName = Global::applicationFileName( "addressbook","addressbook.xml" ); |
144 | } else | 145 | } else |
145 | m_fileName = filename; | 146 | m_fileName = filename; |
146 | 147 | ||
147 | /* Load Database now */ | 148 | /* Load Database now */ |
148 | load (); | 149 | load (); |
149 | } | 150 | } |
150 | 151 | ||
151 | bool OContactAccessBackend_XML::save() | 152 | bool OContactAccessBackend_XML::save() |
152 | { | 153 | { |
153 | 154 | ||
154 | if ( !m_changed ) | 155 | if ( !m_changed ) |
155 | return true; | 156 | return true; |
156 | 157 | ||
157 | QString strNewFile = m_fileName + ".new"; | 158 | QString strNewFile = m_fileName + ".new"; |
158 | QFile f( strNewFile ); | 159 | QFile f( strNewFile ); |
159 | if ( !f.open( IO_WriteOnly|IO_Raw ) ) | 160 | if ( !f.open( IO_WriteOnly|IO_Raw ) ) |
160 | return false; | 161 | return false; |
161 | 162 | ||
162 | int total_written; | 163 | int total_written; |
163 | int idx_offset = 0; | 164 | int idx_offset = 0; |
164 | QString out; | 165 | QString out; |
165 | 166 | ||
166 | // Write Header | 167 | // Write Header |
167 | out = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE Addressbook ><AddressBook>\n" | 168 | out = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE Addressbook ><AddressBook>\n" |
168 | " <Groups>\n" | 169 | " <Groups>\n" |
169 | " </Groups>\n" | 170 | " </Groups>\n" |
170 | " <Contacts>\n"; | 171 | " <Contacts>\n"; |
171 | QCString cstr = out.utf8(); | 172 | QCString cstr = out.utf8(); |
172 | f.writeBlock( cstr.data(), cstr.length() ); | 173 | f.writeBlock( cstr.data(), cstr.length() ); |
173 | idx_offset += cstr.length(); | 174 | idx_offset += cstr.length(); |
174 | out = ""; | 175 | out = ""; |
175 | 176 | ||
176 | // Write all contacts | 177 | // Write all contacts |
177 | QListIterator<OContact> it( m_contactList ); | 178 | QListIterator<OContact> it( m_contactList ); |
178 | for ( ; it.current(); ++it ) { | 179 | for ( ; it.current(); ++it ) { |
179 | // qWarning(" Uid %d at Offset: %x", (*it)->uid(), idx_offset ); | 180 | // qWarning(" Uid %d at Offset: %x", (*it)->uid(), idx_offset ); |
180 | out += "<Contact "; | 181 | out += "<Contact "; |
181 | (*it)->save( out ); | 182 | (*it)->save( out ); |
182 | out += "/>\n"; | 183 | out += "/>\n"; |
183 | cstr = out.utf8(); | 184 | cstr = out.utf8(); |
184 | total_written = f.writeBlock( cstr.data(), cstr.length() ); | 185 | total_written = f.writeBlock( cstr.data(), cstr.length() ); |
185 | idx_offset += cstr.length(); | 186 | idx_offset += cstr.length(); |
186 | if ( total_written != int(cstr.length()) ) { | 187 | if ( total_written != int(cstr.length()) ) { |
187 | f.close(); | 188 | f.close(); |
188 | QFile::remove( strNewFile ); | 189 | QFile::remove( strNewFile ); |
189 | return false; | 190 | return false; |
190 | } | 191 | } |
191 | out = ""; | 192 | out = ""; |
192 | } | 193 | } |
193 | out += " </Contacts>\n</AddressBook>\n"; | 194 | out += " </Contacts>\n</AddressBook>\n"; |
194 | 195 | ||
195 | // Write Footer | 196 | // Write Footer |
196 | cstr = out.utf8(); | 197 | cstr = out.utf8(); |
197 | total_written = f.writeBlock( cstr.data(), cstr.length() ); | 198 | total_written = f.writeBlock( cstr.data(), cstr.length() ); |
198 | if ( total_written != int( cstr.length() ) ) { | 199 | if ( total_written != int( cstr.length() ) ) { |
199 | f.close(); | 200 | f.close(); |
200 | QFile::remove( strNewFile ); | 201 | QFile::remove( strNewFile ); |
201 | return false; | 202 | return false; |
202 | } | 203 | } |
203 | f.close(); | 204 | f.close(); |
204 | 205 | ||
205 | // move the file over, I'm just going to use the system call | 206 | // move the file over, I'm just going to use the system call |
206 | // because, I don't feel like using QDir. | 207 | // because, I don't feel like using QDir. |
207 | if ( ::rename( strNewFile.latin1(), m_fileName.latin1() ) < 0 ) { | 208 | if ( ::rename( strNewFile.latin1(), m_fileName.latin1() ) < 0 ) { |
208 | qWarning( "problem renaming file %s to %s, errno: %d", | 209 | qWarning( "problem renaming file %s to %s, errno: %d", |
209 | strNewFile.latin1(), m_journalName.latin1(), errno ); | 210 | strNewFile.latin1(), m_journalName.latin1(), errno ); |
210 | // remove the tmp file... | 211 | // remove the tmp file... |
211 | QFile::remove( strNewFile ); | 212 | QFile::remove( strNewFile ); |
212 | } | 213 | } |
213 | 214 | ||
214 | /* The journalfile should be removed now... */ | 215 | /* The journalfile should be removed now... */ |
215 | removeJournal(); | 216 | removeJournal(); |
216 | 217 | ||
217 | m_changed = false; | 218 | m_changed = false; |
218 | return true; | 219 | return true; |
219 | } | 220 | } |
220 | 221 | ||
221 | bool OContactAccessBackend_XML::load () | 222 | bool OContactAccessBackend_XML::load () |
222 | { | 223 | { |
223 | m_contactList.clear(); | 224 | m_contactList.clear(); |
224 | m_uidToContact.clear(); | 225 | m_uidToContact.clear(); |
225 | 226 | ||
226 | /* Load XML-File and journal if it exists */ | 227 | /* Load XML-File and journal if it exists */ |
227 | if ( !load ( m_fileName, false ) ) | 228 | if ( !load ( m_fileName, false ) ) |
228 | return false; | 229 | return false; |
229 | /* The returncode of the journalfile is ignored due to the | 230 | /* The returncode of the journalfile is ignored due to the |
230 | * fact that it does not exist when this class is instantiated ! | 231 | * fact that it does not exist when this class is instantiated ! |
231 | * But there may such a file exist, if the application crashed. | 232 | * But there may such a file exist, if the application crashed. |
232 | * Therefore we try to load it to get the changes before the # | 233 | * Therefore we try to load it to get the changes before the # |
233 | * crash happened... | 234 | * crash happened... |
234 | */ | 235 | */ |
235 | load (m_journalName, true); | 236 | load (m_journalName, true); |
236 | 237 | ||
237 | return true; | 238 | return true; |
238 | } | 239 | } |
239 | 240 | ||
240 | void OContactAccessBackend_XML::clear () | 241 | void OContactAccessBackend_XML::clear () |
241 | { | 242 | { |
diff --git a/libopie/pim/otodo.cpp b/libopie/pim/otodo.cpp index 189bf94..b2c76f8 100644 --- a/libopie/pim/otodo.cpp +++ b/libopie/pim/otodo.cpp | |||
@@ -1,140 +1,139 @@ | |||
1 | 1 | ||
2 | #include <qobject.h> | 2 | #include <qobject.h> |
3 | #include <qshared.h> | 3 | #include <qshared.h> |
4 | 4 | ||
5 | 5 | ||
6 | 6 | ||
7 | #include <qpe/palmtopuidgen.h> | 7 | #include <qpe/palmtopuidgen.h> |
8 | #include <qpe/stringutil.h> | ||
9 | #include <qpe/palmtoprecord.h> | 8 | #include <qpe/palmtoprecord.h> |
10 | #include <qpe/stringutil.h> | ||
11 | #include <qpe/categories.h> | 9 | #include <qpe/categories.h> |
12 | #include <qpe/categoryselect.h> | 10 | #include <qpe/categoryselect.h> |
11 | #include <qpe/stringutil.h> | ||
13 | 12 | ||
14 | 13 | ||
15 | #include "opimstate.h" | 14 | #include "opimstate.h" |
16 | #include "orecur.h" | 15 | #include "orecur.h" |
17 | #include "opimmaintainer.h" | 16 | #include "opimmaintainer.h" |
18 | #include "opimnotifymanager.h" | 17 | #include "opimnotifymanager.h" |
19 | #include "opimresolver.h" | 18 | #include "opimresolver.h" |
20 | 19 | ||
21 | #include "otodo.h" | 20 | #include "otodo.h" |
22 | 21 | ||
23 | 22 | ||
24 | struct OTodo::OTodoData : public QShared { | 23 | struct OTodo::OTodoData : public QShared { |
25 | OTodoData() : QShared() { | 24 | OTodoData() : QShared() { |
26 | recur = 0; | 25 | recur = 0; |
27 | state = 0; | 26 | state = 0; |
28 | maintainer = 0; | 27 | maintainer = 0; |
29 | notifiers = 0; | 28 | notifiers = 0; |
30 | }; | 29 | }; |
31 | ~OTodoData() { | 30 | ~OTodoData() { |
32 | delete recur; | 31 | delete recur; |
33 | delete maintainer; | 32 | delete maintainer; |
34 | delete notifiers; | 33 | delete notifiers; |
35 | } | 34 | } |
36 | 35 | ||
37 | QDate date; | 36 | QDate date; |
38 | bool isCompleted:1; | 37 | bool isCompleted:1; |
39 | bool hasDate:1; | 38 | bool hasDate:1; |
40 | int priority; | 39 | int priority; |
41 | QString desc; | 40 | QString desc; |
42 | QString sum; | 41 | QString sum; |
43 | QMap<QString, QString> extra; | 42 | QMap<QString, QString> extra; |
44 | ushort prog; | 43 | ushort prog; |
45 | OPimState *state; | 44 | OPimState *state; |
46 | ORecur *recur; | 45 | ORecur *recur; |
47 | OPimMaintainer *maintainer; | 46 | OPimMaintainer *maintainer; |
48 | QDate start; | 47 | QDate start; |
49 | QDate completed; | 48 | QDate completed; |
50 | OPimNotifyManager *notifiers; | 49 | OPimNotifyManager *notifiers; |
51 | }; | 50 | }; |
52 | 51 | ||
53 | OTodo::OTodo(const OTodo &event ) | 52 | OTodo::OTodo(const OTodo &event ) |
54 | : OPimRecord( event ), data( event.data ) | 53 | : OPimRecord( event ), data( event.data ) |
55 | { | 54 | { |
56 | data->ref(); | 55 | data->ref(); |
57 | // qWarning("ref up"); | 56 | // qWarning("ref up"); |
58 | } | 57 | } |
59 | OTodo::~OTodo() { | 58 | OTodo::~OTodo() { |
60 | 59 | ||
61 | // qWarning("~OTodo " ); | 60 | // qWarning("~OTodo " ); |
62 | if ( data->deref() ) { | 61 | if ( data->deref() ) { |
63 | // qWarning("OTodo::dereffing"); | 62 | // qWarning("OTodo::dereffing"); |
64 | delete data; | 63 | delete data; |
65 | data = 0l; | 64 | data = 0l; |
66 | } | 65 | } |
67 | } | 66 | } |
68 | OTodo::OTodo(bool completed, int priority, | 67 | OTodo::OTodo(bool completed, int priority, |
69 | const QArray<int> &category, | 68 | const QArray<int> &category, |
70 | const QString& summary, | 69 | const QString& summary, |
71 | const QString &description, | 70 | const QString &description, |
72 | ushort progress, | 71 | ushort progress, |
73 | bool hasDate, QDate date, int uid ) | 72 | bool hasDate, QDate date, int uid ) |
74 | : OPimRecord( uid ) | 73 | : OPimRecord( uid ) |
75 | { | 74 | { |
76 | // qWarning("OTodoData " + summary); | 75 | // qWarning("OTodoData " + summary); |
77 | setCategories( category ); | 76 | setCategories( category ); |
78 | 77 | ||
79 | data = new OTodoData; | 78 | data = new OTodoData; |
80 | 79 | ||
81 | data->date = date; | 80 | data->date = date; |
82 | data->isCompleted = completed; | 81 | data->isCompleted = completed; |
83 | data->hasDate = hasDate; | 82 | data->hasDate = hasDate; |
84 | data->priority = priority; | 83 | data->priority = priority; |
85 | data->sum = summary; | 84 | data->sum = summary; |
86 | data->prog = progress; | 85 | data->prog = progress; |
87 | data->desc = Qtopia::simplifyMultiLineSpace(description ); | 86 | data->desc = Qtopia::simplifyMultiLineSpace(description ); |
88 | } | 87 | } |
89 | OTodo::OTodo(bool completed, int priority, | 88 | OTodo::OTodo(bool completed, int priority, |
90 | const QStringList &category, | 89 | const QStringList &category, |
91 | const QString& summary, | 90 | const QString& summary, |
92 | const QString &description, | 91 | const QString &description, |
93 | ushort progress, | 92 | ushort progress, |
94 | bool hasDate, QDate date, int uid ) | 93 | bool hasDate, QDate date, int uid ) |
95 | : OPimRecord( uid ) | 94 | : OPimRecord( uid ) |
96 | { | 95 | { |
97 | // qWarning("OTodoData" + summary); | 96 | // qWarning("OTodoData" + summary); |
98 | setCategories( idsFromString( category.join(";") ) ); | 97 | setCategories( idsFromString( category.join(";") ) ); |
99 | 98 | ||
100 | data = new OTodoData; | 99 | data = new OTodoData; |
101 | 100 | ||
102 | data->date = date; | 101 | data->date = date; |
103 | data->isCompleted = completed; | 102 | data->isCompleted = completed; |
104 | data->hasDate = hasDate; | 103 | data->hasDate = hasDate; |
105 | data->priority = priority; | 104 | data->priority = priority; |
106 | data->sum = summary; | 105 | data->sum = summary; |
107 | data->prog = progress; | 106 | data->prog = progress; |
108 | data->desc = Qtopia::simplifyMultiLineSpace(description ); | 107 | data->desc = Qtopia::simplifyMultiLineSpace(description ); |
109 | } | 108 | } |
110 | bool OTodo::match( const QRegExp ®Exp )const | 109 | bool OTodo::match( const QRegExp ®Exp )const |
111 | { | 110 | { |
112 | if( QString::number( data->priority ).find( regExp ) != -1 ){ | 111 | if( QString::number( data->priority ).find( regExp ) != -1 ){ |
113 | setLastHitField( Priority ); | 112 | setLastHitField( Priority ); |
114 | return true; | 113 | return true; |
115 | }else if( data->hasDate && data->date.toString().find( regExp) != -1 ){ | 114 | }else if( data->hasDate && data->date.toString().find( regExp) != -1 ){ |
116 | setLastHitField( HasDate ); | 115 | setLastHitField( HasDate ); |
117 | return true; | 116 | return true; |
118 | }else if(data->desc.find( regExp ) != -1 ){ | 117 | }else if(data->desc.find( regExp ) != -1 ){ |
119 | setLastHitField( Description ); | 118 | setLastHitField( Description ); |
120 | return true; | 119 | return true; |
121 | }else if(data->sum.find( regExp ) != -1 ) { | 120 | }else if(data->sum.find( regExp ) != -1 ) { |
122 | setLastHitField( Summary ); | 121 | setLastHitField( Summary ); |
123 | return true; | 122 | return true; |
124 | } | 123 | } |
125 | return false; | 124 | return false; |
126 | } | 125 | } |
127 | bool OTodo::isCompleted() const | 126 | bool OTodo::isCompleted() const |
128 | { | 127 | { |
129 | return data->isCompleted; | 128 | return data->isCompleted; |
130 | } | 129 | } |
131 | bool OTodo::hasDueDate() const | 130 | bool OTodo::hasDueDate() const |
132 | { | 131 | { |
133 | return data->hasDate; | 132 | return data->hasDate; |
134 | } | 133 | } |
135 | bool OTodo::hasStartDate()const { | 134 | bool OTodo::hasStartDate()const { |
136 | return data->start.isValid(); | 135 | return data->start.isValid(); |
137 | } | 136 | } |
138 | bool OTodo::hasCompletedDate()const { | 137 | bool OTodo::hasCompletedDate()const { |
139 | return data->completed.isValid(); | 138 | return data->completed.isValid(); |
140 | } | 139 | } |