author | alwin <alwin> | 2004-03-02 12:21:11 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-03-02 12:21:11 (UTC) |
commit | b6b1c97559c0ed9f2e33632272426bf98f289232 (patch) (unidiff) | |
tree | d3a9987704770cdf5eb14e1136f6e3ecb2f36a04 /noncore | |
parent | 0d59c780513da78033f4d9040475dee9db0256d4 (diff) | |
download | opie-b6b1c97559c0ed9f2e33632272426bf98f289232.zip opie-b6b1c97559c0ed9f2e33632272426bf98f289232.tar.gz opie-b6b1c97559c0ed9f2e33632272426bf98f289232.tar.bz2 |
applied the patch generated by the optimize_connect script from
TT.
158 files changed, 755 insertions, 755 deletions
diff --git a/noncore/applets/memoryapplet/swapfile.cpp b/noncore/applets/memoryapplet/swapfile.cpp index 04da8bb..9416db3 100644 --- a/noncore/applets/memoryapplet/swapfile.cpp +++ b/noncore/applets/memoryapplet/swapfile.cpp | |||
@@ -17,195 +17,195 @@ | |||
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include "swapfile.h" | 21 | #include "swapfile.h" |
22 | 22 | ||
23 | #include <qfile.h> | 23 | #include <qfile.h> |
24 | #include <qtextstream.h> | 24 | #include <qtextstream.h> |
25 | #include <qlabel.h> | 25 | #include <qlabel.h> |
26 | #include <qtimer.h> | 26 | #include <qtimer.h> |
27 | #include <qlayout.h> | 27 | #include <qlayout.h> |
28 | #include <qpushbutton.h> | 28 | #include <qpushbutton.h> |
29 | #include <qhbuttongroup.h> | 29 | #include <qhbuttongroup.h> |
30 | #include <qradiobutton.h> | 30 | #include <qradiobutton.h> |
31 | #include <qlineedit.h> | 31 | #include <qlineedit.h> |
32 | #include <qprogressbar.h> | 32 | #include <qprogressbar.h> |
33 | #include <qcombobox.h> | 33 | #include <qcombobox.h> |
34 | #include <qvgroupbox.h> | 34 | #include <qvgroupbox.h> |
35 | #include <qhbox.h> | 35 | #include <qhbox.h> |
36 | #include <qmessagebox.h> | 36 | #include <qmessagebox.h> |
37 | #include <stdio.h> | 37 | #include <stdio.h> |
38 | #include <stdlib.h> | 38 | #include <stdlib.h> |
39 | #include <string.h> | 39 | #include <string.h> |
40 | 40 | ||
41 | #include <qcopchannel_qws.h> | 41 | #include <qcopchannel_qws.h> |
42 | #include <qpe/resource.h> | 42 | #include <qpe/resource.h> |
43 | 43 | ||
44 | #include <unistd.h> | 44 | #include <unistd.h> |
45 | #include <fcntl.h> | 45 | #include <fcntl.h> |
46 | #include <sys/vfs.h> | 46 | #include <sys/vfs.h> |
47 | #include <mntent.h> | 47 | #include <mntent.h> |
48 | #include <unistd.h> | 48 | #include <unistd.h> |
49 | #include <sys/types.h> | 49 | #include <sys/types.h> |
50 | 50 | ||
51 | Swapfile::Swapfile( QWidget *parent, const char *name, WFlags f ) | 51 | Swapfile::Swapfile( QWidget *parent, const char *name, WFlags f ) |
52 | : QWidget( parent, name, f ) | 52 | : QWidget( parent, name, f ) |
53 | { | 53 | { |
54 | // are we running as root? | 54 | // are we running as root? |
55 | isRoot = geteuid() == 0; | 55 | isRoot = geteuid() == 0; |
56 | 56 | ||
57 | QVBoxLayout* vb = new QVBoxLayout(this, 5); | 57 | QVBoxLayout* vb = new QVBoxLayout(this, 5); |
58 | 58 | ||
59 | QHButtonGroup* cfsdRBG = new QHButtonGroup(tr("Swapfile location"), this); | 59 | QHButtonGroup* cfsdRBG = new QHButtonGroup(tr("Swapfile location"), this); |
60 | cfsdRBG->setRadioButtonExclusive(true); | 60 | cfsdRBG->setRadioButtonExclusive(true); |
61 | vb->addWidget(cfsdRBG); | 61 | vb->addWidget(cfsdRBG); |
62 | 62 | ||
63 | ramRB = new QRadioButton(tr("RAM"), cfsdRBG); | 63 | ramRB = new QRadioButton(tr("RAM"), cfsdRBG); |
64 | cfRB = new QRadioButton(tr("CF Card"), cfsdRBG); | 64 | cfRB = new QRadioButton(tr("CF Card"), cfsdRBG); |
65 | sdRB = new QRadioButton(tr("SD Card"), cfsdRBG); | 65 | sdRB = new QRadioButton(tr("SD Card"), cfsdRBG); |
66 | 66 | ||
67 | QHBox *hb1 = new QHBox(this); | 67 | QHBox *hb1 = new QHBox(this); |
68 | hb1->setSpacing(5); | 68 | hb1->setSpacing(5); |
69 | 69 | ||
70 | swapPath1 = new QLineEdit(hb1); | 70 | swapPath1 = new QLineEdit(hb1); |
71 | swapPath1->setEnabled(false); | 71 | swapPath1->setEnabled(false); |
72 | 72 | ||
73 | QPushButton* swapOn = new QPushButton(tr(" On "), hb1); | 73 | QPushButton* swapOn = new QPushButton(tr(" On "), hb1); |
74 | QPushButton* swapOff = new QPushButton(tr(" Off "), hb1); | 74 | QPushButton* swapOff = new QPushButton(tr(" Off "), hb1); |
75 | vb->addWidget(hb1); | 75 | vb->addWidget(hb1); |
76 | 76 | ||
77 | QVGroupBox* box1 = new QVGroupBox(tr("Manage Swapfile"), this); | 77 | QVGroupBox* box1 = new QVGroupBox(tr("Manage Swapfile"), this); |
78 | vb->addWidget(box1); | 78 | vb->addWidget(box1); |
79 | 79 | ||
80 | QHBox *hb2 = new QHBox(box1); | 80 | QHBox *hb2 = new QHBox(box1); |
81 | hb2->setSpacing(5); | 81 | hb2->setSpacing(5); |
82 | QPushButton* mkSwap = new QPushButton(tr("Generate"), hb2); | 82 | QPushButton* mkSwap = new QPushButton(tr("Generate"), hb2); |
83 | QPushButton* rmSwap = new QPushButton(tr("Remove"), hb2); | 83 | QPushButton* rmSwap = new QPushButton(tr("Remove"), hb2); |
84 | 84 | ||
85 | QHBox *hb3 = new QHBox(box1); | 85 | QHBox *hb3 = new QHBox(box1); |
86 | hb3->setSpacing(5); | 86 | hb3->setSpacing(5); |
87 | swapSize = new QComboBox(hb3); | 87 | swapSize = new QComboBox(hb3); |
88 | swapSize->insertStringList(QStringList::split(",", tr("2 Mb,4 Mb,6 Mb,8 Mb"))); | 88 | swapSize->insertStringList(QStringList::split(",", tr("2 Mb,4 Mb,6 Mb,8 Mb"))); |
89 | 89 | ||
90 | mkswapProgress = new QProgressBar(3, hb3); | 90 | mkswapProgress = new QProgressBar(3, hb3); |
91 | mkswapProgress->setCenterIndicator(true); | 91 | mkswapProgress->setCenterIndicator(true); |
92 | 92 | ||
93 | QHBox *hb4 = new QHBox(this); | 93 | QHBox *hb4 = new QHBox(this); |
94 | hb4->setSpacing(5); | 94 | hb4->setSpacing(5); |
95 | 95 | ||
96 | swapStatusIcon = new QLabel(hb4); | 96 | swapStatusIcon = new QLabel(hb4); |
97 | swapStatus = new QLabel(tr(""), hb4); | 97 | swapStatus = new QLabel(tr(""), hb4); |
98 | hb4->setStretchFactor(swapStatus, 99); | 98 | hb4->setStretchFactor(swapStatus, 99); |
99 | vb->addWidget(hb4); | 99 | vb->addWidget(hb4); |
100 | 100 | ||
101 | connect(swapOn, SIGNAL(clicked()), this, SLOT(swapon())); | 101 | connect(swapOn, SIGNAL(clicked()), this, SLOT(swapon())); |
102 | connect(swapOff, SIGNAL(clicked()), this, SLOT(swapoff())); | 102 | connect(swapOff, SIGNAL(clicked()), this, SLOT(swapoff())); |
103 | connect(cfRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); | 103 | connect(cfRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); |
104 | connect(sdRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); | 104 | connect(sdRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); |
105 | connect(ramRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); | 105 | connect(ramRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); |
106 | connect(mkSwap, SIGNAL(clicked()), this, SLOT(makeswapfile())); | 106 | connect(mkSwap, SIGNAL(clicked()), this, SLOT(makeswapfile())); |
107 | connect(rmSwap, SIGNAL(clicked()), this, SLOT(removeswapfile())); | 107 | connect(rmSwap, SIGNAL(clicked()), this, SLOT(removeswapfile())); |
108 | 108 | ||
109 | cfRB->setEnabled(FALSE); | 109 | cfRB->setEnabled(FALSE); |
110 | sdRB->setEnabled(FALSE); | 110 | sdRB->setEnabled(FALSE); |
111 | 111 | ||
112 | QCopChannel *pcmciaChannel = new QCopChannel("QPE/Card", this); | 112 | QCopChannel *pcmciaChannel = new QCopChannel("QPE/Card", this); |
113 | connect(pcmciaChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(cardnotify(const QCString &, const QByteArray &))); | 113 | connect(pcmciaChannel, SIGNAL(received(const QCString&,const QByteArray&)), this, SLOT(cardnotify(const QCString&,const QByteArray&))); |
114 | QCopChannel *sdChannel = new QCopChannel("QPE/Card", this); | 114 | QCopChannel *sdChannel = new QCopChannel("QPE/Card", this); |
115 | connect(sdChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(cardnotify(const QCString &, const QByteArray &))); | 115 | connect(sdChannel, SIGNAL(received(const QCString&,const QByteArray&)), this, SLOT(cardnotify(const QCString&,const QByteArray&))); |
116 | 116 | ||
117 | cardInPcmcia0 = FALSE; | 117 | cardInPcmcia0 = FALSE; |
118 | cardInPcmcia1 = FALSE; | 118 | cardInPcmcia1 = FALSE; |
119 | cardInSd = FALSE; | 119 | cardInSd = FALSE; |
120 | 120 | ||
121 | Swapfile::status(); | 121 | Swapfile::status(); |
122 | Swapfile::getStatusPcmcia(); | 122 | Swapfile::getStatusPcmcia(); |
123 | Swapfile::getStatusSd(); | 123 | Swapfile::getStatusSd(); |
124 | } | 124 | } |
125 | 125 | ||
126 | int Swapfile::exec(const QString& arg) | 126 | int Swapfile::exec(const QString& arg) |
127 | { | 127 | { |
128 | return system((!isRoot ? "sudo " : "") + arg); | 128 | return system((!isRoot ? "sudo " : "") + arg); |
129 | } | 129 | } |
130 | 130 | ||
131 | 131 | ||
132 | Swapfile::~Swapfile() | 132 | Swapfile::~Swapfile() |
133 | { | 133 | { |
134 | } | 134 | } |
135 | 135 | ||
136 | void Swapfile::cardnotify(const QCString & msg, const QByteArray &) | 136 | void Swapfile::cardnotify(const QCString & msg, const QByteArray &) |
137 | { | 137 | { |
138 | if (msg == "stabChanged()") | 138 | if (msg == "stabChanged()") |
139 | { | 139 | { |
140 | getStatusPcmcia(); | 140 | getStatusPcmcia(); |
141 | } | 141 | } |
142 | else if (msg == "mtabChanged()") | 142 | else if (msg == "mtabChanged()") |
143 | { | 143 | { |
144 | getStatusSd(); | 144 | getStatusSd(); |
145 | } | 145 | } |
146 | } | 146 | } |
147 | 147 | ||
148 | void Swapfile::getStatusPcmcia() | 148 | void Swapfile::getStatusPcmcia() |
149 | { | 149 | { |
150 | 150 | ||
151 | bool cardWas0 = cardInPcmcia0;// remember last state | 151 | bool cardWas0 = cardInPcmcia0;// remember last state |
152 | bool cardWas1 = cardInPcmcia1; | 152 | bool cardWas1 = cardInPcmcia1; |
153 | 153 | ||
154 | QString fileName; | 154 | QString fileName; |
155 | 155 | ||
156 | // one of these 3 files should exist | 156 | // one of these 3 files should exist |
157 | if (QFile::exists("/var/run/stab")) { | 157 | if (QFile::exists("/var/run/stab")) { |
158 | fileName = "/var/run/stab"; | 158 | fileName = "/var/run/stab"; |
159 | } else if (QFile::exists("/var/state/pcmcia/stab")) { | 159 | } else if (QFile::exists("/var/state/pcmcia/stab")) { |
160 | fileName = "/var/state/pcmcia/stab"; | 160 | fileName = "/var/state/pcmcia/stab"; |
161 | } else { | 161 | } else { |
162 | fileName = "/var/lib/pcmcia/stab"; | 162 | fileName = "/var/lib/pcmcia/stab"; |
163 | } | 163 | } |
164 | 164 | ||
165 | QFile f(fileName); | 165 | QFile f(fileName); |
166 | 166 | ||
167 | if (f.open(IO_ReadOnly)) { | 167 | if (f.open(IO_ReadOnly)) { |
168 | QStringList list; | 168 | QStringList list; |
169 | QTextStream stream(&f); | 169 | QTextStream stream(&f); |
170 | QString streamIn; | 170 | QString streamIn; |
171 | streamIn = stream.read(); | 171 | streamIn = stream.read(); |
172 | list = QStringList::split("\n", streamIn); | 172 | list = QStringList::split("\n", streamIn); |
173 | for (QStringList::Iterator line = list.begin(); line != list.end(); | 173 | for (QStringList::Iterator line = list.begin(); line != list.end(); |
174 | line++) { | 174 | line++) { |
175 | if ((*line).startsWith("Socket 0:")) { | 175 | if ((*line).startsWith("Socket 0:")) { |
176 | if ((*line).startsWith("Socket 0: empty") && cardInPcmcia0) { | 176 | if ((*line).startsWith("Socket 0: empty") && cardInPcmcia0) { |
177 | cardInPcmcia0 = FALSE; | 177 | cardInPcmcia0 = FALSE; |
178 | } else if (!(*line).startsWith("Socket 0: empty") | 178 | } else if (!(*line).startsWith("Socket 0: empty") |
179 | && !cardInPcmcia0) { | 179 | && !cardInPcmcia0) { |
180 | cardInPcmcia0 = TRUE; | 180 | cardInPcmcia0 = TRUE; |
181 | } | 181 | } |
182 | } else if ((*line).startsWith("Socket 1:")) { | 182 | } else if ((*line).startsWith("Socket 1:")) { |
183 | if ((*line).startsWith("Socket 1: empty") && cardInPcmcia1) { | 183 | if ((*line).startsWith("Socket 1: empty") && cardInPcmcia1) { |
184 | cardInPcmcia1 = FALSE; | 184 | cardInPcmcia1 = FALSE; |
185 | } else if (!(*line).startsWith("Socket 1: empty") | 185 | } else if (!(*line).startsWith("Socket 1: empty") |
186 | && !cardInPcmcia1) { | 186 | && !cardInPcmcia1) { |
187 | cardInPcmcia1 = TRUE; | 187 | cardInPcmcia1 = TRUE; |
188 | } | 188 | } |
189 | } | 189 | } |
190 | } | 190 | } |
191 | f.close(); | 191 | f.close(); |
192 | 192 | ||
193 | if (cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1) { | 193 | if (cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1) { |
194 | QString text = QString::null; | 194 | QString text = QString::null; |
195 | QString what = QString::null; | 195 | QString what = QString::null; |
196 | if (cardWas0 != cardInPcmcia0) { | 196 | if (cardWas0 != cardInPcmcia0) { |
197 | if (cardInPcmcia0) { | 197 | if (cardInPcmcia0) { |
198 | cfRB->setEnabled(TRUE); | 198 | cfRB->setEnabled(TRUE); |
199 | } else { | 199 | } else { |
200 | cfRB->setChecked(FALSE); | 200 | cfRB->setChecked(FALSE); |
201 | cfRB->setEnabled(FALSE); | 201 | cfRB->setEnabled(FALSE); |
202 | } | 202 | } |
203 | } | 203 | } |
204 | 204 | ||
205 | if (cardWas1 != cardInPcmcia1) { | 205 | if (cardWas1 != cardInPcmcia1) { |
206 | if (cardInPcmcia1) { | 206 | if (cardInPcmcia1) { |
207 | cfRB->setEnabled(TRUE); | 207 | cfRB->setEnabled(TRUE); |
208 | } else { | 208 | } else { |
209 | cfRB->setChecked(FALSE); | 209 | cfRB->setChecked(FALSE); |
210 | cfRB->setEnabled(FALSE); | 210 | cfRB->setEnabled(FALSE); |
211 | } | 211 | } |
diff --git a/noncore/applets/notesapplet/notes.cpp b/noncore/applets/notesapplet/notes.cpp index 1142028..9b5e475 100644 --- a/noncore/applets/notesapplet/notes.cpp +++ b/noncore/applets/notesapplet/notes.cpp | |||
@@ -34,288 +34,288 @@ | |||
34 | #include <qpopupmenu.h> | 34 | #include <qpopupmenu.h> |
35 | #include <qmessagebox.h> | 35 | #include <qmessagebox.h> |
36 | 36 | ||
37 | #include <qdir.h> | 37 | #include <qdir.h> |
38 | #include <qfile.h> | 38 | #include <qfile.h> |
39 | #include <qpoint.h> | 39 | #include <qpoint.h> |
40 | #include <qpushbutton.h> | 40 | #include <qpushbutton.h> |
41 | #include <qpainter.h> | 41 | #include <qpainter.h> |
42 | #include <qlayout.h> | 42 | #include <qlayout.h> |
43 | #include <qframe.h> | 43 | #include <qframe.h> |
44 | #include <qpixmap.h> | 44 | #include <qpixmap.h> |
45 | #include <qstring.h> | 45 | #include <qstring.h> |
46 | #include <qtimer.h> | 46 | #include <qtimer.h> |
47 | 47 | ||
48 | /* XPM */ | 48 | /* XPM */ |
49 | static char * notes_xpm[] = { | 49 | static char * notes_xpm[] = { |
50 | "16 16 11 1", | 50 | "16 16 11 1", |
51 | " c None", | 51 | " c None", |
52 | ". c #000000", | 52 | ". c #000000", |
53 | "+ c #7F7F7F", | 53 | "+ c #7F7F7F", |
54 | "@ c #BFBFBF", | 54 | "@ c #BFBFBF", |
55 | "# c #BFC1FF", | 55 | "# c #BFC1FF", |
56 | "$ c #FF0000", | 56 | "$ c #FF0000", |
57 | "% c #FFFFFF", | 57 | "% c #FFFFFF", |
58 | "& c #00037F", | 58 | "& c #00037F", |
59 | "* c #0006FF", | 59 | "* c #0006FF", |
60 | "= c #0005BF", | 60 | "= c #0005BF", |
61 | "- c #7F0000", | 61 | "- c #7F0000", |
62 | " .. ", | 62 | " .. ", |
63 | " .. ", | 63 | " .. ", |
64 | " ... ", | 64 | " ... ", |
65 | " .+ ", | 65 | " .+ ", |
66 | " .@. ", | 66 | " .@. ", |
67 | " . .+ ", | 67 | " . .+ ", |
68 | " ..#.@. ", | 68 | " ..#.@. ", |
69 | " ..###.+.. ", | 69 | " ..###.+.. ", |
70 | " ..###$...##.. ", | 70 | " ..###$...##.. ", |
71 | "..###$$$%+$$##&.", | 71 | "..###$$$%+$$##&.", |
72 | ".*=####$-###&=&.", | 72 | ".*=####$-###&=&.", |
73 | ".=**=###==&=&=..", | 73 | ".=**=###==&=&=..", |
74 | " ..=**=#&=&=.. ", | 74 | " ..=**=#&=&=.. ", |
75 | " ..=*=&=.. ", | 75 | " ..=*=&=.. ", |
76 | " ..=.. ", | 76 | " ..=.. ", |
77 | " . "}; | 77 | " . "}; |
78 | 78 | ||
79 | 79 | ||
80 | NotesControl::NotesControl( QWidget *, const char * ) | 80 | NotesControl::NotesControl( QWidget *, const char * ) |
81 | : QVBox( 0, "NotesControl",/* WDestructiveClose | */WStyle_StaysOnTop ) | 81 | : QVBox( 0, "NotesControl",/* WDestructiveClose | */WStyle_StaysOnTop ) |
82 | // : QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup ) | 82 | // : QFrame( parent, name, WDestructiveClose | WStyle_StaysOnTop | WType_Popup ) |
83 | { | 83 | { |
84 | QDir d( QDir::homeDirPath()+"/notes"); | 84 | QDir d( QDir::homeDirPath()+"/notes"); |
85 | if( !d.exists()) { | 85 | if( !d.exists()) { |
86 | qDebug("make dir"); | 86 | qDebug("make dir"); |
87 | if(!d.mkdir( QDir::homeDirPath()+"/notes", true)) | 87 | if(!d.mkdir( QDir::homeDirPath()+"/notes", true)) |
88 | qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<make dir failed"); | 88 | qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<make dir failed"); |
89 | } | 89 | } |
90 | Config cfg("Notes"); | 90 | Config cfg("Notes"); |
91 | cfg.setGroup("Options"); | 91 | cfg.setGroup("Options"); |
92 | showMax = cfg.readBoolEntry("ShowMax", false); | 92 | showMax = cfg.readBoolEntry("ShowMax", false); |
93 | 93 | ||
94 | setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); | 94 | setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); |
95 | loaded=false; | 95 | loaded=false; |
96 | edited=false; | 96 | edited=false; |
97 | doPopulate=true; | 97 | doPopulate=true; |
98 | isNew=false; | 98 | isNew=false; |
99 | QVBox *vbox = new QVBox( this, "Vlayout" ); | 99 | QVBox *vbox = new QVBox( this, "Vlayout" ); |
100 | QHBox *hbox = new QHBox( this, "HLayout" ); | 100 | QHBox *hbox = new QHBox( this, "HLayout" ); |
101 | 101 | ||
102 | view = new QMultiLineEdit(vbox, "OpieNotesView"); | 102 | view = new QMultiLineEdit(vbox, "OpieNotesView"); |
103 | 103 | ||
104 | box = new QListBox(vbox, "OpieNotesBox"); | 104 | box = new QListBox(vbox, "OpieNotesBox"); |
105 | 105 | ||
106 | QPEApplication::setStylusOperation( box->viewport(),QPEApplication::RightOnHold); | 106 | QPEApplication::setStylusOperation( box->viewport(),QPEApplication::RightOnHold); |
107 | 107 | ||
108 | box->setFixedHeight(50); | 108 | box->setFixedHeight(50); |
109 | 109 | ||
110 | vbox->setMargin( 6 ); | 110 | vbox->setMargin( 6 ); |
111 | vbox->setSpacing( 3 ); | 111 | vbox->setSpacing( 3 ); |
112 | 112 | ||
113 | 113 | ||
114 | 114 | ||
115 | setFocusPolicy(QWidget::StrongFocus); | 115 | setFocusPolicy(QWidget::StrongFocus); |
116 | 116 | ||
117 | newButton= new QPushButton( hbox, "newButton" ); | 117 | newButton= new QPushButton( hbox, "newButton" ); |
118 | newButton->setText(tr("New")); | 118 | newButton->setText(tr("New")); |
119 | 119 | ||
120 | 120 | ||
121 | saveButton= new QPushButton( hbox, "saveButton" ); | 121 | saveButton= new QPushButton( hbox, "saveButton" ); |
122 | saveButton->setText(tr("Save")); | 122 | saveButton->setText(tr("Save")); |
123 | 123 | ||
124 | 124 | ||
125 | deleteButton= new QPushButton( hbox, "deleteButton" ); | 125 | deleteButton= new QPushButton( hbox, "deleteButton" ); |
126 | deleteButton->setText(tr("Delete")); | 126 | deleteButton->setText(tr("Delete")); |
127 | 127 | ||
128 | 128 | ||
129 | 129 | ||
130 | connect( box, SIGNAL( mouseButtonPressed( int, QListBoxItem *, const QPoint&)), | 130 | connect( box, SIGNAL( mouseButtonPressed(int,QListBoxItem*,const QPoint&)), |
131 | this,SLOT( boxPressed(int, QListBoxItem *, const QPoint&)) ); | 131 | this,SLOT( boxPressed(int,QListBoxItem*,const QPoint&)) ); |
132 | 132 | ||
133 | connect(box, SIGNAL(highlighted(const QString&)), this, SLOT(slotBoxSelected(const QString &))); | 133 | connect(box, SIGNAL(highlighted(const QString&)), this, SLOT(slotBoxSelected(const QString&))); |
134 | 134 | ||
135 | connect( &menuTimer, SIGNAL( timeout() ), SLOT( showMenu() ) ); | 135 | connect( &menuTimer, SIGNAL( timeout() ), SLOT( showMenu() ) ); |
136 | 136 | ||
137 | connect(view,SIGNAL( textChanged() ), this, SLOT(slotViewEdited() ) ); | 137 | connect(view,SIGNAL( textChanged() ), this, SLOT(slotViewEdited() ) ); |
138 | 138 | ||
139 | connect(newButton, SIGNAL(clicked()), this, SLOT(slotNewButton())); | 139 | connect(newButton, SIGNAL(clicked()), this, SLOT(slotNewButton())); |
140 | connect(saveButton, SIGNAL(clicked()), this, SLOT(slotSaveButton())); | 140 | connect(saveButton, SIGNAL(clicked()), this, SLOT(slotSaveButton())); |
141 | connect(deleteButton, SIGNAL(clicked()), this, SLOT(slotDeleteButtonClicked())); | 141 | connect(deleteButton, SIGNAL(clicked()), this, SLOT(slotDeleteButtonClicked())); |
142 | 142 | ||
143 | populateBox(); | 143 | populateBox(); |
144 | load(); | 144 | load(); |
145 | setCaption("Notes"); | 145 | setCaption("Notes"); |
146 | // parent->setFocus(); | 146 | // parent->setFocus(); |
147 | } | 147 | } |
148 | 148 | ||
149 | void NotesControl::slotSaveButton() { | 149 | void NotesControl::slotSaveButton() { |
150 | slotNewButton(); | 150 | slotNewButton(); |
151 | populateBox(); | 151 | populateBox(); |
152 | } | 152 | } |
153 | 153 | ||
154 | void NotesControl::slotDeleteButtonClicked() { | 154 | void NotesControl::slotDeleteButtonClicked() { |
155 | switch ( QMessageBox::warning(this,tr("Delete?") | 155 | switch ( QMessageBox::warning(this,tr("Delete?") |
156 | ,tr("Do you really want to<BR><B> delete</B> this note ?") | 156 | ,tr("Do you really want to<BR><B> delete</B> this note ?") |
157 | ,tr("Yes"),tr("No"),0,1,1) ) { | 157 | ,tr("Yes"),tr("No"),0,1,1) ) { |
158 | case 0: | 158 | case 0: |
159 | slotDeleteButton(); | 159 | slotDeleteButton(); |
160 | break; | 160 | break; |
161 | }; | 161 | }; |
162 | } | 162 | } |
163 | 163 | ||
164 | void NotesControl::slotDeleteButton() { | 164 | void NotesControl::slotDeleteButton() { |
165 | 165 | ||
166 | QString selectedText = box->currentText(); | 166 | QString selectedText = box->currentText(); |
167 | qDebug("deleting "+selectedText); | 167 | qDebug("deleting "+selectedText); |
168 | 168 | ||
169 | if( !selectedText.isEmpty()) { | 169 | if( !selectedText.isEmpty()) { |
170 | 170 | ||
171 | Config cfg("Notes"); | 171 | Config cfg("Notes"); |
172 | cfg.setGroup("Docs"); | 172 | cfg.setGroup("Docs"); |
173 | int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); | 173 | int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); |
174 | QString entryName, entryName2;; | 174 | QString entryName, entryName2;; |
175 | for ( int i = 0; i < noOfFiles; i++ ) { | 175 | for ( int i = 0; i < noOfFiles; i++ ) { |
176 | entryName.sprintf( "File%i", i + 1 ); | 176 | entryName.sprintf( "File%i", i + 1 ); |
177 | if(selectedText == cfg.readEntry( entryName )) { | 177 | if(selectedText == cfg.readEntry( entryName )) { |
178 | qDebug("removing %s, %d", selectedText.latin1(), i); | 178 | qDebug("removing %s, %d", selectedText.latin1(), i); |
179 | for ( int j = i; j < noOfFiles; j++ ) { | 179 | for ( int j = i; j < noOfFiles; j++ ) { |
180 | entryName.sprintf( "File%i", i + 1 ); | 180 | entryName.sprintf( "File%i", i + 1 ); |
181 | entryName2.sprintf( "File%i", i + 2 ); | 181 | entryName2.sprintf( "File%i", i + 2 ); |
182 | QString temp = cfg.readEntry(entryName2); | 182 | QString temp = cfg.readEntry(entryName2); |
183 | qDebug("move "+temp); | 183 | qDebug("move "+temp); |
184 | cfg.writeEntry(entryName, temp); | 184 | cfg.writeEntry(entryName, temp); |
185 | i++; | 185 | i++; |
186 | } | 186 | } |
187 | cfg.writeEntry("NumberOfFiles", noOfFiles-1 ); | 187 | cfg.writeEntry("NumberOfFiles", noOfFiles-1 ); |
188 | entryName.sprintf( "File%i", noOfFiles ); | 188 | entryName.sprintf( "File%i", noOfFiles ); |
189 | cfg.removeEntry(entryName); | 189 | cfg.removeEntry(entryName); |
190 | cfg.write(); | 190 | cfg.write(); |
191 | DocLnk nf(selectedText); | 191 | DocLnk nf(selectedText); |
192 | nf.removeFiles(); | 192 | nf.removeFiles(); |
193 | QString fi=QPEApplication::documentDir()+"/text/plain/"+selectedText+".desktop"; | 193 | QString fi=QPEApplication::documentDir()+"/text/plain/"+selectedText+".desktop"; |
194 | qDebug(fi); | 194 | qDebug(fi); |
195 | 195 | ||
196 | QFile f( fi); | 196 | QFile f( fi); |
197 | if( !f.remove()) qDebug(".desktop file not removed"); | 197 | if( !f.remove()) qDebug(".desktop file not removed"); |
198 | 198 | ||
199 | } | 199 | } |
200 | } | 200 | } |
201 | view->clear(); | 201 | view->clear(); |
202 | 202 | ||
203 | populateBox(); | 203 | populateBox(); |
204 | } | 204 | } |
205 | } | 205 | } |
206 | 206 | ||
207 | void NotesControl::slotNewButton() { | 207 | void NotesControl::slotNewButton() { |
208 | if(edited) save(); | 208 | if(edited) save(); |
209 | view->clear(); | 209 | view->clear(); |
210 | view->setFocus(); | 210 | view->setFocus(); |
211 | edited=false; | 211 | edited=false; |
212 | isNew=false; | 212 | isNew=false; |
213 | } | 213 | } |
214 | 214 | ||
215 | void NotesControl::slotBeamButton() { | 215 | void NotesControl::slotBeamButton() { |
216 | Ir ir; | 216 | Ir ir; |
217 | if(!ir.supported()){ | 217 | if(!ir.supported()){ |
218 | } else { | 218 | } else { |
219 | this->hide(); | 219 | this->hide(); |
220 | QString selectedText = box->currentText(); | 220 | QString selectedText = box->currentText(); |
221 | if( !selectedText.isEmpty()) { | 221 | if( !selectedText.isEmpty()) { |
222 | QString file = QDir::homeDirPath()+"/"+selectedText; | 222 | QString file = QDir::homeDirPath()+"/"+selectedText; |
223 | QFile f(file); | 223 | QFile f(file); |
224 | Ir *irFile = new Ir(this, "IR"); | 224 | Ir *irFile = new Ir(this, "IR"); |
225 | connect( irFile, SIGNAL(done(Ir*)), this, SLOT( slotBeamFinished( Ir * ))); | 225 | connect( irFile, SIGNAL(done(Ir*)), this, SLOT( slotBeamFinished(Ir*))); |
226 | irFile->send( file, "Note", "text/plain" ); | 226 | irFile->send( file, "Note", "text/plain" ); |
227 | } | 227 | } |
228 | } | 228 | } |
229 | } | 229 | } |
230 | 230 | ||
231 | void NotesControl::slotBeamFinished(Ir *) { | 231 | void NotesControl::slotBeamFinished(Ir *) { |
232 | this->show(); | 232 | this->show(); |
233 | } | 233 | } |
234 | 234 | ||
235 | void NotesControl::boxPressed(int mouse, QListBoxItem *, const QPoint&) { | 235 | void NotesControl::boxPressed(int mouse, QListBoxItem *, const QPoint&) { |
236 | switch (mouse) { | 236 | switch (mouse) { |
237 | case 1:{ | 237 | case 1:{ |
238 | } | 238 | } |
239 | break; | 239 | break; |
240 | case 2: | 240 | case 2: |
241 | menuTimer.start( 500, TRUE ); | 241 | menuTimer.start( 500, TRUE ); |
242 | break; | 242 | break; |
243 | }; | 243 | }; |
244 | } | 244 | } |
245 | 245 | ||
246 | void NotesControl::slotBoxSelected(const QString &itemString) { | 246 | void NotesControl::slotBoxSelected(const QString &itemString) { |
247 | if(edited) { | 247 | if(edited) { |
248 | save(); | 248 | save(); |
249 | } | 249 | } |
250 | loaded=false; | 250 | loaded=false; |
251 | edited=false; | 251 | edited=false; |
252 | load(itemString); | 252 | load(itemString); |
253 | } | 253 | } |
254 | 254 | ||
255 | 255 | ||
256 | void NotesControl::showMenu() { | 256 | void NotesControl::showMenu() { |
257 | QPopupMenu *m = new QPopupMenu(0); | 257 | QPopupMenu *m = new QPopupMenu(0); |
258 | m->insertItem( tr( "Beam Out" ), this, SLOT( slotBeamButton() )); | 258 | m->insertItem( tr( "Beam Out" ), this, SLOT( slotBeamButton() )); |
259 | m->insertItem( tr( "Search For..." ), this, SLOT( slotSearch() )); | 259 | m->insertItem( tr( "Search For..." ), this, SLOT( slotSearch() )); |
260 | m->insertItem( tr( "Toggle Maximized" ), this, SLOT( slotShowMax() )); | 260 | m->insertItem( tr( "Toggle Maximized" ), this, SLOT( slotShowMax() )); |
261 | m->insertSeparator(); | 261 | m->insertSeparator(); |
262 | m->insertItem( tr( "Delete" ), this, SLOT( slotDeleteButton() )); | 262 | m->insertItem( tr( "Delete" ), this, SLOT( slotDeleteButton() )); |
263 | m->setFocus(); | 263 | m->setFocus(); |
264 | m->exec( QCursor::pos() ); | 264 | m->exec( QCursor::pos() ); |
265 | 265 | ||
266 | if(m) delete m; | 266 | if(m) delete m; |
267 | } | 267 | } |
268 | 268 | ||
269 | void NotesControl::focusOutEvent ( QFocusEvent * e) { | 269 | void NotesControl::focusOutEvent ( QFocusEvent * e) { |
270 | if( e->reason() == QFocusEvent::Popup) | 270 | if( e->reason() == QFocusEvent::Popup) |
271 | save(); | 271 | save(); |
272 | else { | 272 | else { |
273 | if(!loaded) { | 273 | if(!loaded) { |
274 | populateBox(); | 274 | populateBox(); |
275 | load(); | 275 | load(); |
276 | } | 276 | } |
277 | } | 277 | } |
278 | QWidget::focusOutEvent(e); | 278 | QWidget::focusOutEvent(e); |
279 | } | 279 | } |
280 | 280 | ||
281 | void NotesControl::save() { | 281 | void NotesControl::save() { |
282 | Config cfg("Notes"); | 282 | Config cfg("Notes"); |
283 | cfg.setGroup("Docs"); | 283 | cfg.setGroup("Docs"); |
284 | if( edited) { | 284 | if( edited) { |
285 | // qDebug("is edited"); | 285 | // qDebug("is edited"); |
286 | QString rt = view->text(); | 286 | QString rt = view->text(); |
287 | if( rt.length()>1) { | 287 | if( rt.length()>1) { |
288 | QString pt = rt.simplifyWhiteSpace(); | 288 | QString pt = rt.simplifyWhiteSpace(); |
289 | int i = pt.find( ' ', pt.find( ' ' )+2 ); | 289 | int i = pt.find( ' ', pt.find( ' ' )+2 ); |
290 | QString docname = pt; | 290 | QString docname = pt; |
291 | if ( i > 0 ) | 291 | if ( i > 0 ) |
292 | docname = pt.left(i); | 292 | docname = pt.left(i); |
293 | // remove "." at the beginning | 293 | // remove "." at the beginning |
294 | while( docname.startsWith( "." ) ) | 294 | while( docname.startsWith( "." ) ) |
295 | docname = docname.mid( 1 ); | 295 | docname = docname.mid( 1 ); |
296 | docname.replace( QRegExp("/"), "_" ); | 296 | docname.replace( QRegExp("/"), "_" ); |
297 | // cut the length. filenames longer than that don't make sense | 297 | // cut the length. filenames longer than that don't make sense |
298 | // and something goes wrong when they get too long. | 298 | // and something goes wrong when they get too long. |
299 | if ( docname.length() > 40 ) | 299 | if ( docname.length() > 40 ) |
300 | docname = docname.left(40); | 300 | docname = docname.left(40); |
301 | if ( docname.isEmpty() ) | 301 | if ( docname.isEmpty() ) |
302 | docname = "Empty Text"; | 302 | docname = "Empty Text"; |
303 | // qDebug(docname); | 303 | // qDebug(docname); |
304 | 304 | ||
305 | if( oldDocName != docname) { | 305 | if( oldDocName != docname) { |
306 | int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); | 306 | int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); |
307 | QString entryName; | 307 | QString entryName; |
308 | entryName.sprintf( "File%i", noOfFiles + 1 ); | 308 | entryName.sprintf( "File%i", noOfFiles + 1 ); |
309 | cfg.writeEntry( entryName,docname ); | 309 | cfg.writeEntry( entryName,docname ); |
310 | cfg.writeEntry("NumberOfFiles", noOfFiles+1 ); | 310 | cfg.writeEntry("NumberOfFiles", noOfFiles+1 ); |
311 | cfg.write(); | 311 | cfg.write(); |
312 | } | 312 | } |
313 | // else | 313 | // else |
314 | // qDebug("oldname equals docname"); | 314 | // qDebug("oldname equals docname"); |
315 | 315 | ||
316 | doc = new DocLnk(docname); | 316 | doc = new DocLnk(docname); |
317 | if(QFile(doc->linkFile()).exists()) | 317 | if(QFile(doc->linkFile()).exists()) |
318 | qDebug("puppie"); | 318 | qDebug("puppie"); |
319 | doc->setType("text/plain"); | 319 | doc->setType("text/plain"); |
320 | doc->setName(docname); | 320 | doc->setName(docname); |
321 | QString temp = docname.replace( QRegExp(" "), "_" ); | 321 | QString temp = docname.replace( QRegExp(" "), "_" ); |
diff --git a/noncore/applets/wirelessapplet/wireless.cpp b/noncore/applets/wirelessapplet/wireless.cpp index 9ce6618..6ef2e44 100644 --- a/noncore/applets/wirelessapplet/wireless.cpp +++ b/noncore/applets/wirelessapplet/wireless.cpp | |||
@@ -28,203 +28,203 @@ | |||
28 | #include <qpe/config.h> | 28 | #include <qpe/config.h> |
29 | 29 | ||
30 | /* QT */ | 30 | /* QT */ |
31 | #include <qradiobutton.h> | 31 | #include <qradiobutton.h> |
32 | #include <qpushbutton.h> | 32 | #include <qpushbutton.h> |
33 | #include <qpainter.h> | 33 | #include <qpainter.h> |
34 | #include <qlabel.h> | 34 | #include <qlabel.h> |
35 | #include <qslider.h> | 35 | #include <qslider.h> |
36 | #include <qbuttongroup.h> | 36 | #include <qbuttongroup.h> |
37 | #include <qlayout.h> | 37 | #include <qlayout.h> |
38 | #include <qfile.h> | 38 | #include <qfile.h> |
39 | #include <qtextstream.h> | 39 | #include <qtextstream.h> |
40 | 40 | ||
41 | /* STD */ | 41 | /* STD */ |
42 | #include <sys/types.h> | 42 | #include <sys/types.h> |
43 | #include <signal.h> | 43 | #include <signal.h> |
44 | 44 | ||
45 | #define STYLE_BARS 0 | 45 | #define STYLE_BARS 0 |
46 | #define STYLE_ANTENNA 1 | 46 | #define STYLE_ANTENNA 1 |
47 | 47 | ||
48 | //#define MDEBUG | 48 | //#define MDEBUG |
49 | #undef MDEBUG | 49 | #undef MDEBUG |
50 | 50 | ||
51 | WirelessControl::WirelessControl( WirelessApplet *applet, QWidget *parent, const char *name ) | 51 | WirelessControl::WirelessControl( WirelessApplet *applet, QWidget *parent, const char *name ) |
52 | : QFrame( parent, name, WStyle_StaysOnTop | WType_Popup ), applet( applet ) | 52 | : QFrame( parent, name, WStyle_StaysOnTop | WType_Popup ), applet( applet ) |
53 | { | 53 | { |
54 | 54 | ||
55 | readConfig(); | 55 | readConfig(); |
56 | writeConfigEntry( "UpdateFrequency", updateFrequency ); | 56 | writeConfigEntry( "UpdateFrequency", updateFrequency ); |
57 | writeConfigEntry( "DisplayStyle", displayStyle ); | 57 | writeConfigEntry( "DisplayStyle", displayStyle ); |
58 | 58 | ||
59 | setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); | 59 | setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); |
60 | QGridLayout *grid = new QGridLayout( this, 3, 2, 6, 2, "top layout" ); | 60 | QGridLayout *grid = new QGridLayout( this, 3, 2, 6, 2, "top layout" ); |
61 | 61 | ||
62 | /* status label */ | 62 | /* status label */ |
63 | 63 | ||
64 | statusLabel = new QLabel( this, "statuslabel" ); | 64 | statusLabel = new QLabel( this, "statuslabel" ); |
65 | QString text( "Wireless Status:<br>" | 65 | QString text( "Wireless Status:<br>" |
66 | "*** Unknown ***<br>" | 66 | "*** Unknown ***<br>" |
67 | "Card not inserted ?<br>" | 67 | "Card not inserted ?<br>" |
68 | "Or Sharp ROM ?<br>" | 68 | "Or Sharp ROM ?<br>" |
69 | "CELL: 00:00:00:00:00:00" ); | 69 | "CELL: 00:00:00:00:00:00" ); |
70 | /* QString text( "Station: Unknown<br>" | 70 | /* QString text( "Station: Unknown<br>" |
71 | "ESSID: Unknown<br>" | 71 | "ESSID: Unknown<br>" |
72 | "MODE: Unknown<br>" | 72 | "MODE: Unknown<br>" |
73 | "FREQ: Unknown<br>" | 73 | "FREQ: Unknown<br>" |
74 | "CELL: AA:BB:CC:DD:EE:FF" ); */ | 74 | "CELL: AA:BB:CC:DD:EE:FF" ); */ |
75 | statusLabel->setText( text ); | 75 | statusLabel->setText( text ); |
76 | statusLabel->setFixedSize( statusLabel->sizeHint() ); | 76 | statusLabel->setFixedSize( statusLabel->sizeHint() ); |
77 | grid->addWidget( statusLabel, 0, 0 ); | 77 | grid->addWidget( statusLabel, 0, 0 ); |
78 | 78 | ||
79 | /* visualization group box */ | 79 | /* visualization group box */ |
80 | 80 | ||
81 | QButtonGroup* group = new QButtonGroup( 1, Qt::Horizontal, "Visualization", this ); | 81 | QButtonGroup* group = new QButtonGroup( 1, Qt::Horizontal, "Visualization", this ); |
82 | QRadioButton* r1 = new QRadioButton( "Color Bars", group ); | 82 | QRadioButton* r1 = new QRadioButton( "Color Bars", group ); |
83 | QRadioButton* r2 = new QRadioButton( "Antenna", group ); | 83 | QRadioButton* r2 = new QRadioButton( "Antenna", group ); |
84 | r1->setFocusPolicy( QWidget::NoFocus ); | 84 | r1->setFocusPolicy( QWidget::NoFocus ); |
85 | r2->setFocusPolicy( QWidget::NoFocus ); | 85 | r2->setFocusPolicy( QWidget::NoFocus ); |
86 | group->setFocusPolicy( QWidget::NoFocus ); | 86 | group->setFocusPolicy( QWidget::NoFocus ); |
87 | group->setButton( displayStyle ); | 87 | group->setButton( displayStyle ); |
88 | grid->addWidget( group, 0, 1 ); | 88 | grid->addWidget( group, 0, 1 ); |
89 | 89 | ||
90 | /* quality graph */ | 90 | /* quality graph */ |
91 | 91 | ||
92 | mgraph = new MGraph( this ); | 92 | mgraph = new MGraph( this ); |
93 | mgraph->setFrameStyle( QFrame::Panel | QFrame::Sunken ); | 93 | mgraph->setFrameStyle( QFrame::Panel | QFrame::Sunken ); |
94 | mgraph->setMin( 0 ); | 94 | mgraph->setMin( 0 ); |
95 | mgraph->setMax( 92 ); | 95 | mgraph->setMax( 92 ); |
96 | grid->addWidget( mgraph, 1, 0 ); | 96 | grid->addWidget( mgraph, 1, 0 ); |
97 | mgraph->setFocusPolicy( QWidget::NoFocus ); | 97 | mgraph->setFocusPolicy( QWidget::NoFocus ); |
98 | 98 | ||
99 | /* advanced configuration Button */ | 99 | /* advanced configuration Button */ |
100 | 100 | ||
101 | QPushButton* advanced = new QPushButton( "Advanced...", this ); | 101 | QPushButton* advanced = new QPushButton( "Advanced...", this ); |
102 | advanced->setFocusPolicy( QWidget::NoFocus ); | 102 | advanced->setFocusPolicy( QWidget::NoFocus ); |
103 | grid->addWidget( advanced, 2, 0, Qt::AlignCenter ); | 103 | grid->addWidget( advanced, 2, 0, Qt::AlignCenter ); |
104 | connect( advanced, SIGNAL( clicked() ), | 104 | connect( advanced, SIGNAL( clicked() ), |
105 | this, SLOT( advancedConfigClicked() ) ); | 105 | this, SLOT( advancedConfigClicked() ) ); |
106 | 106 | ||
107 | /* update Frequency Label */ | 107 | /* update Frequency Label */ |
108 | 108 | ||
109 | updateLabel = new QLabel( this ); | 109 | updateLabel = new QLabel( this ); |
110 | text.sprintf( "Update every %d s", updateFrequency ); | 110 | text.sprintf( "Update every %d s", updateFrequency ); |
111 | updateLabel->setText( text ); | 111 | updateLabel->setText( text ); |
112 | grid->addWidget( updateLabel, 2, 1 ); | 112 | grid->addWidget( updateLabel, 2, 1 ); |
113 | 113 | ||
114 | /* update Frequency Slider */ | 114 | /* update Frequency Slider */ |
115 | 115 | ||
116 | QSlider* updateSlider = new QSlider( QSlider::Horizontal, this ); | 116 | QSlider* updateSlider = new QSlider( QSlider::Horizontal, this ); |
117 | updateSlider->setRange( 0, 9 ); | 117 | updateSlider->setRange( 0, 9 ); |
118 | updateSlider->setValue( updateFrequency ); | 118 | updateSlider->setValue( updateFrequency ); |
119 | updateSlider->setTickmarks( QSlider::Both ); | 119 | updateSlider->setTickmarks( QSlider::Both ); |
120 | updateSlider->setTickInterval( 1 ); | 120 | updateSlider->setTickInterval( 1 ); |
121 | updateSlider->setSteps( 1, 1 ); | 121 | updateSlider->setSteps( 1, 1 ); |
122 | updateSlider->setFocusPolicy( QWidget::NoFocus ); | 122 | updateSlider->setFocusPolicy( QWidget::NoFocus ); |
123 | grid->addWidget( updateSlider, 1, 1 ); | 123 | grid->addWidget( updateSlider, 1, 1 ); |
124 | connect( updateSlider, SIGNAL( valueChanged( int ) ), | 124 | connect( updateSlider, SIGNAL( valueChanged(int) ), |
125 | this, SLOT( updateDelayChange( int ) ) ); | 125 | this, SLOT( updateDelayChange(int) ) ); |
126 | 126 | ||
127 | setFixedSize( sizeHint() ); | 127 | setFixedSize( sizeHint() ); |
128 | setFocusPolicy( QWidget::NoFocus ); | 128 | setFocusPolicy( QWidget::NoFocus ); |
129 | 129 | ||
130 | applet->displayStyleChange( displayStyle ); | 130 | applet->displayStyleChange( displayStyle ); |
131 | applet->updateDelayChange( updateFrequency ); | 131 | applet->updateDelayChange( updateFrequency ); |
132 | 132 | ||
133 | connect( group, SIGNAL( clicked( int ) ), | 133 | connect( group, SIGNAL( clicked(int) ), |
134 | this, SLOT( displayStyleChange( int ) ) ); | 134 | this, SLOT( displayStyleChange(int) ) ); |
135 | 135 | ||
136 | applet->updateDHCPConfig( rocESSID, rocFREQ, rocAP, rocMODE ); | 136 | applet->updateDHCPConfig( rocESSID, rocFREQ, rocAP, rocMODE ); |
137 | } | 137 | } |
138 | 138 | ||
139 | void WirelessControl::advancedConfigClicked() | 139 | void WirelessControl::advancedConfigClicked() |
140 | { | 140 | { |
141 | AdvancedConfig * a = new AdvancedConfig( this, "dialog", TRUE ); | 141 | AdvancedConfig * a = new AdvancedConfig( this, "dialog", TRUE ); |
142 | int result = a->exec(); | 142 | int result = a->exec(); |
143 | a->hide(); | 143 | a->hide(); |
144 | delete a; | 144 | delete a; |
145 | if ( result == QDialog::Accepted ) | 145 | if ( result == QDialog::Accepted ) |
146 | { | 146 | { |
147 | readConfig(); | 147 | readConfig(); |
148 | applet->updateDHCPConfig( rocESSID, rocFREQ, rocAP, rocMODE ); | 148 | applet->updateDHCPConfig( rocESSID, rocFREQ, rocAP, rocMODE ); |
149 | } | 149 | } |
150 | } | 150 | } |
151 | 151 | ||
152 | void WirelessControl::updateDelayChange( int delay ) | 152 | void WirelessControl::updateDelayChange( int delay ) |
153 | { | 153 | { |
154 | QString text; | 154 | QString text; |
155 | text.sprintf( "Update every %d s", delay ); | 155 | text.sprintf( "Update every %d s", delay ); |
156 | updateLabel->setText( text ); | 156 | updateLabel->setText( text ); |
157 | applet->updateDelayChange( delay ); | 157 | applet->updateDelayChange( delay ); |
158 | writeConfigEntry( "UpdateFrequency", delay ); | 158 | writeConfigEntry( "UpdateFrequency", delay ); |
159 | } | 159 | } |
160 | 160 | ||
161 | void WirelessControl::displayStyleChange( int style ) | 161 | void WirelessControl::displayStyleChange( int style ) |
162 | { | 162 | { |
163 | applet->displayStyleChange( style ); | 163 | applet->displayStyleChange( style ); |
164 | writeConfigEntry( "DisplayStyle", style ); | 164 | writeConfigEntry( "DisplayStyle", style ); |
165 | } | 165 | } |
166 | 166 | ||
167 | void WirelessControl::show ( bool ) | 167 | void WirelessControl::show ( bool ) |
168 | { | 168 | { |
169 | QPoint curPos = applet->mapToGlobal( QPoint ( 0, 0 ) ); | 169 | QPoint curPos = applet->mapToGlobal( QPoint ( 0, 0 ) ); |
170 | 170 | ||
171 | int w = sizeHint().width(); | 171 | int w = sizeHint().width(); |
172 | int x = curPos.x() - ( w / 2 ); | 172 | int x = curPos.x() - ( w / 2 ); |
173 | 173 | ||
174 | if ( ( x + w ) > QPEApplication::desktop() ->width() ) | 174 | if ( ( x + w ) > QPEApplication::desktop() ->width() ) |
175 | x = QPEApplication::desktop ( ) -> width ( ) - w; | 175 | x = QPEApplication::desktop ( ) -> width ( ) - w; |
176 | 176 | ||
177 | move( x, curPos.y () - sizeHint().height () ); | 177 | move( x, curPos.y () - sizeHint().height () ); |
178 | QFrame::show(); | 178 | QFrame::show(); |
179 | } | 179 | } |
180 | 180 | ||
181 | void WirelessControl::readConfig() | 181 | void WirelessControl::readConfig() |
182 | { | 182 | { |
183 | Config cfg( "qpe" ); | 183 | Config cfg( "qpe" ); |
184 | cfg.setGroup( "Wireless" ); | 184 | cfg.setGroup( "Wireless" ); |
185 | 185 | ||
186 | updateFrequency = cfg.readNumEntry( "UpdateFrequency", 2 ); | 186 | updateFrequency = cfg.readNumEntry( "UpdateFrequency", 2 ); |
187 | displayStyle = cfg.readNumEntry( "DisplayStyle", STYLE_ANTENNA ); | 187 | displayStyle = cfg.readNumEntry( "DisplayStyle", STYLE_ANTENNA ); |
188 | rocESSID = cfg.readBoolEntry( "renew_dhcp_on_essid_change", false ); | 188 | rocESSID = cfg.readBoolEntry( "renew_dhcp_on_essid_change", false ); |
189 | rocFREQ = cfg.readBoolEntry( "renew_dhcp_on_freq_change", false ); | 189 | rocFREQ = cfg.readBoolEntry( "renew_dhcp_on_freq_change", false ); |
190 | rocAP = cfg.readBoolEntry( "renew_dhcp_on_ap_change", false ); | 190 | rocAP = cfg.readBoolEntry( "renew_dhcp_on_ap_change", false ); |
191 | rocMODE = cfg.readBoolEntry( "renew_dhcp_on_mode_change", false ); | 191 | rocMODE = cfg.readBoolEntry( "renew_dhcp_on_mode_change", false ); |
192 | } | 192 | } |
193 | 193 | ||
194 | void WirelessControl::writeConfigEntry( const char *entry, int val ) | 194 | void WirelessControl::writeConfigEntry( const char *entry, int val ) |
195 | { | 195 | { |
196 | Config cfg( "qpe" ); | 196 | Config cfg( "qpe" ); |
197 | cfg.setGroup( "Wireless" ); | 197 | cfg.setGroup( "Wireless" ); |
198 | cfg.writeEntry( entry, val ); | 198 | cfg.writeEntry( entry, val ); |
199 | } | 199 | } |
200 | 200 | ||
201 | //=========================================================================== | 201 | //=========================================================================== |
202 | 202 | ||
203 | WirelessApplet::WirelessApplet( QWidget *parent, const char *name ) | 203 | WirelessApplet::WirelessApplet( QWidget *parent, const char *name ) |
204 | : QWidget( parent, name ), visualStyle( STYLE_ANTENNA ), | 204 | : QWidget( parent, name ), visualStyle( STYLE_ANTENNA ), |
205 | timer( 0 ), interface( 0 ), oldiface( 0 ), | 205 | timer( 0 ), interface( 0 ), oldiface( 0 ), |
206 | rocESSID( false ), rocFREQ( false ), rocAP( false ), rocMODE( false ) | 206 | rocESSID( false ), rocFREQ( false ), rocAP( false ), rocMODE( false ) |
207 | { | 207 | { |
208 | setFixedHeight( 18 ); | 208 | setFixedHeight( 18 ); |
209 | setFixedWidth( 14 ); | 209 | setFixedWidth( 14 ); |
210 | status = new WirelessControl( this, this, "wireless status" ); | 210 | status = new WirelessControl( this, this, "wireless status" ); |
211 | } | 211 | } |
212 | 212 | ||
213 | void WirelessApplet::checkInterface() | 213 | void WirelessApplet::checkInterface() |
214 | { | 214 | { |
215 | interface = 0L; | 215 | interface = 0L; |
216 | ONetwork* net = ONetwork::instance(); | 216 | ONetwork* net = ONetwork::instance(); |
217 | net->synchronize(); | 217 | net->synchronize(); |
218 | ONetwork::InterfaceIterator it = net->iterator(); | 218 | ONetwork::InterfaceIterator it = net->iterator(); |
219 | 219 | ||
220 | while ( it.current() && !it.current()->isWireless() ) ++it; | 220 | while ( it.current() && !it.current()->isWireless() ) ++it; |
221 | 221 | ||
222 | if ( it.current() && it.current()->isWireless() ) | 222 | if ( it.current() && it.current()->isWireless() ) |
223 | interface = static_cast<OWirelessNetworkInterface*>( it.current() ); | 223 | interface = static_cast<OWirelessNetworkInterface*>( it.current() ); |
224 | 224 | ||
225 | if ( interface ) | 225 | if ( interface ) |
226 | { | 226 | { |
227 | #ifdef MDEBUG | 227 | #ifdef MDEBUG |
228 | qDebug( "WIFIAPPLET: using interface '%s'", ( const char* ) interface->name() ); | 228 | qDebug( "WIFIAPPLET: using interface '%s'", ( const char* ) interface->name() ); |
229 | #endif | 229 | #endif |
230 | 230 | ||
diff --git a/noncore/applets/zkbapplet/zkbwidget.cpp b/noncore/applets/zkbapplet/zkbwidget.cpp index 0b5ab78..0083e9b 100644 --- a/noncore/applets/zkbapplet/zkbwidget.cpp +++ b/noncore/applets/zkbapplet/zkbwidget.cpp | |||
@@ -1,118 +1,118 @@ | |||
1 | #include <opie2/otaskbarapplet.h> | 1 | #include <opie2/otaskbarapplet.h> |
2 | #include <qpe/qcopenvelope_qws.h> | 2 | #include <qpe/qcopenvelope_qws.h> |
3 | #include <qpe/applnk.h> | 3 | #include <qpe/applnk.h> |
4 | #include <qpe/qpeapplication.h> | 4 | #include <qpe/qpeapplication.h> |
5 | #include <qpe/resource.h> | 5 | #include <qpe/resource.h> |
6 | #include <stdio.h> | 6 | #include <stdio.h> |
7 | #include <unistd.h> | 7 | #include <unistd.h> |
8 | #include "zkbwidget.h" | 8 | #include "zkbwidget.h" |
9 | #include "zkbcfg.h" | 9 | #include "zkbcfg.h" |
10 | 10 | ||
11 | ZkbWidget::ZkbWidget(QWidget* parent):QLabel(parent),keymap(0), | 11 | ZkbWidget::ZkbWidget(QWidget* parent):QLabel(parent),keymap(0), |
12 | disabled(Resource::loadPixmap("zkb-disabled")) { | 12 | disabled(Resource::loadPixmap("zkb-disabled")) { |
13 | 13 | ||
14 | labels = new QPopupMenu(); | 14 | labels = new QPopupMenu(); |
15 | connect(labels, SIGNAL(activated(int)), this, | 15 | connect(labels, SIGNAL(activated(int)), this, |
16 | SLOT(labelChanged(int))); | 16 | SLOT(labelChanged(int))); |
17 | 17 | ||
18 | loadKeymap(); | 18 | loadKeymap(); |
19 | 19 | ||
20 | channel = new QCopChannel("QPE/zkb", this); | 20 | channel = new QCopChannel("QPE/zkb", this); |
21 | connect(channel, SIGNAL(received(const QCString&, const QByteArray&)), | 21 | connect(channel, SIGNAL(received(const QCString&,const QByteArray&)), |
22 | this, SLOT(signalReceived(const QCString&, const QByteArray&))); | 22 | this, SLOT(signalReceived(const QCString&,const QByteArray&))); |
23 | setFixedWidth ( AppLnk::smallIconSize() ); | 23 | setFixedWidth ( AppLnk::smallIconSize() ); |
24 | setFixedHeight ( AppLnk::smallIconSize() ); | 24 | setFixedHeight ( AppLnk::smallIconSize() ); |
25 | } | 25 | } |
26 | 26 | ||
27 | ZkbWidget::~ZkbWidget() { | 27 | ZkbWidget::~ZkbWidget() { |
28 | } | 28 | } |
29 | 29 | ||
30 | int ZkbWidget::position() | 30 | int ZkbWidget::position() |
31 | { | 31 | { |
32 | return 8; | 32 | return 8; |
33 | } | 33 | } |
34 | 34 | ||
35 | bool ZkbWidget::loadKeymap() { | 35 | bool ZkbWidget::loadKeymap() { |
36 | ZkbConfig c(QPEApplication::qpeDir()+"/share/zkb"); | 36 | ZkbConfig c(QPEApplication::qpeDir()+"/share/zkb"); |
37 | QFontMetrics fm(font()); | 37 | QFontMetrics fm(font()); |
38 | 38 | ||
39 | if (keymap != 0) { | 39 | if (keymap != 0) { |
40 | delete keymap; | 40 | delete keymap; |
41 | keymap = 0; | 41 | keymap = 0; |
42 | } | 42 | } |
43 | 43 | ||
44 | Keymap* km = new Keymap(); | 44 | Keymap* km = new Keymap(); |
45 | 45 | ||
46 | if (!c.load("zkb.xml", *km, "")) { | 46 | if (!c.load("zkb.xml", *km, "")) { |
47 | delete km; | 47 | delete km; |
48 | setPixmap(disabled); | 48 | setPixmap(disabled); |
49 | return false; | 49 | return false; |
50 | } | 50 | } |
51 | 51 | ||
52 | connect(km, SIGNAL(stateChanged(const QString&)), | 52 | connect(km, SIGNAL(stateChanged(const QString&)), |
53 | this, SLOT(stateChanged(const QString&))); | 53 | this, SLOT(stateChanged(const QString&))); |
54 | 54 | ||
55 | qwsServer->setKeyboardFilter(km); | 55 | qwsServer->setKeyboardFilter(km); |
56 | 56 | ||
57 | Keymap* oldkm = keymap; | 57 | Keymap* oldkm = keymap; |
58 | keymap = km; | 58 | keymap = km; |
59 | 59 | ||
60 | if (oldkm != 0) { | 60 | if (oldkm != 0) { |
61 | delete oldkm; | 61 | delete oldkm; |
62 | } | 62 | } |
63 | 63 | ||
64 | setText(keymap->getCurrentLabel()); | 64 | setText(keymap->getCurrentLabel()); |
65 | 65 | ||
66 | labels->clear(); | 66 | labels->clear(); |
67 | QStringList l = keymap->listLabels(); | 67 | QStringList l = keymap->listLabels(); |
68 | labels->insertItem(disabled, 0, 0); | 68 | labels->insertItem(disabled, 0, 0); |
69 | int n = 1; | 69 | int n = 1; |
70 | w = 0; | 70 | w = 0; |
71 | for(QStringList::Iterator it = l.begin(); it != l.end(); | 71 | for(QStringList::Iterator it = l.begin(); it != l.end(); |
72 | ++it, n++) { | 72 | ++it, n++) { |
73 | 73 | ||
74 | // printf("label: %s\n", (const char*) (*it).utf8()); | 74 | // printf("label: %s\n", (const char*) (*it).utf8()); |
75 | 75 | ||
76 | labels->insertItem(*it, n, n); | 76 | labels->insertItem(*it, n, n); |
77 | int lw = fm.width(*it); | 77 | int lw = fm.width(*it); |
78 | if (lw > w) { | 78 | if (lw > w) { |
79 | w = lw; | 79 | w = lw; |
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
83 | if (w == 0) { | 83 | if (w == 0) { |
84 | hide(); | 84 | hide(); |
85 | } else { | 85 | } else { |
86 | show(); | 86 | show(); |
87 | } | 87 | } |
88 | return true; | 88 | return true; |
89 | } | 89 | } |
90 | 90 | ||
91 | QSize ZkbWidget::sizeHint() const { | 91 | QSize ZkbWidget::sizeHint() const { |
92 | return QSize(AppLnk::smallIconSize(),AppLnk::smallIconSize()); | 92 | return QSize(AppLnk::smallIconSize(),AppLnk::smallIconSize()); |
93 | } | 93 | } |
94 | 94 | ||
95 | void ZkbWidget::stateChanged(const QString& s) { | 95 | void ZkbWidget::stateChanged(const QString& s) { |
96 | //qDebug("stateChanged: %s\n", (const char*) s.utf8()); | 96 | //qDebug("stateChanged: %s\n", (const char*) s.utf8()); |
97 | setText(s); | 97 | setText(s); |
98 | } | 98 | } |
99 | 99 | ||
100 | void ZkbWidget::labelChanged(int id) { | 100 | void ZkbWidget::labelChanged(int id) { |
101 | if (id == 0) { | 101 | if (id == 0) { |
102 | keymap->disable(); | 102 | keymap->disable(); |
103 | setPixmap(disabled); | 103 | setPixmap(disabled); |
104 | return; | 104 | return; |
105 | } | 105 | } |
106 | 106 | ||
107 | keymap->enable(); | 107 | keymap->enable(); |
108 | 108 | ||
109 | QStringList l = keymap->listLabels(); | 109 | QStringList l = keymap->listLabels(); |
110 | QString lbl = l[id-1]; | 110 | QString lbl = l[id-1]; |
111 | 111 | ||
112 | //printf("labelChanged: %s\n", (const char*) lbl.utf8()); | 112 | //printf("labelChanged: %s\n", (const char*) lbl.utf8()); |
113 | State* state = keymap->getStateByLabel(lbl); | 113 | State* state = keymap->getStateByLabel(lbl); |
114 | if (state != 0) { | 114 | if (state != 0) { |
115 | keymap->setCurrentState(state); | 115 | keymap->setCurrentState(state); |
116 | setText(lbl); | 116 | setText(lbl); |
117 | } | 117 | } |
118 | } | 118 | } |
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp index c44d387..2ba3dca 100644 --- a/noncore/apps/advancedfm/advancedfm.cpp +++ b/noncore/apps/advancedfm/advancedfm.cpp | |||
@@ -1,149 +1,149 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | AdvancedFm.cpp | 2 | AdvancedFm.cpp |
3 | ------------------- | 3 | ------------------- |
4 | ** Created: Sat Mar 9 23:33:09 2002 | 4 | ** Created: Sat Mar 9 23:33:09 2002 |
5 | copyright : (C) 2002 by ljp | 5 | copyright : (C) 2002 by ljp |
6 | email : ljp@llornkcor.com | 6 | email : ljp@llornkcor.com |
7 | * This program is free software; you can redistribute it and/or modify * | 7 | * This program is free software; you can redistribute it and/or modify * |
8 | * it under the terms of the GNU General Public License as published by * | 8 | * it under the terms of the GNU General Public License as published by * |
9 | * the Free Software Foundation; either version 2 of the License, or * | 9 | * the Free Software Foundation; either version 2 of the License, or * |
10 | * (at your option) any later version. * | 10 | * (at your option) any later version. * |
11 | ***************************************************************************/ | 11 | ***************************************************************************/ |
12 | #define DEVELOPERS_VERSION | 12 | #define DEVELOPERS_VERSION |
13 | #include "advancedfm.h" | 13 | #include "advancedfm.h" |
14 | 14 | ||
15 | #include <qpe/qpeapplication.h> | 15 | #include <qpe/qpeapplication.h> |
16 | #include <qpe/config.h> | 16 | #include <qpe/config.h> |
17 | #include <qpe/mimetype.h> | 17 | #include <qpe/mimetype.h> |
18 | #include <qpe/applnk.h> | 18 | #include <qpe/applnk.h> |
19 | #include <qpe/resource.h> | 19 | #include <qpe/resource.h> |
20 | #include <qpe/menubutton.h> | 20 | #include <qpe/menubutton.h> |
21 | 21 | ||
22 | #include <qcombobox.h> | 22 | #include <qcombobox.h> |
23 | #include <qpopupmenu.h> | 23 | #include <qpopupmenu.h> |
24 | #include <qlistview.h> | 24 | #include <qlistview.h> |
25 | #include <qmessagebox.h> | 25 | #include <qmessagebox.h> |
26 | #include <qlineedit.h> | 26 | #include <qlineedit.h> |
27 | 27 | ||
28 | 28 | ||
29 | #include <sys/stat.h> | 29 | #include <sys/stat.h> |
30 | #include <time.h> | 30 | #include <time.h> |
31 | #include <dirent.h> | 31 | #include <dirent.h> |
32 | #include <fcntl.h> | 32 | #include <fcntl.h> |
33 | #include <sys/vfs.h> | 33 | #include <sys/vfs.h> |
34 | #include <mntent.h> | 34 | #include <mntent.h> |
35 | 35 | ||
36 | #ifdef NOQUICKLAUNCH | 36 | #ifdef NOQUICKLAUNCH |
37 | AdvancedFm::AdvancedFm( ) | 37 | AdvancedFm::AdvancedFm( ) |
38 | #else | 38 | #else |
39 | AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags ) | 39 | AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags ) |
40 | #endif | 40 | #endif |
41 | : QMainWindow( ) { | 41 | : QMainWindow( ) { |
42 | init(); | 42 | init(); |
43 | renameBox = 0; | 43 | renameBox = 0; |
44 | 44 | ||
45 | unknownXpm = Resource::loadImage( "UnknownDocument" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); | 45 | unknownXpm = Resource::loadImage( "UnknownDocument" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); |
46 | 46 | ||
47 | initConnections(); | 47 | initConnections(); |
48 | whichTab=1; | 48 | whichTab=1; |
49 | rePopulate(); | 49 | rePopulate(); |
50 | currentPathCombo->setFocus(); | 50 | currentPathCombo->setFocus(); |
51 | channel = new QCopChannel( "QPE/Application/advancedfm", this ); | 51 | channel = new QCopChannel( "QPE/Application/advancedfm", this ); |
52 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 52 | connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), |
53 | this, SLOT( qcopReceive(const QCString&, const QByteArray&)) ); | 53 | this, SLOT( qcopReceive(const QCString&,const QByteArray&)) ); |
54 | } | 54 | } |
55 | 55 | ||
56 | AdvancedFm::~AdvancedFm() { | 56 | AdvancedFm::~AdvancedFm() { |
57 | } | 57 | } |
58 | 58 | ||
59 | 59 | ||
60 | void AdvancedFm::cleanUp() { | 60 | void AdvancedFm::cleanUp() { |
61 | QString sfile=QDir::homeDirPath(); | 61 | QString sfile=QDir::homeDirPath(); |
62 | if(sfile.right(1) != "/") | 62 | if(sfile.right(1) != "/") |
63 | sfile+="/._temp"; | 63 | sfile+="/._temp"; |
64 | else | 64 | else |
65 | sfile+="._temp"; | 65 | sfile+="._temp"; |
66 | QFile file( sfile); | 66 | QFile file( sfile); |
67 | if(file.exists()) | 67 | if(file.exists()) |
68 | file.remove(); | 68 | file.remove(); |
69 | } | 69 | } |
70 | 70 | ||
71 | void AdvancedFm::tabChanged(QWidget *) { | 71 | void AdvancedFm::tabChanged(QWidget *) { |
72 | // qWarning("tab changed"); | 72 | // qWarning("tab changed"); |
73 | QString path = CurrentDir()->canonicalPath(); | 73 | QString path = CurrentDir()->canonicalPath(); |
74 | currentPathCombo->lineEdit()->setText( path ); | 74 | currentPathCombo->lineEdit()->setText( path ); |
75 | 75 | ||
76 | if(whichTab == 1) { | 76 | if(whichTab == 1) { |
77 | viewMenu->setItemChecked(viewMenu->idAt(0), true); | 77 | viewMenu->setItemChecked(viewMenu->idAt(0), true); |
78 | viewMenu->setItemChecked(viewMenu->idAt(1), false); | 78 | viewMenu->setItemChecked(viewMenu->idAt(1), false); |
79 | } else { | 79 | } else { |
80 | viewMenu->setItemChecked(viewMenu->idAt(0), false); | 80 | viewMenu->setItemChecked(viewMenu->idAt(0), false); |
81 | viewMenu->setItemChecked(viewMenu->idAt(1), true); | 81 | viewMenu->setItemChecked(viewMenu->idAt(1), true); |
82 | } | 82 | } |
83 | 83 | ||
84 | QString fs= getFileSystemType( (const QString &) path); | 84 | QString fs= getFileSystemType( (const QString &) path); |
85 | 85 | ||
86 | setCaption(tr("AdvancedFm :: ")+fs+" :: " | 86 | setCaption(tr("AdvancedFm :: ")+fs+" :: " |
87 | +checkDiskSpace( (const QString &) path )+ tr(" kB free") ); | 87 | +checkDiskSpace( (const QString &) path )+ tr(" kB free") ); |
88 | chdir( path.latin1()); | 88 | chdir( path.latin1()); |
89 | } | 89 | } |
90 | 90 | ||
91 | 91 | ||
92 | void AdvancedFm::populateView() { | 92 | void AdvancedFm::populateView() { |
93 | 93 | ||
94 | // qWarning("PopulateView"); | 94 | // qWarning("PopulateView"); |
95 | QPixmap pm; | 95 | QPixmap pm; |
96 | QListView *thisView = CurrentView(); | 96 | QListView *thisView = CurrentView(); |
97 | QDir *thisDir = CurrentDir(); | 97 | QDir *thisDir = CurrentDir(); |
98 | QString path = thisDir->canonicalPath(); | 98 | QString path = thisDir->canonicalPath(); |
99 | 99 | ||
100 | //qWarning("path is "+path); | 100 | //qWarning("path is "+path); |
101 | thisView->clear(); | 101 | thisView->clear(); |
102 | thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 102 | thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
103 | thisDir->setMatchAllDirs(TRUE); | 103 | thisDir->setMatchAllDirs(TRUE); |
104 | thisDir->setNameFilter(filterStr); | 104 | thisDir->setNameFilter(filterStr); |
105 | QString fileL, fileS, fileDate; | 105 | QString fileL, fileS, fileDate; |
106 | QString fs= getFileSystemType((const QString &) path); | 106 | QString fs= getFileSystemType((const QString &) path); |
107 | setCaption(tr("AdvancedFm :: ")+fs+" :: " | 107 | setCaption(tr("AdvancedFm :: ")+fs+" :: " |
108 | +checkDiskSpace((const QString &) path)+ tr(" kB free") ); | 108 | +checkDiskSpace((const QString &) path)+ tr(" kB free") ); |
109 | bool isDir=FALSE; | 109 | bool isDir=FALSE; |
110 | const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); | 110 | const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); |
111 | QFileInfoListIterator it(*list); | 111 | QFileInfoListIterator it(*list); |
112 | QFileInfo *fi; | 112 | QFileInfo *fi; |
113 | while ( (fi=it.current()) ) { | 113 | while ( (fi=it.current()) ) { |
114 | if (fi->isSymLink() ) { | 114 | if (fi->isSymLink() ) { |
115 | QString symLink=fi->readLink(); | 115 | QString symLink=fi->readLink(); |
116 | QFileInfo sym( symLink); | 116 | QFileInfo sym( symLink); |
117 | fileS.sprintf( "%10i", sym.size() ); | 117 | fileS.sprintf( "%10i", sym.size() ); |
118 | fileL = fi->fileName() +" -> " + sym.filePath().data(); | 118 | fileL = fi->fileName() +" -> " + sym.filePath().data(); |
119 | fileDate = sym.lastModified().toString(); | 119 | fileDate = sym.lastModified().toString(); |
120 | } else { | 120 | } else { |
121 | fileS.sprintf( "%10i", fi->size() ); | 121 | fileS.sprintf( "%10i", fi->size() ); |
122 | fileL = fi->fileName(); | 122 | fileL = fi->fileName(); |
123 | fileDate= fi->lastModified().toString(); | 123 | fileDate= fi->lastModified().toString(); |
124 | if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { | 124 | if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { |
125 | // if(fileL == "..") | 125 | // if(fileL == "..") |
126 | fileL += "/"; | 126 | fileL += "/"; |
127 | isDir=TRUE; | 127 | isDir=TRUE; |
128 | } | 128 | } |
129 | } | 129 | } |
130 | QFileInfo fileInfo( path + "/" + fileL); | 130 | QFileInfo fileInfo( path + "/" + fileL); |
131 | 131 | ||
132 | if(fileL !="./" && fi->exists()) { | 132 | if(fileL !="./" && fi->exists()) { |
133 | item = new QListViewItem( thisView, fileL, fileS , fileDate); | 133 | item = new QListViewItem( thisView, fileL, fileS , fileDate); |
134 | 134 | ||
135 | if(isDir || fileL.find("/",0,TRUE) != -1) { | 135 | if(isDir || fileL.find("/",0,TRUE) != -1) { |
136 | 136 | ||
137 | if( !QDir( fi->filePath() ).isReadable()) //is directory | 137 | if( !QDir( fi->filePath() ).isReadable()) //is directory |
138 | pm = Resource::loadPixmap( "lockedfolder" ); | 138 | pm = Resource::loadPixmap( "lockedfolder" ); |
139 | else | 139 | else |
140 | pm= Resource::loadPixmap( "folder" ); | 140 | pm= Resource::loadPixmap( "folder" ); |
141 | } | 141 | } |
142 | else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) { | 142 | else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) { |
143 | pm = Resource::loadPixmap( "exec"); | 143 | pm = Resource::loadPixmap( "exec"); |
144 | } | 144 | } |
145 | else if( (fileInfo.permission( QFileInfo::ExeUser) | 145 | else if( (fileInfo.permission( QFileInfo::ExeUser) |
146 | | fileInfo.permission( QFileInfo::ExeGroup) | 146 | | fileInfo.permission( QFileInfo::ExeGroup) |
147 | | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) { | 147 | | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) { |
148 | pm = Resource::loadPixmap( "exec"); | 148 | pm = Resource::loadPixmap( "exec"); |
149 | } | 149 | } |
diff --git a/noncore/apps/advancedfm/advancedfmData.cpp b/noncore/apps/advancedfm/advancedfmData.cpp index 763ae34..f791c77 100644 --- a/noncore/apps/advancedfm/advancedfmData.cpp +++ b/noncore/apps/advancedfm/advancedfmData.cpp | |||
@@ -160,127 +160,127 @@ void AdvancedFm::init() { | |||
160 | // TabWidget->insertTab( tab, tr("1")); | 160 | // TabWidget->insertTab( tab, tr("1")); |
161 | 161 | ||
162 | tab_2 = new QWidget( TabWidget, "tab_2" ); | 162 | tab_2 = new QWidget( TabWidget, "tab_2" ); |
163 | tabLayout_2 = new QGridLayout( tab_2 ); | 163 | tabLayout_2 = new QGridLayout( tab_2 ); |
164 | tabLayout_2->setSpacing( 2); | 164 | tabLayout_2->setSpacing( 2); |
165 | tabLayout_2->setMargin( 2); | 165 | tabLayout_2->setMargin( 2); |
166 | 166 | ||
167 | Remote_View = new QListView( tab_2, "Remote_View" ); | 167 | Remote_View = new QListView( tab_2, "Remote_View" ); |
168 | Remote_View->addColumn( tr("File"),130); | 168 | Remote_View->addColumn( tr("File"),130); |
169 | Remote_View->addColumn( tr("Size"),-1); | 169 | Remote_View->addColumn( tr("Size"),-1); |
170 | Remote_View->setColumnAlignment(1,QListView::AlignRight); | 170 | Remote_View->setColumnAlignment(1,QListView::AlignRight); |
171 | Remote_View->addColumn( tr("Date"),-1); | 171 | Remote_View->addColumn( tr("Date"),-1); |
172 | Remote_View->setColumnAlignment(2,QListView::AlignRight); | 172 | Remote_View->setColumnAlignment(2,QListView::AlignRight); |
173 | Remote_View->setAllColumnsShowFocus(TRUE); | 173 | Remote_View->setAllColumnsShowFocus(TRUE); |
174 | Remote_View->setMultiSelection( TRUE ); | 174 | Remote_View->setMultiSelection( TRUE ); |
175 | Remote_View->setSelectionMode(QListView::Extended); | 175 | Remote_View->setSelectionMode(QListView::Extended); |
176 | Remote_View->setFocusPolicy(StrongFocus); | 176 | Remote_View->setFocusPolicy(StrongFocus); |
177 | Remote_View->installEventFilter( this ); | 177 | Remote_View->installEventFilter( this ); |
178 | 178 | ||
179 | QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); | 179 | QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); |
180 | 180 | ||
181 | tabLayout_2->addWidget( Remote_View, 0, 0 ); | 181 | tabLayout_2->addWidget( Remote_View, 0, 0 ); |
182 | 182 | ||
183 | TabWidget->addWidget( tab_2, "advancedfm/smFileBrowser.png",tr( "2")); | 183 | TabWidget->addWidget( tab_2, "advancedfm/smFileBrowser.png",tr( "2")); |
184 | TabWidget->setSizeChange( 370 ); | 184 | TabWidget->setSizeChange( 370 ); |
185 | // TabWidget->insertTab( tab_2, tr( "2")); | 185 | // TabWidget->insertTab( tab_2, tr( "2")); |
186 | 186 | ||
187 | /* tab_3 = new QWidget( TabWidget, "tab_3" ); | 187 | /* tab_3 = new QWidget( TabWidget, "tab_3" ); |
188 | tabLayout_3 = new QGridLayout( tab_3 ); | 188 | tabLayout_3 = new QGridLayout( tab_3 ); |
189 | tabLayout_3->setSpacing( 2); | 189 | tabLayout_3->setSpacing( 2); |
190 | tabLayout_3->setMargin( 2); | 190 | tabLayout_3->setMargin( 2); |
191 | 191 | ||
192 | 192 | ||
193 | // OFileDialog fileDialog; | 193 | // OFileDialog fileDialog; |
194 | // fileDialog; | 194 | // fileDialog; |
195 | // fileSelector = new FileSelector( "*",tab_3, "fileselector" , FALSE, FALSE); //buggy | 195 | // fileSelector = new FileSelector( "*",tab_3, "fileselector" , FALSE, FALSE); //buggy |
196 | // fileDialog = new OFileDialog("bangalow", tab_3, 4, 2, "Bungalow"); | 196 | // fileDialog = new OFileDialog("bangalow", tab_3, 4, 2, "Bungalow"); |
197 | // OFileSelector fileDialog = new OFileSelector( tab_3, 4, 2,"/"); | 197 | // OFileSelector fileDialog = new OFileSelector( tab_3, 4, 2,"/"); |
198 | 198 | ||
199 | QListView *fileTree; | 199 | QListView *fileTree; |
200 | fileTree = new QListView( tab_3, "tree" ); | 200 | fileTree = new QListView( tab_3, "tree" ); |
201 | 201 | ||
202 | 202 | ||
203 | tabLayout_3->addMultiCellWidget( fileTree, 0, 0, 0, 3 ); | 203 | tabLayout_3->addMultiCellWidget( fileTree, 0, 0, 0, 3 ); |
204 | 204 | ||
205 | TabWidget->insertTab( tab_3, tr( "Remote" ) ); | 205 | TabWidget->insertTab( tab_3, tr( "Remote" ) ); |
206 | */ | 206 | */ |
207 | 207 | ||
208 | /////////////// | 208 | /////////////// |
209 | 209 | ||
210 | if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) | 210 | if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) |
211 | zaurusDevice=TRUE; | 211 | zaurusDevice=TRUE; |
212 | else | 212 | else |
213 | zaurusDevice=FALSE; | 213 | zaurusDevice=FALSE; |
214 | 214 | ||
215 | 215 | ||
216 | if( !StorageInfo::hasSd() || !StorageInfo::hasMmc()) { | 216 | if( !StorageInfo::hasSd() || !StorageInfo::hasMmc()) { |
217 | qDebug("not have sd"); | 217 | qDebug("not have sd"); |
218 | sdButton->hide(); | 218 | sdButton->hide(); |
219 | } | 219 | } |
220 | if( !StorageInfo::hasCf() ) { | 220 | if( !StorageInfo::hasCf() ) { |
221 | qDebug("not have cf"); | 221 | qDebug("not have cf"); |
222 | cfButton->hide(); | 222 | cfButton->hide(); |
223 | } | 223 | } |
224 | currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); | 224 | currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); |
225 | currentDir.setPath( QDir::currentDirPath()); | 225 | currentDir.setPath( QDir::currentDirPath()); |
226 | 226 | ||
227 | currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); | 227 | currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); |
228 | currentRemoteDir.setPath( QDir::currentDirPath()); | 228 | currentRemoteDir.setPath( QDir::currentDirPath()); |
229 | 229 | ||
230 | // b = TRUE; | 230 | // b = TRUE; |
231 | 231 | ||
232 | filterStr="*"; | 232 | filterStr="*"; |
233 | b=FALSE; | 233 | b=FALSE; |
234 | showMenuHidden(); | 234 | showMenuHidden(); |
235 | TabWidget->setCurrentWidget(0); | 235 | TabWidget->setCurrentWidget(0); |
236 | 236 | ||
237 | } | 237 | } |
238 | 238 | ||
239 | void AdvancedFm::initConnections() | 239 | void AdvancedFm::initConnections() |
240 | { | 240 | { |
241 | 241 | ||
242 | connect( qApp,SIGNAL( aboutToQuit()), | 242 | connect( qApp,SIGNAL( aboutToQuit()), |
243 | this, SLOT( cleanUp()) ); | 243 | this, SLOT( cleanUp()) ); |
244 | connect( qpeDirButton ,SIGNAL(released()), | 244 | connect( qpeDirButton ,SIGNAL(released()), |
245 | this,SLOT( QPEButtonPushed()) ); | 245 | this,SLOT( QPEButtonPushed()) ); |
246 | connect( cfButton ,SIGNAL(released()), | 246 | connect( cfButton ,SIGNAL(released()), |
247 | this,SLOT( CFButtonPushed()) ); | 247 | this,SLOT( CFButtonPushed()) ); |
248 | connect( sdButton ,SIGNAL(released()), | 248 | connect( sdButton ,SIGNAL(released()), |
249 | this,SLOT( SDButtonPushed()) ); | 249 | this,SLOT( SDButtonPushed()) ); |
250 | connect( cdUpButton ,SIGNAL(released()), | 250 | connect( cdUpButton ,SIGNAL(released()), |
251 | this,SLOT( upDir()) ); | 251 | this,SLOT( upDir()) ); |
252 | connect( docButton,SIGNAL(released()), | 252 | connect( docButton,SIGNAL(released()), |
253 | this,SLOT( docButtonPushed()) ); | 253 | this,SLOT( docButtonPushed()) ); |
254 | connect( homeButton,SIGNAL(released()), | 254 | connect( homeButton,SIGNAL(released()), |
255 | this,SLOT( homeButtonPushed()) ); | 255 | this,SLOT( homeButtonPushed()) ); |
256 | connect( currentPathCombo, SIGNAL( activated( const QString & ) ), | 256 | connect( currentPathCombo, SIGNAL( activated(const QString&) ), |
257 | this, SLOT( currentPathComboActivated( const QString & ) ) ); | 257 | this, SLOT( currentPathComboActivated(const QString&) ) ); |
258 | 258 | ||
259 | connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), | 259 | connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), |
260 | this,SLOT(currentPathComboChanged())); | 260 | this,SLOT(currentPathComboChanged())); |
261 | 261 | ||
262 | connect( Local_View, SIGNAL( clicked( QListViewItem*)), | 262 | connect( Local_View, SIGNAL( clicked(QListViewItem*)), |
263 | this,SLOT( ListClicked(QListViewItem *)) ); | 263 | this,SLOT( ListClicked(QListViewItem*)) ); |
264 | 264 | ||
265 | connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 265 | connect( Local_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), |
266 | this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); | 266 | this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) ); |
267 | 267 | ||
268 | connect( Local_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) ); | 268 | connect( Local_View, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) ); |
269 | 269 | ||
270 | connect( Remote_View, SIGNAL( clicked( QListViewItem*)), | 270 | connect( Remote_View, SIGNAL( clicked(QListViewItem*)), |
271 | this,SLOT( ListClicked(QListViewItem *)) ); | 271 | this,SLOT( ListClicked(QListViewItem*)) ); |
272 | connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 272 | connect( Remote_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), |
273 | this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); | 273 | this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) ); |
274 | 274 | ||
275 | connect( TabWidget,SIGNAL(currentChanged(QWidget *)), | 275 | connect( TabWidget,SIGNAL(currentChanged(QWidget*)), |
276 | this,SLOT(tabChanged(QWidget*))); | 276 | this,SLOT(tabChanged(QWidget*))); |
277 | 277 | ||
278 | connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) ); | 278 | connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) ); |
279 | 279 | ||
280 | connect( menuButton, SIGNAL( selected(const QString &)), SLOT(gotoCustomDir(const QString&))); | 280 | connect( menuButton, SIGNAL( selected(const QString&)), SLOT(gotoCustomDir(const QString&))); |
281 | // connect( menuButton, SIGNAL( selected( int)), SLOT( dirMenuSelected(int))); | 281 | // connect( menuButton, SIGNAL( selected(int)), SLOT( dirMenuSelected(int))); |
282 | connect( viewMenu, SIGNAL( activated(int )), this, SLOT(slotSwitchMenu(int ))); | 282 | connect( viewMenu, SIGNAL( activated(int)), this, SLOT(slotSwitchMenu(int))); |
283 | // connect( customDirMenu, SIGNAL( activated(int)), this, SLOT( dirMenuSelected(int))); | 283 | // connect( customDirMenu, SIGNAL( activated(int)), this, SLOT( dirMenuSelected(int))); |
284 | 284 | ||
285 | } | 285 | } |
286 | 286 | ||
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp index 9ad1146..9e740d0 100644 --- a/noncore/apps/advancedfm/advancedfmMenu.cpp +++ b/noncore/apps/advancedfm/advancedfmMenu.cpp | |||
@@ -588,218 +588,218 @@ void AdvancedFm::runCommand() { | |||
588 | QPEApplication::execDialog( outDlg ); | 588 | QPEApplication::execDialog( outDlg ); |
589 | qApp->processEvents(); | 589 | qApp->processEvents(); |
590 | 590 | ||
591 | } | 591 | } |
592 | } | 592 | } |
593 | 593 | ||
594 | void AdvancedFm::runCommandStd() { | 594 | void AdvancedFm::runCommandStd() { |
595 | if( !CurrentView()->currentItem()) return; | 595 | if( !CurrentView()->currentItem()) return; |
596 | QString curFile; | 596 | QString curFile; |
597 | QDir *thisDir = CurrentDir(); | 597 | QDir *thisDir = CurrentDir(); |
598 | QListView *thisView = CurrentView(); | 598 | QListView *thisView = CurrentView(); |
599 | if( thisView->currentItem()) | 599 | if( thisView->currentItem()) |
600 | curFile = thisDir->canonicalPath() +"/"+ thisView->currentItem()->text(0); | 600 | curFile = thisDir->canonicalPath() +"/"+ thisView->currentItem()->text(0); |
601 | 601 | ||
602 | InputDialog *fileDlg; | 602 | InputDialog *fileDlg; |
603 | fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); | 603 | fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); |
604 | fileDlg->setInputText(curFile); | 604 | fileDlg->setInputText(curFile); |
605 | fileDlg->exec(); | 605 | fileDlg->exec(); |
606 | 606 | ||
607 | if( fileDlg->result() == 1 ) { | 607 | if( fileDlg->result() == 1 ) { |
608 | qApp->processEvents(); | 608 | qApp->processEvents(); |
609 | startProcess( (const QString)fileDlg->LineEdit1->text().latin1()); | 609 | startProcess( (const QString)fileDlg->LineEdit1->text().latin1()); |
610 | } | 610 | } |
611 | } | 611 | } |
612 | 612 | ||
613 | void AdvancedFm::fileStatus() { | 613 | void AdvancedFm::fileStatus() { |
614 | if( !CurrentView()->currentItem()) return; | 614 | if( !CurrentView()->currentItem()) return; |
615 | QString curFile; | 615 | QString curFile; |
616 | curFile = CurrentView()->currentItem()->text(0); | 616 | curFile = CurrentView()->currentItem()->text(0); |
617 | 617 | ||
618 | QStringList command; | 618 | QStringList command; |
619 | command << "/bin/sh"; | 619 | command << "/bin/sh"; |
620 | command << "-c"; | 620 | command << "-c"; |
621 | command << "stat -l "+ curFile; | 621 | command << "stat -l "+ curFile; |
622 | 622 | ||
623 | Output *outDlg; | 623 | Output *outDlg; |
624 | outDlg = new Output( command, this, tr("AdvancedFm Output"), true); | 624 | outDlg = new Output( command, this, tr("AdvancedFm Output"), true); |
625 | QPEApplication::execDialog( outDlg ); | 625 | QPEApplication::execDialog( outDlg ); |
626 | qApp->processEvents(); | 626 | qApp->processEvents(); |
627 | } | 627 | } |
628 | 628 | ||
629 | 629 | ||
630 | void AdvancedFm::mkDir() { | 630 | void AdvancedFm::mkDir() { |
631 | makeDir(); | 631 | makeDir(); |
632 | } | 632 | } |
633 | 633 | ||
634 | void AdvancedFm::rn() { | 634 | void AdvancedFm::rn() { |
635 | renameIt(); | 635 | renameIt(); |
636 | } | 636 | } |
637 | 637 | ||
638 | void AdvancedFm::del() { | 638 | void AdvancedFm::del() { |
639 | doDelete(); | 639 | doDelete(); |
640 | } | 640 | } |
641 | 641 | ||
642 | void AdvancedFm::mkSym() { | 642 | void AdvancedFm::mkSym() { |
643 | QString cmd; | 643 | QString cmd; |
644 | QStringList curFileList = getPath(); | 644 | QStringList curFileList = getPath(); |
645 | if( curFileList.count() > 0) { | 645 | if( curFileList.count() > 0) { |
646 | QDir *thisDir = CurrentDir(); | 646 | QDir *thisDir = CurrentDir(); |
647 | QDir * thatDir = OtherDir(); | 647 | QDir * thatDir = OtherDir(); |
648 | 648 | ||
649 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { | 649 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
650 | 650 | ||
651 | QString destName = thatDir->canonicalPath()+"/"+(*it); | 651 | QString destName = thatDir->canonicalPath()+"/"+(*it); |
652 | if(destName.right(1) == "/") { | 652 | if(destName.right(1) == "/") { |
653 | destName = destName.left( destName.length() -1); | 653 | destName = destName.left( destName.length() -1); |
654 | } | 654 | } |
655 | 655 | ||
656 | QString curFile = thisDir->canonicalPath()+"/"+(*it); | 656 | QString curFile = thisDir->canonicalPath()+"/"+(*it); |
657 | 657 | ||
658 | if( curFile.right(1) == "/") { | 658 | if( curFile.right(1) == "/") { |
659 | curFile = curFile.left( curFile.length() -1); | 659 | curFile = curFile.left( curFile.length() -1); |
660 | } | 660 | } |
661 | 661 | ||
662 | cmd = "ln -s "+curFile+" "+destName; | 662 | cmd = "ln -s "+curFile+" "+destName; |
663 | // qDebug(cmd); | 663 | // qDebug(cmd); |
664 | startProcess( (const QString)cmd ); | 664 | startProcess( (const QString)cmd ); |
665 | } | 665 | } |
666 | rePopulate(); | 666 | rePopulate(); |
667 | setOtherTabCurrent(); | 667 | setOtherTabCurrent(); |
668 | } | 668 | } |
669 | } | 669 | } |
670 | 670 | ||
671 | void AdvancedFm::doBeam() { | 671 | void AdvancedFm::doBeam() { |
672 | Ir ir; | 672 | Ir ir; |
673 | if(!ir.supported()) { | 673 | if(!ir.supported()) { |
674 | } else { | 674 | } else { |
675 | QStringList curFileList = getPath(); | 675 | QStringList curFileList = getPath(); |
676 | if( curFileList.count() > 0) { | 676 | if( curFileList.count() > 0) { |
677 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { | 677 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
678 | QString curFile = (*it); | 678 | QString curFile = (*it); |
679 | QString curFilePath = CurrentDir()->canonicalPath()+"/"+curFile; | 679 | QString curFilePath = CurrentDir()->canonicalPath()+"/"+curFile; |
680 | if( curFilePath.right(1) == "/") { | 680 | if( curFilePath.right(1) == "/") { |
681 | curFilePath = curFilePath.left( curFilePath.length() -1); | 681 | curFilePath = curFilePath.left( curFilePath.length() -1); |
682 | } | 682 | } |
683 | Ir *file = new Ir(this, "IR"); | 683 | Ir *file = new Ir(this, "IR"); |
684 | connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); | 684 | connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished(Ir*))); |
685 | file->send( curFilePath, curFile ); | 685 | file->send( curFilePath, curFile ); |
686 | } | 686 | } |
687 | } | 687 | } |
688 | } | 688 | } |
689 | } | 689 | } |
690 | 690 | ||
691 | void AdvancedFm::fileBeamFinished( Ir *) { | 691 | void AdvancedFm::fileBeamFinished( Ir *) { |
692 | QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); | 692 | QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); |
693 | } | 693 | } |
694 | 694 | ||
695 | void AdvancedFm::selectAll() { | 695 | void AdvancedFm::selectAll() { |
696 | QListView *thisView = CurrentView(); | 696 | QListView *thisView = CurrentView(); |
697 | thisView->selectAll(true); | 697 | thisView->selectAll(true); |
698 | thisView->setSelected( thisView->firstChild(),false); | 698 | thisView->setSelected( thisView->firstChild(),false); |
699 | } | 699 | } |
700 | 700 | ||
701 | void AdvancedFm::startProcess(const QString & cmd) { | 701 | void AdvancedFm::startProcess(const QString & cmd) { |
702 | QStringList command; | 702 | QStringList command; |
703 | OProcess *process; | 703 | OProcess *process; |
704 | process = new OProcess(); | 704 | process = new OProcess(); |
705 | connect(process, SIGNAL(processExited(OProcess *)), | 705 | connect(process, SIGNAL(processExited(OProcess*)), |
706 | this, SLOT( processEnded(OProcess *))); | 706 | this, SLOT( processEnded(OProcess*))); |
707 | 707 | ||
708 | connect(process, SIGNAL( receivedStderr(OProcess *, char *, int)), | 708 | connect(process, SIGNAL( receivedStderr(OProcess*,char*,int)), |
709 | this, SLOT( oprocessStderr(OProcess *, char *, int))); | 709 | this, SLOT( oprocessStderr(OProcess*,char*,int))); |
710 | 710 | ||
711 | command << "/bin/sh"; | 711 | command << "/bin/sh"; |
712 | command << "-c"; | 712 | command << "-c"; |
713 | command << cmd.latin1(); | 713 | command << cmd.latin1(); |
714 | *process << command; | 714 | *process << command; |
715 | if(!process->start(OProcess::NotifyOnExit, OProcess::All) ) | 715 | if(!process->start(OProcess::NotifyOnExit, OProcess::All) ) |
716 | qDebug("could not start process"); | 716 | qDebug("could not start process"); |
717 | } | 717 | } |
718 | 718 | ||
719 | void AdvancedFm::processEnded(OProcess *) { | 719 | void AdvancedFm::processEnded(OProcess *) { |
720 | rePopulate(); | 720 | rePopulate(); |
721 | } | 721 | } |
722 | 722 | ||
723 | void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int ) { | 723 | void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int ) { |
724 | // qWarning("received stderrt %d bytes", buflen); | 724 | // qWarning("received stderrt %d bytes", buflen); |
725 | 725 | ||
726 | QString lineStr = buffer; | 726 | QString lineStr = buffer; |
727 | QMessageBox::warning( this, tr("Error"), lineStr ,tr("Ok") ); | 727 | QMessageBox::warning( this, tr("Error"), lineStr ,tr("Ok") ); |
728 | } | 728 | } |
729 | 729 | ||
730 | bool AdvancedFm::eventFilter( QObject * o, QEvent * e ) { | 730 | bool AdvancedFm::eventFilter( QObject * o, QEvent * e ) { |
731 | if ( o->inherits( "QLineEdit" ) ) { | 731 | if ( o->inherits( "QLineEdit" ) ) { |
732 | if ( e->type() == QEvent::KeyPress ) { | 732 | if ( e->type() == QEvent::KeyPress ) { |
733 | QKeyEvent *ke = (QKeyEvent*)e; | 733 | QKeyEvent *ke = (QKeyEvent*)e; |
734 | if ( ke->key() == Key_Return || | 734 | if ( ke->key() == Key_Return || |
735 | ke->key() == Key_Enter ) { | 735 | ke->key() == Key_Enter ) { |
736 | okRename(); | 736 | okRename(); |
737 | return true; | 737 | return true; |
738 | } | 738 | } |
739 | else if ( ke->key() == Key_Escape ) { | 739 | else if ( ke->key() == Key_Escape ) { |
740 | cancelRename(); | 740 | cancelRename(); |
741 | return true; | 741 | return true; |
742 | } | 742 | } |
743 | } | 743 | } |
744 | else if ( e->type() == QEvent::FocusOut ) { | 744 | else if ( e->type() == QEvent::FocusOut ) { |
745 | cancelRename(); | 745 | cancelRename(); |
746 | return true; | 746 | return true; |
747 | } | 747 | } |
748 | } | 748 | } |
749 | if ( o->inherits( "QListView" ) ) { | 749 | if ( o->inherits( "QListView" ) ) { |
750 | if ( e->type() == QEvent::FocusIn ) { | 750 | if ( e->type() == QEvent::FocusIn ) { |
751 | if( o == Local_View) { //keep track of which view | 751 | if( o == Local_View) { //keep track of which view |
752 | whichTab=1; | 752 | whichTab=1; |
753 | } | 753 | } |
754 | else { | 754 | else { |
755 | whichTab=2; | 755 | whichTab=2; |
756 | } | 756 | } |
757 | } | 757 | } |
758 | OtherView()->setSelected( OtherView()->currentItem(), FALSE );//make sure there's correct selection | 758 | OtherView()->setSelected( OtherView()->currentItem(), FALSE );//make sure there's correct selection |
759 | } | 759 | } |
760 | 760 | ||
761 | return QWidget::eventFilter( o, e ); | 761 | return QWidget::eventFilter( o, e ); |
762 | } | 762 | } |
763 | 763 | ||
764 | 764 | ||
765 | void AdvancedFm::cancelRename() { | 765 | void AdvancedFm::cancelRename() { |
766 | // qDebug("cancel rename"); | 766 | // qDebug("cancel rename"); |
767 | QListView * view; | 767 | QListView * view; |
768 | view = CurrentView(); | 768 | view = CurrentView(); |
769 | 769 | ||
770 | bool resetFocus = view->viewport()->focusProxy() == renameBox; | 770 | bool resetFocus = view->viewport()->focusProxy() == renameBox; |
771 | delete renameBox; | 771 | delete renameBox; |
772 | renameBox = 0; | 772 | renameBox = 0; |
773 | if ( resetFocus ) { | 773 | if ( resetFocus ) { |
774 | view->viewport()->setFocusProxy( view); | 774 | view->viewport()->setFocusProxy( view); |
775 | view->setFocus(); | 775 | view->setFocus(); |
776 | } | 776 | } |
777 | } | 777 | } |
778 | 778 | ||
779 | void AdvancedFm::doRename(QListView * view) { | 779 | void AdvancedFm::doRename(QListView * view) { |
780 | if( !CurrentView()->currentItem()) return; | 780 | if( !CurrentView()->currentItem()) return; |
781 | 781 | ||
782 | QRect r = view->itemRect( view->currentItem( )); | 782 | QRect r = view->itemRect( view->currentItem( )); |
783 | r = QRect( view->viewportToContents( r.topLeft() ), r.size() ); | 783 | r = QRect( view->viewportToContents( r.topLeft() ), r.size() ); |
784 | r.setX( view->contentsX() ); | 784 | r.setX( view->contentsX() ); |
785 | 785 | ||
786 | if ( r.width() > view->visibleWidth() ) | 786 | if ( r.width() > view->visibleWidth() ) |
787 | r.setWidth( view->visibleWidth() ); | 787 | r.setWidth( view->visibleWidth() ); |
788 | 788 | ||
789 | renameBox = new QLineEdit( view->viewport(), "qt_renamebox" ); | 789 | renameBox = new QLineEdit( view->viewport(), "qt_renamebox" ); |
790 | renameBox->setFrame(true); | 790 | renameBox->setFrame(true); |
791 | 791 | ||
792 | renameBox->setText( view->currentItem()->text(0) ); | 792 | renameBox->setText( view->currentItem()->text(0) ); |
793 | 793 | ||
794 | renameBox->selectAll(); | 794 | renameBox->selectAll(); |
795 | renameBox->installEventFilter( this ); | 795 | renameBox->installEventFilter( this ); |
796 | 796 | ||
797 | view->addChild( renameBox, r.x(), r.y() ); | 797 | view->addChild( renameBox, r.x(), r.y() ); |
798 | 798 | ||
799 | renameBox->resize( r.size() ); | 799 | renameBox->resize( r.size() ); |
800 | 800 | ||
801 | view->viewport()->setFocusProxy( renameBox ); | 801 | view->viewport()->setFocusProxy( renameBox ); |
802 | 802 | ||
803 | renameBox->setFocus(); | 803 | renameBox->setFocus(); |
804 | renameBox->show(); | 804 | renameBox->show(); |
805 | } | 805 | } |
diff --git a/noncore/apps/advancedfm/output.cpp b/noncore/apps/advancedfm/output.cpp index 7dc2416..0bba1d8 100644 --- a/noncore/apps/advancedfm/output.cpp +++ b/noncore/apps/advancedfm/output.cpp | |||
@@ -48,229 +48,229 @@ static char * filesave_xpm[] = { | |||
48 | "} c #777777", | 48 | "} c #777777", |
49 | "| c #616161", | 49 | "| c #616161", |
50 | "1 c #3A3A3A", | 50 | "1 c #3A3A3A", |
51 | "2 c #BEBEBE", | 51 | "2 c #BEBEBE", |
52 | "3 c #2C2C2C", | 52 | "3 c #2C2C2C", |
53 | "4 c #7C7C7C", | 53 | "4 c #7C7C7C", |
54 | "5 c #F6F6F6", | 54 | "5 c #F6F6F6", |
55 | "6 c #FCFCFC", | 55 | "6 c #FCFCFC", |
56 | "7 c #6B6B6B", | 56 | "7 c #6B6B6B", |
57 | "8 c #959595", | 57 | "8 c #959595", |
58 | "9 c #4F4F4F", | 58 | "9 c #4F4F4F", |
59 | "0 c #808080", | 59 | "0 c #808080", |
60 | "a c #767676", | 60 | "a c #767676", |
61 | "b c #818181", | 61 | "b c #818181", |
62 | "c c #B8B8B8", | 62 | "c c #B8B8B8", |
63 | "d c #FBFBFB", | 63 | "d c #FBFBFB", |
64 | "e c #F9F9F9", | 64 | "e c #F9F9F9", |
65 | "f c #CCCCCC", | 65 | "f c #CCCCCC", |
66 | "g c #030303", | 66 | "g c #030303", |
67 | "h c #737373", | 67 | "h c #737373", |
68 | "i c #7A7A7A", | 68 | "i c #7A7A7A", |
69 | "j c #7E7E7E", | 69 | "j c #7E7E7E", |
70 | "k c #6A6A6A", | 70 | "k c #6A6A6A", |
71 | "l c #FAFAFA", | 71 | "l c #FAFAFA", |
72 | "m c #505050", | 72 | "m c #505050", |
73 | "n c #9D9D9D", | 73 | "n c #9D9D9D", |
74 | "o c #333333", | 74 | "o c #333333", |
75 | "p c #7B7B7B", | 75 | "p c #7B7B7B", |
76 | "q c #787878", | 76 | "q c #787878", |
77 | "r c #696969", | 77 | "r c #696969", |
78 | "s c #494949", | 78 | "s c #494949", |
79 | "t c #555555", | 79 | "t c #555555", |
80 | "u c #949494", | 80 | "u c #949494", |
81 | "v c #E6E6E6", | 81 | "v c #E6E6E6", |
82 | "w c #424242", | 82 | "w c #424242", |
83 | "x c #515151", | 83 | "x c #515151", |
84 | "y c #535353", | 84 | "y c #535353", |
85 | "z c #3E3E3E", | 85 | "z c #3E3E3E", |
86 | "A c #D4D4D4", | 86 | "A c #D4D4D4", |
87 | "B c #0C0C0C", | 87 | "B c #0C0C0C", |
88 | "C c #353535", | 88 | "C c #353535", |
89 | "D c #474747", | 89 | "D c #474747", |
90 | "E c #ECECEC", | 90 | "E c #ECECEC", |
91 | "F c #919191", | 91 | "F c #919191", |
92 | "G c #7D7D7D", | 92 | "G c #7D7D7D", |
93 | "H c #000000", | 93 | "H c #000000", |
94 | "I c #404040", | 94 | "I c #404040", |
95 | "J c #858585", | 95 | "J c #858585", |
96 | "K c #323232", | 96 | "K c #323232", |
97 | "L c #D0D0D0", | 97 | "L c #D0D0D0", |
98 | "M c #1C1C1C", | 98 | "M c #1C1C1C", |
99 | " ...+ ", | 99 | " ...+ ", |
100 | " @#$%&..+ ", | 100 | " @#$%&..+ ", |
101 | " .*=-;;>,..+ ", | 101 | " .*=-;;>,..+ ", |
102 | " ')!~;;;;;;{]..", | 102 | " ')!~;;;;;;{]..", |
103 | " ^/(-;;;;;;;_:<", | 103 | " ^/(-;;;;;;;_:<", |
104 | " [}|;;;;;;;{12$", | 104 | " [}|;;;;;;;{12$", |
105 | " #34-55;;;;678$+", | 105 | " #34-55;;;;678$+", |
106 | " 90ab=c;dd;e1fg ", | 106 | " 90ab=c;dd;e1fg ", |
107 | " [ahij((kbl0mn$ ", | 107 | " [ahij((kbl0mn$ ", |
108 | " op^q^^7r&]s/$+ ", | 108 | " op^q^^7r&]s/$+ ", |
109 | "@btu;vbwxy]zAB ", | 109 | "@btu;vbwxy]zAB ", |
110 | "CzDEvEv;;DssF$ ", | 110 | "CzDEvEv;;DssF$ ", |
111 | "G.H{E{E{IxsJ$+ ", | 111 | "G.H{E{E{IxsJ$+ ", |
112 | " +...vEKxzLM ", | 112 | " +...vEKxzLM ", |
113 | " +...z]n$ ", | 113 | " +...z]n$ ", |
114 | " +... "}; | 114 | " +... "}; |
115 | 115 | ||
116 | Output::Output( const QStringList commands, QWidget* parent, const char* name, bool modal, WFlags fl) | 116 | Output::Output( const QStringList commands, QWidget* parent, const char* name, bool modal, WFlags fl) |
117 | : QDialog( parent, name, modal, fl ) | 117 | : QDialog( parent, name, modal, fl ) |
118 | { | 118 | { |
119 | QStringList cmmds; | 119 | QStringList cmmds; |
120 | // cmmds=QStringList::split( " ", commands, false); | 120 | // cmmds=QStringList::split( " ", commands, false); |
121 | cmmds=commands; | 121 | cmmds=commands; |
122 | // qDebug("count %d", cmmds.count()); | 122 | // qDebug("count %d", cmmds.count()); |
123 | if ( !name ) | 123 | if ( !name ) |
124 | setName( tr("Output")); | 124 | setName( tr("Output")); |
125 | resize( 196, 269 ); | 125 | resize( 196, 269 ); |
126 | setCaption( name ); | 126 | setCaption( name ); |
127 | 127 | ||
128 | OutputLayout = new QGridLayout( this ); | 128 | OutputLayout = new QGridLayout( this ); |
129 | OutputLayout->setSpacing( 2); | 129 | OutputLayout->setSpacing( 2); |
130 | OutputLayout->setMargin( 2); | 130 | OutputLayout->setMargin( 2); |
131 | 131 | ||
132 | QPushButton *docButton; | 132 | QPushButton *docButton; |
133 | docButton = new QPushButton( QPixmap(( const char** ) filesave_xpm ) ,"",this,"saveButton"); | 133 | docButton = new QPushButton( QPixmap(( const char** ) filesave_xpm ) ,"",this,"saveButton"); |
134 | docButton->setFixedSize( QSize( 20, 20 ) ); | 134 | docButton->setFixedSize( QSize( 20, 20 ) ); |
135 | connect( docButton,SIGNAL(released()),this,SLOT( saveOutput() )); | 135 | connect( docButton,SIGNAL(released()),this,SLOT( saveOutput() )); |
136 | // docButton->setFlat(TRUE); | 136 | // docButton->setFlat(TRUE); |
137 | OutputLayout->addMultiCellWidget( docButton, 0,0,3,3 ); | 137 | OutputLayout->addMultiCellWidget( docButton, 0,0,3,3 ); |
138 | 138 | ||
139 | OutputEdit = new QMultiLineEdit( this, "OutputEdit" ); | 139 | OutputEdit = new QMultiLineEdit( this, "OutputEdit" ); |
140 | OutputLayout->addMultiCellWidget( OutputEdit, 1,1,0,3 ); | 140 | OutputLayout->addMultiCellWidget( OutputEdit, 1,1,0,3 ); |
141 | 141 | ||
142 | proc = new OProcess(); | 142 | proc = new OProcess(); |
143 | 143 | ||
144 | connect(proc, SIGNAL(processExited(OProcess *)), | 144 | connect(proc, SIGNAL(processExited(OProcess*)), |
145 | this, SLOT( processFinished())); | 145 | this, SLOT( processFinished())); |
146 | 146 | ||
147 | connect(proc, SIGNAL(receivedStdout(OProcess *, char *, int)), | 147 | connect(proc, SIGNAL(receivedStdout(OProcess*,char*,int)), |
148 | this, SLOT(commandStdout(OProcess *, char *, int))); | 148 | this, SLOT(commandStdout(OProcess*,char*,int))); |
149 | 149 | ||
150 | connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)), | 150 | connect(proc, SIGNAL(receivedStderr(OProcess*,char*,int)), |
151 | this, SLOT(commandStderr(OProcess *, char *, int))); | 151 | this, SLOT(commandStderr(OProcess*,char*,int))); |
152 | 152 | ||
153 | // connect( , SIGNAL(received(const QByteArray &)), | 153 | // connect( , SIGNAL(received(const QByteArray&)), |
154 | // this, SLOT(commandStdin(const QByteArray &))); | 154 | // this, SLOT(commandStdin(const QByteArray&))); |
155 | 155 | ||
156 | // * proc << commands.latin1(); | 156 | // * proc << commands.latin1(); |
157 | for ( QStringList::Iterator it = cmmds.begin(); it != cmmds.end(); ++it ) { | 157 | for ( QStringList::Iterator it = cmmds.begin(); it != cmmds.end(); ++it ) { |
158 | qDebug( "%s", (*it).latin1() ); | 158 | qDebug( "%s", (*it).latin1() ); |
159 | * proc << (*it).latin1(); | 159 | * proc << (*it).latin1(); |
160 | } | 160 | } |
161 | 161 | ||
162 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) { | 162 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) { |
163 | 163 | ||
164 | OutputEdit->append(tr("Process could not start") ); | 164 | OutputEdit->append(tr("Process could not start") ); |
165 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 165 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
166 | perror("Error: "); | 166 | perror("Error: "); |
167 | QString errorMsg=tr("Error\n")+(QString)strerror(errno); | 167 | QString errorMsg=tr("Error\n")+(QString)strerror(errno); |
168 | OutputEdit->append( errorMsg); | 168 | OutputEdit->append( errorMsg); |
169 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 169 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
170 | } | 170 | } |
171 | } | 171 | } |
172 | 172 | ||
173 | Output::~Output() { | 173 | Output::~Output() { |
174 | } | 174 | } |
175 | 175 | ||
176 | void Output::saveOutput() { | 176 | void Output::saveOutput() { |
177 | 177 | ||
178 | InputDialog *fileDlg; | 178 | InputDialog *fileDlg; |
179 | fileDlg = new InputDialog(this,tr("Save output to file (name only)"),TRUE, 0); | 179 | fileDlg = new InputDialog(this,tr("Save output to file (name only)"),TRUE, 0); |
180 | fileDlg->exec(); | 180 | fileDlg->exec(); |
181 | if( fileDlg->result() == 1 ) { | 181 | if( fileDlg->result() == 1 ) { |
182 | QString filename = QPEApplication::documentDir(); | 182 | QString filename = QPEApplication::documentDir(); |
183 | if(filename.right(1).find('/') == -1) | 183 | if(filename.right(1).find('/') == -1) |
184 | filename+="/"; | 184 | filename+="/"; |
185 | QString name = fileDlg->LineEdit1->text(); | 185 | QString name = fileDlg->LineEdit1->text(); |
186 | filename+="text/plain/"+name; | 186 | filename+="text/plain/"+name; |
187 | qDebug(filename); | 187 | qDebug(filename); |
188 | 188 | ||
189 | QFile f(filename); | 189 | QFile f(filename); |
190 | f.open( IO_WriteOnly); | 190 | f.open( IO_WriteOnly); |
191 | if( f.writeBlock( OutputEdit->text(), qstrlen( OutputEdit->text()) ) != -1) { | 191 | if( f.writeBlock( OutputEdit->text(), qstrlen( OutputEdit->text()) ) != -1) { |
192 | DocLnk lnk; | 192 | DocLnk lnk; |
193 | lnk.setName(name); //sets file name | 193 | lnk.setName(name); //sets file name |
194 | lnk.setFile(filename); //sets File property | 194 | lnk.setFile(filename); //sets File property |
195 | lnk.setType("text/plain"); | 195 | lnk.setType("text/plain"); |
196 | if(!lnk.writeLink()) { | 196 | if(!lnk.writeLink()) { |
197 | qDebug("Writing doclink did not work"); | 197 | qDebug("Writing doclink did not work"); |
198 | } | 198 | } |
199 | } else | 199 | } else |
200 | qWarning("Could not write file"); | 200 | qWarning("Could not write file"); |
201 | f.close(); | 201 | f.close(); |
202 | } | 202 | } |
203 | } | 203 | } |
204 | 204 | ||
205 | void Output::commandStdout(OProcess*, char *buffer, int buflen) { | 205 | void Output::commandStdout(OProcess*, char *buffer, int buflen) { |
206 | qWarning("received stdout %d bytes", buflen); | 206 | qWarning("received stdout %d bytes", buflen); |
207 | 207 | ||
208 | // QByteArray data(buflen); | 208 | // QByteArray data(buflen); |
209 | // data.fill(*buffer, buflen); | 209 | // data.fill(*buffer, buflen); |
210 | // for (uint i = 0; i < data.count(); i++ ) { | 210 | // for (uint i = 0; i < data.count(); i++ ) { |
211 | // printf("%c", buffer[i] ); | 211 | // printf("%c", buffer[i] ); |
212 | // } | 212 | // } |
213 | // printf("\n"); | 213 | // printf("\n"); |
214 | 214 | ||
215 | QString lineStr = buffer; | 215 | QString lineStr = buffer; |
216 | lineStr=lineStr.left(lineStr.length()-1); | 216 | lineStr=lineStr.left(lineStr.length()-1); |
217 | OutputEdit->append(lineStr); | 217 | OutputEdit->append(lineStr); |
218 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 218 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
219 | } | 219 | } |
220 | 220 | ||
221 | 221 | ||
222 | void Output::commandStdin( const QByteArray &data) { | 222 | void Output::commandStdin( const QByteArray &data) { |
223 | qWarning("received stdin %d bytes", data.size()); | 223 | qWarning("received stdin %d bytes", data.size()); |
224 | // recieved data from the io layer goes to sz | 224 | // recieved data from the io layer goes to sz |
225 | proc->writeStdin(data.data(), data.size()); | 225 | proc->writeStdin(data.data(), data.size()); |
226 | } | 226 | } |
227 | 227 | ||
228 | void Output::commandStderr(OProcess*, char *buffer, int buflen) { | 228 | void Output::commandStderr(OProcess*, char *buffer, int buflen) { |
229 | qWarning("received stderrt %d bytes", buflen); | 229 | qWarning("received stderrt %d bytes", buflen); |
230 | 230 | ||
231 | QString lineStr = buffer; | 231 | QString lineStr = buffer; |
232 | // lineStr=lineStr.left(lineStr.length()-1); | 232 | // lineStr=lineStr.left(lineStr.length()-1); |
233 | OutputEdit->append(lineStr); | 233 | OutputEdit->append(lineStr); |
234 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 234 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
235 | } | 235 | } |
236 | 236 | ||
237 | void Output::processFinished() { | 237 | void Output::processFinished() { |
238 | 238 | ||
239 | delete proc; | 239 | delete proc; |
240 | OutputEdit->append( tr("\nFinished\n") ); | 240 | OutputEdit->append( tr("\nFinished\n") ); |
241 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | 241 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); |
242 | // close(); | 242 | // close(); |
243 | // disconnect( layer(), SIGNAL(received(const QByteArray &)), | 243 | // disconnect( layer(), SIGNAL(received(const QByteArray&)), |
244 | // this, SLOT(commandStdin(const QByteArray &))); | 244 | // this, SLOT(commandStdin(const QByteArray&))); |
245 | } | 245 | } |
246 | 246 | ||
247 | //============================== | 247 | //============================== |
248 | 248 | ||
249 | InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) | 249 | InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) |
250 | : QDialog( parent, name, modal, fl ) | 250 | : QDialog( parent, name, modal, fl ) |
251 | { | 251 | { |
252 | if ( !name ) | 252 | if ( !name ) |
253 | setName( "InputDialog" ); | 253 | setName( "InputDialog" ); |
254 | resize( 234, 50 ); | 254 | resize( 234, 50 ); |
255 | setMaximumSize( QSize( 240, 50 ) ); | 255 | setMaximumSize( QSize( 240, 50 ) ); |
256 | setCaption( tr(name ) ); | 256 | setCaption( tr(name ) ); |
257 | 257 | ||
258 | LineEdit1 = new QLineEdit( this, "LineEdit1" ); | 258 | LineEdit1 = new QLineEdit( this, "LineEdit1" ); |
259 | LineEdit1->setGeometry( QRect( 10, 10, 216, 22 ) ); | 259 | LineEdit1->setGeometry( QRect( 10, 10, 216, 22 ) ); |
260 | LineEdit1->setFocus(); | 260 | LineEdit1->setFocus(); |
261 | LineEdit1->setFocus(); | 261 | LineEdit1->setFocus(); |
262 | connect(LineEdit1,SIGNAL(returnPressed()),this,SLOT(returned() )); | 262 | connect(LineEdit1,SIGNAL(returnPressed()),this,SLOT(returned() )); |
263 | } | 263 | } |
264 | 264 | ||
265 | InputDialog::~InputDialog() { | 265 | InputDialog::~InputDialog() { |
266 | inputText = LineEdit1->text(); | 266 | inputText = LineEdit1->text(); |
267 | } | 267 | } |
268 | 268 | ||
269 | void InputDialog::setInputText(const QString &string) { | 269 | void InputDialog::setInputText(const QString &string) { |
270 | LineEdit1->setText( string); | 270 | LineEdit1->setText( string); |
271 | } | 271 | } |
272 | 272 | ||
273 | void InputDialog::returned() { | 273 | void InputDialog::returned() { |
274 | inputText = LineEdit1->text(); | 274 | inputText = LineEdit1->text(); |
275 | this->accept(); | 275 | this->accept(); |
276 | } | 276 | } |
diff --git a/noncore/apps/checkbook/checkbook.cpp b/noncore/apps/checkbook/checkbook.cpp index 26b2533..1b933f2 100644 --- a/noncore/apps/checkbook/checkbook.cpp +++ b/noncore/apps/checkbook/checkbook.cpp | |||
@@ -1,340 +1,340 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. | 3 | =. |
4 | .=l. Copyright (c) 2002 Dan Williams <drw@handhelds.org> | 4 | .=l. Copyright (c) 2002 Dan Williams <drw@handhelds.org> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 "checkbook.h" | 29 | #include "checkbook.h" |
30 | #include "cbinfo.h" | 30 | #include "cbinfo.h" |
31 | #include "transaction.h" | 31 | #include "transaction.h" |
32 | #include "traninfo.h" | 32 | #include "traninfo.h" |
33 | #include "graph.h" | 33 | #include "graph.h" |
34 | #include "graphinfo.h" | 34 | #include "graphinfo.h" |
35 | #include "password.h" | 35 | #include "password.h" |
36 | #include "cfg.h" | 36 | #include "cfg.h" |
37 | 37 | ||
38 | #include <qpe/qpeapplication.h> | 38 | #include <qpe/qpeapplication.h> |
39 | #include <qpe/qpemessagebox.h> | 39 | #include <qpe/qpemessagebox.h> |
40 | #include <qpe/resource.h> | 40 | #include <qpe/resource.h> |
41 | 41 | ||
42 | #include <qcheckbox.h> | 42 | #include <qcheckbox.h> |
43 | #include <qcombobox.h> | 43 | #include <qcombobox.h> |
44 | #include <qlabel.h> | 44 | #include <qlabel.h> |
45 | #include <qlayout.h> | 45 | #include <qlayout.h> |
46 | #include <qlineedit.h> | 46 | #include <qlineedit.h> |
47 | #include <qmultilineedit.h> | 47 | #include <qmultilineedit.h> |
48 | #include <qpushbutton.h> | 48 | #include <qpushbutton.h> |
49 | #include <qwhatsthis.h> | 49 | #include <qwhatsthis.h> |
50 | #include <qpopupmenu.h> | 50 | #include <qpopupmenu.h> |
51 | 51 | ||
52 | #define COL_ID 0 | 52 | #define COL_ID 0 |
53 | #define COL_SORTDATE 1 | 53 | #define COL_SORTDATE 1 |
54 | #define COL_NUM 2 | 54 | #define COL_NUM 2 |
55 | #define COL_DATE 3 | 55 | #define COL_DATE 3 |
56 | #define COL_DESC 4 | 56 | #define COL_DESC 4 |
57 | #define COL_AMOUNT 5 | 57 | #define COL_AMOUNT 5 |
58 | #define COL_BAL 6 | 58 | #define COL_BAL 6 |
59 | 59 | ||
60 | // --- Checkbook -------------------------------------------------------------- | 60 | // --- Checkbook -------------------------------------------------------------- |
61 | Checkbook::Checkbook( QWidget *parent, CBInfo *i, Cfg *cfg ) | 61 | Checkbook::Checkbook( QWidget *parent, CBInfo *i, Cfg *cfg ) |
62 | : QDialog( parent, 0, TRUE, WStyle_ContextHelp ) | 62 | : QDialog( parent, 0, TRUE, WStyle_ContextHelp ) |
63 | { | 63 | { |
64 | info = i; | 64 | info = i; |
65 | _pCfg=cfg; | 65 | _pCfg=cfg; |
66 | 66 | ||
67 | // Title bar | 67 | // Title bar |
68 | if ( info->name() != "" ) | 68 | if ( info->name() != "" ) |
69 | { | 69 | { |
70 | QString tempstr = info->name(); | 70 | QString tempstr = info->name(); |
71 | tempstr.append( " - " ); | 71 | tempstr.append( " - " ); |
72 | tempstr.append( tr( "Checkbook" ) ); | 72 | tempstr.append( tr( "Checkbook" ) ); |
73 | setCaption( tempstr ); | 73 | setCaption( tempstr ); |
74 | } | 74 | } |
75 | else | 75 | else |
76 | { | 76 | { |
77 | setCaption( tr( "New checkbook" ) ); | 77 | setCaption( tr( "New checkbook" ) ); |
78 | } | 78 | } |
79 | 79 | ||
80 | 80 | ||
81 | // Setup layout to make everything pretty | 81 | // Setup layout to make everything pretty |
82 | QVBoxLayout *layout = new QVBoxLayout( this ); | 82 | QVBoxLayout *layout = new QVBoxLayout( this ); |
83 | layout->setMargin( 2 ); | 83 | layout->setMargin( 2 ); |
84 | layout->setSpacing( 4 ); | 84 | layout->setSpacing( 4 ); |
85 | 85 | ||
86 | // Setup tabs for all info | 86 | // Setup tabs for all info |
87 | mainWidget = new OTabWidget( this ); | 87 | mainWidget = new OTabWidget( this ); |
88 | layout->addWidget( mainWidget ); | 88 | layout->addWidget( mainWidget ); |
89 | mainWidget->addTab( initInfo(), "checkbook/infotab", tr( "Info" ) ); | 89 | mainWidget->addTab( initInfo(), "checkbook/infotab", tr( "Info" ) ); |
90 | mainWidget->addTab( initTransactions(), "checkbook/trantab", tr( "Transactions" ) ); | 90 | mainWidget->addTab( initTransactions(), "checkbook/trantab", tr( "Transactions" ) ); |
91 | mainWidget->addTab( initCharts(), "checkbook/charttab", tr( "Charts" ) ); | 91 | mainWidget->addTab( initCharts(), "checkbook/charttab", tr( "Charts" ) ); |
92 | if( _pCfg->isShowLastTab() ) | 92 | if( _pCfg->isShowLastTab() ) |
93 | mainWidget->setCurrentTab( info->getLastTab() ); | 93 | mainWidget->setCurrentTab( info->getLastTab() ); |
94 | else | 94 | else |
95 | mainWidget->setCurrentTab( tr( "Info" ) ); | 95 | mainWidget->setCurrentTab( tr( "Info" ) ); |
96 | connect( mainWidget, SIGNAL( currentChanged(QWidget *) ), this, SLOT( slotTab(QWidget *) ) ); | 96 | connect( mainWidget, SIGNAL( currentChanged(QWidget*) ), this, SLOT( slotTab(QWidget*) ) ); |
97 | 97 | ||
98 | // Load checkbook information | 98 | // Load checkbook information |
99 | loadCheckbook(); | 99 | loadCheckbook(); |
100 | } | 100 | } |
101 | 101 | ||
102 | Checkbook::~Checkbook() | 102 | Checkbook::~Checkbook() |
103 | { | 103 | { |
104 | } | 104 | } |
105 | 105 | ||
106 | // --- initInfo --------------------------------------------------------------- | 106 | // --- initInfo --------------------------------------------------------------- |
107 | QWidget *Checkbook::initInfo() | 107 | QWidget *Checkbook::initInfo() |
108 | { | 108 | { |
109 | QWidget *control = new QWidget( mainWidget, tr("Info") ); | 109 | QWidget *control = new QWidget( mainWidget, tr("Info") ); |
110 | 110 | ||
111 | QVBoxLayout *vb = new QVBoxLayout( control ); | 111 | QVBoxLayout *vb = new QVBoxLayout( control ); |
112 | 112 | ||
113 | QScrollView *sv = new QScrollView( control ); | 113 | QScrollView *sv = new QScrollView( control ); |
114 | vb->addWidget( sv, 0, 0 ); | 114 | vb->addWidget( sv, 0, 0 ); |
115 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 115 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
116 | sv->setFrameStyle( QFrame::NoFrame ); | 116 | sv->setFrameStyle( QFrame::NoFrame ); |
117 | 117 | ||
118 | QWidget *container = new QWidget( sv->viewport() ); | 118 | QWidget *container = new QWidget( sv->viewport() ); |
119 | sv->addChild( container ); | 119 | sv->addChild( container ); |
120 | 120 | ||
121 | QGridLayout *layout = new QGridLayout( container ); | 121 | QGridLayout *layout = new QGridLayout( container ); |
122 | layout->setSpacing( 2 ); | 122 | layout->setSpacing( 2 ); |
123 | layout->setMargin( 4 ); | 123 | layout->setMargin( 4 ); |
124 | 124 | ||
125 | // Password protection | 125 | // Password protection |
126 | passwordCB = new QCheckBox( tr( "Password protect" ), container ); | 126 | passwordCB = new QCheckBox( tr( "Password protect" ), container ); |
127 | QWhatsThis::add( passwordCB, tr( "Click here to enable/disable password protection of this checkbook." ) ); | 127 | QWhatsThis::add( passwordCB, tr( "Click here to enable/disable password protection of this checkbook." ) ); |
128 | connect( passwordCB, SIGNAL( clicked() ), this, SLOT( slotPasswordClicked() ) ); | 128 | connect( passwordCB, SIGNAL( clicked() ), this, SLOT( slotPasswordClicked() ) ); |
129 | layout->addMultiCellWidget( passwordCB, 0, 0, 0, 1 ); | 129 | layout->addMultiCellWidget( passwordCB, 0, 0, 0, 1 ); |
130 | 130 | ||
131 | // Account name | 131 | // Account name |
132 | QLabel *label = new QLabel( tr( "Name:" ), container ); | 132 | QLabel *label = new QLabel( tr( "Name:" ), container ); |
133 | QWhatsThis::add( label, tr( "Enter name of checkbook here." ) ); | 133 | QWhatsThis::add( label, tr( "Enter name of checkbook here." ) ); |
134 | layout->addWidget( label, 1, 0 ); | 134 | layout->addWidget( label, 1, 0 ); |
135 | nameEdit = new QLineEdit( container ); | 135 | nameEdit = new QLineEdit( container ); |
136 | QWhatsThis::add( nameEdit, tr( "Enter name of checkbook here." ) ); | 136 | QWhatsThis::add( nameEdit, tr( "Enter name of checkbook here." ) ); |
137 | connect( nameEdit, SIGNAL( textChanged( const QString & ) ), | 137 | connect( nameEdit, SIGNAL( textChanged(const QString&) ), |
138 | this, SLOT( slotNameChanged( const QString & ) ) ); | 138 | this, SLOT( slotNameChanged(const QString&) ) ); |
139 | layout->addWidget( nameEdit, 1, 1 ); | 139 | layout->addWidget( nameEdit, 1, 1 ); |
140 | 140 | ||
141 | // Type of account | 141 | // Type of account |
142 | label = new QLabel( tr( "Type:" ), container ); | 142 | label = new QLabel( tr( "Type:" ), container ); |
143 | QWhatsThis::add( label, tr( "Select type of checkbook here." ) ); | 143 | QWhatsThis::add( label, tr( "Select type of checkbook here." ) ); |
144 | layout->addWidget( label, 2, 0 ); | 144 | layout->addWidget( label, 2, 0 ); |
145 | typeList = new QComboBox( container ); | 145 | typeList = new QComboBox( container ); |
146 | QWhatsThis::add( typeList, tr( "Select type of checkbook here." ) ); | 146 | QWhatsThis::add( typeList, tr( "Select type of checkbook here." ) ); |
147 | typeList->insertStringList( _pCfg->getAccountTypes() ); | 147 | typeList->insertStringList( _pCfg->getAccountTypes() ); |
148 | layout->addWidget( typeList, 2, 1 ); | 148 | layout->addWidget( typeList, 2, 1 ); |
149 | 149 | ||
150 | // Bank/institution name | 150 | // Bank/institution name |
151 | label = new QLabel( tr( "Bank:" ), container ); | 151 | label = new QLabel( tr( "Bank:" ), container ); |
152 | QWhatsThis::add( label, tr( "Enter name of the bank for this checkbook here." ) ); | 152 | QWhatsThis::add( label, tr( "Enter name of the bank for this checkbook here." ) ); |
153 | layout->addWidget( label, 3, 0 ); | 153 | layout->addWidget( label, 3, 0 ); |
154 | bankEdit = new QLineEdit( container ); | 154 | bankEdit = new QLineEdit( container ); |
155 | QWhatsThis::add( bankEdit, tr( "Enter name of the bank for this checkbook here." ) ); | 155 | QWhatsThis::add( bankEdit, tr( "Enter name of the bank for this checkbook here." ) ); |
156 | layout->addWidget( bankEdit, 3, 1 ); | 156 | layout->addWidget( bankEdit, 3, 1 ); |
157 | 157 | ||
158 | // Account number | 158 | // Account number |
159 | label = new QLabel( tr( "Account number:" ), container ); | 159 | label = new QLabel( tr( "Account number:" ), container ); |
160 | QWhatsThis::add( label, tr( "Enter account number for this checkbook here." ) ); | 160 | QWhatsThis::add( label, tr( "Enter account number for this checkbook here." ) ); |
161 | layout->addWidget( label, 4, 0 ); | 161 | layout->addWidget( label, 4, 0 ); |
162 | acctNumEdit = new QLineEdit( container ); | 162 | acctNumEdit = new QLineEdit( container ); |
163 | QWhatsThis::add( acctNumEdit, tr( "Enter account number for this checkbook here." ) ); | 163 | QWhatsThis::add( acctNumEdit, tr( "Enter account number for this checkbook here." ) ); |
164 | layout->addWidget( acctNumEdit, 4, 1 ); | 164 | layout->addWidget( acctNumEdit, 4, 1 ); |
165 | 165 | ||
166 | // PIN number | 166 | // PIN number |
167 | label = new QLabel( tr( "PIN number:" ), container ); | 167 | label = new QLabel( tr( "PIN number:" ), container ); |
168 | QWhatsThis::add( label, tr( "Enter PIN number for this checkbook here." ) ); | 168 | QWhatsThis::add( label, tr( "Enter PIN number for this checkbook here." ) ); |
169 | layout->addWidget( label, 5, 0 ); | 169 | layout->addWidget( label, 5, 0 ); |
170 | pinNumEdit = new QLineEdit( container ); | 170 | pinNumEdit = new QLineEdit( container ); |
171 | QWhatsThis::add( pinNumEdit, tr( "Enter PIN number for this checkbook here." ) ); | 171 | QWhatsThis::add( pinNumEdit, tr( "Enter PIN number for this checkbook here." ) ); |
172 | layout->addWidget( pinNumEdit, 5, 1 ); | 172 | layout->addWidget( pinNumEdit, 5, 1 ); |
173 | 173 | ||
174 | // Starting balance | 174 | // Starting balance |
175 | label = new QLabel( tr( "Starting balance:" ), container ); | 175 | label = new QLabel( tr( "Starting balance:" ), container ); |
176 | QWhatsThis::add( label, tr( "Enter the initial balance for this checkbook here." ) ); | 176 | QWhatsThis::add( label, tr( "Enter the initial balance for this checkbook here." ) ); |
177 | layout->addWidget( label, 6, 0 ); | 177 | layout->addWidget( label, 6, 0 ); |
178 | balanceEdit = new QLineEdit( container ); | 178 | balanceEdit = new QLineEdit( container ); |
179 | QWhatsThis::add( balanceEdit, tr( "Enter the initial balance for this checkbook here." ) ); | 179 | QWhatsThis::add( balanceEdit, tr( "Enter the initial balance for this checkbook here." ) ); |
180 | connect( balanceEdit, SIGNAL( textChanged( const QString & ) ), | 180 | connect( balanceEdit, SIGNAL( textChanged(const QString&) ), |
181 | this, SLOT( slotStartingBalanceChanged( const QString & ) ) ); | 181 | this, SLOT( slotStartingBalanceChanged(const QString&) ) ); |
182 | layout->addWidget( balanceEdit, 6, 1 ); | 182 | layout->addWidget( balanceEdit, 6, 1 ); |
183 | 183 | ||
184 | // Notes | 184 | // Notes |
185 | label = new QLabel( tr( "Notes:" ), container ); | 185 | label = new QLabel( tr( "Notes:" ), container ); |
186 | QWhatsThis::add( label, tr( "Enter any additional information for this checkbook here." ) ); | 186 | QWhatsThis::add( label, tr( "Enter any additional information for this checkbook here." ) ); |
187 | layout->addWidget( label, 7, 0 ); | 187 | layout->addWidget( label, 7, 0 ); |
188 | notesEdit = new QMultiLineEdit( container ); | 188 | notesEdit = new QMultiLineEdit( container ); |
189 | QWhatsThis::add( notesEdit, tr( "Enter any additional information for this checkbook here." ) ); | 189 | QWhatsThis::add( notesEdit, tr( "Enter any additional information for this checkbook here." ) ); |
190 | notesEdit->setMinimumHeight( 25 ); | 190 | notesEdit->setMinimumHeight( 25 ); |
191 | notesEdit->setMaximumHeight( 65 ); | 191 | notesEdit->setMaximumHeight( 65 ); |
192 | layout->addMultiCellWidget( notesEdit, 8, 8, 0, 1 ); | 192 | layout->addMultiCellWidget( notesEdit, 8, 8, 0, 1 ); |
193 | 193 | ||
194 | return control; | 194 | return control; |
195 | } | 195 | } |
196 | 196 | ||
197 | 197 | ||
198 | // --- initTransactions ------------------------------------------------------- | 198 | // --- initTransactions ------------------------------------------------------- |
199 | QWidget *Checkbook::initTransactions() | 199 | QWidget *Checkbook::initTransactions() |
200 | { | 200 | { |
201 | QWidget *control = new QWidget( mainWidget, tr("Transactions") ); | 201 | QWidget *control = new QWidget( mainWidget, tr("Transactions") ); |
202 | 202 | ||
203 | QGridLayout *layout = new QGridLayout( control ); | 203 | QGridLayout *layout = new QGridLayout( control ); |
204 | layout->setSpacing( 2 ); | 204 | layout->setSpacing( 2 ); |
205 | layout->setMargin( 4 ); | 205 | layout->setMargin( 4 ); |
206 | 206 | ||
207 | // Sort selector | 207 | // Sort selector |
208 | QLabel *label = new QLabel( tr( "Sort by:" ), control ); | 208 | QLabel *label = new QLabel( tr( "Sort by:" ), control ); |
209 | QWhatsThis::add( label, tr( "Select checkbook sorting here." ) ); | 209 | QWhatsThis::add( label, tr( "Select checkbook sorting here." ) ); |
210 | layout->addMultiCellWidget( label, 0, 0, 0, 1 ); | 210 | layout->addMultiCellWidget( label, 0, 0, 0, 1 ); |
211 | _cbSortType=new QComboBox( control ); | 211 | _cbSortType=new QComboBox( control ); |
212 | _cbSortType->insertItem( tr("Entry Order") ); | 212 | _cbSortType->insertItem( tr("Entry Order") ); |
213 | _cbSortType->insertItem( tr("Date") ); | 213 | _cbSortType->insertItem( tr("Date") ); |
214 | _cbSortType->insertItem( tr("Number") ); | 214 | _cbSortType->insertItem( tr("Number") ); |
215 | layout->addMultiCellWidget( _cbSortType, 0, 0, 1, 2 ); | 215 | layout->addMultiCellWidget( _cbSortType, 0, 0, 1, 2 ); |
216 | connect( _cbSortType, SIGNAL( activated(const QString &) ), this, SLOT( slotSortChanged( const QString & ) ) ); | 216 | connect( _cbSortType, SIGNAL( activated(const QString&) ), this, SLOT( slotSortChanged(const QString&) ) ); |
217 | 217 | ||
218 | // Table | 218 | // Table |
219 | tranTable = new QListView( control ); | 219 | tranTable = new QListView( control ); |
220 | QFont fnt(QPEApplication::font()); | 220 | QFont fnt(QPEApplication::font()); |
221 | fnt.setPointSize( fnt.pointSize()-1 ); | 221 | fnt.setPointSize( fnt.pointSize()-1 ); |
222 | tranTable->setFont( fnt ); | 222 | tranTable->setFont( fnt ); |
223 | QWhatsThis::add( tranTable, tr( "This is a listing of all transactions entered for this checkbook.\n\nTo sort entries by a specific field, click on the column name." ) ); | 223 | QWhatsThis::add( tranTable, tr( "This is a listing of all transactions entered for this checkbook.\n\nTo sort entries by a specific field, click on the column name." ) ); |
224 | tranTable->addColumn( tr( "Id" ) ); | 224 | tranTable->addColumn( tr( "Id" ) ); |
225 | tranTable->setColumnWidthMode( COL_ID, QListView::Manual ); | 225 | tranTable->setColumnWidthMode( COL_ID, QListView::Manual ); |
226 | tranTable->setColumnWidth( COL_ID, 0); | 226 | tranTable->setColumnWidth( COL_ID, 0); |
227 | tranTable->addColumn( tr( "SortDate" ) ); | 227 | tranTable->addColumn( tr( "SortDate" ) ); |
228 | tranTable->setColumnWidthMode( COL_SORTDATE, QListView::Manual ); | 228 | tranTable->setColumnWidthMode( COL_SORTDATE, QListView::Manual ); |
229 | tranTable->setColumnWidth( COL_SORTDATE, 0); | 229 | tranTable->setColumnWidth( COL_SORTDATE, 0); |
230 | tranTable->addColumn( tr( "Num" ) ); | 230 | tranTable->addColumn( tr( "Num" ) ); |
231 | tranTable->addColumn( tr( "Date" ) ); | 231 | tranTable->addColumn( tr( "Date" ) ); |
232 | //tranTable->addColumn( tr( "Cleared" ) ); | 232 | //tranTable->addColumn( tr( "Cleared" ) ); |
233 | tranTable->addColumn( tr( "Description" ) ); | 233 | tranTable->addColumn( tr( "Description" ) ); |
234 | int column = tranTable->addColumn( tr( "Amount" ) ); | 234 | int column = tranTable->addColumn( tr( "Amount" ) ); |
235 | tranTable->setColumnAlignment( column, Qt::AlignRight ); | 235 | tranTable->setColumnAlignment( column, Qt::AlignRight ); |
236 | column=tranTable->addColumn( tr("Balance") ); | 236 | column=tranTable->addColumn( tr("Balance") ); |
237 | tranTable->setColumnAlignment( column, Qt::AlignRight ); | 237 | tranTable->setColumnAlignment( column, Qt::AlignRight ); |
238 | tranTable->setAllColumnsShowFocus( TRUE ); | 238 | tranTable->setAllColumnsShowFocus( TRUE ); |
239 | tranTable->setSorting( -1 ); | 239 | tranTable->setSorting( -1 ); |
240 | layout->addMultiCellWidget( tranTable, 1, 1, 0, 2 ); | 240 | layout->addMultiCellWidget( tranTable, 1, 1, 0, 2 ); |
241 | QPEApplication::setStylusOperation( tranTable->viewport(), QPEApplication::RightOnHold ); | 241 | QPEApplication::setStylusOperation( tranTable->viewport(), QPEApplication::RightOnHold ); |
242 | connect( tranTable, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), | 242 | connect( tranTable, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), |
243 | this, SLOT( slotMenuTran(QListViewItem *, const QPoint &) ) ); | 243 | this, SLOT( slotMenuTran(QListViewItem*,const QPoint&) ) ); |
244 | connect( tranTable, SIGNAL( doubleClicked( QListViewItem * ) ), | 244 | connect( tranTable, SIGNAL( doubleClicked(QListViewItem*) ), |
245 | this, SLOT( slotEditTran() ) ); | 245 | this, SLOT( slotEditTran() ) ); |
246 | _sortCol=COL_ID; | 246 | _sortCol=COL_ID; |
247 | 247 | ||
248 | // Buttons | 248 | // Buttons |
249 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), control ); | 249 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), control ); |
250 | QWhatsThis::add( btn, tr( "Click here to add a new transaction." ) ); | 250 | QWhatsThis::add( btn, tr( "Click here to add a new transaction." ) ); |
251 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotNewTran() ) ); | 251 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotNewTran() ) ); |
252 | layout->addWidget( btn, 2, 0 ); | 252 | layout->addWidget( btn, 2, 0 ); |
253 | 253 | ||
254 | btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), control ); | 254 | btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), control ); |
255 | QWhatsThis::add( btn, tr( "Select a transaction and then click here to edit it." ) ); | 255 | QWhatsThis::add( btn, tr( "Select a transaction and then click here to edit it." ) ); |
256 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotEditTran() ) ); | 256 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotEditTran() ) ); |
257 | layout->addWidget( btn, 2, 1 ); | 257 | layout->addWidget( btn, 2, 1 ); |
258 | 258 | ||
259 | btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), control ); | 259 | btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), control ); |
260 | QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) ); | 260 | QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) ); |
261 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotDeleteTran() ) ); | 261 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotDeleteTran() ) ); |
262 | layout->addWidget( btn, 2, 2 ); | 262 | layout->addWidget( btn, 2, 2 ); |
263 | 263 | ||
264 | return( control ); | 264 | return( control ); |
265 | } | 265 | } |
266 | 266 | ||
267 | 267 | ||
268 | // --- initCharts ------------------------------------------------------------- | 268 | // --- initCharts ------------------------------------------------------------- |
269 | QWidget *Checkbook::initCharts() | 269 | QWidget *Checkbook::initCharts() |
270 | { | 270 | { |
271 | graphInfo = 0x0; | 271 | graphInfo = 0x0; |
272 | 272 | ||
273 | QWidget *control = new QWidget( mainWidget, tr("Charts") ); | 273 | QWidget *control = new QWidget( mainWidget, tr("Charts") ); |
274 | 274 | ||
275 | QGridLayout *layout = new QGridLayout( control ); | 275 | QGridLayout *layout = new QGridLayout( control ); |
276 | layout->setSpacing( 2 ); | 276 | layout->setSpacing( 2 ); |
277 | layout->setMargin( 4 ); | 277 | layout->setMargin( 4 ); |
278 | 278 | ||
279 | graphWidget = new Graph( control ); | 279 | graphWidget = new Graph( control ); |
280 | QWhatsThis::add( graphWidget, tr( "Select the desired chart below and then click on the Draw button." ) ); | 280 | QWhatsThis::add( graphWidget, tr( "Select the desired chart below and then click on the Draw button." ) ); |
281 | layout->addMultiCellWidget( graphWidget, 0, 0, 0, 2 ); | 281 | layout->addMultiCellWidget( graphWidget, 0, 0, 0, 2 ); |
282 | 282 | ||
283 | graphList = new QComboBox( control ); | 283 | graphList = new QComboBox( control ); |
284 | QWhatsThis::add( graphList, tr( "Click here to select the desired chart type." ) ); | 284 | QWhatsThis::add( graphList, tr( "Click here to select the desired chart type." ) ); |
285 | graphList->insertItem( tr( "Account balance" ) ); | 285 | graphList->insertItem( tr( "Account balance" ) ); |
286 | graphList->insertItem( tr( "Withdrawals by category" ) ); | 286 | graphList->insertItem( tr( "Withdrawals by category" ) ); |
287 | graphList->insertItem( tr( "Deposits by category" ) ); | 287 | graphList->insertItem( tr( "Deposits by category" ) ); |
288 | 288 | ||
289 | layout->addMultiCellWidget( graphList, 1, 1, 0, 1 ); | 289 | layout->addMultiCellWidget( graphList, 1, 1, 0, 1 ); |
290 | 290 | ||
291 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "checkbook/drawbtn" ), tr( "Draw" ), control ); | 291 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "checkbook/drawbtn" ), tr( "Draw" ), control ); |
292 | QWhatsThis::add( btn, tr( "Click here to draw the selected chart." ) ); | 292 | QWhatsThis::add( btn, tr( "Click here to draw the selected chart." ) ); |
293 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotDrawGraph() ) ); | 293 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotDrawGraph() ) ); |
294 | layout->addWidget( btn, 1, 2 ); | 294 | layout->addWidget( btn, 1, 2 ); |
295 | 295 | ||
296 | return control; | 296 | return control; |
297 | } | 297 | } |
298 | 298 | ||
299 | // --- loadCheckbook ---------------------------------------------------------- | 299 | // --- loadCheckbook ---------------------------------------------------------- |
300 | void Checkbook::loadCheckbook() | 300 | void Checkbook::loadCheckbook() |
301 | { | 301 | { |
302 | if ( !info ) | 302 | if ( !info ) |
303 | { | 303 | { |
304 | return; | 304 | return; |
305 | } | 305 | } |
306 | 306 | ||
307 | tranList = info->transactions(); | 307 | tranList = info->transactions(); |
308 | 308 | ||
309 | passwordCB->setChecked( !info->password().isNull() ); | 309 | passwordCB->setChecked( !info->password().isNull() ); |
310 | nameEdit->setText( info->name() ); | 310 | nameEdit->setText( info->name() ); |
311 | QString temptext = info->type(); | 311 | QString temptext = info->type(); |
312 | int i = typeList->count(); | 312 | int i = typeList->count(); |
313 | while ( i > 0 ) | 313 | while ( i > 0 ) |
314 | { | 314 | { |
315 | i--; | 315 | i--; |
316 | typeList->setCurrentItem( i ); | 316 | typeList->setCurrentItem( i ); |
317 | if ( typeList->currentText() == temptext ) | 317 | if ( typeList->currentText() == temptext ) |
318 | { | 318 | { |
319 | break; | 319 | break; |
320 | } | 320 | } |
321 | } | 321 | } |
322 | if( i<=0 ) { | 322 | if( i<=0 ) { |
323 | typeList->insertItem( temptext, 0 ); | 323 | typeList->insertItem( temptext, 0 ); |
324 | typeList->setCurrentItem(0); | 324 | typeList->setCurrentItem(0); |
325 | } | 325 | } |
326 | bankEdit->setText( info->bank() ); | 326 | bankEdit->setText( info->bank() ); |
327 | acctNumEdit->setText( info->account() ); | 327 | acctNumEdit->setText( info->account() ); |
328 | pinNumEdit->setText( info->pin() ); | 328 | pinNumEdit->setText( info->pin() ); |
329 | temptext.setNum( info->startingBalance(), 'f', 2 ); | 329 | temptext.setNum( info->startingBalance(), 'f', 2 ); |
330 | balanceEdit->setText( temptext ); | 330 | balanceEdit->setText( temptext ); |
331 | notesEdit->setText( info->notes() ); | 331 | notesEdit->setText( info->notes() ); |
332 | 332 | ||
333 | // Load transactions | 333 | // Load transactions |
334 | float amount; | 334 | float amount; |
335 | QString stramount; | 335 | QString stramount; |
336 | for ( TranInfo *tran = tranList->first(); tran; tran = tranList->next() ) | 336 | for ( TranInfo *tran = tranList->first(); tran; tran = tranList->next() ) |
337 | { | 337 | { |
338 | amount = tran->amount(); | 338 | amount = tran->amount(); |
339 | if ( tran->withdrawal() ) | 339 | if ( tran->withdrawal() ) |
340 | { | 340 | { |
diff --git a/noncore/apps/checkbook/listedit.cpp b/noncore/apps/checkbook/listedit.cpp index 37f05f0..d00e305 100644 --- a/noncore/apps/checkbook/listedit.cpp +++ b/noncore/apps/checkbook/listedit.cpp | |||
@@ -1,168 +1,168 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. | 3 | =. |
4 | .=l. Copyright (c) 2002 Dan Williams <drw@handhelds.org> | 4 | .=l. Copyright (c) 2002 Dan Williams <drw@handhelds.org> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 "listedit.h" | 29 | #include "listedit.h" |
30 | #include <qlayout.h> | 30 | #include <qlayout.h> |
31 | #include <qlineedit.h> | 31 | #include <qlineedit.h> |
32 | #include <qlistview.h> | 32 | #include <qlistview.h> |
33 | #include <qwidgetstack.h> | 33 | #include <qwidgetstack.h> |
34 | #include <qcombobox.h> | 34 | #include <qcombobox.h> |
35 | #include <qpushbutton.h> | 35 | #include <qpushbutton.h> |
36 | #include <qpe/resource.h> | 36 | #include <qpe/resource.h> |
37 | 37 | ||
38 | 38 | ||
39 | // --- ListEdit --------------------------------------------------------------- | 39 | // --- ListEdit --------------------------------------------------------------- |
40 | ListEdit::ListEdit( QWidget *parent, const char *sName ) | 40 | ListEdit::ListEdit( QWidget *parent, const char *sName ) |
41 | : QWidget(parent, sName), TableDef(sName) | 41 | : QWidget(parent, sName), TableDef(sName) |
42 | { | 42 | { |
43 | // get font height | 43 | // get font height |
44 | int fh = fontMetrics().height(); | 44 | int fh = fontMetrics().height(); |
45 | 45 | ||
46 | // create layout | 46 | // create layout |
47 | QGridLayout *layout=new QGridLayout(this); | 47 | QGridLayout *layout=new QGridLayout(this); |
48 | layout->setSpacing( 2 ); | 48 | layout->setSpacing( 2 ); |
49 | layout->setMargin( 4 ); | 49 | layout->setMargin( 4 ); |
50 | 50 | ||
51 | // type table | 51 | // type table |
52 | _typeTable = new QListView( this ); | 52 | _typeTable = new QListView( this ); |
53 | ColumnDef *def=first(); | 53 | ColumnDef *def=first(); |
54 | while( def ) { | 54 | while( def ) { |
55 | _typeTable->addColumn( def->getName() ); | 55 | _typeTable->addColumn( def->getName() ); |
56 | def=next(); | 56 | def=next(); |
57 | } | 57 | } |
58 | connect( _typeTable, SIGNAL( clicked(QListViewItem *, const QPoint &, int) ), this, SLOT( slotClick(QListViewItem *, const QPoint &, int ) ) ); | 58 | connect( _typeTable, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotClick(QListViewItem*,const QPoint&,int) ) ); |
59 | layout->addMultiCellWidget(_typeTable, 0,4,0,4); | 59 | layout->addMultiCellWidget(_typeTable, 0,4,0,4); |
60 | _currentItem=NULL; | 60 | _currentItem=NULL; |
61 | 61 | ||
62 | // edit field | 62 | // edit field |
63 | _stack=new QWidgetStack( this ); | 63 | _stack=new QWidgetStack( this ); |
64 | _stack->setMaximumHeight(fh+5); | 64 | _stack->setMaximumHeight(fh+5); |
65 | layout->addMultiCellWidget(_stack, 5,5,0,2); | 65 | layout->addMultiCellWidget(_stack, 5,5,0,2); |
66 | _typeEdit = new QLineEdit( _stack ); | 66 | _typeEdit = new QLineEdit( _stack ); |
67 | _stack->raiseWidget(_typeEdit ); | 67 | _stack->raiseWidget(_typeEdit ); |
68 | connect( _typeEdit, SIGNAL( textChanged(const QString &) ), this, SLOT( slotEditChanged(const QString &) ) ); | 68 | connect( _typeEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( slotEditChanged(const QString&) ) ); |
69 | 69 | ||
70 | // combo box | 70 | // combo box |
71 | _box=new QComboBox( _stack ); | 71 | _box=new QComboBox( _stack ); |
72 | connect( _box, SIGNAL( activated(const QString &) ), this, SLOT( slotActivated(const QString &) ) ); | 72 | connect( _box, SIGNAL( activated(const QString&) ), this, SLOT( slotActivated(const QString&) ) ); |
73 | 73 | ||
74 | 74 | ||
75 | // add button | 75 | // add button |
76 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "checkbook/add" ), tr( "Add" ), this ); | 76 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "checkbook/add" ), tr( "Add" ), this ); |
77 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotAdd() ) ); | 77 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotAdd() ) ); |
78 | layout->addWidget( btn, 5, 3 ); | 78 | layout->addWidget( btn, 5, 3 ); |
79 | 79 | ||
80 | // delete button | 80 | // delete button |
81 | btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), this ); | 81 | btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), this ); |
82 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotDel() ) ); | 82 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotDel() ) ); |
83 | layout->addWidget( btn, 5, 4 ); | 83 | layout->addWidget( btn, 5, 4 ); |
84 | } | 84 | } |
85 | 85 | ||
86 | // --- ~ListEdit -------------------------------------------------------------- | 86 | // --- ~ListEdit -------------------------------------------------------------- |
87 | ListEdit::~ListEdit() | 87 | ListEdit::~ListEdit() |
88 | { | 88 | { |
89 | } | 89 | } |
90 | 90 | ||
91 | 91 | ||
92 | // --- slotEditTypeChanged ---------------------------------------------------- | 92 | // --- slotEditTypeChanged ---------------------------------------------------- |
93 | void ListEdit::slotEditChanged(const QString &str) | 93 | void ListEdit::slotEditChanged(const QString &str) |
94 | { | 94 | { |
95 | if( !_currentItem || _currentColumn<0 ) return; | 95 | if( !_currentItem || _currentColumn<0 ) return; |
96 | _currentItem->setText(_currentColumn, str); | 96 | _currentItem->setText(_currentColumn, str); |
97 | } | 97 | } |
98 | 98 | ||
99 | // --- slotAddType ------------------------------------------------------------ | 99 | // --- slotAddType ------------------------------------------------------------ |
100 | void ListEdit::slotAdd() | 100 | void ListEdit::slotAdd() |
101 | { | 101 | { |
102 | // construct new row | 102 | // construct new row |
103 | QString args[8]; | 103 | QString args[8]; |
104 | ColumnDef *pCol=this->first(); | 104 | ColumnDef *pCol=this->first(); |
105 | int i=0; | 105 | int i=0; |
106 | while( pCol && i<8 ) { | 106 | while( pCol && i<8 ) { |
107 | args[i++]=pCol->getNewValue(); | 107 | args[i++]=pCol->getNewValue(); |
108 | pCol=this->next(); | 108 | pCol=this->next(); |
109 | } | 109 | } |
110 | _currentItem=new QListViewItem(_typeTable, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7] ); | 110 | _currentItem=new QListViewItem(_typeTable, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7] ); |
111 | 111 | ||
112 | // fix uniques | 112 | // fix uniques |
113 | fixTypes(); | 113 | fixTypes(); |
114 | 114 | ||
115 | // display col 0 of new value | 115 | // display col 0 of new value |
116 | QPoint pnt; | 116 | QPoint pnt; |
117 | slotClick(_currentItem, pnt, 0); | 117 | slotClick(_currentItem, pnt, 0); |
118 | _typeTable->setSelected( _currentItem, true ); | 118 | _typeTable->setSelected( _currentItem, true ); |
119 | 119 | ||
120 | // make it selected | 120 | // make it selected |
121 | _typeEdit->setCursorPosition(0); | 121 | _typeEdit->setCursorPosition(0); |
122 | _typeEdit->setSelection(0, _typeEdit->text().length() ); | 122 | _typeEdit->setSelection(0, _typeEdit->text().length() ); |
123 | } | 123 | } |
124 | 124 | ||
125 | // --- slotDel ------------------------------------------------------------- | 125 | // --- slotDel ------------------------------------------------------------- |
126 | void ListEdit::slotDel() | 126 | void ListEdit::slotDel() |
127 | { | 127 | { |
128 | if( !_currentItem ) return; | 128 | if( !_currentItem ) return; |
129 | delete _currentItem; | 129 | delete _currentItem; |
130 | _currentItem=NULL; | 130 | _currentItem=NULL; |
131 | _typeEdit->setText(""); | 131 | _typeEdit->setText(""); |
132 | _stack->raiseWidget(_typeEdit); | 132 | _stack->raiseWidget(_typeEdit); |
133 | } | 133 | } |
134 | 134 | ||
135 | 135 | ||
136 | // --- fixTypes ---------------------------------------------------------------- | 136 | // --- fixTypes ---------------------------------------------------------------- |
137 | // Makes sure all entries have a unique name and empty entries are replaced | 137 | // Makes sure all entries have a unique name and empty entries are replaced |
138 | // by a generic string. The first version performs the operation on a particular | 138 | // by a generic string. The first version performs the operation on a particular |
139 | // column, whereas the 2nd does it for all unique columns. | 139 | // column, whereas the 2nd does it for all unique columns. |
140 | class ColMap { | 140 | class ColMap { |
141 | public: | 141 | public: |
142 | ColMap(QString sValue, QListViewItem *pEntry) { | 142 | ColMap(QString sValue, QListViewItem *pEntry) { |
143 | _sValue=sValue; | 143 | _sValue=sValue; |
144 | _pEntry=pEntry; | 144 | _pEntry=pEntry; |
145 | } | 145 | } |
146 | QString &getValue() { return(_sValue); } | 146 | QString &getValue() { return(_sValue); } |
147 | QListViewItem *getItem() { return(_pEntry); } | 147 | QListViewItem *getItem() { return(_pEntry); } |
148 | 148 | ||
149 | protected: | 149 | protected: |
150 | QString _sValue; | 150 | QString _sValue; |
151 | QListViewItem *_pEntry; | 151 | QListViewItem *_pEntry; |
152 | }; | 152 | }; |
153 | 153 | ||
154 | class ColList : public QList<QString> | 154 | class ColList : public QList<QString> |
155 | { | 155 | { |
156 | public: | 156 | public: |
157 | ColList() : QList<QString>() { } | 157 | ColList() : QList<QString>() { } |
158 | 158 | ||
159 | protected: | 159 | protected: |
160 | int compareItems(QCollection::Item, QCollection::Item); | 160 | int compareItems(QCollection::Item, QCollection::Item); |
161 | }; | 161 | }; |
162 | 162 | ||
163 | int ColList::compareItems(QCollection::Item i1, QCollection::Item i2) { | 163 | int ColList::compareItems(QCollection::Item i1, QCollection::Item i2) { |
164 | return( ((QString *)i1)->compare(*(QString *)i2) ); | 164 | return( ((QString *)i1)->compare(*(QString *)i2) ); |
165 | } | 165 | } |
166 | 166 | ||
167 | void ListEdit::fixTypes(int iColumn) | 167 | void ListEdit::fixTypes(int iColumn) |
168 | { | 168 | { |
diff --git a/noncore/apps/checkbook/mainwindow.cpp b/noncore/apps/checkbook/mainwindow.cpp index d0fac3b..254ce6a 100644 --- a/noncore/apps/checkbook/mainwindow.cpp +++ b/noncore/apps/checkbook/mainwindow.cpp | |||
@@ -79,193 +79,193 @@ MainWindow::MainWindow( QWidget* parent, const char* name, WFlags /*fl*/ ) | |||
79 | connect( actionOpen, SIGNAL( activated() ), this, SLOT( slotEdit() ) ); | 79 | connect( actionOpen, SIGNAL( activated() ), this, SLOT( slotEdit() ) ); |
80 | actionOpen->addTo( popup ); | 80 | actionOpen->addTo( popup ); |
81 | actionOpen->addTo( bar ); | 81 | actionOpen->addTo( bar ); |
82 | 82 | ||
83 | actionDelete = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, | 83 | actionDelete = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, |
84 | 0, this, 0 ); | 84 | 0, this, 0 ); |
85 | actionDelete->setWhatsThis( tr( "Select a checkbook and then click here delete it.\n\nYou also can select Delete from the Checkbook menu." ) ); | 85 | actionDelete->setWhatsThis( tr( "Select a checkbook and then click here delete it.\n\nYou also can select Delete from the Checkbook menu." ) ); |
86 | connect( actionDelete, SIGNAL( activated() ), this, SLOT( slotDelete() ) ); | 86 | connect( actionDelete, SIGNAL( activated() ), this, SLOT( slotDelete() ) ); |
87 | actionDelete->addTo( popup ); | 87 | actionDelete->addTo( popup ); |
88 | actionDelete->addTo( bar ); | 88 | actionDelete->addTo( bar ); |
89 | 89 | ||
90 | popup->insertSeparator(); | 90 | popup->insertSeparator(); |
91 | 91 | ||
92 | a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); | 92 | a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); |
93 | a->setWhatsThis( tr( "Click here to configure this app." ) ); | 93 | a->setWhatsThis( tr( "Click here to configure this app." ) ); |
94 | connect( a, SIGNAL( activated() ), this, SLOT( slotConfigure() ) ); | 94 | connect( a, SIGNAL( activated() ), this, SLOT( slotConfigure() ) ); |
95 | a->addTo( popup ); | 95 | a->addTo( popup ); |
96 | a->addTo( bar ); | 96 | a->addTo( bar ); |
97 | 97 | ||
98 | mb->insertItem( tr( "Checkbook" ), popup ); | 98 | mb->insertItem( tr( "Checkbook" ), popup ); |
99 | 99 | ||
100 | // Load Checkbook selection list | 100 | // Load Checkbook selection list |
101 | checkbooks = new CBInfoList(); | 101 | checkbooks = new CBInfoList(); |
102 | 102 | ||
103 | QDir checkdir( cbDir ); | 103 | QDir checkdir( cbDir ); |
104 | if (checkdir.exists() == true) | 104 | if (checkdir.exists() == true) |
105 | { | 105 | { |
106 | QStringList cblist = checkdir.entryList( "*.qcb", QDir::Files|QDir::Readable|QDir::Writable, | 106 | QStringList cblist = checkdir.entryList( "*.qcb", QDir::Files|QDir::Readable|QDir::Writable, |
107 | QDir::Time ); | 107 | QDir::Time ); |
108 | CBInfo *cb = 0x0; | 108 | CBInfo *cb = 0x0; |
109 | QString filename; | 109 | QString filename; |
110 | 110 | ||
111 | for ( QStringList::Iterator it = cblist.begin(); it != cblist.end(); it++ ) | 111 | for ( QStringList::Iterator it = cblist.begin(); it != cblist.end(); it++ ) |
112 | { | 112 | { |
113 | filename = cbDir; | 113 | filename = cbDir; |
114 | filename.append( (*it) ); | 114 | filename.append( (*it) ); |
115 | 115 | ||
116 | cb = new CBInfo( (*it).remove( (*it).find('.'), (*it).length() ), filename ); | 116 | cb = new CBInfo( (*it).remove( (*it).find('.'), (*it).length() ), filename ); |
117 | checkbooks->inSort( cb ); | 117 | checkbooks->inSort( cb ); |
118 | } | 118 | } |
119 | } | 119 | } |
120 | 120 | ||
121 | // Build Checkbook selection list control | 121 | // Build Checkbook selection list control |
122 | cbList = 0x0; | 122 | cbList = 0x0; |
123 | buildList(); | 123 | buildList(); |
124 | 124 | ||
125 | // open last book? | 125 | // open last book? |
126 | if( _cfg.isOpenLastBook() ) { | 126 | if( _cfg.isOpenLastBook() ) { |
127 | this->show(); | 127 | this->show(); |
128 | this->showMaximized(); | 128 | this->showMaximized(); |
129 | QListViewItem *itm=cbList->firstChild(); | 129 | QListViewItem *itm=cbList->firstChild(); |
130 | while( itm ) { | 130 | while( itm ) { |
131 | if( itm->text(posName)==_cfg.getLastBook() ) { | 131 | if( itm->text(posName)==_cfg.getLastBook() ) { |
132 | openBook( itm ); | 132 | openBook( itm ); |
133 | break; | 133 | break; |
134 | } | 134 | } |
135 | itm=itm->nextSibling(); | 135 | itm=itm->nextSibling(); |
136 | } | 136 | } |
137 | } | 137 | } |
138 | } | 138 | } |
139 | 139 | ||
140 | 140 | ||
141 | // --- ~MainWindow ------------------------------------------------------------ | 141 | // --- ~MainWindow ------------------------------------------------------------ |
142 | MainWindow::~MainWindow() | 142 | MainWindow::~MainWindow() |
143 | { | 143 | { |
144 | writeConfig(); | 144 | writeConfig(); |
145 | } | 145 | } |
146 | 146 | ||
147 | 147 | ||
148 | // --- buildList -------------------------------------------------------------- | 148 | // --- buildList -------------------------------------------------------------- |
149 | void MainWindow::buildList() | 149 | void MainWindow::buildList() |
150 | { | 150 | { |
151 | if ( cbList ) | 151 | if ( cbList ) |
152 | delete cbList; | 152 | delete cbList; |
153 | 153 | ||
154 | cbList = new QListView( this ); | 154 | cbList = new QListView( this ); |
155 | QWhatsThis::add( cbList, tr( "This is a listing of all checkbooks currently available." ) ); | 155 | QWhatsThis::add( cbList, tr( "This is a listing of all checkbooks currently available." ) ); |
156 | 156 | ||
157 | if ( _cfg.getShowLocks() ) | 157 | if ( _cfg.getShowLocks() ) |
158 | { | 158 | { |
159 | cbList->addColumn( Resource::loadIconSet( "locked" ), "", 24 ); | 159 | cbList->addColumn( Resource::loadIconSet( "locked" ), "", 24 ); |
160 | posName = 1; | 160 | posName = 1; |
161 | } | 161 | } |
162 | else | 162 | else |
163 | { | 163 | { |
164 | posName = 0; | 164 | posName = 0; |
165 | } | 165 | } |
166 | cbList->addColumn( tr( "Checkbook Name" ) ); | 166 | cbList->addColumn( tr( "Checkbook Name" ) ); |
167 | if ( _cfg.getShowBalances() ) | 167 | if ( _cfg.getShowBalances() ) |
168 | { | 168 | { |
169 | int colnum = cbList->addColumn( tr( "Balance" ) ); | 169 | int colnum = cbList->addColumn( tr( "Balance" ) ); |
170 | cbList->setColumnAlignment( colnum, Qt::AlignRight ); | 170 | cbList->setColumnAlignment( colnum, Qt::AlignRight ); |
171 | } | 171 | } |
172 | cbList->setAllColumnsShowFocus( TRUE ); | 172 | cbList->setAllColumnsShowFocus( TRUE ); |
173 | cbList->setSorting( posName ); | 173 | cbList->setSorting( posName ); |
174 | QPEApplication::setStylusOperation( cbList->viewport(), QPEApplication::RightOnHold ); | 174 | QPEApplication::setStylusOperation( cbList->viewport(), QPEApplication::RightOnHold ); |
175 | connect( cbList, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), | 175 | connect( cbList, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), |
176 | this, SLOT( slotEdit() ) ); | 176 | this, SLOT( slotEdit() ) ); |
177 | setCentralWidget( cbList ); | 177 | setCentralWidget( cbList ); |
178 | 178 | ||
179 | for ( CBInfo *cb = checkbooks->first(); cb; cb = checkbooks->next() ) | 179 | for ( CBInfo *cb = checkbooks->first(); cb; cb = checkbooks->next() ) |
180 | { | 180 | { |
181 | addCheckbook( cb ); | 181 | addCheckbook( cb ); |
182 | } | 182 | } |
183 | } | 183 | } |
184 | 184 | ||
185 | void MainWindow::addCheckbook( CBInfo *cb ) | 185 | void MainWindow::addCheckbook( CBInfo *cb ) |
186 | { | 186 | { |
187 | QListViewItem *lvi = new QListViewItem( cbList ); | 187 | QListViewItem *lvi = new QListViewItem( cbList ); |
188 | if ( _cfg.getShowLocks() && !cb->password().isNull() ) | 188 | if ( _cfg.getShowLocks() && !cb->password().isNull() ) |
189 | { | 189 | { |
190 | lvi->setPixmap( 0, lockIcon ); | 190 | lvi->setPixmap( 0, lockIcon ); |
191 | } | 191 | } |
192 | lvi->setText( posName, cb->name() ); | 192 | lvi->setText( posName, cb->name() ); |
193 | if ( _cfg.getShowBalances() ) | 193 | if ( _cfg.getShowBalances() ) |
194 | { | 194 | { |
195 | QString balance; | 195 | QString balance; |
196 | balance.sprintf( "%s%.2f", _cfg.getCurrencySymbol().latin1(), cb->balance() ); | 196 | balance.sprintf( "%s%.2f", _cfg.getCurrencySymbol().latin1(), cb->balance() ); |
197 | lvi->setText( posName + 1, balance ); | 197 | lvi->setText( posName + 1, balance ); |
198 | } | 198 | } |
199 | } | 199 | } |
200 | 200 | ||
201 | void MainWindow::buildFilename( const QString &name ) | 201 | void MainWindow::buildFilename( const QString &name ) |
202 | { | 202 | { |
203 | tempFilename = cbDir; | 203 | tempFilename = cbDir; |
204 | tempFilename.append( name ); | 204 | tempFilename.append( name ); |
205 | tempFilename.append( ".qcb" ); | 205 | tempFilename.append( ".qcb" ); |
206 | } | 206 | } |
207 | 207 | ||
208 | void MainWindow::slotNew() | 208 | void MainWindow::slotNew() |
209 | { | 209 | { |
210 | CBInfo *cb = new CBInfo(); | 210 | CBInfo *cb = new CBInfo(); |
211 | 211 | ||
212 | Checkbook *currcb = new Checkbook( this, cb, &_cfg ); | 212 | Checkbook *currcb = new Checkbook( this, cb, &_cfg ); |
213 | if ( QPEApplication::execDialog( currcb ) == QDialog::Accepted ) | 213 | if ( QPEApplication::execDialog( currcb ) == QDialog::Accepted ) |
214 | { | 214 | { |
215 | // Save new checkbook | 215 | // Save new checkbook |
216 | buildFilename( cb->name() ); | 216 | buildFilename( cb->name() ); |
217 | _cfg.setLastBook( cb->name() ); | 217 | _cfg.setLastBook( cb->name() ); |
218 | cb->setFilename( tempFilename ); | 218 | cb->setFilename( tempFilename ); |
219 | cb->write(); | 219 | cb->write(); |
220 | 220 | ||
221 | // Add to listbox | 221 | // Add to listbox |
222 | checkbooks->inSort( cb ); | 222 | checkbooks->inSort( cb ); |
223 | addCheckbook( cb ); | 223 | addCheckbook( cb ); |
224 | } | 224 | } |
225 | delete currcb; | 225 | delete currcb; |
226 | } | 226 | } |
227 | 227 | ||
228 | // --- slotEdit --------------------------------------------------------------- | 228 | // --- slotEdit --------------------------------------------------------------- |
229 | void MainWindow::slotEdit() | 229 | void MainWindow::slotEdit() |
230 | { | 230 | { |
231 | // get name and open it | 231 | // get name and open it |
232 | QListViewItem *curritem = cbList->currentItem(); | 232 | QListViewItem *curritem = cbList->currentItem(); |
233 | if ( !curritem ) | 233 | if ( !curritem ) |
234 | return; | 234 | return; |
235 | openBook( curritem ); | 235 | openBook( curritem ); |
236 | } | 236 | } |
237 | 237 | ||
238 | 238 | ||
239 | // --- openBook --------------------------------------------------------------- | 239 | // --- openBook --------------------------------------------------------------- |
240 | void MainWindow::openBook(QListViewItem *curritem) | 240 | void MainWindow::openBook(QListViewItem *curritem) |
241 | { | 241 | { |
242 | // find book in List | 242 | // find book in List |
243 | QString currname=curritem->text(posName); | 243 | QString currname=curritem->text(posName); |
244 | CBInfo *cb = checkbooks->first(); | 244 | CBInfo *cb = checkbooks->first(); |
245 | while ( cb ) { | 245 | while ( cb ) { |
246 | if ( cb->name() == currname ) | 246 | if ( cb->name() == currname ) |
247 | break; | 247 | break; |
248 | cb = checkbooks->next(); | 248 | cb = checkbooks->next(); |
249 | } | 249 | } |
250 | if ( !cb ) return; | 250 | if ( !cb ) return; |
251 | 251 | ||
252 | // | 252 | // |
253 | buildFilename( currname ); | 253 | buildFilename( currname ); |
254 | float currbalance = cb->balance(); | 254 | float currbalance = cb->balance(); |
255 | bool currlock = !cb->password().isNull(); | 255 | bool currlock = !cb->password().isNull(); |
256 | 256 | ||
257 | if ( currlock ) | 257 | if ( currlock ) |
258 | { | 258 | { |
259 | Password *pw = new Password( this, tr( "Enter password" ), tr( "Please enter your password:" ) ); | 259 | Password *pw = new Password( this, tr( "Enter password" ), tr( "Please enter your password:" ) ); |
260 | if ( pw->exec() != QDialog::Accepted || pw->password != cb->password() ) | 260 | if ( pw->exec() != QDialog::Accepted || pw->password != cb->password() ) |
261 | { | 261 | { |
262 | delete pw; | 262 | delete pw; |
263 | return; | 263 | return; |
264 | } | 264 | } |
265 | delete pw; | 265 | delete pw; |
266 | } | 266 | } |
267 | 267 | ||
268 | _cfg.setLastBook( currname ); | 268 | _cfg.setLastBook( currname ); |
269 | Checkbook *currcb = new Checkbook( this, cb, &_cfg ); | 269 | Checkbook *currcb = new Checkbook( this, cb, &_cfg ); |
270 | if ( QPEApplication::execDialog( currcb ) == QDialog::Accepted ) | 270 | if ( QPEApplication::execDialog( currcb ) == QDialog::Accepted ) |
271 | { | 271 | { |
diff --git a/noncore/apps/checkbook/password.cpp b/noncore/apps/checkbook/password.cpp index f381271..89a6bc6 100644 --- a/noncore/apps/checkbook/password.cpp +++ b/noncore/apps/checkbook/password.cpp | |||
@@ -1,97 +1,97 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. | 3 | =. |
4 | .=l. Copyright (c) 2002 Dan Williams <drw@handhelds.org> | 4 | .=l. Copyright (c) 2002 Dan Williams <drw@handhelds.org> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 "password.h" | 29 | #include "password.h" |
30 | 30 | ||
31 | #include <qlabel.h> | 31 | #include <qlabel.h> |
32 | #include <qlayout.h> | 32 | #include <qlayout.h> |
33 | #include <qlineedit.h> | 33 | #include <qlineedit.h> |
34 | #include <qpushbutton.h> | 34 | #include <qpushbutton.h> |
35 | 35 | ||
36 | static const char* const showhideimage_data[] = { | 36 | static const char* const showhideimage_data[] = { |
37 | "16 16 2 1", | 37 | "16 16 2 1", |
38 | ". c None", | 38 | ". c None", |
39 | "# c #000000", | 39 | "# c #000000", |
40 | "................", | 40 | "................", |
41 | "...#...###...##.", | 41 | "...#...###...##.", |
42 | "..#.#..#..#.##..", | 42 | "..#.#..#..#.##..", |
43 | "..###..###.##...", | 43 | "..###..###.##...", |
44 | ".#...#.#..##....", | 44 | ".#...#.#..##....", |
45 | ".#...#.#.##.....", | 45 | ".#...#.#.##.....", |
46 | "........##.#..#.", | 46 | "........##.#..#.", |
47 | "..##...##...##..", | 47 | "..##...##...##..", |
48 | ".#..#.###...##..", | 48 | ".#..#.###...##..", |
49 | ".#...##..#.#..#.", | 49 | ".#...##..#.#..#.", |
50 | ".#..##..........", | 50 | ".#..##..........", |
51 | ".#.##.#..#.#..#.", | 51 | ".#.##.#..#.#..#.", |
52 | "..##...##...##..", | 52 | "..##...##...##..", |
53 | ".##....##...##..", | 53 | ".##....##...##..", |
54 | ".#....#..#.#..#.", | 54 | ".#....#..#.#..#.", |
55 | "................"}; | 55 | "................"}; |
56 | 56 | ||
57 | Password::Password( QWidget *parent, const char *caption, const char *prompt ) | 57 | Password::Password( QWidget *parent, const char *caption, const char *prompt ) |
58 | : QDialog( parent, 0x0, TRUE, 0x0 ) | 58 | : QDialog( parent, 0x0, TRUE, 0x0 ) |
59 | { | 59 | { |
60 | setCaption( caption ); | 60 | setCaption( caption ); |
61 | 61 | ||
62 | QGridLayout *layout = new QGridLayout( this ); | 62 | QGridLayout *layout = new QGridLayout( this ); |
63 | layout->setSpacing( 2 ); | 63 | layout->setSpacing( 2 ); |
64 | layout->setMargin( 4 ); | 64 | layout->setMargin( 4 ); |
65 | 65 | ||
66 | QLabel *label = new QLabel( prompt, this ); | 66 | QLabel *label = new QLabel( prompt, this ); |
67 | label->setAlignment( AlignLeft | AlignTop | WordBreak ); | 67 | label->setAlignment( AlignLeft | AlignTop | WordBreak ); |
68 | layout->addMultiCellWidget( label, 0, 0, 0, 1 ); | 68 | layout->addMultiCellWidget( label, 0, 0, 0, 1 ); |
69 | 69 | ||
70 | pw = new QLineEdit( this ); | 70 | pw = new QLineEdit( this ); |
71 | pw->setEchoMode( QLineEdit::Password ); | 71 | pw->setEchoMode( QLineEdit::Password ); |
72 | layout->addWidget( pw, 1, 0 ); | 72 | layout->addWidget( pw, 1, 0 ); |
73 | 73 | ||
74 | QPixmap *pic = new QPixmap( ( const char** ) showhideimage_data ); | 74 | QPixmap *pic = new QPixmap( ( const char** ) showhideimage_data ); |
75 | QPushButton *btn = new QPushButton( ( QIconSet ) *pic, QString::null, this ); | 75 | QPushButton *btn = new QPushButton( ( QIconSet ) *pic, QString::null, this ); |
76 | btn->setMaximumSize( pic->width() + 10, pic->height() + 10 ); | 76 | btn->setMaximumSize( pic->width() + 10, pic->height() + 10 ); |
77 | btn->setToggleButton( TRUE ); | 77 | btn->setToggleButton( TRUE ); |
78 | connect( btn, SIGNAL( toggled( bool ) ), this, SLOT( slotTogglePassword( bool ) ) ); | 78 | connect( btn, SIGNAL( toggled(bool) ), this, SLOT( slotTogglePassword(bool) ) ); |
79 | layout->addWidget( btn, 1, 1 ); | 79 | layout->addWidget( btn, 1, 1 ); |
80 | 80 | ||
81 | password == ""; | 81 | password == ""; |
82 | } | 82 | } |
83 | 83 | ||
84 | Password::~Password() | 84 | Password::~Password() |
85 | { | 85 | { |
86 | } | 86 | } |
87 | 87 | ||
88 | void Password::accept() | 88 | void Password::accept() |
89 | { | 89 | { |
90 | password = pw->text(); | 90 | password = pw->text(); |
91 | QDialog::accept(); | 91 | QDialog::accept(); |
92 | } | 92 | } |
93 | 93 | ||
94 | void Password::slotTogglePassword( bool showPW ) | 94 | void Password::slotTogglePassword( bool showPW ) |
95 | { | 95 | { |
96 | showPW ? pw->setEchoMode( QLineEdit::Normal ) : pw->setEchoMode( QLineEdit::Password ); | 96 | showPW ? pw->setEchoMode( QLineEdit::Normal ) : pw->setEchoMode( QLineEdit::Password ); |
97 | } | 97 | } |
diff --git a/noncore/apps/checkbook/transaction.cpp b/noncore/apps/checkbook/transaction.cpp index a72a48b..1b08b24 100644 --- a/noncore/apps/checkbook/transaction.cpp +++ b/noncore/apps/checkbook/transaction.cpp | |||
@@ -6,267 +6,267 @@ | |||
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 "transaction.h" | 29 | #include "transaction.h" |
30 | #include "traninfo.h" | 30 | #include "traninfo.h" |
31 | #include "cfg.h" | 31 | #include "cfg.h" |
32 | #include "checkbook.h" | 32 | #include "checkbook.h" |
33 | 33 | ||
34 | #include <qpe/datebookmonth.h> | 34 | #include <qpe/datebookmonth.h> |
35 | 35 | ||
36 | #include <qbuttongroup.h> | 36 | #include <qbuttongroup.h> |
37 | #include <qcombobox.h> | 37 | #include <qcombobox.h> |
38 | #include <qlabel.h> | 38 | #include <qlabel.h> |
39 | #include <qlayout.h> | 39 | #include <qlayout.h> |
40 | #include <qlineedit.h> | 40 | #include <qlineedit.h> |
41 | #include <qmultilineedit.h> | 41 | #include <qmultilineedit.h> |
42 | #include <qradiobutton.h> | 42 | #include <qradiobutton.h> |
43 | #include <qwhatsthis.h> | 43 | #include <qwhatsthis.h> |
44 | 44 | ||
45 | Transaction::Transaction( QWidget *parent, bool bNew, const QString &acctname, | 45 | Transaction::Transaction( QWidget *parent, bool bNew, const QString &acctname, |
46 | TranInfo *info, Cfg *pCfg ) | 46 | TranInfo *info, Cfg *pCfg ) |
47 | : QDialog( parent, 0, TRUE, WStyle_ContextHelp ) | 47 | : QDialog( parent, 0, TRUE, WStyle_ContextHelp ) |
48 | { | 48 | { |
49 | QString tempstr = tr( "Transaction for " ); | 49 | QString tempstr = tr( "Transaction for " ); |
50 | tempstr.append( acctname ); | 50 | tempstr.append( acctname ); |
51 | setCaption( tempstr ); | 51 | setCaption( tempstr ); |
52 | 52 | ||
53 | _bNew=bNew; | 53 | _bNew=bNew; |
54 | tran = info; | 54 | tran = info; |
55 | _pCfg=pCfg; | 55 | _pCfg=pCfg; |
56 | 56 | ||
57 | QVBoxLayout *vb = new QVBoxLayout( this ); | 57 | QVBoxLayout *vb = new QVBoxLayout( this ); |
58 | 58 | ||
59 | QScrollView *sv = new QScrollView( this ); | 59 | QScrollView *sv = new QScrollView( this ); |
60 | vb->addWidget( sv, 0, 0 ); | 60 | vb->addWidget( sv, 0, 0 ); |
61 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 61 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
62 | sv->setFrameStyle( QFrame::NoFrame ); | 62 | sv->setFrameStyle( QFrame::NoFrame ); |
63 | 63 | ||
64 | QWidget *container = new QWidget( sv->viewport() ); | 64 | QWidget *container = new QWidget( sv->viewport() ); |
65 | sv->addChild( container ); | 65 | sv->addChild( container ); |
66 | 66 | ||
67 | QGridLayout *layout = new QGridLayout( container ); | 67 | QGridLayout *layout = new QGridLayout( container ); |
68 | layout->setSpacing( 2 ); | 68 | layout->setSpacing( 2 ); |
69 | layout->setMargin( 4 ); | 69 | layout->setMargin( 4 ); |
70 | 70 | ||
71 | // Withdrawal/Deposit | 71 | // Withdrawal/Deposit |
72 | QButtonGroup *btngrp = new QButtonGroup( container ); | 72 | QButtonGroup *btngrp = new QButtonGroup( container ); |
73 | btngrp->setColumnLayout(0, Qt::Vertical ); | 73 | btngrp->setColumnLayout(0, Qt::Vertical ); |
74 | btngrp->layout()->setSpacing( 0 ); | 74 | btngrp->layout()->setSpacing( 0 ); |
75 | btngrp->layout()->setMargin( 0 ); | 75 | btngrp->layout()->setMargin( 0 ); |
76 | btngrp->setMaximumWidth( 220 ); | 76 | btngrp->setMaximumWidth( 220 ); |
77 | QGridLayout *layout2 = new QGridLayout( btngrp->layout() ); | 77 | QGridLayout *layout2 = new QGridLayout( btngrp->layout() ); |
78 | layout2->setSpacing( 2 ); | 78 | layout2->setSpacing( 2 ); |
79 | layout2->setMargin( 2 ); | 79 | layout2->setMargin( 2 ); |
80 | withBtn = new QRadioButton( tr( "Withdrawal" ), btngrp ); | 80 | withBtn = new QRadioButton( tr( "Withdrawal" ), btngrp ); |
81 | QWhatsThis::add( withBtn, tr( "Select whether the transaction is a withdrawal or deposit here." ) ); | 81 | QWhatsThis::add( withBtn, tr( "Select whether the transaction is a withdrawal or deposit here." ) ); |
82 | layout2->addWidget( withBtn, 0, 0 ); | 82 | layout2->addWidget( withBtn, 0, 0 ); |
83 | connect( withBtn, SIGNAL( clicked() ), this, SLOT( slotWithdrawalClicked() ) ); | 83 | connect( withBtn, SIGNAL( clicked() ), this, SLOT( slotWithdrawalClicked() ) ); |
84 | depBtn = new QRadioButton( tr( "Deposit" ), btngrp ); | 84 | depBtn = new QRadioButton( tr( "Deposit" ), btngrp ); |
85 | QWhatsThis::add( depBtn, tr( "Select whether the transaction is a withdrawal or deposit here." ) ); | 85 | QWhatsThis::add( depBtn, tr( "Select whether the transaction is a withdrawal or deposit here." ) ); |
86 | layout2->addWidget( depBtn, 0, 1 ); | 86 | layout2->addWidget( depBtn, 0, 1 ); |
87 | btngrp->setMaximumSize( 320, withBtn->height() ); | 87 | btngrp->setMaximumSize( 320, withBtn->height() ); |
88 | connect( depBtn, SIGNAL( clicked() ), this, SLOT( slotDepositClicked() ) ); | 88 | connect( depBtn, SIGNAL( clicked() ), this, SLOT( slotDepositClicked() ) ); |
89 | layout->addMultiCellWidget( btngrp, 0, 0, 0, 3 ); | 89 | layout->addMultiCellWidget( btngrp, 0, 0, 0, 3 ); |
90 | 90 | ||
91 | // Date | 91 | // Date |
92 | QLabel *label = new QLabel( tr( "Date:" ), container ); | 92 | QLabel *label = new QLabel( tr( "Date:" ), container ); |
93 | QWhatsThis::add( label, tr( "Select date of transaction here." ) ); | 93 | QWhatsThis::add( label, tr( "Select date of transaction here." ) ); |
94 | layout->addWidget( label, 1, 0 ); | 94 | layout->addWidget( label, 1, 0 ); |
95 | dateBtn = new QPushButton( TimeString::shortDate( QDate::currentDate() ), | 95 | dateBtn = new QPushButton( TimeString::shortDate( QDate::currentDate() ), |
96 | container ); | 96 | container ); |
97 | QWhatsThis::add( dateBtn, tr( "Select date of transaction here." ) ); | 97 | QWhatsThis::add( dateBtn, tr( "Select date of transaction here." ) ); |
98 | QPopupMenu *m1 = new QPopupMenu( container ); | 98 | QPopupMenu *m1 = new QPopupMenu( container ); |
99 | datePicker = new DateBookMonth( m1, 0, TRUE ); | 99 | datePicker = new DateBookMonth( m1, 0, TRUE ); |
100 | m1->insertItem( datePicker ); | 100 | m1->insertItem( datePicker ); |
101 | dateBtn->setPopup( m1 ); | 101 | dateBtn->setPopup( m1 ); |
102 | connect( datePicker, SIGNAL( dateClicked( int, int, int ) ), | 102 | connect( datePicker, SIGNAL( dateClicked(int,int,int) ), |
103 | this, SLOT( slotDateChanged( int, int, int ) ) ); | 103 | this, SLOT( slotDateChanged(int,int,int) ) ); |
104 | layout->addWidget( dateBtn, 1, 1 ); | 104 | layout->addWidget( dateBtn, 1, 1 ); |
105 | 105 | ||
106 | // Check number | 106 | // Check number |
107 | label = new QLabel( tr( "Number:" ), container ); | 107 | label = new QLabel( tr( "Number:" ), container ); |
108 | QWhatsThis::add( label, tr( "Enter check number here." ) ); | 108 | QWhatsThis::add( label, tr( "Enter check number here." ) ); |
109 | layout->addWidget( label, 1, 2 ); | 109 | layout->addWidget( label, 1, 2 ); |
110 | numEdit = new QLineEdit( container ); | 110 | numEdit = new QLineEdit( container ); |
111 | QWhatsThis::add( numEdit, tr( "Enter check number here." ) ); | 111 | QWhatsThis::add( numEdit, tr( "Enter check number here." ) ); |
112 | numEdit->setMaximumWidth( 40 ); | 112 | numEdit->setMaximumWidth( 40 ); |
113 | layout->addWidget( numEdit, 1, 3 ); | 113 | layout->addWidget( numEdit, 1, 3 ); |
114 | 114 | ||
115 | // Description | 115 | // Description |
116 | label = new QLabel( tr( "Description:" ), container ); | 116 | label = new QLabel( tr( "Description:" ), container ); |
117 | QWhatsThis::add( label, tr( "Enter description of transaction here." ) ); | 117 | QWhatsThis::add( label, tr( "Enter description of transaction here." ) ); |
118 | layout->addWidget( label, 2, 0 ); | 118 | layout->addWidget( label, 2, 0 ); |
119 | _cbDesc=new QComboBox( true, container ); | 119 | _cbDesc=new QComboBox( true, container ); |
120 | _cbDesc->insertStringList( _pCfg->getPayees() ); | 120 | _cbDesc->insertStringList( _pCfg->getPayees() ); |
121 | QWhatsThis::add( _cbDesc, tr( "Enter description of transaction here." ) ); | 121 | QWhatsThis::add( _cbDesc, tr( "Enter description of transaction here." ) ); |
122 | layout->addMultiCellWidget( _cbDesc, 2, 2, 1, 3 ); | 122 | layout->addMultiCellWidget( _cbDesc, 2, 2, 1, 3 ); |
123 | connect( _cbDesc, SIGNAL( activated(const QString &) ), this, SLOT( slotActivated(const QString &) ) ); | 123 | connect( _cbDesc, SIGNAL( activated(const QString&) ), this, SLOT( slotActivated(const QString&) ) ); |
124 | 124 | ||
125 | 125 | ||
126 | // Category | 126 | // Category |
127 | label = new QLabel( tr( "Category:" ), container ); | 127 | label = new QLabel( tr( "Category:" ), container ); |
128 | QWhatsThis::add( label, tr( "Select transaction category here." ) ); | 128 | QWhatsThis::add( label, tr( "Select transaction category here." ) ); |
129 | layout->addWidget( label, 3, 0 ); | 129 | layout->addWidget( label, 3, 0 ); |
130 | catList = new QComboBox( container ); | 130 | catList = new QComboBox( container ); |
131 | QWhatsThis::add( catList, tr( "Select transaction category here." ) ); | 131 | QWhatsThis::add( catList, tr( "Select transaction category here." ) ); |
132 | layout->addMultiCellWidget( catList, 3, 3, 1, 3 ); | 132 | layout->addMultiCellWidget( catList, 3, 3, 1, 3 ); |
133 | 133 | ||
134 | // Type | 134 | // Type |
135 | label = new QLabel( tr( "Type:" ), container ); | 135 | label = new QLabel( tr( "Type:" ), container ); |
136 | QWhatsThis::add( label, tr( "Select transaction type here.\n\nThe options available vary based on whether the transaction is a deposit or withdrawal." ) ); | 136 | QWhatsThis::add( label, tr( "Select transaction type here.\n\nThe options available vary based on whether the transaction is a deposit or withdrawal." ) ); |
137 | layout->addWidget( label, 4, 0 ); | 137 | layout->addWidget( label, 4, 0 ); |
138 | typeList = new QComboBox( container ); | 138 | typeList = new QComboBox( container ); |
139 | QWhatsThis::add( typeList, tr( "Select transaction type here.\n\nThe options available vary based on whether the transaction is a deposit or withdrawal." ) ); | 139 | QWhatsThis::add( typeList, tr( "Select transaction type here.\n\nThe options available vary based on whether the transaction is a deposit or withdrawal." ) ); |
140 | layout->addMultiCellWidget( typeList, 4, 4, 1, 3 ); | 140 | layout->addMultiCellWidget( typeList, 4, 4, 1, 3 ); |
141 | 141 | ||
142 | 142 | ||
143 | // Amount | 143 | // Amount |
144 | label = new QLabel( tr( "Amount:" ), container ); | 144 | label = new QLabel( tr( "Amount:" ), container ); |
145 | QWhatsThis::add( label, tr( "Enter the amount of transaction here.\n\nThe value entered should always be positive." ) ); | 145 | QWhatsThis::add( label, tr( "Enter the amount of transaction here.\n\nThe value entered should always be positive." ) ); |
146 | layout->addWidget( label, 5, 0 ); | 146 | layout->addWidget( label, 5, 0 ); |
147 | amtEdit = new QLineEdit( container ); | 147 | amtEdit = new QLineEdit( container ); |
148 | QWhatsThis::add( amtEdit, tr( "Enter the amount of transaction here.\n\nThe value entered should always be positive." ) ); | 148 | QWhatsThis::add( amtEdit, tr( "Enter the amount of transaction here.\n\nThe value entered should always be positive." ) ); |
149 | layout->addMultiCellWidget( amtEdit, 5, 5, 1, 3 ); | 149 | layout->addMultiCellWidget( amtEdit, 5, 5, 1, 3 ); |
150 | 150 | ||
151 | // Fee | 151 | // Fee |
152 | label = new QLabel( tr( "Fee:" ), container ); | 152 | label = new QLabel( tr( "Fee:" ), container ); |
153 | QWhatsThis::add( label, tr( "Enter any fee amount assoiciated with this transaction.\n\nThe value entered should always be positive." ) ); | 153 | QWhatsThis::add( label, tr( "Enter any fee amount assoiciated with this transaction.\n\nThe value entered should always be positive." ) ); |
154 | layout->addWidget( label, 6, 0 ); | 154 | layout->addWidget( label, 6, 0 ); |
155 | feeEdit = new QLineEdit( container ); | 155 | feeEdit = new QLineEdit( container ); |
156 | QWhatsThis::add( feeEdit, tr( "Enter any fee amount assoiciated with this transaction.\n\nThe value entered should always be positive." ) ); | 156 | QWhatsThis::add( feeEdit, tr( "Enter any fee amount assoiciated with this transaction.\n\nThe value entered should always be positive." ) ); |
157 | layout->addMultiCellWidget( feeEdit, 6, 6, 1, 3 ); | 157 | layout->addMultiCellWidget( feeEdit, 6, 6, 1, 3 ); |
158 | 158 | ||
159 | // Notes | 159 | // Notes |
160 | label = new QLabel( tr( "Notes:" ), container ); | 160 | label = new QLabel( tr( "Notes:" ), container ); |
161 | QWhatsThis::add( label, tr( "Enter any additional information for this transaction here." ) ); | 161 | QWhatsThis::add( label, tr( "Enter any additional information for this transaction here." ) ); |
162 | layout->addWidget( label, 7, 0 ); | 162 | layout->addWidget( label, 7, 0 ); |
163 | noteEdit = new QMultiLineEdit( container ); | 163 | noteEdit = new QMultiLineEdit( container ); |
164 | QWhatsThis::add( noteEdit, tr( "Enter any additional information for this transaction here." ) ); | 164 | QWhatsThis::add( noteEdit, tr( "Enter any additional information for this transaction here." ) ); |
165 | layout->addMultiCellWidget( noteEdit, 8, 8, 0, 3 ); | 165 | layout->addMultiCellWidget( noteEdit, 8, 8, 0, 3 ); |
166 | 166 | ||
167 | // init date | 167 | // init date |
168 | initFromInfo( info ); | 168 | initFromInfo( info ); |
169 | 169 | ||
170 | // not new handlers | 170 | // not new handlers |
171 | connect( withBtn, SIGNAL( toggled(bool) ), this, SLOT( slotNotNew() ) ); | 171 | connect( withBtn, SIGNAL( toggled(bool) ), this, SLOT( slotNotNew() ) ); |
172 | connect( depBtn, SIGNAL( toggled(bool) ), this, SLOT( slotNotNew() ) ); | 172 | connect( depBtn, SIGNAL( toggled(bool) ), this, SLOT( slotNotNew() ) ); |
173 | connect( catList, SIGNAL(activated(const QString &)), this, SLOT( slotNotNew() ) ); | 173 | connect( catList, SIGNAL(activated(const QString&)), this, SLOT( slotNotNew() ) ); |
174 | connect( typeList, SIGNAL(activated(const QString &)), this, SLOT( slotNotNew() ) ); | 174 | connect( typeList, SIGNAL(activated(const QString&)), this, SLOT( slotNotNew() ) ); |
175 | connect( amtEdit, SIGNAL(textChanged(const QString &)), this, SLOT( slotNotNew() ) ); | 175 | connect( amtEdit, SIGNAL(textChanged(const QString&)), this, SLOT( slotNotNew() ) ); |
176 | connect( feeEdit, SIGNAL(textChanged(const QString &)), this, SLOT( slotNotNew() ) ); | 176 | connect( feeEdit, SIGNAL(textChanged(const QString&)), this, SLOT( slotNotNew() ) ); |
177 | connect( noteEdit, SIGNAL(textChanged()), this, SLOT( slotNotNew() ) ); | 177 | connect( noteEdit, SIGNAL(textChanged()), this, SLOT( slotNotNew() ) ); |
178 | } | 178 | } |
179 | 179 | ||
180 | // --- initFromInfo ----------------------------------------------------------- | 180 | // --- initFromInfo ----------------------------------------------------------- |
181 | void Transaction::initFromInfo(TranInfo *info, bool bPopulateOld) | 181 | void Transaction::initFromInfo(TranInfo *info, bool bPopulateOld) |
182 | { | 182 | { |
183 | // Populate current values if provided | 183 | // Populate current values if provided |
184 | if ( info ) | 184 | if ( info ) |
185 | { | 185 | { |
186 | if ( info->withdrawal() ) | 186 | if ( info->withdrawal() ) |
187 | { | 187 | { |
188 | withBtn->setChecked( TRUE ); | 188 | withBtn->setChecked( TRUE ); |
189 | slotWithdrawalClicked(); | 189 | slotWithdrawalClicked(); |
190 | } | 190 | } |
191 | else | 191 | else |
192 | { | 192 | { |
193 | depBtn->setChecked( TRUE ); | 193 | depBtn->setChecked( TRUE ); |
194 | slotDepositClicked(); | 194 | slotDepositClicked(); |
195 | } | 195 | } |
196 | 196 | ||
197 | if( !bPopulateOld ) { | 197 | if( !bPopulateOld ) { |
198 | QDate dt = info->date(); | 198 | QDate dt = info->date(); |
199 | slotDateChanged( dt.year(), dt.month(), dt.day() ); | 199 | slotDateChanged( dt.year(), dt.month(), dt.day() ); |
200 | datePicker->setDate( dt ); | 200 | datePicker->setDate( dt ); |
201 | numEdit->setText( info->number() ); | 201 | numEdit->setText( info->number() ); |
202 | } | 202 | } |
203 | QString temptext = info->category(); | 203 | QString temptext = info->category(); |
204 | 204 | ||
205 | // set description field | 205 | // set description field |
206 | int i; | 206 | int i; |
207 | for(i=_cbDesc->count()-1; i>=0; i--) { | 207 | for(i=_cbDesc->count()-1; i>=0; i--) { |
208 | if( _cbDesc->text(i)==info->desc() ) { | 208 | if( _cbDesc->text(i)==info->desc() ) { |
209 | _cbDesc->setCurrentItem(i); | 209 | _cbDesc->setCurrentItem(i); |
210 | break; | 210 | break; |
211 | } | 211 | } |
212 | } | 212 | } |
213 | if( i<=0 ) | 213 | if( i<=0 ) |
214 | _cbDesc->setEditText( info->desc() ); | 214 | _cbDesc->setEditText( info->desc() ); |
215 | 215 | ||
216 | i = catList->count(); | 216 | i = catList->count(); |
217 | while ( i > 0 ) | 217 | while ( i > 0 ) |
218 | { | 218 | { |
219 | i--; | 219 | i--; |
220 | catList->setCurrentItem( i ); | 220 | catList->setCurrentItem( i ); |
221 | if ( catList->currentText() == temptext ) | 221 | if ( catList->currentText() == temptext ) |
222 | { | 222 | { |
223 | break; | 223 | break; |
224 | } | 224 | } |
225 | } | 225 | } |
226 | temptext = info->type(); | 226 | temptext = info->type(); |
227 | i = typeList->count(); | 227 | i = typeList->count(); |
228 | while ( i > 0 ) | 228 | while ( i > 0 ) |
229 | { | 229 | { |
230 | i--; | 230 | i--; |
231 | typeList->setCurrentItem( i ); | 231 | typeList->setCurrentItem( i ); |
232 | if ( typeList->currentText() == temptext ) | 232 | if ( typeList->currentText() == temptext ) |
233 | { | 233 | { |
234 | break; | 234 | break; |
235 | } | 235 | } |
236 | } | 236 | } |
237 | amtEdit->setText( QString( "%1" ).arg( info->amount(), 0, 'f', 2 ) ); | 237 | amtEdit->setText( QString( "%1" ).arg( info->amount(), 0, 'f', 2 ) ); |
238 | feeEdit->setText( QString( "%1" ).arg( info->fee(), 0, 'f', 2 ) ); | 238 | feeEdit->setText( QString( "%1" ).arg( info->fee(), 0, 'f', 2 ) ); |
239 | noteEdit->setText( info->notes() ); | 239 | noteEdit->setText( info->notes() ); |
240 | } | 240 | } |
241 | else | 241 | else |
242 | { | 242 | { |
243 | withBtn->setChecked( TRUE ); | 243 | withBtn->setChecked( TRUE ); |
244 | } | 244 | } |
245 | } | 245 | } |
246 | 246 | ||
247 | 247 | ||
248 | // --- ~Transaction ----------------------------------------------------------- | 248 | // --- ~Transaction ----------------------------------------------------------- |
249 | Transaction::~Transaction() | 249 | Transaction::~Transaction() |
250 | { | 250 | { |
251 | } | 251 | } |
252 | 252 | ||
253 | // --- accept ----------------------------------------------------------------- | 253 | // --- accept ----------------------------------------------------------------- |
254 | void Transaction::accept() | 254 | void Transaction::accept() |
255 | { | 255 | { |
256 | tran->setDesc( _cbDesc->currentText() ); | 256 | tran->setDesc( _cbDesc->currentText() ); |
257 | tran->setDate( datePicker->selectedDate() ); | 257 | tran->setDate( datePicker->selectedDate() ); |
258 | tran->setWithdrawal( withBtn->isChecked() ); | 258 | tran->setWithdrawal( withBtn->isChecked() ); |
259 | tran->setType( typeList->currentText() ); | 259 | tran->setType( typeList->currentText() ); |
260 | tran->setCategory( catList->currentText() ); | 260 | tran->setCategory( catList->currentText() ); |
261 | bool ok; | 261 | bool ok; |
262 | tran->setAmount( amtEdit->text().toFloat( &ok ) ); | 262 | tran->setAmount( amtEdit->text().toFloat( &ok ) ); |
263 | tran->setFee( feeEdit->text().toFloat( &ok ) ); | 263 | tran->setFee( feeEdit->text().toFloat( &ok ) ); |
264 | tran->setNumber( numEdit->text() ); | 264 | tran->setNumber( numEdit->text() ); |
265 | tran->setNotes( noteEdit->text() ); | 265 | tran->setNotes( noteEdit->text() ); |
266 | 266 | ||
267 | QDialog::accept(); | 267 | QDialog::accept(); |
268 | } | 268 | } |
269 | 269 | ||
270 | void Transaction::slotWithdrawalClicked() | 270 | void Transaction::slotWithdrawalClicked() |
271 | { | 271 | { |
272 | catList->clear(); | 272 | catList->clear(); |
diff --git a/noncore/apps/confedit/mainwindow.cpp b/noncore/apps/confedit/mainwindow.cpp index 5f7ad50..6ef1043 100644 --- a/noncore/apps/confedit/mainwindow.cpp +++ b/noncore/apps/confedit/mainwindow.cpp | |||
@@ -1,148 +1,148 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * This program is free software; you can redistribute it and/or modify * | 3 | * This program is free software; you can redistribute it and/or modify * |
4 | * it under the terms of the GNU General Public License as published by * | 4 | * it under the terms of the GNU General Public License as published by * |
5 | * the Free Software Foundation; either version 2 of the License, or * | 5 | * the Free Software Foundation; either version 2 of the License, or * |
6 | * (at your option) any later version. * | 6 | * (at your option) any later version. * |
7 | * * | 7 | * * |
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | 9 | ||
10 | // (c) 2002 Patrick S. Vogt <tille@handhelds.org> | 10 | // (c) 2002 Patrick S. Vogt <tille@handhelds.org> |
11 | 11 | ||
12 | 12 | ||
13 | #include "mainwindow.h" | 13 | #include "mainwindow.h" |
14 | 14 | ||
15 | #include <qlabel.h> | 15 | #include <qlabel.h> |
16 | #include <qlayout.h> | 16 | #include <qlayout.h> |
17 | #include <qlineedit.h> | 17 | #include <qlineedit.h> |
18 | 18 | ||
19 | #include "listviewconfdir.h" | 19 | #include "listviewconfdir.h" |
20 | #include "listviewitemconfigentry.h" | 20 | #include "listviewitemconfigentry.h" |
21 | 21 | ||
22 | 22 | ||
23 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) : | 23 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f ) : |
24 | QMainWindow( parent, name, f ), _currentItem(0), _fileItem(0) | 24 | QMainWindow( parent, name, f ), _currentItem(0), _fileItem(0) |
25 | { | 25 | { |
26 | setCaption( tr("Conf File Editor") ); | 26 | setCaption( tr("Conf File Editor") ); |
27 | 27 | ||
28 | //setBaseSize( qApp->globalStrut() ); | 28 | //setBaseSize( qApp->globalStrut() ); |
29 | setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));//, sizePolicy().hasHeightForWidth() ) ); | 29 | setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));//, sizePolicy().hasHeightForWidth() ) ); |
30 | 30 | ||
31 | mainLayout = new QVBoxLayout( this ); | 31 | mainLayout = new QVBoxLayout( this ); |
32 | mainLayout->setSpacing( 0 ); | 32 | mainLayout->setSpacing( 0 ); |
33 | mainLayout->setMargin( 0 ); | 33 | mainLayout->setMargin( 0 ); |
34 | 34 | ||
35 | 35 | ||
36 | qDebug("creating settingList"); | 36 | qDebug("creating settingList"); |
37 | settingList = new ListViewConfDir( QDir::homeDirPath() + "/Settings", this, "settingslist"); | 37 | settingList = new ListViewConfDir( QDir::homeDirPath() + "/Settings", this, "settingslist"); |
38 | settingList->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));//, sizePolicy().hasHeightForWidth() ) ); | 38 | settingList->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));//, sizePolicy().hasHeightForWidth() ) ); |
39 | mainLayout->addWidget( settingList, 0); | 39 | mainLayout->addWidget( settingList, 0); |
40 | 40 | ||
41 | qDebug("creating editor"); | 41 | qDebug("creating editor"); |
42 | editor = new EditWidget(this); | 42 | editor = new EditWidget(this); |
43 | editor->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Maximum));//, sizePolicy().hasHeightForWidth() ) ); | 43 | editor->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Maximum));//, sizePolicy().hasHeightForWidth() ) ); |
44 | mainLayout->addWidget( editor, 1 ); | 44 | mainLayout->addWidget( editor, 1 ); |
45 | editor->layoutType( ListViewItemConf::File ); | 45 | editor->layoutType( ListViewItemConf::File ); |
46 | 46 | ||
47 | makeMenu(); | 47 | makeMenu(); |
48 | 48 | ||
49 | connect(settingList, SIGNAL( pressed(QListViewItem*) ), | 49 | connect(settingList, SIGNAL( pressed(QListViewItem*) ), |
50 | this, SLOT(setCurrent(QListViewItem*))); | 50 | this, SLOT(setCurrent(QListViewItem*))); |
51 | connect( settingList, SIGNAL( clicked( QListViewItem* ) ), | 51 | connect( settingList, SIGNAL( clicked(QListViewItem*) ), |
52 | this, SLOT( stopTimer( QListViewItem* ) ) ); | 52 | this, SLOT( stopTimer(QListViewItem*) ) ); |
53 | 53 | ||
54 | connect( editor->LineEditGroup, SIGNAL( textChanged(const QString&) ), | 54 | connect( editor->LineEditGroup, SIGNAL( textChanged(const QString&) ), |
55 | SLOT( groupChanged(const QString&) ) ); | 55 | SLOT( groupChanged(const QString&) ) ); |
56 | connect( editor->LineEditKey, SIGNAL( textChanged(const QString&) ), | 56 | connect( editor->LineEditKey, SIGNAL( textChanged(const QString&) ), |
57 | SLOT( keyChanged(const QString&) ) ); | 57 | SLOT( keyChanged(const QString&) ) ); |
58 | connect( editor->LineEditValue, SIGNAL( textChanged(const QString&) ), | 58 | connect( editor->LineEditValue, SIGNAL( textChanged(const QString&) ), |
59 | SLOT( valueChanged(const QString&) ) ); | 59 | SLOT( valueChanged(const QString&) ) ); |
60 | 60 | ||
61 | setCurrent(0); | 61 | setCurrent(0); |
62 | editor->layoutType(EditWidget::File); | 62 | editor->layoutType(EditWidget::File); |
63 | } | 63 | } |
64 | 64 | ||
65 | void MainWindow::makeMenu() | 65 | void MainWindow::makeMenu() |
66 | { | 66 | { |
67 | popupTimer = new QTimer(this); | 67 | popupTimer = new QTimer(this); |
68 | popupMenuFile = new QPopupMenu(this); | 68 | popupMenuFile = new QPopupMenu(this); |
69 | popupMenuEntry = new QPopupMenu(this); | 69 | popupMenuEntry = new QPopupMenu(this); |
70 | 70 | ||
71 | popupActionSave = new QAction( tr("Save"),QString::null, 0, this, 0 ); | 71 | popupActionSave = new QAction( tr("Save"),QString::null, 0, this, 0 ); |
72 | popupActionSave->addTo( popupMenuFile ); | 72 | popupActionSave->addTo( popupMenuFile ); |
73 | // popupActionSave->addTo( popupMenuEntry ); | 73 | // popupActionSave->addTo( popupMenuEntry ); |
74 | connect( popupActionSave, SIGNAL( activated() ), | 74 | connect( popupActionSave, SIGNAL( activated() ), |
75 | this , SLOT( saveConfFile() ) ); | 75 | this , SLOT( saveConfFile() ) ); |
76 | 76 | ||
77 | popupActionRevert = new QAction( tr("Revert"),QString::null, 0, this, 0 ); | 77 | popupActionRevert = new QAction( tr("Revert"),QString::null, 0, this, 0 ); |
78 | popupActionRevert->addTo( popupMenuFile ); | 78 | popupActionRevert->addTo( popupMenuFile ); |
79 | popupActionRevert->addTo( popupMenuEntry ); | 79 | popupActionRevert->addTo( popupMenuEntry ); |
80 | connect( popupActionRevert, SIGNAL( activated() ), | 80 | connect( popupActionRevert, SIGNAL( activated() ), |
81 | this , SLOT( revertConfFile() ) ); | 81 | this , SLOT( revertConfFile() ) ); |
82 | 82 | ||
83 | popupActionDelete = new QAction( tr("Delete"),QString::null, 0, this, 0 ); | 83 | popupActionDelete = new QAction( tr("Delete"),QString::null, 0, this, 0 ); |
84 | popupActionDelete->addTo( popupMenuFile ); | 84 | popupActionDelete->addTo( popupMenuFile ); |
85 | popupActionDelete->addTo( popupMenuEntry ); | 85 | popupActionDelete->addTo( popupMenuEntry ); |
86 | connect( popupActionDelete, SIGNAL( activated() ), | 86 | connect( popupActionDelete, SIGNAL( activated() ), |
87 | this , SLOT( removeConfFile() ) ); | 87 | this , SLOT( removeConfFile() ) ); |
88 | 88 | ||
89 | connect( popupTimer, SIGNAL(timeout()), | 89 | connect( popupTimer, SIGNAL(timeout()), |
90 | this, SLOT(showPopup()) ); | 90 | this, SLOT(showPopup()) ); |
91 | } | 91 | } |
92 | 92 | ||
93 | MainWindow::~MainWindow() | 93 | MainWindow::~MainWindow() |
94 | { | 94 | { |
95 | } | 95 | } |
96 | 96 | ||
97 | 97 | ||
98 | 98 | ||
99 | void MainWindow::setCurrent(QListViewItem *item) | 99 | void MainWindow::setCurrent(QListViewItem *item) |
100 | { | 100 | { |
101 | //qDebug("MainWindow::setCurrent"); | 101 | //qDebug("MainWindow::setCurrent"); |
102 | if (!item) return; | 102 | if (!item) return; |
103 | _item = (ListViewItemConf*) item; | 103 | _item = (ListViewItemConf*) item; |
104 | if (!_item) return; | 104 | if (!_item) return; |
105 | popupTimer->start( 750, true ); | 105 | popupTimer->start( 750, true ); |
106 | if (_item->getType() == ListViewItemConf::File) | 106 | if (_item->getType() == ListViewItemConf::File) |
107 | { | 107 | { |
108 | editor->layoutType(EditWidget::File); | 108 | editor->layoutType(EditWidget::File); |
109 | _currentItem=0; | 109 | _currentItem=0; |
110 | _fileItem = (ListViewItemConfFile*)item; | 110 | _fileItem = (ListViewItemConfFile*)item; |
111 | return; | 111 | return; |
112 | } | 112 | } |
113 | _fileItem = 0; | 113 | _fileItem = 0; |
114 | _currentItem = (ListViewItemConfigEntry*)item; | 114 | _currentItem = (ListViewItemConfigEntry*)item; |
115 | if (!_currentItem) return; | 115 | if (!_currentItem) return; |
116 | QString file = _currentItem->getFile(); | 116 | QString file = _currentItem->getFile(); |
117 | QString group = _currentItem->getGroup(); | 117 | QString group = _currentItem->getGroup(); |
118 | QString key = _currentItem->getKey(); | 118 | QString key = _currentItem->getKey(); |
119 | QString val = _currentItem->getValue(); | 119 | QString val = _currentItem->getValue(); |
120 | editor->TextFileName->setText(file); | 120 | editor->TextFileName->setText(file); |
121 | editor->LineEditGroup->setText(group); | 121 | editor->LineEditGroup->setText(group); |
122 | if (!key.isEmpty()) | 122 | if (!key.isEmpty()) |
123 | { | 123 | { |
124 | editor->layoutType(EditWidget::Entry); | 124 | editor->layoutType(EditWidget::Entry); |
125 | editor->LineEditKey->setText(key); | 125 | editor->LineEditKey->setText(key); |
126 | editor->LineEditValue->setText(val); | 126 | editor->LineEditValue->setText(val); |
127 | }else{ | 127 | }else{ |
128 | editor->layoutType(EditWidget::Group); | 128 | editor->layoutType(EditWidget::Group); |
129 | } | 129 | } |
130 | } | 130 | } |
131 | 131 | ||
132 | 132 | ||
133 | void MainWindow::groupChanged(const QString &g) | 133 | void MainWindow::groupChanged(const QString &g) |
134 | { | 134 | { |
135 | if (!_currentItem) return; | 135 | if (!_currentItem) return; |
136 | _currentItem->setGroup(g); | 136 | _currentItem->setGroup(g); |
137 | } | 137 | } |
138 | 138 | ||
139 | void MainWindow::keyChanged(const QString &k) | 139 | void MainWindow::keyChanged(const QString &k) |
140 | { | 140 | { |
141 | if (!_currentItem) return; | 141 | if (!_currentItem) return; |
142 | _currentItem->keyChanged(k); | 142 | _currentItem->keyChanged(k); |
143 | } | 143 | } |
144 | 144 | ||
145 | void MainWindow::valueChanged(const QString &v) | 145 | void MainWindow::valueChanged(const QString &v) |
146 | { | 146 | { |
147 | if (!_currentItem) return; | 147 | if (!_currentItem) return; |
148 | _currentItem->valueChanged(v); | 148 | _currentItem->valueChanged(v); |
diff --git a/noncore/apps/odict/odict.cpp b/noncore/apps/odict/odict.cpp index d5c6d75..4c99964 100644 --- a/noncore/apps/odict/odict.cpp +++ b/noncore/apps/odict/odict.cpp | |||
@@ -113,103 +113,103 @@ void ODict::lookupLanguageNames( QString dictname ) | |||
113 | Config cfg ( "odict" ); | 113 | Config cfg ( "odict" ); |
114 | cfg.setGroup( "Method_"+dictname ); | 114 | cfg.setGroup( "Method_"+dictname ); |
115 | top_name_content = cfg.readEntry( "Lang1" ); | 115 | top_name_content = cfg.readEntry( "Lang1" ); |
116 | bottom_name_content = cfg.readEntry( "Lang2" ); | 116 | bottom_name_content = cfg.readEntry( "Lang2" ); |
117 | } | 117 | } |
118 | 118 | ||
119 | void ODict::saveConfig() | 119 | void ODict::saveConfig() |
120 | { | 120 | { |
121 | Config cfg ( "odict" ); | 121 | Config cfg ( "odict" ); |
122 | cfg.setGroup( "generalsettings" ); | 122 | cfg.setGroup( "generalsettings" ); |
123 | cfg.writeEntry( "casesens" , casesens ); | 123 | cfg.writeEntry( "casesens" , casesens ); |
124 | cfg.writeEntry( "lastdict" , query_co->currentText() ); | 124 | cfg.writeEntry( "lastdict" , query_co->currentText() ); |
125 | } | 125 | } |
126 | 126 | ||
127 | void ODict::slotStartQuery() | 127 | void ODict::slotStartQuery() |
128 | { | 128 | { |
129 | QString querystring = query_le->text(); | 129 | QString querystring = query_le->text(); |
130 | if ( !querystring.isEmpty() ) | 130 | if ( !querystring.isEmpty() ) |
131 | { | 131 | { |
132 | /* | 132 | /* |
133 | * if the user has not yet defined a dictionary | 133 | * if the user has not yet defined a dictionary |
134 | */ | 134 | */ |
135 | if ( !query_co->currentText() ) | 135 | if ( !query_co->currentText() ) |
136 | { | 136 | { |
137 | switch ( QMessageBox::information( this, tr( "OPIE-Dictionary" ), | 137 | switch ( QMessageBox::information( this, tr( "OPIE-Dictionary" ), |
138 | tr( "No dictionary defined" ), | 138 | tr( "No dictionary defined" ), |
139 | tr( "&Define one" ), | 139 | tr( "&Define one" ), |
140 | tr( "&Cancel" ), | 140 | tr( "&Cancel" ), |
141 | 0, // Define a dict | 141 | 0, // Define a dict |
142 | 1 ) ) // Cancel choosen | 142 | 1 ) ) // Cancel choosen |
143 | { | 143 | { |
144 | case 0: | 144 | case 0: |
145 | slotSettings(); | 145 | slotSettings(); |
146 | break; | 146 | break; |
147 | case 1: // stop here | 147 | case 1: // stop here |
148 | return; | 148 | return; |
149 | } | 149 | } |
150 | } | 150 | } |
151 | 151 | ||
152 | /* | 152 | /* |
153 | * ok, the user has defined a dict | 153 | * ok, the user has defined a dict |
154 | */ | 154 | */ |
155 | ding->setCaseSensitive( casesens ); | 155 | ding->setCaseSensitive( casesens ); |
156 | 156 | ||
157 | BroswerContent test = ding->setText( querystring ); | 157 | BroswerContent test = ding->setText( querystring ); |
158 | 158 | ||
159 | browser_top->setText( test.top ); | 159 | browser_top->setText( test.top ); |
160 | browser_bottom->setText( test.bottom ); | 160 | browser_bottom->setText( test.bottom ); |
161 | } | 161 | } |
162 | } | 162 | } |
163 | 163 | ||
164 | void ODict::slotSettings() | 164 | void ODict::slotSettings() |
165 | { | 165 | { |
166 | ConfigDlg dlg( this, "Config" , true); | 166 | ConfigDlg dlg( this, "Config" , true); |
167 | if ( dlg.exec() == QDialog::Accepted ) | 167 | if ( dlg.exec() == QDialog::Accepted ) |
168 | saveConfig(); | 168 | saveConfig(); |
169 | } | 169 | } |
170 | 170 | ||
171 | void ODict::slotSetParameter( int count ) | 171 | void ODict::slotSetParameter( int count ) |
172 | { | 172 | { |
173 | if ( count == 0 ) | 173 | if ( count == 0 ) |
174 | { | 174 | { |
175 | if ( casesens ) | 175 | if ( casesens ) |
176 | casesens = false; | 176 | casesens = false; |
177 | else | 177 | else |
178 | casesens = true; | 178 | casesens = true; |
179 | } | 179 | } |
180 | 180 | ||
181 | saveConfig(); | 181 | saveConfig(); |
182 | } | 182 | } |
183 | 183 | ||
184 | void ODict::slotMethodChanged( const QString& methodnumber ) | 184 | void ODict::slotMethodChanged( const QString& methodnumber ) |
185 | { | 185 | { |
186 | activated_name = methodnumber; | 186 | activated_name = methodnumber; |
187 | 187 | ||
188 | if ( activated_name != ding->loadedDict() ) | 188 | if ( activated_name != ding->loadedDict() ) |
189 | { | 189 | { |
190 | ding->loadDict(activated_name); | 190 | ding->loadDict(activated_name); |
191 | 191 | ||
192 | lookupLanguageNames( activated_name ); | 192 | lookupLanguageNames( activated_name ); |
193 | top_name->setText( top_name_content ); | 193 | top_name->setText( top_name_content ); |
194 | bottom_name->setText( bottom_name_content ); | 194 | bottom_name->setText( bottom_name_content ); |
195 | } | 195 | } |
196 | } | 196 | } |
197 | 197 | ||
198 | void ODict::setupMenus() | 198 | void ODict::setupMenus() |
199 | { | 199 | { |
200 | menu = new QMenuBar( this ); | 200 | menu = new QMenuBar( this ); |
201 | 201 | ||
202 | settings = new QPopupMenu( menu ); | 202 | settings = new QPopupMenu( menu ); |
203 | setting_a = new QAction(tr( "Configuration" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); | 203 | setting_a = new QAction(tr( "Configuration" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); |
204 | connect( setting_a, SIGNAL( activated() ), this, SLOT( slotSettings() ) ); | 204 | connect( setting_a, SIGNAL( activated() ), this, SLOT( slotSettings() ) ); |
205 | setting_a->addTo( settings ); | 205 | setting_a->addTo( settings ); |
206 | setting_b = new QAction(tr( "Searchmethods" ), Resource::loadPixmap( "edit" ), QString::null, 0, this, 0 ); | 206 | setting_b = new QAction(tr( "Searchmethods" ), Resource::loadPixmap( "edit" ), QString::null, 0, this, 0 ); |
207 | 207 | ||
208 | parameter = new QPopupMenu( menu ); | 208 | parameter = new QPopupMenu( menu ); |
209 | connect( parameter, SIGNAL( activated( int ) ), this, SLOT( slotSetParameter( int ) ) ); | 209 | connect( parameter, SIGNAL( activated(int) ), this, SLOT( slotSetParameter(int) ) ); |
210 | parameter->insertItem( tr( "C&ase sensitive" ), 0 ,0 ); | 210 | parameter->insertItem( tr( "C&ase sensitive" ), 0 ,0 ); |
211 | parameter->insertSeparator(); | 211 | parameter->insertSeparator(); |
212 | 212 | ||
213 | menu->insertItem( tr( "Settings" ) , settings ); | 213 | menu->insertItem( tr( "Settings" ) , settings ); |
214 | menu->insertItem( tr( "Parameter" ) , parameter ); | 214 | menu->insertItem( tr( "Parameter" ) , parameter ); |
215 | } | 215 | } |
diff --git a/noncore/apps/opie-bartender/bartender.cpp b/noncore/apps/opie-bartender/bartender.cpp index 3c010e9..b6401ed 100644 --- a/noncore/apps/opie-bartender/bartender.cpp +++ b/noncore/apps/opie-bartender/bartender.cpp | |||
@@ -9,195 +9,195 @@ | |||
9 | * the Free Software Foundation; either version 2 of the License, or * | 9 | * the Free Software Foundation; either version 2 of the License, or * |
10 | * (at your option) any later version. * | 10 | * (at your option) any later version. * |
11 | ***************************************************************************/ | 11 | ***************************************************************************/ |
12 | 12 | ||
13 | #include "bartender.h" | 13 | #include "bartender.h" |
14 | #include "showdrinks.h" | 14 | #include "showdrinks.h" |
15 | #include "inputDialog.h" | 15 | #include "inputDialog.h" |
16 | #include "searchresults.h" | 16 | #include "searchresults.h" |
17 | #include "bac.h" | 17 | #include "bac.h" |
18 | 18 | ||
19 | #include <qpe/qpetoolbar.h> | 19 | #include <qpe/qpetoolbar.h> |
20 | #include <qmenubar.h> | 20 | #include <qmenubar.h> |
21 | //#include <opie2/colorpopupmenu.h> | 21 | //#include <opie2/colorpopupmenu.h> |
22 | #include <qpe/qpeapplication.h> | 22 | #include <qpe/qpeapplication.h> |
23 | #include <qpe/resource.h> | 23 | #include <qpe/resource.h> |
24 | 24 | ||
25 | #include <qlineedit.h> | 25 | #include <qlineedit.h> |
26 | #include <qdir.h> | 26 | #include <qdir.h> |
27 | #include <qpushbutton.h> | 27 | #include <qpushbutton.h> |
28 | #include <qlistbox.h> | 28 | #include <qlistbox.h> |
29 | #include <qmultilineedit.h> | 29 | #include <qmultilineedit.h> |
30 | #include <qmessagebox.h> | 30 | #include <qmessagebox.h> |
31 | #include <qtextstream.h> | 31 | #include <qtextstream.h> |
32 | #include <qaction.h> | 32 | #include <qaction.h> |
33 | #include <qheader.h> | 33 | #include <qheader.h> |
34 | #include <qlistview.h> | 34 | #include <qlistview.h> |
35 | #include <qlayout.h> | 35 | #include <qlayout.h> |
36 | 36 | ||
37 | #include <fcntl.h> | 37 | #include <fcntl.h> |
38 | #include <unistd.h> | 38 | #include <unistd.h> |
39 | #include <stdlib.h> | 39 | #include <stdlib.h> |
40 | #include <stdio.h> | 40 | #include <stdio.h> |
41 | #include <errno.h> | 41 | #include <errno.h> |
42 | 42 | ||
43 | 43 | ||
44 | Bartender::Bartender( QWidget* parent, const char* name, WFlags fl ) | 44 | Bartender::Bartender( QWidget* parent, const char* name, WFlags fl ) |
45 | : QMainWindow( parent, name, fl ) { | 45 | : QMainWindow( parent, name, fl ) { |
46 | if ( !name ) | 46 | if ( !name ) |
47 | setName( "Bartender" ); | 47 | setName( "Bartender" ); |
48 | QGridLayout *layout = new QGridLayout( this ); | 48 | QGridLayout *layout = new QGridLayout( this ); |
49 | layout->setSpacing( 2); | 49 | layout->setSpacing( 2); |
50 | layout->setMargin( 2); | 50 | layout->setMargin( 2); |
51 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); | 51 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); |
52 | 52 | ||
53 | setCaption( tr( "Bartender" ) ); | 53 | setCaption( tr( "Bartender" ) ); |
54 | 54 | ||
55 | ToolBar1 = new QToolBar( this, "ToolBar1" ); | 55 | ToolBar1 = new QToolBar( this, "ToolBar1" ); |
56 | ToolBar1->setFixedHeight(22); | 56 | ToolBar1->setFixedHeight(22); |
57 | layout->addMultiCellWidget( ToolBar1, 0, 0, 0, 4 ); | 57 | layout->addMultiCellWidget( ToolBar1, 0, 0, 0, 4 ); |
58 | 58 | ||
59 | QMenuBar *menuBar = new QMenuBar( ToolBar1 ); | 59 | QMenuBar *menuBar = new QMenuBar( ToolBar1 ); |
60 | QPopupMenu *fileMenu; | 60 | QPopupMenu *fileMenu; |
61 | fileMenu = new QPopupMenu( this); | 61 | fileMenu = new QPopupMenu( this); |
62 | menuBar->insertItem( tr("File"), fileMenu ); | 62 | menuBar->insertItem( tr("File"), fileMenu ); |
63 | 63 | ||
64 | fileMenu->insertItem(tr("New Drink")); | 64 | fileMenu->insertItem(tr("New Drink")); |
65 | fileMenu->insertItem(tr("Open Drink")); | 65 | fileMenu->insertItem(tr("Open Drink")); |
66 | fileMenu->insertItem(tr("Find by Drink Name")); | 66 | fileMenu->insertItem(tr("Find by Drink Name")); |
67 | fileMenu->insertItem(tr("Find by Alcohol")); | 67 | fileMenu->insertItem(tr("Find by Alcohol")); |
68 | 68 | ||
69 | QPopupMenu *editMenu; | 69 | QPopupMenu *editMenu; |
70 | editMenu = new QPopupMenu( this); | 70 | editMenu = new QPopupMenu( this); |
71 | menuBar->insertItem( tr("Edit"), editMenu ); | 71 | menuBar->insertItem( tr("Edit"), editMenu ); |
72 | editMenu->insertItem(tr("edit")); | 72 | editMenu->insertItem(tr("edit")); |
73 | 73 | ||
74 | connect( fileMenu, SIGNAL( activated(int) ), this, SLOT( fileMenuActivated(int) )); | 74 | connect( fileMenu, SIGNAL( activated(int) ), this, SLOT( fileMenuActivated(int) )); |
75 | connect( editMenu, SIGNAL( activated(int) ), this, SLOT( editMenuActivated(int) )); | 75 | connect( editMenu, SIGNAL( activated(int) ), this, SLOT( editMenuActivated(int) )); |
76 | 76 | ||
77 | 77 | ||
78 | QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), "New", 0, this, 0 ); | 78 | QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), "New", 0, this, 0 ); |
79 | connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); | 79 | connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); |
80 | a->addTo( ToolBar1 ); | 80 | a->addTo( ToolBar1 ); |
81 | 81 | ||
82 | a = new QAction( tr( "Open" ), Resource::loadPixmap( "bartender/bartender_sm" ), "open", 0, this, 0 ); | 82 | a = new QAction( tr( "Open" ), Resource::loadPixmap( "bartender/bartender_sm" ), "open", 0, this, 0 ); |
83 | connect( a, SIGNAL( activated() ), this, SLOT( openCurrentDrink() ) ); | 83 | connect( a, SIGNAL( activated() ), this, SLOT( openCurrentDrink() ) ); |
84 | a->addTo( ToolBar1 ); | 84 | a->addTo( ToolBar1 ); |
85 | 85 | ||
86 | a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), "Find", 0, this, 0 ); | 86 | a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), "Find", 0, this, 0 ); |
87 | connect( a, SIGNAL( activated() ), this, SLOT( askSearch() ) ); | 87 | connect( a, SIGNAL( activated() ), this, SLOT( askSearch() ) ); |
88 | a->addTo( ToolBar1 ); | 88 | a->addTo( ToolBar1 ); |
89 | 89 | ||
90 | a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ),"Edit", 0, this, 0 ); | 90 | a = new QAction( tr( "Edit" ), Resource::loadPixmap( "edit" ),"Edit", 0, this, 0 ); |
91 | connect( a, SIGNAL( activated() ), this, SLOT( doEdit() ) ); | 91 | connect( a, SIGNAL( activated() ), this, SLOT( doEdit() ) ); |
92 | a->addTo( ToolBar1 ); | 92 | a->addTo( ToolBar1 ); |
93 | 93 | ||
94 | QPushButton *t; | 94 | QPushButton *t; |
95 | t= new QPushButton( "BAC", ToolBar1, "bacButtin"); | 95 | t= new QPushButton( "BAC", ToolBar1, "bacButtin"); |
96 | connect( t, SIGNAL( clicked() ), this, SLOT( doBac() ) ); | 96 | connect( t, SIGNAL( clicked() ), this, SLOT( doBac() ) ); |
97 | 97 | ||
98 | DrinkView = new QListView( this, "DrinkView" ); | 98 | DrinkView = new QListView( this, "DrinkView" ); |
99 | DrinkView->addColumn( tr( "Name of Drink" ) ); | 99 | DrinkView->addColumn( tr( "Name of Drink" ) ); |
100 | // DrinkView->setRootIsDecorated( TRUE ); | 100 | // DrinkView->setRootIsDecorated( TRUE ); |
101 | DrinkView->header()->hide(); | 101 | DrinkView->header()->hide(); |
102 | 102 | ||
103 | QPEApplication::setStylusOperation( DrinkView->viewport(),QPEApplication::RightOnHold); | 103 | QPEApplication::setStylusOperation( DrinkView->viewport(),QPEApplication::RightOnHold); |
104 | 104 | ||
105 | connect(DrinkView, SIGNAL( doubleClicked(QListViewItem*)),this,SLOT(showDrink( QListViewItem*))); | 105 | connect(DrinkView, SIGNAL( doubleClicked(QListViewItem*)),this,SLOT(showDrink(QListViewItem*))); |
106 | connect(DrinkView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 106 | connect(DrinkView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), |
107 | this,SLOT( showDrink(int, QListViewItem *, const QPoint&, int))); | 107 | this,SLOT( showDrink(int,QListViewItem*,const QPoint&,int))); |
108 | 108 | ||
109 | layout->addMultiCellWidget( DrinkView, 1, 2, 0, 4 ); | 109 | layout->addMultiCellWidget( DrinkView, 1, 2, 0, 4 ); |
110 | if(QDir("db").exists()) { | 110 | if(QDir("db").exists()) { |
111 | dbFile.setName( "db/drinkdb.txt"); | 111 | dbFile.setName( "db/drinkdb.txt"); |
112 | } else | 112 | } else |
113 | dbFile.setName( QPEApplication::qpeDir()+"/etc/bartender/drinkdb.txt"); | 113 | dbFile.setName( QPEApplication::qpeDir()+"/etc/bartender/drinkdb.txt"); |
114 | initDrinkDb(); | 114 | initDrinkDb(); |
115 | } | 115 | } |
116 | 116 | ||
117 | Bartender::~Bartender() { | 117 | Bartender::~Bartender() { |
118 | } | 118 | } |
119 | 119 | ||
120 | /* | 120 | /* |
121 | this happens right before exit */ | 121 | this happens right before exit */ |
122 | void Bartender::cleanUp() { | 122 | void Bartender::cleanUp() { |
123 | dbFile.close(); | 123 | dbFile.close(); |
124 | 124 | ||
125 | } | 125 | } |
126 | 126 | ||
127 | void Bartender::initDrinkDb() { | 127 | void Bartender::initDrinkDb() { |
128 | 128 | ||
129 | if(!dbFile.isOpen()) | 129 | if(!dbFile.isOpen()) |
130 | if ( !dbFile.open( IO_ReadOnly)) { | 130 | if ( !dbFile.open( IO_ReadOnly)) { |
131 | QMessageBox::message( (tr("Note")), (tr("Drink database not opened sucessfully.\n")) ); | 131 | QMessageBox::message( (tr("Note")), (tr("Drink database not opened sucessfully.\n")) ); |
132 | return; | 132 | return; |
133 | } | 133 | } |
134 | fillList(); | 134 | fillList(); |
135 | } | 135 | } |
136 | 136 | ||
137 | void Bartender::fillList() { | 137 | void Bartender::fillList() { |
138 | dbFile.at(1); | 138 | dbFile.at(1); |
139 | DrinkView->clear(); | 139 | DrinkView->clear(); |
140 | int i=0; | 140 | int i=0; |
141 | QListViewItem * item ; | 141 | QListViewItem * item ; |
142 | QTextStream t( &dbFile); | 142 | QTextStream t( &dbFile); |
143 | QString s; | 143 | QString s; |
144 | while ( !t.eof()) { | 144 | while ( !t.eof()) { |
145 | s = t.readLine(); | 145 | s = t.readLine(); |
146 | if(s.find("#",0,TRUE) != -1) { | 146 | if(s.find("#",0,TRUE) != -1) { |
147 | // qDebug(s.right(s.length()-2)); | 147 | // qDebug(s.right(s.length()-2)); |
148 | item= new QListViewItem( DrinkView, 0 ); | 148 | item= new QListViewItem( DrinkView, 0 ); |
149 | item->setText( 0, s.right(s.length()-2)); | 149 | item->setText( 0, s.right(s.length()-2)); |
150 | i++; | 150 | i++; |
151 | } | 151 | } |
152 | } | 152 | } |
153 | qDebug("there are currently %d of drinks", i); | 153 | qDebug("there are currently %d of drinks", i); |
154 | } | 154 | } |
155 | 155 | ||
156 | void Bartender::fileNew() { | 156 | void Bartender::fileNew() { |
157 | 157 | ||
158 | New_Drink *newDrinks; | 158 | New_Drink *newDrinks; |
159 | newDrinks = new New_Drink(this,"New Drink....", TRUE); | 159 | newDrinks = new New_Drink(this,"New Drink....", TRUE); |
160 | QString newName, newIng; | 160 | QString newName, newIng; |
161 | QPEApplication::execDialog( newDrinks ); | 161 | QPEApplication::execDialog( newDrinks ); |
162 | newName = newDrinks->LineEdit1->text(); | 162 | newName = newDrinks->LineEdit1->text(); |
163 | newIng= newDrinks->MultiLineEdit1->text(); | 163 | newIng= newDrinks->MultiLineEdit1->text(); |
164 | 164 | ||
165 | if(dbFile.isOpen()) | 165 | if(dbFile.isOpen()) |
166 | dbFile.close(); | 166 | dbFile.close(); |
167 | if ( !dbFile.open( IO_WriteOnly| IO_Append)) { | 167 | if ( !dbFile.open( IO_WriteOnly| IO_Append)) { |
168 | QMessageBox::message( (tr("Note")), (tr("Drink database not opened sucessfully.\n")) ); | 168 | QMessageBox::message( (tr("Note")), (tr("Drink database not opened sucessfully.\n")) ); |
169 | return; | 169 | return; |
170 | } | 170 | } |
171 | if(newDrinks ->result() == 1 ) { | 171 | if(newDrinks ->result() == 1 ) { |
172 | QString newDrink="\n# "+newName+"\n"; | 172 | QString newDrink="\n# "+newName+"\n"; |
173 | newDrink.append(newIng+"\n"); | 173 | newDrink.append(newIng+"\n"); |
174 | qDebug("writing "+newDrink); | 174 | qDebug("writing "+newDrink); |
175 | dbFile.writeBlock( newDrink.latin1(), newDrink.length()); | 175 | dbFile.writeBlock( newDrink.latin1(), newDrink.length()); |
176 | clearList(); | 176 | clearList(); |
177 | dbFile.close(); | 177 | dbFile.close(); |
178 | 178 | ||
179 | initDrinkDb(); | 179 | initDrinkDb(); |
180 | } | 180 | } |
181 | delete newDrinks; | 181 | delete newDrinks; |
182 | } | 182 | } |
183 | 183 | ||
184 | void Bartender::showDrink(int mouse, QListViewItem * item, const QPoint&, int) { | 184 | void Bartender::showDrink(int mouse, QListViewItem * item, const QPoint&, int) { |
185 | switch (mouse) { | 185 | switch (mouse) { |
186 | case 1: | 186 | case 1: |
187 | // showDrink(item); | 187 | // showDrink(item); |
188 | break; | 188 | break; |
189 | case 2: | 189 | case 2: |
190 | showDrink(item); | 190 | showDrink(item); |
191 | break; | 191 | break; |
192 | } | 192 | } |
193 | } | 193 | } |
194 | 194 | ||
195 | void Bartender::showDrink( QListViewItem *item) { | 195 | void Bartender::showDrink( QListViewItem *item) { |
196 | if(item==NULL) return; | 196 | if(item==NULL) return; |
197 | dbFile.at(0); | 197 | dbFile.at(0); |
198 | Show_Drink *showDrinks; | 198 | Show_Drink *showDrinks; |
199 | QString myDrink=item->text(0); | 199 | QString myDrink=item->text(0); |
200 | showDrinks = new Show_Drink(this, myDrink, TRUE); | 200 | showDrinks = new Show_Drink(this, myDrink, TRUE); |
201 | QTextStream t( &dbFile); | 201 | QTextStream t( &dbFile); |
202 | 202 | ||
203 | QString s, s2; | 203 | QString s, s2; |
diff --git a/noncore/apps/opie-bartender/searchresults.cpp b/noncore/apps/opie-bartender/searchresults.cpp index 4900d1f..a511a57 100644 --- a/noncore/apps/opie-bartender/searchresults.cpp +++ b/noncore/apps/opie-bartender/searchresults.cpp | |||
@@ -1,43 +1,43 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** Created: Sat Jul 20 08:23:27 2002 | 2 | ** Created: Sat Jul 20 08:23:27 2002 |
3 | ** by: L.J. Potter <ljp@llornkcor.com> | 3 | ** by: L.J. Potter <ljp@llornkcor.com> |
4 | ** copyright : (C) 2002 by ljp | 4 | ** copyright : (C) 2002 by ljp |
5 | email : ljp@llornkcor.com | 5 | email : ljp@llornkcor.com |
6 | * This program is free software; you can redistribute it and/or modify * | 6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License as published by * | 7 | * it under the terms of the GNU General Public License as published by * |
8 | * the Free Software Foundation; either version 2 of the License, or * | 8 | * the Free Software Foundation; either version 2 of the License, or * |
9 | * (at your option) any later version. * | 9 | * (at your option) any later version. * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | #include "searchresults.h" | 11 | #include "searchresults.h" |
12 | 12 | ||
13 | 13 | ||
14 | #include <qlistbox.h> | 14 | #include <qlistbox.h> |
15 | #include <qlayout.h> | 15 | #include <qlayout.h> |
16 | 16 | ||
17 | Search_Results::Search_Results( QWidget* parent, const char* name, bool modal, WFlags fl ) | 17 | Search_Results::Search_Results( QWidget* parent, const char* name, bool modal, WFlags fl ) |
18 | : QDialog( parent, name, modal, fl ) { | 18 | : QDialog( parent, name, modal, fl ) { |
19 | if ( !name ) | 19 | if ( !name ) |
20 | setName( drinkName); | 20 | setName( drinkName); |
21 | 21 | ||
22 | drinkName = name; | 22 | drinkName = name; |
23 | setCaption( drinkName ); | 23 | setCaption( drinkName ); |
24 | 24 | ||
25 | Layout5 = new QGridLayout( this ); | 25 | Layout5 = new QGridLayout( this ); |
26 | Layout5->setSpacing( 6 ); | 26 | Layout5->setSpacing( 6 ); |
27 | Layout5->setMargin( 4 ); | 27 | Layout5->setMargin( 4 ); |
28 | 28 | ||
29 | ListBox1 = new QListBox( this, "ListBox1" ); | 29 | ListBox1 = new QListBox( this, "ListBox1" ); |
30 | 30 | ||
31 | Layout5->addMultiCellWidget( ListBox1, 0, 1, 0, 3 ); | 31 | Layout5->addMultiCellWidget( ListBox1, 0, 1, 0, 3 ); |
32 | connect( ListBox1, SIGNAL( clicked( QListBoxItem *)), SLOT( listSelected( QListBoxItem *)) ); | 32 | connect( ListBox1, SIGNAL( clicked(QListBoxItem*)), SLOT( listSelected(QListBoxItem*)) ); |
33 | } | 33 | } |
34 | 34 | ||
35 | Search_Results::~Search_Results() { | 35 | Search_Results::~Search_Results() { |
36 | } | 36 | } |
37 | 37 | ||
38 | 38 | ||
39 | void Search_Results::listSelected(QListBoxItem *) { | 39 | void Search_Results::listSelected(QListBoxItem *) { |
40 | 40 | ||
41 | QDialog::accept(); | 41 | QDialog::accept(); |
42 | } | 42 | } |
43 | 43 | ||
diff --git a/noncore/apps/opie-console/btconfigwidget.cpp b/noncore/apps/opie-console/btconfigwidget.cpp index 64046d8..0ac337f 100644 --- a/noncore/apps/opie-console/btconfigwidget.cpp +++ b/noncore/apps/opie-console/btconfigwidget.cpp | |||
@@ -1,139 +1,139 @@ | |||
1 | #include <qlabel.h> | 1 | #include <qlabel.h> |
2 | #include <qlayout.h> | 2 | #include <qlayout.h> |
3 | #include <qlineedit.h> | 3 | #include <qlineedit.h> |
4 | #include <qcombobox.h> | 4 | #include <qcombobox.h> |
5 | #include <qhbox.h> | 5 | #include <qhbox.h> |
6 | #include <qradiobutton.h> | 6 | #include <qradiobutton.h> |
7 | 7 | ||
8 | #include "iolayerbase.h" | 8 | #include "iolayerbase.h" |
9 | #include "btconfigwidget.h" | 9 | #include "btconfigwidget.h" |
10 | 10 | ||
11 | namespace { | 11 | namespace { |
12 | void setCurrent( const QString& str, QComboBox* bo ) { | 12 | void setCurrent( const QString& str, QComboBox* bo ) { |
13 | uint b = bo->count(); | 13 | uint b = bo->count(); |
14 | for (int i = 0; i < bo->count(); i++ ) { | 14 | for (int i = 0; i < bo->count(); i++ ) { |
15 | if ( bo->text(i) == str ) { | 15 | if ( bo->text(i) == str ) { |
16 | bo->setCurrentItem( i ); | 16 | bo->setCurrentItem( i ); |
17 | return; | 17 | return; |
18 | } | 18 | } |
19 | } | 19 | } |
20 | bo->insertItem( str ); | 20 | bo->insertItem( str ); |
21 | bo->setCurrentItem( b ); | 21 | bo->setCurrentItem( b ); |
22 | } | 22 | } |
23 | } | 23 | } |
24 | 24 | ||
25 | BTConfigWidget::BTConfigWidget( const QString& name, | 25 | BTConfigWidget::BTConfigWidget( const QString& name, |
26 | QWidget* parent, | 26 | QWidget* parent, |
27 | const char* na ) | 27 | const char* na ) |
28 | : ProfileDialogConnectionWidget( name, parent, na ) { | 28 | : ProfileDialogConnectionWidget( name, parent, na ) { |
29 | 29 | ||
30 | m_lay = new QVBoxLayout( this ); | 30 | m_lay = new QVBoxLayout( this ); |
31 | 31 | ||
32 | m_device = new QLabel( tr( "Device" ), this ); | 32 | m_device = new QLabel( tr( "Device" ), this ); |
33 | QHBox *deviceBox = new QHBox( this ); | 33 | QHBox *deviceBox = new QHBox( this ); |
34 | m_devRadio = new QRadioButton( deviceBox ); | 34 | m_devRadio = new QRadioButton( deviceBox ); |
35 | connect( m_devRadio, SIGNAL( toggled( bool ) ), this, SLOT( slotDevRadio( bool ) ) ); | 35 | connect( m_devRadio, SIGNAL( toggled(bool) ), this, SLOT( slotDevRadio(bool) ) ); |
36 | m_deviceCmb = new QComboBox( deviceBox ); | 36 | m_deviceCmb = new QComboBox( deviceBox ); |
37 | m_deviceCmb->setEditable( TRUE ); | 37 | m_deviceCmb->setEditable( TRUE ); |
38 | 38 | ||
39 | QLabel *macLabel = new QLabel( this ); | 39 | QLabel *macLabel = new QLabel( this ); |
40 | macLabel->setText( tr( "Or peer mac address" ) ); | 40 | macLabel->setText( tr( "Or peer mac address" ) ); |
41 | QHBox *macBox = new QHBox( this ); | 41 | QHBox *macBox = new QHBox( this ); |
42 | m_macRadio = new QRadioButton( macBox ); | 42 | m_macRadio = new QRadioButton( macBox ); |
43 | connect( m_macRadio, SIGNAL( toggled( bool ) ), this, SLOT( slotMacRadio( bool ) ) ); | 43 | connect( m_macRadio, SIGNAL( toggled(bool) ), this, SLOT( slotMacRadio(bool) ) ); |
44 | m_mac = new QLineEdit( macBox ); | 44 | m_mac = new QLineEdit( macBox ); |
45 | 45 | ||
46 | m_base = new IOLayerBase(this, "base"); | 46 | m_base = new IOLayerBase(this, "base"); |
47 | 47 | ||
48 | m_lay->addWidget( m_device ); | 48 | m_lay->addWidget( m_device ); |
49 | m_lay->addWidget( deviceBox ); | 49 | m_lay->addWidget( deviceBox ); |
50 | m_lay->addWidget( macLabel ); | 50 | m_lay->addWidget( macLabel ); |
51 | m_lay->addWidget( macBox ); | 51 | m_lay->addWidget( macBox ); |
52 | m_lay->addWidget( m_base ); | 52 | m_lay->addWidget( m_base ); |
53 | 53 | ||
54 | m_deviceCmb->insertItem( "/dev/ttyU0" ); | 54 | m_deviceCmb->insertItem( "/dev/ttyU0" ); |
55 | m_deviceCmb->insertItem( "/dev/ttyU1" ); | 55 | m_deviceCmb->insertItem( "/dev/ttyU1" ); |
56 | } | 56 | } |
57 | 57 | ||
58 | BTConfigWidget::~BTConfigWidget() { | 58 | BTConfigWidget::~BTConfigWidget() { |
59 | 59 | ||
60 | } | 60 | } |
61 | void BTConfigWidget::load( const Profile& prof ) { | 61 | void BTConfigWidget::load( const Profile& prof ) { |
62 | int rad_flow = prof.readNumEntry("Flow"); | 62 | int rad_flow = prof.readNumEntry("Flow"); |
63 | int rad_parity = prof.readNumEntry("Parity"); | 63 | int rad_parity = prof.readNumEntry("Parity"); |
64 | int speed = prof.readNumEntry("Speed"); | 64 | int speed = prof.readNumEntry("Speed"); |
65 | QString mac = prof.readEntry("Mac"); | 65 | QString mac = prof.readEntry("Mac"); |
66 | 66 | ||
67 | if (!mac.isEmpty() ) { | 67 | if (!mac.isEmpty() ) { |
68 | m_mac->setText( mac ); | 68 | m_mac->setText( mac ); |
69 | } else { | 69 | } else { |
70 | m_devRadio->setChecked( true ); | 70 | m_devRadio->setChecked( true ); |
71 | } | 71 | } |
72 | 72 | ||
73 | if (rad_flow == 1) { | 73 | if (rad_flow == 1) { |
74 | m_base->setFlow( IOLayerBase::Hardware ); | 74 | m_base->setFlow( IOLayerBase::Hardware ); |
75 | } else if (rad_flow == 2) { | 75 | } else if (rad_flow == 2) { |
76 | m_base->setFlow( IOLayerBase::Software ); | 76 | m_base->setFlow( IOLayerBase::Software ); |
77 | } else if (rad_flow == 0) { | 77 | } else if (rad_flow == 0) { |
78 | m_base->setFlow( IOLayerBase::None ); | 78 | m_base->setFlow( IOLayerBase::None ); |
79 | } | 79 | } |
80 | 80 | ||
81 | if (rad_parity == 1) { | 81 | if (rad_parity == 1) { |
82 | m_base->setParity( IOLayerBase::Even ); | 82 | m_base->setParity( IOLayerBase::Even ); |
83 | } else if ( rad_parity == 2 ) { | 83 | } else if ( rad_parity == 2 ) { |
84 | m_base->setParity( IOLayerBase::Odd ); | 84 | m_base->setParity( IOLayerBase::Odd ); |
85 | } else { | 85 | } else { |
86 | m_base->setParity( IOLayerBase::NonePar ); | 86 | m_base->setParity( IOLayerBase::NonePar ); |
87 | } | 87 | } |
88 | 88 | ||
89 | switch( speed ) { | 89 | switch( speed ) { |
90 | case 115200: | 90 | case 115200: |
91 | m_base->setSpeed(IOLayerBase::Baud_115200 ); | 91 | m_base->setSpeed(IOLayerBase::Baud_115200 ); |
92 | break; | 92 | break; |
93 | case 57600: | 93 | case 57600: |
94 | m_base->setSpeed( IOLayerBase::Baud_57600 ); | 94 | m_base->setSpeed( IOLayerBase::Baud_57600 ); |
95 | break; | 95 | break; |
96 | case 38400: | 96 | case 38400: |
97 | m_base->setSpeed(IOLayerBase::Baud_38400 ); | 97 | m_base->setSpeed(IOLayerBase::Baud_38400 ); |
98 | break; | 98 | break; |
99 | case 19200: | 99 | case 19200: |
100 | m_base->setSpeed( IOLayerBase::Baud_19200 ); | 100 | m_base->setSpeed( IOLayerBase::Baud_19200 ); |
101 | break; | 101 | break; |
102 | case 9600: | 102 | case 9600: |
103 | default: | 103 | default: |
104 | m_base->setSpeed(IOLayerBase::Baud_9600 ); | 104 | m_base->setSpeed(IOLayerBase::Baud_9600 ); |
105 | break; | 105 | break; |
106 | } | 106 | } |
107 | 107 | ||
108 | if ( prof.readEntry("Device").isEmpty() ) return; | 108 | if ( prof.readEntry("Device").isEmpty() ) return; |
109 | setCurrent( prof.readEntry("Device"), m_deviceCmb ); | 109 | setCurrent( prof.readEntry("Device"), m_deviceCmb ); |
110 | 110 | ||
111 | } | 111 | } |
112 | /* | 112 | /* |
113 | * save speed, | 113 | * save speed, |
114 | * flow, | 114 | * flow, |
115 | * parity | 115 | * parity |
116 | */ | 116 | */ |
117 | void BTConfigWidget::save( Profile& prof ) { | 117 | void BTConfigWidget::save( Profile& prof ) { |
118 | int flow, parity, speed; | 118 | int flow, parity, speed; |
119 | flow = parity = speed = 0; | 119 | flow = parity = speed = 0; |
120 | prof.writeEntry("Device", m_deviceCmb->currentText() ); | 120 | prof.writeEntry("Device", m_deviceCmb->currentText() ); |
121 | 121 | ||
122 | 122 | ||
123 | switch( m_base->flow() ) { | 123 | switch( m_base->flow() ) { |
124 | case IOLayerBase::None: | 124 | case IOLayerBase::None: |
125 | flow = 0; | 125 | flow = 0; |
126 | break; | 126 | break; |
127 | case IOLayerBase::Software: | 127 | case IOLayerBase::Software: |
128 | flow = 2; | 128 | flow = 2; |
129 | break; | 129 | break; |
130 | case IOLayerBase::Hardware: | 130 | case IOLayerBase::Hardware: |
131 | flow = 1; | 131 | flow = 1; |
132 | break; | 132 | break; |
133 | } | 133 | } |
134 | 134 | ||
135 | switch( m_base->parity() ) { | 135 | switch( m_base->parity() ) { |
136 | case IOLayerBase::Odd: | 136 | case IOLayerBase::Odd: |
137 | parity = 2; | 137 | parity = 2; |
138 | break; | 138 | break; |
139 | case IOLayerBase::Even: | 139 | case IOLayerBase::Even: |
diff --git a/noncore/apps/opie-console/dialdialog.cpp b/noncore/apps/opie-console/dialdialog.cpp index 6bc1240..526d55e 100644 --- a/noncore/apps/opie-console/dialdialog.cpp +++ b/noncore/apps/opie-console/dialdialog.cpp | |||
@@ -1,98 +1,98 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | #include <qlayout.h> | 3 | #include <qlayout.h> |
4 | #include <qlabel.h> | 4 | #include <qlabel.h> |
5 | #include <qpushbutton.h> | 5 | #include <qpushbutton.h> |
6 | #include <qbuttongroup.h> | 6 | #include <qbuttongroup.h> |
7 | 7 | ||
8 | #include "dialdialog.h" | 8 | #include "dialdialog.h" |
9 | 9 | ||
10 | 10 | ||
11 | 11 | ||
12 | DialDialog::DialDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) | 12 | DialDialog::DialDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) |
13 | : QDialog( parent, name, modal, fl ) { | 13 | : QDialog( parent, name, modal, fl ) { |
14 | 14 | ||
15 | setCaption( tr( "Enter number" ) ); | 15 | setCaption( tr( "Enter number" ) ); |
16 | 16 | ||
17 | QVBoxLayout *mainLayout = new QVBoxLayout( this ); | 17 | QVBoxLayout *mainLayout = new QVBoxLayout( this ); |
18 | 18 | ||
19 | QLabel *textLabel = new QLabel( this ); | 19 | QLabel *textLabel = new QLabel( this ); |
20 | textLabel->setTextFormat( QLabel::RichText ); | 20 | textLabel->setTextFormat( QLabel::RichText ); |
21 | textLabel->setText( tr("Enter the number you want to dial. When finished, press ok") ); | 21 | textLabel->setText( tr("Enter the number you want to dial. When finished, press ok") ); |
22 | 22 | ||
23 | m_dialLine = new QLineEdit( this ); | 23 | m_dialLine = new QLineEdit( this ); |
24 | m_dialLine->setReadOnly( true ); | 24 | m_dialLine->setReadOnly( true ); |
25 | m_dialLine->setFrame( false ); | 25 | m_dialLine->setFrame( false ); |
26 | m_dialLine->setAlignment( Qt::AlignLeft ); | 26 | m_dialLine->setAlignment( Qt::AlignLeft ); |
27 | QFont dialLine_font( m_dialLine->font() ); | 27 | QFont dialLine_font( m_dialLine->font() ); |
28 | dialLine_font.setBold( TRUE ); | 28 | dialLine_font.setBold( TRUE ); |
29 | dialLine_font.setPointSize( 18 ); | 29 | dialLine_font.setPointSize( 18 ); |
30 | m_dialLine->setFont( dialLine_font ); | 30 | m_dialLine->setFont( dialLine_font ); |
31 | 31 | ||
32 | QWidget* dialWidget = new QWidget( this ); | 32 | QWidget* dialWidget = new QWidget( this ); |
33 | QGridLayout *layout = new QGridLayout( dialWidget , 4, 3 ); | 33 | QGridLayout *layout = new QGridLayout( dialWidget , 4, 3 ); |
34 | 34 | ||
35 | QButtonGroup *dialButtons = new QButtonGroup( ); | 35 | QButtonGroup *dialButtons = new QButtonGroup( ); |
36 | 36 | ||
37 | QPushButton *number0 = new QPushButton( dialWidget ); | 37 | QPushButton *number0 = new QPushButton( dialWidget ); |
38 | number0->setText( QString( "0" ) ); | 38 | number0->setText( QString( "0" ) ); |
39 | QFont number0_font( number0->font() ); | 39 | QFont number0_font( number0->font() ); |
40 | number0_font.setBold( TRUE ); | 40 | number0_font.setBold( TRUE ); |
41 | number0->setFont( number0_font ); | 41 | number0->setFont( number0_font ); |
42 | layout->addWidget( number0, 4, 1 ); | 42 | layout->addWidget( number0, 4, 1 ); |
43 | dialButtons->insert( number0 ); | 43 | dialButtons->insert( number0 ); |
44 | 44 | ||
45 | int x = 0, y = 0; | 45 | int x = 0, y = 0; |
46 | for ( int i = 0 ; i < 9; i++ ) { | 46 | for ( int i = 0 ; i < 9; i++ ) { |
47 | QPushButton *number = new QPushButton( dialWidget ); | 47 | QPushButton *number = new QPushButton( dialWidget ); |
48 | number->setText( QString( "%1" ).arg( i + 1 ) ); | 48 | number->setText( QString( "%1" ).arg( i + 1 ) ); |
49 | QFont number_font( number->font() ); | 49 | QFont number_font( number->font() ); |
50 | number_font.setBold( TRUE ); | 50 | number_font.setBold( TRUE ); |
51 | number->setFont( number_font ); | 51 | number->setFont( number_font ); |
52 | 52 | ||
53 | dialButtons->insert( number ); | 53 | dialButtons->insert( number ); |
54 | 54 | ||
55 | layout->addWidget( number, x, y ); | 55 | layout->addWidget( number, x, y ); |
56 | 56 | ||
57 | if ( y < 2 ) { | 57 | if ( y < 2 ) { |
58 | y++; | 58 | y++; |
59 | } else { | 59 | } else { |
60 | x++; | 60 | x++; |
61 | y = 0; | 61 | y = 0; |
62 | } | 62 | } |
63 | } | 63 | } |
64 | 64 | ||
65 | connect( dialButtons, SIGNAL( clicked( int ) ), this, SLOT( slotEnterNumber( int ) ) ); | 65 | connect( dialButtons, SIGNAL( clicked(int) ), this, SLOT( slotEnterNumber(int) ) ); |
66 | 66 | ||
67 | mainLayout->addStretch( 2 ); | 67 | mainLayout->addStretch( 2 ); |
68 | mainLayout->addWidget( textLabel ); | 68 | mainLayout->addWidget( textLabel ); |
69 | mainLayout->addStretch( 1 ); | 69 | mainLayout->addStretch( 1 ); |
70 | mainLayout->addWidget( m_dialLine ); | 70 | mainLayout->addWidget( m_dialLine ); |
71 | mainLayout->addStretch( 2 ); | 71 | mainLayout->addStretch( 2 ); |
72 | mainLayout->addWidget( dialWidget ); | 72 | mainLayout->addWidget( dialWidget ); |
73 | mainLayout->addStretch( 4 ); | 73 | mainLayout->addStretch( 4 ); |
74 | } | 74 | } |
75 | 75 | ||
76 | 76 | ||
77 | void DialDialog::slotEnterNumber( int number ) { | 77 | void DialDialog::slotEnterNumber( int number ) { |
78 | 78 | ||
79 | // pretty stupid, just for testing .-) | 79 | // pretty stupid, just for testing .-) |
80 | 80 | ||
81 | m_number.append(QString("%1").arg(number)); | 81 | m_number.append(QString("%1").arg(number)); |
82 | 82 | ||
83 | setNumber(m_number); | 83 | setNumber(m_number); |
84 | } | 84 | } |
85 | 85 | ||
86 | DialDialog::~DialDialog() { | 86 | DialDialog::~DialDialog() { |
87 | } | 87 | } |
88 | 88 | ||
89 | QString DialDialog::number() { | 89 | QString DialDialog::number() { |
90 | return m_number; | 90 | return m_number; |
91 | 91 | ||
92 | } | 92 | } |
93 | 93 | ||
94 | void DialDialog::setNumber( QString number ) | 94 | void DialDialog::setNumber( QString number ) |
95 | { | 95 | { |
96 | m_dialLine->setText( QString("%1").arg( number ) ); | 96 | m_dialLine->setText( QString("%1").arg( number ) ); |
97 | } | 97 | } |
98 | 98 | ||
diff --git a/noncore/apps/opie-console/emulation_handler.cpp b/noncore/apps/opie-console/emulation_handler.cpp index 2c1d888..99d069f 100644 --- a/noncore/apps/opie-console/emulation_handler.cpp +++ b/noncore/apps/opie-console/emulation_handler.cpp | |||
@@ -1,119 +1,119 @@ | |||
1 | 1 | ||
2 | #include "TEmuVt102.h" | 2 | #include "TEmuVt102.h" |
3 | 3 | ||
4 | #include "profile.h" | 4 | #include "profile.h" |
5 | #include "emulation_handler.h" | 5 | #include "emulation_handler.h" |
6 | #include "script.h" | 6 | #include "script.h" |
7 | 7 | ||
8 | EmulationHandler::EmulationHandler( const Profile& prof, QWidget* parent,const char* name ) | 8 | EmulationHandler::EmulationHandler( const Profile& prof, QWidget* parent,const char* name ) |
9 | : QObject(0, name ) | 9 | : QObject(0, name ) |
10 | { | 10 | { |
11 | m_teWid = new TEWidget( parent, "TerminalMain"); | 11 | m_teWid = new TEWidget( parent, "TerminalMain"); |
12 | // use setWrapAt(0) for classic behaviour (wrap at screen width, no scrollbar) | 12 | // use setWrapAt(0) for classic behaviour (wrap at screen width, no scrollbar) |
13 | // use setWrapAt(80) for normal console with scrollbar | 13 | // use setWrapAt(80) for normal console with scrollbar |
14 | setWrap(prof.readNumEntry("Wrap", 0) ? 0 : 80); | 14 | setWrap(prof.readNumEntry("Wrap", 0) ? 0 : 80); |
15 | m_teWid->setMinimumSize(150, 70 ); | 15 | m_teWid->setMinimumSize(150, 70 ); |
16 | m_script = 0; | 16 | m_script = 0; |
17 | parent->resize( m_teWid->calcSize(80, 24 ) ); | 17 | parent->resize( m_teWid->calcSize(80, 24 ) ); |
18 | m_teEmu = new TEmuVt102(m_teWid ); | 18 | m_teEmu = new TEmuVt102(m_teWid ); |
19 | 19 | ||
20 | connect(m_teEmu,SIGNAL(ImageSizeChanged(int, int) ), | 20 | connect(m_teEmu,SIGNAL(ImageSizeChanged(int,int) ), |
21 | this, SIGNAL(changeSize(int, int) ) ); | 21 | this, SIGNAL(changeSize(int,int) ) ); |
22 | connect(m_teEmu, SIGNAL(sndBlock(const char*, int) ), | 22 | connect(m_teEmu, SIGNAL(sndBlock(const char*,int) ), |
23 | this, SLOT(recvEmulation(const char*, int) ) ); | 23 | this, SLOT(recvEmulation(const char*,int) ) ); |
24 | m_teEmu->setConnect( true ); | 24 | m_teEmu->setConnect( true ); |
25 | m_teEmu->setHistory( TRUE ); | 25 | m_teEmu->setHistory( TRUE ); |
26 | load( prof ); | 26 | load( prof ); |
27 | 27 | ||
28 | 28 | ||
29 | 29 | ||
30 | } | 30 | } |
31 | TEmulation* EmulationHandler::emulation() { | 31 | TEmulation* EmulationHandler::emulation() { |
32 | return m_teEmu; | 32 | return m_teEmu; |
33 | } | 33 | } |
34 | EmulationHandler::~EmulationHandler() { | 34 | EmulationHandler::~EmulationHandler() { |
35 | if (isRecording()) | 35 | if (isRecording()) |
36 | clearScript(); | 36 | clearScript(); |
37 | delete m_teEmu; | 37 | delete m_teEmu; |
38 | delete m_teWid; | 38 | delete m_teWid; |
39 | } | 39 | } |
40 | 40 | ||
41 | void EmulationHandler::load( const Profile& prof) { | 41 | void EmulationHandler::load( const Profile& prof) { |
42 | m_teWid->setVTFont( font( prof.readNumEntry("Font") ) ); | 42 | m_teWid->setVTFont( font( prof.readNumEntry("Font") ) ); |
43 | int num = prof.readNumEntry("Color"); | 43 | int num = prof.readNumEntry("Color"); |
44 | setColor( foreColor(num), backColor(num) ); | 44 | setColor( foreColor(num), backColor(num) ); |
45 | m_teWid->setBackgroundColor(backColor(num) ); | 45 | m_teWid->setBackgroundColor(backColor(num) ); |
46 | 46 | ||
47 | int term = prof.readNumEntry("Terminal", 0) ; | 47 | int term = prof.readNumEntry("Terminal", 0) ; |
48 | switch(term) { | 48 | switch(term) { |
49 | default: | 49 | default: |
50 | case Profile::VT102: | 50 | case Profile::VT102: |
51 | case Profile::VT100: | 51 | case Profile::VT100: |
52 | m_teEmu->setKeytrans("vt100.keytab"); | 52 | m_teEmu->setKeytrans("vt100.keytab"); |
53 | break; | 53 | break; |
54 | case Profile::Linux: | 54 | case Profile::Linux: |
55 | m_teEmu->setKeytrans("linux.keytab"); | 55 | m_teEmu->setKeytrans("linux.keytab"); |
56 | break; | 56 | break; |
57 | case Profile::XTerm: | 57 | case Profile::XTerm: |
58 | m_teEmu->setKeytrans("default.Keytab"); | 58 | m_teEmu->setKeytrans("default.Keytab"); |
59 | break; | 59 | break; |
60 | } | 60 | } |
61 | } | 61 | } |
62 | void EmulationHandler::recv( const QByteArray& ar) { | 62 | void EmulationHandler::recv( const QByteArray& ar) { |
63 | m_teEmu->onRcvBlock(ar.data(), ar.count() ); | 63 | m_teEmu->onRcvBlock(ar.data(), ar.count() ); |
64 | } | 64 | } |
65 | void EmulationHandler::recvEmulation(const char* src, int len ) { | 65 | void EmulationHandler::recvEmulation(const char* src, int len ) { |
66 | QByteArray ar(len); | 66 | QByteArray ar(len); |
67 | 67 | ||
68 | memcpy(ar.data(), src, sizeof(char) * len ); | 68 | memcpy(ar.data(), src, sizeof(char) * len ); |
69 | if (isRecording()) | 69 | if (isRecording()) |
70 | m_script->append(ar); | 70 | m_script->append(ar); |
71 | emit send(ar); | 71 | emit send(ar); |
72 | } | 72 | } |
73 | QWidget* EmulationHandler::widget() { | 73 | QWidget* EmulationHandler::widget() { |
74 | return m_teWid; | 74 | return m_teWid; |
75 | } | 75 | } |
76 | /* | 76 | /* |
77 | * allocate a new table of colors | 77 | * allocate a new table of colors |
78 | */ | 78 | */ |
79 | void EmulationHandler::setColor( const QColor& fore, const QColor& back ) { | 79 | void EmulationHandler::setColor( const QColor& fore, const QColor& back ) { |
80 | ColorEntry table[TABLE_COLORS]; | 80 | ColorEntry table[TABLE_COLORS]; |
81 | const ColorEntry *defaultCt = m_teWid->getdefaultColorTable(); | 81 | const ColorEntry *defaultCt = m_teWid->getdefaultColorTable(); |
82 | 82 | ||
83 | for (int i = 0; i < TABLE_COLORS; i++ ) { | 83 | for (int i = 0; i < TABLE_COLORS; i++ ) { |
84 | if ( i == 0 || i == 10 ) { | 84 | if ( i == 0 || i == 10 ) { |
85 | table[i].color = fore; | 85 | table[i].color = fore; |
86 | }else if ( i == 1 || i == 11 ) { | 86 | }else if ( i == 1 || i == 11 ) { |
87 | table[i].color = back; | 87 | table[i].color = back; |
88 | table[i].transparent = 0; | 88 | table[i].transparent = 0; |
89 | }else { | 89 | }else { |
90 | table[i].color = defaultCt[i].color; | 90 | table[i].color = defaultCt[i].color; |
91 | } | 91 | } |
92 | } | 92 | } |
93 | m_teWid->setColorTable(table ); | 93 | m_teWid->setColorTable(table ); |
94 | m_teWid->update(); | 94 | m_teWid->update(); |
95 | } | 95 | } |
96 | QFont EmulationHandler::font( int id ) { | 96 | QFont EmulationHandler::font( int id ) { |
97 | QString name; | 97 | QString name; |
98 | int size = 0; | 98 | int size = 0; |
99 | switch(id ) { | 99 | switch(id ) { |
100 | default: // fall through | 100 | default: // fall through |
101 | case 0: | 101 | case 0: |
102 | name = QString::fromLatin1("Micro"); | 102 | name = QString::fromLatin1("Micro"); |
103 | size = 4; | 103 | size = 4; |
104 | break; | 104 | break; |
105 | case 1: | 105 | case 1: |
106 | name = QString::fromLatin1("Fixed"); | 106 | name = QString::fromLatin1("Fixed"); |
107 | size = 7; | 107 | size = 7; |
108 | break; | 108 | break; |
109 | case 2: | 109 | case 2: |
110 | name = QString::fromLatin1("Fixed"); | 110 | name = QString::fromLatin1("Fixed"); |
111 | size = 12; | 111 | size = 12; |
112 | break; | 112 | break; |
113 | } | 113 | } |
114 | QFont font(name, size, QFont::Normal ); | 114 | QFont font(name, size, QFont::Normal ); |
115 | font.setFixedPitch(TRUE ); | 115 | font.setFixedPitch(TRUE ); |
116 | return font; | 116 | return font; |
117 | } | 117 | } |
118 | QColor EmulationHandler::foreColor(int col) { | 118 | QColor EmulationHandler::foreColor(int col) { |
119 | QColor co; | 119 | QColor co; |
diff --git a/noncore/apps/opie-console/emulation_layer.cpp b/noncore/apps/opie-console/emulation_layer.cpp index 2bef801..fd30ad7 100644 --- a/noncore/apps/opie-console/emulation_layer.cpp +++ b/noncore/apps/opie-console/emulation_layer.cpp | |||
@@ -13,204 +13,204 @@ | |||
13 | /* Ported Konsole to Qt/Embedded */ | 13 | /* Ported Konsole to Qt/Embedded */ |
14 | /* */ | 14 | /* */ |
15 | /* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ | 15 | /* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ |
16 | /* */ | 16 | /* */ |
17 | /* -------------------------------------------------------------------------- */ | 17 | /* -------------------------------------------------------------------------- */ |
18 | /* */ | 18 | /* */ |
19 | /* Modified to suit opie-console */ | 19 | /* Modified to suit opie-console */ |
20 | /* */ | 20 | /* */ |
21 | /* Copyright (C) 2002 by opie developers <opie@handhelds.org> */ | 21 | /* Copyright (C) 2002 by opie developers <opie@handhelds.org> */ |
22 | /* */ | 22 | /* */ |
23 | /* -------------------------------------------------------------------------- */ | 23 | /* -------------------------------------------------------------------------- */ |
24 | 24 | ||
25 | /*! \class EmulationLayer | 25 | /*! \class EmulationLayer |
26 | 26 | ||
27 | \brief Mediator between Widget and Screen. | 27 | \brief Mediator between Widget and Screen. |
28 | 28 | ||
29 | This class is responsible to scan the escapes sequences of the terminal | 29 | This class is responsible to scan the escapes sequences of the terminal |
30 | emulation and to map it to their corresponding semantic complements. | 30 | emulation and to map it to their corresponding semantic complements. |
31 | Thus this module knows mainly about decoding escapes sequences and | 31 | Thus this module knows mainly about decoding escapes sequences and |
32 | is a stateless device w.r.t. the semantics. | 32 | is a stateless device w.r.t. the semantics. |
33 | 33 | ||
34 | It is also responsible to refresh the Widget by certain rules. | 34 | It is also responsible to refresh the Widget by certain rules. |
35 | 35 | ||
36 | \sa Widget \sa Screen | 36 | \sa Widget \sa Screen |
37 | 37 | ||
38 | \par A note on refreshing | 38 | \par A note on refreshing |
39 | 39 | ||
40 | Although the modifications to the current screen image could immediately | 40 | Although the modifications to the current screen image could immediately |
41 | be propagated via `Widget' to the graphical surface, we have chosen | 41 | be propagated via `Widget' to the graphical surface, we have chosen |
42 | another way here. | 42 | another way here. |
43 | 43 | ||
44 | The reason for doing so is twofold. | 44 | The reason for doing so is twofold. |
45 | 45 | ||
46 | First, experiments show that directly displaying the operation results | 46 | First, experiments show that directly displaying the operation results |
47 | in slowing down the overall performance of emulations. Displaying | 47 | in slowing down the overall performance of emulations. Displaying |
48 | individual characters using X11 creates a lot of overhead. | 48 | individual characters using X11 creates a lot of overhead. |
49 | 49 | ||
50 | Second, by using the following refreshing method, the screen operations | 50 | Second, by using the following refreshing method, the screen operations |
51 | can be completely separated from the displaying. This greatly simplifies | 51 | can be completely separated from the displaying. This greatly simplifies |
52 | the programmer's task of coding and maintaining the screen operations, | 52 | the programmer's task of coding and maintaining the screen operations, |
53 | since one need not worry about differential modifications on the | 53 | since one need not worry about differential modifications on the |
54 | display affecting the operation of concern. | 54 | display affecting the operation of concern. |
55 | 55 | ||
56 | We use a refreshing algorithm here that has been adoped from rxvt/kvt. | 56 | We use a refreshing algorithm here that has been adoped from rxvt/kvt. |
57 | 57 | ||
58 | By this, refreshing is driven by a timer, which is (re)started whenever | 58 | By this, refreshing is driven by a timer, which is (re)started whenever |
59 | a new bunch of data to be interpreted by the emulation arives at `onRcvBlock'. | 59 | a new bunch of data to be interpreted by the emulation arives at `onRcvBlock'. |
60 | As soon as no more data arrive for `BULK_TIMEOUT' milliseconds, we trigger | 60 | As soon as no more data arrive for `BULK_TIMEOUT' milliseconds, we trigger |
61 | refresh. This rule suits both bulk display operation as done by curses as | 61 | refresh. This rule suits both bulk display operation as done by curses as |
62 | well as individual characters typed. | 62 | well as individual characters typed. |
63 | (BULK_TIMEOUT < 1000 / max characters received from keyboard per second). | 63 | (BULK_TIMEOUT < 1000 / max characters received from keyboard per second). |
64 | 64 | ||
65 | Additionally, we trigger refreshing by newlines comming in to make visual | 65 | Additionally, we trigger refreshing by newlines comming in to make visual |
66 | snapshots of lists as produced by `cat', `ls' and likely programs, thereby | 66 | snapshots of lists as produced by `cat', `ls' and likely programs, thereby |
67 | producing the illusion of a permanent and immediate display operation. | 67 | producing the illusion of a permanent and immediate display operation. |
68 | 68 | ||
69 | As a sort of catch-all needed for cases where none of the above | 69 | As a sort of catch-all needed for cases where none of the above |
70 | conditions catch, the screen refresh is also triggered by a count | 70 | conditions catch, the screen refresh is also triggered by a count |
71 | of incoming bulks (`bulk_incnt'). | 71 | of incoming bulks (`bulk_incnt'). |
72 | */ | 72 | */ |
73 | 73 | ||
74 | /* FIXME | 74 | /* FIXME |
75 | - evtl. the bulk operations could be made more transparent. | 75 | - evtl. the bulk operations could be made more transparent. |
76 | */ | 76 | */ |
77 | 77 | ||
78 | #include "emulation_layer.h" | 78 | #include "emulation_layer.h" |
79 | #include <stdio.h> | 79 | #include <stdio.h> |
80 | #include <stdlib.h> | 80 | #include <stdlib.h> |
81 | #include <unistd.h> | 81 | #include <unistd.h> |
82 | 82 | ||
83 | 83 | ||
84 | /* ------------------------------------------------------------------------- */ | 84 | /* ------------------------------------------------------------------------- */ |
85 | /* */ | 85 | /* */ |
86 | /* EmulationLayer */ | 86 | /* EmulationLayer */ |
87 | /* */ | 87 | /* */ |
88 | /* ------------------------------------------------------------------------- */ | 88 | /* ------------------------------------------------------------------------- */ |
89 | 89 | ||
90 | #define CNTL(c) ((c)-'@') | 90 | #define CNTL(c) ((c)-'@') |
91 | 91 | ||
92 | /*! | 92 | /*! |
93 | */ | 93 | */ |
94 | 94 | ||
95 | EmulationLayer::EmulationLayer( WidgetLayer* gui ) | 95 | EmulationLayer::EmulationLayer( WidgetLayer* gui ) |
96 | : decoder((QTextDecoder*)NULL) | 96 | : decoder((QTextDecoder*)NULL) |
97 | { | 97 | { |
98 | this->gui = gui; | 98 | this->gui = gui; |
99 | 99 | ||
100 | screen[0] = new Screen(gui->lines(),gui->columns()); | 100 | screen[0] = new Screen(gui->lines(),gui->columns()); |
101 | screen[1] = new Screen(gui->lines(),gui->columns()); | 101 | screen[1] = new Screen(gui->lines(),gui->columns()); |
102 | scr = screen[0]; | 102 | scr = screen[0]; |
103 | 103 | ||
104 | bulk_nlcnt = 0; // reset bulk newline counter | 104 | bulk_nlcnt = 0; // reset bulk newline counter |
105 | bulk_incnt = 0; // reset bulk counter | 105 | bulk_incnt = 0; // reset bulk counter |
106 | connected = FALSE; | 106 | connected = FALSE; |
107 | 107 | ||
108 | QObject::connect(&bulk_timer, SIGNAL( timeout() ), this, SLOT( showBulk() ) ); | 108 | QObject::connect(&bulk_timer, SIGNAL( timeout() ), this, SLOT( showBulk() ) ); |
109 | QObject::connect(gui,SIGNAL( imageSizeChanged( int, int ) ), | 109 | QObject::connect(gui,SIGNAL( imageSizeChanged(int,int) ), |
110 | this,SLOT( onImageSizeChange( int, int ) ) ); | 110 | this,SLOT( onImageSizeChange(int,int) ) ); |
111 | QObject::connect(gui,SIGNAL( changedHistoryCursor( int ) ), | 111 | QObject::connect(gui,SIGNAL( changedHistoryCursor(int) ), |
112 | this,SLOT( historyCursorChange( int ) ) ); | 112 | this,SLOT( historyCursorChange(int) ) ); |
113 | QObject::connect(gui,SIGNAL( keyPressed( QKeyEvent* ) ), | 113 | QObject::connect(gui,SIGNAL( keyPressed(QKeyEvent*) ), |
114 | this,SLOT( onKeyPress( QKeyEvent* ) ) ); | 114 | this,SLOT( onKeyPress(QKeyEvent*) ) ); |
115 | QObject::connect(gui,SIGNAL( selectionBegin( const int, const int) ), | 115 | QObject::connect(gui,SIGNAL( selectionBegin(const int,const int) ), |
116 | this,SLOT( onSelectionBegin( const int, const int ) ) ); | 116 | this,SLOT( onSelectionBegin(const int,const int) ) ); |
117 | QObject::connect(gui,SIGNAL( selectionExtended( const int, const int ) ), | 117 | QObject::connect(gui,SIGNAL( selectionExtended(const int,const int) ), |
118 | this,SLOT( onSelectionExtend( const int,const int ) ) ); | 118 | this,SLOT( onSelectionExtend(const int,const int) ) ); |
119 | QObject::connect(gui,SIGNAL( selectionEnd( const bool ) ), | 119 | QObject::connect(gui,SIGNAL( selectionEnd(const bool) ), |
120 | this,SLOT( setSelection( const bool ) ) ); | 120 | this,SLOT( setSelection(const bool) ) ); |
121 | QObject::connect(gui,SIGNAL( selectionCleared() ), | 121 | QObject::connect(gui,SIGNAL( selectionCleared() ), |
122 | this,SLOT( clearSelection() ) ); | 122 | this,SLOT( clearSelection() ) ); |
123 | } | 123 | } |
124 | 124 | ||
125 | /*! | 125 | /*! |
126 | */ | 126 | */ |
127 | 127 | ||
128 | EmulationLayer::~EmulationLayer() | 128 | EmulationLayer::~EmulationLayer() |
129 | { | 129 | { |
130 | delete screen[0]; | 130 | delete screen[0]; |
131 | delete screen[1]; | 131 | delete screen[1]; |
132 | bulk_timer.stop(); | 132 | bulk_timer.stop(); |
133 | } | 133 | } |
134 | 134 | ||
135 | /*! change between primary and alternate screen | 135 | /*! change between primary and alternate screen |
136 | */ | 136 | */ |
137 | 137 | ||
138 | void EmulationLayer::setScreen(int n) | 138 | void EmulationLayer::setScreen(int n) |
139 | { | 139 | { |
140 | scr = screen[n&1]; | 140 | scr = screen[n&1]; |
141 | } | 141 | } |
142 | 142 | ||
143 | void EmulationLayer::setHistory(bool on) | 143 | void EmulationLayer::setHistory(bool on) |
144 | { | 144 | { |
145 | screen[0]->setScroll(on); | 145 | screen[0]->setScroll(on); |
146 | if (!connected) return; | 146 | if (!connected) return; |
147 | showBulk(); | 147 | showBulk(); |
148 | } | 148 | } |
149 | 149 | ||
150 | bool EmulationLayer::history() | 150 | bool EmulationLayer::history() |
151 | { | 151 | { |
152 | return screen[0]->hasScroll(); | 152 | return screen[0]->hasScroll(); |
153 | } | 153 | } |
154 | 154 | ||
155 | void EmulationLayer::setCodec(int c) | 155 | void EmulationLayer::setCodec(int c) |
156 | { | 156 | { |
157 | //FIXME: check whether we have to free codec | 157 | //FIXME: check whether we have to free codec |
158 | codec = c ? QTextCodec::codecForName("utf8") | 158 | codec = c ? QTextCodec::codecForName("utf8") |
159 | : QTextCodec::codecForLocale(); | 159 | : QTextCodec::codecForLocale(); |
160 | if (decoder) delete decoder; | 160 | if (decoder) delete decoder; |
161 | decoder = codec->makeDecoder(); | 161 | decoder = codec->makeDecoder(); |
162 | } | 162 | } |
163 | 163 | ||
164 | void EmulationLayer::setKeytrans(int no) | 164 | void EmulationLayer::setKeytrans(int no) |
165 | { | 165 | { |
166 | keytrans = KeyTrans::find(no); | 166 | keytrans = KeyTrans::find(no); |
167 | } | 167 | } |
168 | 168 | ||
169 | void EmulationLayer::setKeytrans(const char * no) | 169 | void EmulationLayer::setKeytrans(const char * no) |
170 | { | 170 | { |
171 | keytrans = KeyTrans::find(no); | 171 | keytrans = KeyTrans::find(no); |
172 | } | 172 | } |
173 | 173 | ||
174 | // Interpreting Codes --------------------------------------------------------- | 174 | // Interpreting Codes --------------------------------------------------------- |
175 | 175 | ||
176 | /* | 176 | /* |
177 | This section deals with decoding the incoming character stream. | 177 | This section deals with decoding the incoming character stream. |
178 | Decoding means here, that the stream is first seperated into `tokens' | 178 | Decoding means here, that the stream is first seperated into `tokens' |
179 | which are then mapped to a `meaning' provided as operations by the | 179 | which are then mapped to a `meaning' provided as operations by the |
180 | `Screen' class. | 180 | `Screen' class. |
181 | */ | 181 | */ |
182 | 182 | ||
183 | /*! | 183 | /*! |
184 | */ | 184 | */ |
185 | 185 | ||
186 | void EmulationLayer::onRcvChar(int c) | 186 | void EmulationLayer::onRcvChar(int c) |
187 | // process application unicode input to terminal | 187 | // process application unicode input to terminal |
188 | // this is a trivial scanner | 188 | // this is a trivial scanner |
189 | { | 189 | { |
190 | c &= 0xff; | 190 | c &= 0xff; |
191 | switch (c) | 191 | switch (c) |
192 | { | 192 | { |
193 | case '\b' : scr->BackSpace(); break; | 193 | case '\b' : scr->BackSpace(); break; |
194 | case '\t' : scr->Tabulate(); break; | 194 | case '\t' : scr->Tabulate(); break; |
195 | case '\n' : scr->NewLine(); break; | 195 | case '\n' : scr->NewLine(); break; |
196 | case '\r' : scr->Return(); break; | 196 | case '\r' : scr->Return(); break; |
197 | case 0x07 : gui->bell(); break; | 197 | case 0x07 : gui->bell(); break; |
198 | default : scr->ShowCharacter(c); break; | 198 | default : scr->ShowCharacter(c); break; |
199 | }; | 199 | }; |
200 | } | 200 | } |
201 | 201 | ||
202 | /* ------------------------------------------------------------------------- */ | 202 | /* ------------------------------------------------------------------------- */ |
203 | /* */ | 203 | /* */ |
204 | /* Keyboard Handling */ | 204 | /* Keyboard Handling */ |
205 | /* */ | 205 | /* */ |
206 | /* ------------------------------------------------------------------------- */ | 206 | /* ------------------------------------------------------------------------- */ |
207 | 207 | ||
208 | /*! | 208 | /*! |
209 | */ | 209 | */ |
210 | 210 | ||
211 | void EmulationLayer::onKeyPress( QKeyEvent* ev ) | 211 | void EmulationLayer::onKeyPress( QKeyEvent* ev ) |
212 | { | 212 | { |
213 | if (!connected) return; // someone else gets the keys | 213 | if (!connected) return; // someone else gets the keys |
214 | if (scr->getHistCursor() != scr->getHistLines()); | 214 | if (scr->getHistCursor() != scr->getHistLines()); |
215 | scr->setHistCursor(scr->getHistLines()); | 215 | scr->setHistCursor(scr->getHistLines()); |
216 | if (!ev->text().isEmpty()) | 216 | if (!ev->text().isEmpty()) |
diff --git a/noncore/apps/opie-console/function_keyboard.cpp b/noncore/apps/opie-console/function_keyboard.cpp index c232d89..eb32551 100644 --- a/noncore/apps/opie-console/function_keyboard.cpp +++ b/noncore/apps/opie-console/function_keyboard.cpp | |||
@@ -167,231 +167,231 @@ void FunctionKeyboard::paintKey(uint row, uint col) { | |||
167 | 167 | ||
168 | // sometimes it doesnt draw the last line | 168 | // sometimes it doesnt draw the last line |
169 | 169 | ||
170 | p.drawLine((col+1) * keyWidth -1, row * keyHeight, | 170 | p.drawLine((col+1) * keyWidth -1, row * keyHeight, |
171 | (col+1) * keyWidth -1, (row + 1) * keyHeight | 171 | (col+1) * keyWidth -1, (row + 1) * keyHeight |
172 | ); | 172 | ); |
173 | } | 173 | } |
174 | 174 | ||
175 | } | 175 | } |
176 | 176 | ||
177 | void FunctionKeyboard::mousePressEvent(QMouseEvent *e) { | 177 | void FunctionKeyboard::mousePressEvent(QMouseEvent *e) { |
178 | 178 | ||
179 | pressedRow = e->y() / keyHeight; | 179 | pressedRow = e->y() / keyHeight; |
180 | pressedCol = (int) (e->x() / keyWidth); | 180 | pressedCol = (int) (e->x() / keyWidth); |
181 | 181 | ||
182 | paintKey(pressedRow, pressedCol); | 182 | paintKey(pressedRow, pressedCol); |
183 | 183 | ||
184 | // emit that sucker! | 184 | // emit that sucker! |
185 | FKey k = keys["r" + QString::number(pressedRow) + "c" + QString::number(pressedCol)]; | 185 | FKey k = keys["r" + QString::number(pressedRow) + "c" + QString::number(pressedCol)]; |
186 | emit keyPressed(k, pressedRow, pressedCol, 1); | 186 | emit keyPressed(k, pressedRow, pressedCol, 1); |
187 | 187 | ||
188 | } | 188 | } |
189 | 189 | ||
190 | void FunctionKeyboard::mouseReleaseEvent(QMouseEvent *) { | 190 | void FunctionKeyboard::mouseReleaseEvent(QMouseEvent *) { |
191 | 191 | ||
192 | if (pressedRow != -1 && pressedRow != -1) { | 192 | if (pressedRow != -1 && pressedRow != -1) { |
193 | 193 | ||
194 | int row = pressedRow; pressedRow = -1; | 194 | int row = pressedRow; pressedRow = -1; |
195 | int col = pressedCol; pressedCol = -1; | 195 | int col = pressedCol; pressedCol = -1; |
196 | paintKey(row, col); | 196 | paintKey(row, col); |
197 | 197 | ||
198 | FKey k = keys["r" + QString::number(row) + "c" + QString::number(col)]; | 198 | FKey k = keys["r" + QString::number(row) + "c" + QString::number(col)]; |
199 | emit keyPressed(k, row, col, 0); | 199 | emit keyPressed(k, row, col, 0); |
200 | } | 200 | } |
201 | 201 | ||
202 | } | 202 | } |
203 | 203 | ||
204 | 204 | ||
205 | void FunctionKeyboard::resizeEvent(QResizeEvent*) { | 205 | void FunctionKeyboard::resizeEvent(QResizeEvent*) { |
206 | 206 | ||
207 | /* set he default font height/width */ | 207 | /* set he default font height/width */ |
208 | QFontMetrics fm=fontMetrics(); | 208 | QFontMetrics fm=fontMetrics(); |
209 | keyHeight = fm.lineSpacing() + 2; | 209 | keyHeight = fm.lineSpacing() + 2; |
210 | keyWidth = (double)width()/numCols; | 210 | keyWidth = (double)width()/numCols; |
211 | 211 | ||
212 | } | 212 | } |
213 | 213 | ||
214 | QSize FunctionKeyboard::sizeHint() const { | 214 | QSize FunctionKeyboard::sizeHint() const { |
215 | 215 | ||
216 | return QSize(width(), keyHeight * numRows + 1); | 216 | return QSize(width(), keyHeight * numRows + 1); |
217 | } | 217 | } |
218 | 218 | ||
219 | void FunctionKeyboard::loadDefaults() { | 219 | void FunctionKeyboard::loadDefaults() { |
220 | 220 | ||
221 | numRows = DEFAULT_ROWS; | 221 | numRows = DEFAULT_ROWS; |
222 | numCols = DEFAULT_COLS; | 222 | numCols = DEFAULT_COLS; |
223 | keyWidth = (double)width()/numCols; // have to reset this thing too | 223 | keyWidth = (double)width()/numCols; // have to reset this thing too |
224 | 224 | ||
225 | keys.insert( "r0c0", FKey ("Enter", "enter", Qt::Key_Enter, 0)); | 225 | keys.insert( "r0c0", FKey ("Enter", "enter", Qt::Key_Enter, 0)); |
226 | keys.insert( "r0c1", FKey ("Space", "space", Qt::Key_Space, Qt::Key_Space)); | 226 | keys.insert( "r0c1", FKey ("Space", "space", Qt::Key_Space, Qt::Key_Space)); |
227 | keys.insert( "r0c2", FKey ("Tab", "tab", Qt::Key_Tab, 0)); | 227 | keys.insert( "r0c2", FKey ("Tab", "tab", Qt::Key_Tab, 0)); |
228 | keys.insert( "r0c3", FKey ("Up", "up", Qt::Key_Up, 0)); | 228 | keys.insert( "r0c3", FKey ("Up", "up", Qt::Key_Up, 0)); |
229 | keys.insert( "r0c4", FKey ("Down", "down", Qt::Key_Down, 0)); | 229 | keys.insert( "r0c4", FKey ("Down", "down", Qt::Key_Down, 0)); |
230 | 230 | ||
231 | keys.insert( "r0c7", FKey ("Ho", 0, 4112, 0)); | 231 | keys.insert( "r0c7", FKey ("Ho", 0, 4112, 0)); |
232 | keys.insert( "r0c8", FKey ("End", 0, 4113, 0)); | 232 | keys.insert( "r0c8", FKey ("End", 0, 4113, 0)); |
233 | keys.insert( "r0c9", FKey ("Pu", 0, 4118, 0)); | 233 | keys.insert( "r0c9", FKey ("Pu", 0, 4118, 0)); |
234 | keys.insert( "r0c10", FKey ("Pd", 0, 4119, 0)); | 234 | keys.insert( "r0c10", FKey ("Pd", 0, 4119, 0)); |
235 | keys.insert( "r0c11", FKey ("Esc", 0, Qt::Key_Escape, 0xfff)); | 235 | keys.insert( "r0c11", FKey ("Esc", 0, Qt::Key_Escape, 0xfff)); |
236 | 236 | ||
237 | keys.insert( "r1c0", FKey ("F1", 0, 4144, 0)); | 237 | keys.insert( "r1c0", FKey ("F1", 0, 4144, 0)); |
238 | keys.insert( "r1c1", FKey ("F2", 0, 4145, 0)); | 238 | keys.insert( "r1c1", FKey ("F2", 0, 4145, 0)); |
239 | keys.insert( "r1c2", FKey ("F3", 0, 4146, 0)); | 239 | keys.insert( "r1c2", FKey ("F3", 0, 4146, 0)); |
240 | keys.insert( "r1c3", FKey ("F4", 0, 4147, 0)); | 240 | keys.insert( "r1c3", FKey ("F4", 0, 4147, 0)); |
241 | keys.insert( "r1c4", FKey ("F5", 0, 4148, 0)); | 241 | keys.insert( "r1c4", FKey ("F5", 0, 4148, 0)); |
242 | keys.insert( "r1c5", FKey ("F6", 0, 4149, 0)); | 242 | keys.insert( "r1c5", FKey ("F6", 0, 4149, 0)); |
243 | keys.insert( "r1c6", FKey ("F7", 0, 4150, 0)); | 243 | keys.insert( "r1c6", FKey ("F7", 0, 4150, 0)); |
244 | keys.insert( "r1c7", FKey ("F8", 0, 4151, 0)); | 244 | keys.insert( "r1c7", FKey ("F8", 0, 4151, 0)); |
245 | keys.insert( "r1c8", FKey ("F9", 0, 4152, 0)); | 245 | keys.insert( "r1c8", FKey ("F9", 0, 4152, 0)); |
246 | keys.insert( "r1c9", FKey ("F10", 0, 4153, 0)); | 246 | keys.insert( "r1c9", FKey ("F10", 0, 4153, 0)); |
247 | keys.insert( "r1c10", FKey ("F11", 0, 4154, 0)); | 247 | keys.insert( "r1c10", FKey ("F11", 0, 4154, 0)); |
248 | keys.insert( "r1c11", FKey ("F12", 0, 4155, 0)); | 248 | keys.insert( "r1c11", FKey ("F12", 0, 4155, 0)); |
249 | 249 | ||
250 | 250 | ||
251 | } | 251 | } |
252 | 252 | ||
253 | /* FunctionKeyboardConfig {{{1 */ | 253 | /* FunctionKeyboardConfig {{{1 */ |
254 | 254 | ||
255 | FunctionKeyboardConfig::FunctionKeyboardConfig(const QString& name, QWidget* parent, const char* na ) | 255 | FunctionKeyboardConfig::FunctionKeyboardConfig(const QString& name, QWidget* parent, const char* na ) |
256 | : ProfileDialogKeyWidget(name, parent, na), | 256 | : ProfileDialogKeyWidget(name, parent, na), |
257 | selectedRow(0), selectedCol(0) | 257 | selectedRow(0), selectedCol(0) |
258 | { | 258 | { |
259 | qWarning("FunctionKeyboardConfig"); | 259 | qWarning("FunctionKeyboardConfig"); |
260 | 260 | ||
261 | 261 | ||
262 | kb = new FunctionKeyboard(this); | 262 | kb = new FunctionKeyboard(this); |
263 | connect (kb, SIGNAL(keyPressed(FKey, ushort, ushort, bool)), | 263 | connect (kb, SIGNAL(keyPressed(FKey,ushort,ushort,bool)), |
264 | this, SLOT(slotKeyPressed(FKey, ushort, ushort, bool))); | 264 | this, SLOT(slotKeyPressed(FKey,ushort,ushort,bool))); |
265 | 265 | ||
266 | QGroupBox *dimentions = new QGroupBox(2, Qt::Horizontal, tr("Dimensions"), this); | 266 | QGroupBox *dimentions = new QGroupBox(2, Qt::Horizontal, tr("Dimensions"), this); |
267 | QLabel *l = new QLabel("Rows", dimentions); | 267 | QLabel *l = new QLabel("Rows", dimentions); |
268 | m_rowBox = new QSpinBox(1, 15, 1, dimentions); | 268 | m_rowBox = new QSpinBox(1, 15, 1, dimentions); |
269 | connect (m_rowBox, SIGNAL(valueChanged(int)), this, SLOT(slotChangeRows(int))); | 269 | connect (m_rowBox, SIGNAL(valueChanged(int)), this, SLOT(slotChangeRows(int))); |
270 | l = new QLabel("Columns", dimentions); | 270 | l = new QLabel("Columns", dimentions); |
271 | m_colBox = new QSpinBox(1, 15, 1, dimentions); | 271 | m_colBox = new QSpinBox(1, 15, 1, dimentions); |
272 | connect (m_colBox, SIGNAL(valueChanged(int)), this, SLOT(slotChangeCols(int))); | 272 | connect (m_colBox, SIGNAL(valueChanged(int)), this, SLOT(slotChangeCols(int))); |
273 | 273 | ||
274 | QGroupBox *editKey = new QGroupBox(2, Qt::Horizontal, tr("Edit Key"), this); | 274 | QGroupBox *editKey = new QGroupBox(2, Qt::Horizontal, tr("Edit Key"), this); |
275 | l = new QLabel("Label", editKey); | 275 | l = new QLabel("Label", editKey); |
276 | m_labels = new QComboBox(true, editKey); | 276 | m_labels = new QComboBox(true, editKey); |
277 | m_labels->setInsertionPolicy(QComboBox::AtCurrent); | 277 | m_labels->setInsertionPolicy(QComboBox::AtCurrent); |
278 | m_labels->insertItem(""); | 278 | m_labels->insertItem(""); |
279 | 279 | ||
280 | QStringList files = QDir( QPEApplication::qpeDir() + "pics/console/keys/", "*.png").entryList(); | 280 | QStringList files = QDir( QPEApplication::qpeDir() + "pics/console/keys/", "*.png").entryList(); |
281 | 281 | ||
282 | for (uint i = 0; i < files.count(); i++) { | 282 | for (uint i = 0; i < files.count(); i++) { |
283 | 283 | ||
284 | m_labels->insertItem( Resource::loadPixmap("console/keys/" + files[i]), files[i]); | 284 | m_labels->insertItem( Resource::loadPixmap("console/keys/" + files[i]), files[i]); |
285 | } | 285 | } |
286 | connect (m_labels, SIGNAL(activated(int)), this, SLOT(slotChangeIcon(int))); | 286 | connect (m_labels, SIGNAL(activated(int)), this, SLOT(slotChangeIcon(int))); |
287 | connect (m_labels, SIGNAL(textChanged(const QString &)), this, SLOT(slotChangeLabelText(const QString&))); | 287 | connect (m_labels, SIGNAL(textChanged(const QString&)), this, SLOT(slotChangeLabelText(const QString&))); |
288 | 288 | ||
289 | l = new QLabel("Q Keycode", editKey); | 289 | l = new QLabel("Q Keycode", editKey); |
290 | m_qvalues = new QComboBox(true, editKey); | 290 | m_qvalues = new QComboBox(true, editKey); |
291 | m_qvalues->setInsertionPolicy(QComboBox::AtTop); | 291 | m_qvalues->setInsertionPolicy(QComboBox::AtTop); |
292 | m_qvalues->setDuplicatesEnabled(false); | 292 | m_qvalues->setDuplicatesEnabled(false); |
293 | m_qvalues->insertItem(""); | 293 | m_qvalues->insertItem(""); |
294 | connect (m_qvalues, SIGNAL(textChanged(const QString &)), this, SLOT(slotChangeQCode(const QString&))); | 294 | connect (m_qvalues, SIGNAL(textChanged(const QString&)), this, SLOT(slotChangeQCode(const QString&))); |
295 | 295 | ||
296 | l = new QLabel("Unicode Value", editKey); | 296 | l = new QLabel("Unicode Value", editKey); |
297 | m_uniValues = new QComboBox(true, editKey); | 297 | m_uniValues = new QComboBox(true, editKey); |
298 | m_uniValues->setInsertionPolicy(QComboBox::AtTop); | 298 | m_uniValues->setInsertionPolicy(QComboBox::AtTop); |
299 | m_uniValues->setDuplicatesEnabled(false); | 299 | m_uniValues->setDuplicatesEnabled(false); |
300 | m_uniValues->insertItem(""); | 300 | m_uniValues->insertItem(""); |
301 | connect (m_uniValues, SIGNAL(textChanged(const QString &)), this, SLOT(slotChangeUnicode(const QString&))); | 301 | connect (m_uniValues, SIGNAL(textChanged(const QString&)), this, SLOT(slotChangeUnicode(const QString&))); |
302 | 302 | ||
303 | QVBoxLayout *root = new QVBoxLayout(this, 2); | 303 | QVBoxLayout *root = new QVBoxLayout(this, 2); |
304 | root->addWidget(kb); | 304 | root->addWidget(kb); |
305 | root->addWidget(dimentions); | 305 | root->addWidget(dimentions); |
306 | root->addWidget(editKey); | 306 | root->addWidget(editKey); |
307 | } | 307 | } |
308 | FunctionKeyboardConfig::~FunctionKeyboardConfig() { | 308 | FunctionKeyboardConfig::~FunctionKeyboardConfig() { |
309 | 309 | ||
310 | } | 310 | } |
311 | void FunctionKeyboardConfig::load (const Profile& prof) { | 311 | void FunctionKeyboardConfig::load (const Profile& prof) { |
312 | 312 | ||
313 | kb->keys.clear(); | 313 | kb->keys.clear(); |
314 | kb->loadDefaults(); | 314 | kb->loadDefaults(); |
315 | 315 | ||
316 | m_rowBox->setValue(prof.readNumEntry("keb_rows", 2)); | 316 | m_rowBox->setValue(prof.readNumEntry("keb_rows", 2)); |
317 | m_colBox->setValue(prof.readNumEntry("keb_cols", 10)); | 317 | m_colBox->setValue(prof.readNumEntry("keb_cols", 10)); |
318 | 318 | ||
319 | /* load all the keys to the keyboard */ | 319 | /* load all the keys to the keyboard */ |
320 | for (int i = 0; i <= m_rowBox->value() -1; i++) | 320 | for (int i = 0; i <= m_rowBox->value() -1; i++) |
321 | for (int j = 0; j <= m_colBox->value() -1; j++) { | 321 | for (int j = 0; j <= m_colBox->value() -1; j++) { |
322 | 322 | ||
323 | QString h = "r" + QString::number(i) + "c" + QString::number(j); | 323 | QString h = "r" + QString::number(i) + "c" + QString::number(j); |
324 | QString values = prof.readEntry("keb_" + h); | 324 | QString values = prof.readEntry("keb_" + h); |
325 | 325 | ||
326 | if (!values.isEmpty()) { | 326 | if (!values.isEmpty()) { |
327 | 327 | ||
328 | QStringList l = QStringList::split(QChar('|'), values, TRUE); | 328 | QStringList l = QStringList::split(QChar('|'), values, TRUE); |
329 | kb->keys[h] = FKey(l[0], l[1], l[2].toInt(), l[3].toInt()); | 329 | kb->keys[h] = FKey(l[0], l[1], l[2].toInt(), l[3].toInt()); |
330 | 330 | ||
331 | // load pixmap if used | 331 | // load pixmap if used |
332 | if (!l[1].isEmpty()) { | 332 | if (!l[1].isEmpty()) { |
333 | 333 | ||
334 | kb->keys[h].pix = new QPixmap( Resource::loadPixmap( "console/keys/" + l[1] ) ); | 334 | kb->keys[h].pix = new QPixmap( Resource::loadPixmap( "console/keys/" + l[1] ) ); |
335 | } | 335 | } |
336 | } | 336 | } |
337 | } | 337 | } |
338 | 338 | ||
339 | } | 339 | } |
340 | void FunctionKeyboardConfig::save (Profile& prof) { | 340 | void FunctionKeyboardConfig::save (Profile& prof) { |
341 | 341 | ||
342 | prof.writeEntry("keb_rows", m_rowBox->value()); | 342 | prof.writeEntry("keb_rows", m_rowBox->value()); |
343 | prof.writeEntry("keb_cols", m_colBox->value()); | 343 | prof.writeEntry("keb_cols", m_colBox->value()); |
344 | 344 | ||
345 | QMap<QString, FKey>::Iterator it; | 345 | QMap<QString, FKey>::Iterator it; |
346 | for ( it = kb->keys.begin(); it != kb->keys.end(); it++) { | 346 | for ( it = kb->keys.begin(); it != kb->keys.end(); it++) { |
347 | 347 | ||
348 | FKey k = it.data(); | 348 | FKey k = it.data(); |
349 | QString entry = k.label + "|" | 349 | QString entry = k.label + "|" |
350 | + k.pixFile + "|" | 350 | + k.pixFile + "|" |
351 | + QString::number(k.qcode) + "|" | 351 | + QString::number(k.qcode) + "|" |
352 | + QString::number(k.unicode); | 352 | + QString::number(k.unicode); |
353 | 353 | ||
354 | prof.writeEntry("keb_" + it.key(), entry); | 354 | prof.writeEntry("keb_" + it.key(), entry); |
355 | 355 | ||
356 | } | 356 | } |
357 | 357 | ||
358 | } | 358 | } |
359 | void FunctionKeyboardConfig::slotChangeRows(int r) { | 359 | void FunctionKeyboardConfig::slotChangeRows(int r) { |
360 | 360 | ||
361 | kb->changeRows(r); | 361 | kb->changeRows(r); |
362 | 362 | ||
363 | } | 363 | } |
364 | void FunctionKeyboardConfig::slotChangeCols(int c) { | 364 | void FunctionKeyboardConfig::slotChangeCols(int c) { |
365 | 365 | ||
366 | kb->changeCols(c); | 366 | kb->changeCols(c); |
367 | } | 367 | } |
368 | void FunctionKeyboardConfig::slotKeyPressed(FKey k, ushort r, ushort c, bool pressed) { | 368 | void FunctionKeyboardConfig::slotKeyPressed(FKey k, ushort r, ushort c, bool pressed) { |
369 | 369 | ||
370 | if (!pressed) return; | 370 | if (!pressed) return; |
371 | 371 | ||
372 | selectedHandle = "r" + QString::number(r) + | 372 | selectedHandle = "r" + QString::number(r) + |
373 | "c" + QString::number(c); | 373 | "c" + QString::number(c); |
374 | selectedRow = r; | 374 | selectedRow = r; |
375 | selectedCol = c; | 375 | selectedCol = c; |
376 | 376 | ||
377 | if (k.pixFile.isEmpty()) { | 377 | if (k.pixFile.isEmpty()) { |
378 | 378 | ||
379 | m_labels->setEditable(true); | 379 | m_labels->setEditable(true); |
380 | m_labels->setCurrentItem(0); | 380 | m_labels->setCurrentItem(0); |
381 | m_labels->changeItem(k.label, 0); | 381 | m_labels->changeItem(k.label, 0); |
382 | 382 | ||
383 | } else { | 383 | } else { |
384 | 384 | ||
385 | // any better way to select the pixmap? | 385 | // any better way to select the pixmap? |
386 | m_labels->setCurrentItem((m_labels->listBox())->index((m_labels->listBox())->findItem(kb->keys[selectedHandle].pixFile))); | 386 | m_labels->setCurrentItem((m_labels->listBox())->index((m_labels->listBox())->findItem(kb->keys[selectedHandle].pixFile))); |
387 | m_labels->setEditable(false); | 387 | m_labels->setEditable(false); |
388 | } | 388 | } |
389 | m_qvalues->changeItem(QString::number(k.qcode), 0); | 389 | m_qvalues->changeItem(QString::number(k.qcode), 0); |
390 | m_uniValues->changeItem(QString::number(k.unicode), 0); | 390 | m_uniValues->changeItem(QString::number(k.unicode), 0); |
391 | } | 391 | } |
392 | void FunctionKeyboardConfig::slotChangeIcon(int index) { | 392 | void FunctionKeyboardConfig::slotChangeIcon(int index) { |
393 | 393 | ||
394 | if (index == 0) { | 394 | if (index == 0) { |
395 | 395 | ||
396 | // is text | 396 | // is text |
397 | m_labels->setEditable(true); | 397 | m_labels->setEditable(true); |
diff --git a/noncore/apps/opie-console/io_bt.cpp b/noncore/apps/opie-console/io_bt.cpp index 37bf797..1a8c979 100644 --- a/noncore/apps/opie-console/io_bt.cpp +++ b/noncore/apps/opie-console/io_bt.cpp | |||
@@ -1,92 +1,92 @@ | |||
1 | 1 | ||
2 | #include "io_bt.h" | 2 | #include "io_bt.h" |
3 | 3 | ||
4 | IOBt::IOBt( const Profile &config ) : IOSerial( config ) { | 4 | IOBt::IOBt( const Profile &config ) : IOSerial( config ) { |
5 | m_attach = 0; | 5 | m_attach = 0; |
6 | } | 6 | } |
7 | 7 | ||
8 | 8 | ||
9 | IOBt::~IOBt() { | 9 | IOBt::~IOBt() { |
10 | if ( m_attach ) { | 10 | if ( m_attach ) { |
11 | delete m_attach; | 11 | delete m_attach; |
12 | } | 12 | } |
13 | } | 13 | } |
14 | 14 | ||
15 | 15 | ||
16 | void IOBt::close() { | 16 | void IOBt::close() { |
17 | 17 | ||
18 | IOSerial::close(); | 18 | IOSerial::close(); |
19 | // still need error handling | 19 | // still need error handling |
20 | if ( m_attach ) { | 20 | if ( m_attach ) { |
21 | delete m_attach; | 21 | delete m_attach; |
22 | m_attach = 0; | 22 | m_attach = 0; |
23 | } | 23 | } |
24 | } | 24 | } |
25 | 25 | ||
26 | bool IOBt::open() { | 26 | bool IOBt::open() { |
27 | bool ret = false; | 27 | bool ret = false; |
28 | 28 | ||
29 | // only set up bt stuff if mac address was set, otherwise use the device set | 29 | // only set up bt stuff if mac address was set, otherwise use the device set |
30 | if ( !m_mac.isEmpty() ) { | 30 | if ( !m_mac.isEmpty() ) { |
31 | 31 | ||
32 | // now it should also be checked, if there is a connection to the device with that mac allready | 32 | // now it should also be checked, if there is a connection to the device with that mac allready |
33 | // hciattach here | 33 | // hciattach here |
34 | m_attach = new OProcess(); | 34 | m_attach = new OProcess(); |
35 | *m_attach << "hciattach /dev/ttyS2 any 57600"; | 35 | *m_attach << "hciattach /dev/ttyS2 any 57600"; |
36 | 36 | ||
37 | // then start hcid, then rcfomm handling (m_mac) | 37 | // then start hcid, then rcfomm handling (m_mac) |
38 | 38 | ||
39 | connect( m_attach, SIGNAL( processExited( OProcess* ) ), | 39 | connect( m_attach, SIGNAL( processExited(OProcess*) ), |
40 | this, SLOT( slotExited( OProcess* ) ) ); | 40 | this, SLOT( slotExited(OProcess*) ) ); |
41 | 41 | ||
42 | if ( m_attach->start() ) { | 42 | if ( m_attach->start() ) { |
43 | ret = IOSerial::open(); | 43 | ret = IOSerial::open(); |
44 | } else { | 44 | } else { |
45 | qWarning("could not attach to device"); | 45 | qWarning("could not attach to device"); |
46 | delete m_attach; | 46 | delete m_attach; |
47 | m_attach = 0; | 47 | m_attach = 0; |
48 | } | 48 | } |
49 | } else { | 49 | } else { |
50 | // directly to the normal serial | 50 | // directly to the normal serial |
51 | // TODO: look first if the connection really exists. ( is set up ) | 51 | // TODO: look first if the connection really exists. ( is set up ) |
52 | 52 | ||
53 | ret =IOSerial::open(); | 53 | ret =IOSerial::open(); |
54 | } | 54 | } |
55 | return ret; | 55 | return ret; |
56 | } | 56 | } |
57 | 57 | ||
58 | void IOBt::reload( const Profile &config ) { | 58 | void IOBt::reload( const Profile &config ) { |
59 | m_device = config.readEntry("Device", BT_DEFAULT_DEVICE); | 59 | m_device = config.readEntry("Device", BT_DEFAULT_DEVICE); |
60 | m_mac = config.readEntry("Mac", BT_DEFAULT_MAC); | 60 | m_mac = config.readEntry("Mac", BT_DEFAULT_MAC); |
61 | m_baud = config.readNumEntry("Baud", BT_DEFAULT_BAUD); | 61 | m_baud = config.readNumEntry("Baud", BT_DEFAULT_BAUD); |
62 | m_parity = config.readNumEntry("Parity", BT_DEFAULT_PARITY); | 62 | m_parity = config.readNumEntry("Parity", BT_DEFAULT_PARITY); |
63 | m_dbits = config.readNumEntry("DataBits", BT_DEFAULT_DBITS); | 63 | m_dbits = config.readNumEntry("DataBits", BT_DEFAULT_DBITS); |
64 | m_sbits = config.readNumEntry("StopBits", BT_DEFAULT_SBITS); | 64 | m_sbits = config.readNumEntry("StopBits", BT_DEFAULT_SBITS); |
65 | m_flow = config.readNumEntry("Flow", BT_DEFAULT_FLOW); | 65 | m_flow = config.readNumEntry("Flow", BT_DEFAULT_FLOW); |
66 | } | 66 | } |
67 | 67 | ||
68 | 68 | ||
69 | QString IOBt::identifier() const { | 69 | QString IOBt::identifier() const { |
70 | return "bluetooth"; | 70 | return "bluetooth"; |
71 | } | 71 | } |
72 | 72 | ||
73 | QString IOBt::name() const { | 73 | QString IOBt::name() const { |
74 | return "BLuetooth IO Layer"; | 74 | return "BLuetooth IO Layer"; |
75 | } | 75 | } |
76 | 76 | ||
77 | void IOBt::slotExited( OProcess* proc ){ | 77 | void IOBt::slotExited( OProcess* proc ){ |
78 | close(); | 78 | close(); |
79 | delete proc; | 79 | delete proc; |
80 | } | 80 | } |
81 | 81 | ||
82 | QBitArray IOBt::supports() const { | 82 | QBitArray IOBt::supports() const { |
83 | return QBitArray( 3 ); | 83 | return QBitArray( 3 ); |
84 | } | 84 | } |
85 | 85 | ||
86 | bool IOBt::isConnected() { | 86 | bool IOBt::isConnected() { |
87 | return false; | 87 | return false; |
88 | } | 88 | } |
89 | 89 | ||
90 | void IOBt::send(const QByteArray &data) { | 90 | void IOBt::send(const QByteArray &data) { |
91 | qDebug( "Please overload me..." ); | 91 | qDebug( "Please overload me..." ); |
92 | } | 92 | } |
diff --git a/noncore/apps/opie-console/io_irda.cpp b/noncore/apps/opie-console/io_irda.cpp index e360fb4..b281b7d 100644 --- a/noncore/apps/opie-console/io_irda.cpp +++ b/noncore/apps/opie-console/io_irda.cpp | |||
@@ -1,77 +1,77 @@ | |||
1 | 1 | ||
2 | #include "io_irda.h" | 2 | #include "io_irda.h" |
3 | 3 | ||
4 | IOIrda::IOIrda( const Profile &config ) : IOSerial( config ) { | 4 | IOIrda::IOIrda( const Profile &config ) : IOSerial( config ) { |
5 | m_attach = 0; | 5 | m_attach = 0; |
6 | } | 6 | } |
7 | 7 | ||
8 | 8 | ||
9 | IOIrda::~IOIrda() { | 9 | IOIrda::~IOIrda() { |
10 | if ( m_attach ) { | 10 | if ( m_attach ) { |
11 | delete m_attach; | 11 | delete m_attach; |
12 | } | 12 | } |
13 | } | 13 | } |
14 | 14 | ||
15 | 15 | ||
16 | void IOIrda::close() { | 16 | void IOIrda::close() { |
17 | 17 | ||
18 | IOSerial::close(); | 18 | IOSerial::close(); |
19 | // still need error handling | 19 | // still need error handling |
20 | delete m_attach; | 20 | delete m_attach; |
21 | } | 21 | } |
22 | 22 | ||
23 | bool IOIrda::open() { | 23 | bool IOIrda::open() { |
24 | bool ret; | 24 | bool ret; |
25 | 25 | ||
26 | // irdaattach here | 26 | // irdaattach here |
27 | m_attach = new OProcess(); | 27 | m_attach = new OProcess(); |
28 | *m_attach << "irattach /dev/ttyS2 -s"; | 28 | *m_attach << "irattach /dev/ttyS2 -s"; |
29 | 29 | ||
30 | connect( m_attach, SIGNAL( processExited( OProcess* ) ), | 30 | connect( m_attach, SIGNAL( processExited(OProcess*) ), |
31 | this, SLOT( slotExited( OProcess* ) ) ); | 31 | this, SLOT( slotExited(OProcess*) ) ); |
32 | 32 | ||
33 | if ( m_attach->start() ) { | 33 | if ( m_attach->start() ) { |
34 | ret= IOSerial::open(); | 34 | ret= IOSerial::open(); |
35 | } else { | 35 | } else { |
36 | // emit error!!! | 36 | // emit error!!! |
37 | qWarning("could not attach to device"); | 37 | qWarning("could not attach to device"); |
38 | delete m_attach; | 38 | delete m_attach; |
39 | m_attach = 0l; | 39 | m_attach = 0l; |
40 | } | 40 | } |
41 | return ret; | 41 | return ret; |
42 | } | 42 | } |
43 | 43 | ||
44 | void IOIrda::reload( const Profile &config ) { | 44 | void IOIrda::reload( const Profile &config ) { |
45 | m_device = config.readEntry("Device", IRDA_DEFAULT_DEVICE); | 45 | m_device = config.readEntry("Device", IRDA_DEFAULT_DEVICE); |
46 | m_baud = config.readNumEntry("Baud", IRDA_DEFAULT_BAUD); | 46 | m_baud = config.readNumEntry("Baud", IRDA_DEFAULT_BAUD); |
47 | m_parity = config.readNumEntry("Parity", IRDA_DEFAULT_PARITY); | 47 | m_parity = config.readNumEntry("Parity", IRDA_DEFAULT_PARITY); |
48 | m_dbits = config.readNumEntry("DataBits", IRDA_DEFAULT_DBITS); | 48 | m_dbits = config.readNumEntry("DataBits", IRDA_DEFAULT_DBITS); |
49 | m_sbits = config.readNumEntry("StopBits", IRDA_DEFAULT_SBITS); | 49 | m_sbits = config.readNumEntry("StopBits", IRDA_DEFAULT_SBITS); |
50 | m_flow = config.readNumEntry("Flow", IRDA_DEFAULT_FLOW); | 50 | m_flow = config.readNumEntry("Flow", IRDA_DEFAULT_FLOW); |
51 | } | 51 | } |
52 | 52 | ||
53 | 53 | ||
54 | QString IOIrda::identifier() const { | 54 | QString IOIrda::identifier() const { |
55 | return "irda"; | 55 | return "irda"; |
56 | } | 56 | } |
57 | 57 | ||
58 | QString IOIrda::name() const { | 58 | QString IOIrda::name() const { |
59 | return "Irda IO Layer"; | 59 | return "Irda IO Layer"; |
60 | } | 60 | } |
61 | 61 | ||
62 | void IOIrda::slotExited(OProcess* proc ){ | 62 | void IOIrda::slotExited(OProcess* proc ){ |
63 | close(); | 63 | close(); |
64 | delete proc; | 64 | delete proc; |
65 | } | 65 | } |
66 | 66 | ||
67 | QBitArray IOIrda::supports()const { | 67 | QBitArray IOIrda::supports()const { |
68 | return QBitArray( 3 ); | 68 | return QBitArray( 3 ); |
69 | } | 69 | } |
70 | 70 | ||
71 | bool IOIrda::isConnected() { | 71 | bool IOIrda::isConnected() { |
72 | return false; | 72 | return false; |
73 | } | 73 | } |
74 | 74 | ||
75 | void IOIrda::send(const QByteArray &data) { | 75 | void IOIrda::send(const QByteArray &data) { |
76 | qDebug( "Please overload me..." ); | 76 | qDebug( "Please overload me..." ); |
77 | } | 77 | } |
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp index 1d2385f..197f799 100644 --- a/noncore/apps/opie-console/mainwindow.cpp +++ b/noncore/apps/opie-console/mainwindow.cpp | |||
@@ -117,232 +117,232 @@ void MainWindow::initUI() { | |||
117 | connect( m_quickLaunch, SIGNAL( activated() ), | 117 | connect( m_quickLaunch, SIGNAL( activated() ), |
118 | this, SLOT( slotQuickLaunch() ) ); | 118 | this, SLOT( slotQuickLaunch() ) ); |
119 | 119 | ||
120 | QWhatsThis::add( m_icons, tr( "The shell button launches the \"default\" profile. If there is none default values are taken" ) ); | 120 | QWhatsThis::add( m_icons, tr( "The shell button launches the \"default\" profile. If there is none default values are taken" ) ); |
121 | 121 | ||
122 | m_transfer = new QAction( tr("Transfer file..."), Resource::loadPixmap("pass") , QString::null, | 122 | m_transfer = new QAction( tr("Transfer file..."), Resource::loadPixmap("pass") , QString::null, |
123 | 0, this, 0 ); | 123 | 0, this, 0 ); |
124 | m_transfer->addTo( m_console ); | 124 | m_transfer->addTo( m_console ); |
125 | connect(m_transfer, SIGNAL(activated() ), | 125 | connect(m_transfer, SIGNAL(activated() ), |
126 | this, SLOT(slotTransfer() ) ); | 126 | this, SLOT(slotTransfer() ) ); |
127 | 127 | ||
128 | 128 | ||
129 | 129 | ||
130 | /* | 130 | /* |
131 | * immediate change of line wrap policy | 131 | * immediate change of line wrap policy |
132 | */ | 132 | */ |
133 | m_isWrapped = false; | 133 | m_isWrapped = false; |
134 | m_wrap = new QAction( tr("Line wrap"), Resource::loadPixmap( "linewrap" ), QString::null, 0, this, 0 ); | 134 | m_wrap = new QAction( tr("Line wrap"), Resource::loadPixmap( "linewrap" ), QString::null, 0, this, 0 ); |
135 | m_wrap->addTo( m_console ); | 135 | m_wrap->addTo( m_console ); |
136 | connect( m_wrap, SIGNAL( activated() ), SLOT( slotWrap() ) ); | 136 | connect( m_wrap, SIGNAL( activated() ), SLOT( slotWrap() ) ); |
137 | 137 | ||
138 | /* | 138 | /* |
139 | * fullscreen | 139 | * fullscreen |
140 | */ | 140 | */ |
141 | m_isFullscreen = false; | 141 | m_isFullscreen = false; |
142 | 142 | ||
143 | m_fullscreen = new QAction( tr("Full screen"), Resource::loadPixmap( "fullscreen" ) | 143 | m_fullscreen = new QAction( tr("Full screen"), Resource::loadPixmap( "fullscreen" ) |
144 | , QString::null, 0, this, 0); | 144 | , QString::null, 0, this, 0); |
145 | m_fullscreen->addTo( m_console ); | 145 | m_fullscreen->addTo( m_console ); |
146 | connect( m_fullscreen, SIGNAL( activated() ), | 146 | connect( m_fullscreen, SIGNAL( activated() ), |
147 | this, SLOT( slotFullscreen() ) ); | 147 | this, SLOT( slotFullscreen() ) ); |
148 | 148 | ||
149 | m_console->insertSeparator(); | 149 | m_console->insertSeparator(); |
150 | 150 | ||
151 | QAction *a = new QAction(); | 151 | QAction *a = new QAction(); |
152 | a->setText( tr("Save history") ); | 152 | a->setText( tr("Save history") ); |
153 | a->addTo( m_console ); | 153 | a->addTo( m_console ); |
154 | connect(a, SIGNAL(activated() ), | 154 | connect(a, SIGNAL(activated() ), |
155 | this, SLOT(slotSaveHistory() ) ); | 155 | this, SLOT(slotSaveHistory() ) ); |
156 | /* | 156 | /* |
157 | * terminate action | 157 | * terminate action |
158 | */ | 158 | */ |
159 | m_terminate = new QAction(); | 159 | m_terminate = new QAction(); |
160 | m_terminate->setText( tr("Terminate") ); | 160 | m_terminate->setText( tr("Terminate") ); |
161 | m_terminate->addTo( m_console ); | 161 | m_terminate->addTo( m_console ); |
162 | connect(m_terminate, SIGNAL(activated() ), | 162 | connect(m_terminate, SIGNAL(activated() ), |
163 | this, SLOT(slotTerminate() ) ); | 163 | this, SLOT(slotTerminate() ) ); |
164 | 164 | ||
165 | m_closewindow = new QAction(); | 165 | m_closewindow = new QAction(); |
166 | m_closewindow->setText( tr("Close Window") ); | 166 | m_closewindow->setText( tr("Close Window") ); |
167 | m_closewindow->addTo( m_console ); | 167 | m_closewindow->addTo( m_console ); |
168 | connect( m_closewindow, SIGNAL(activated() ), | 168 | connect( m_closewindow, SIGNAL(activated() ), |
169 | this, SLOT(slotClose() ) ); | 169 | this, SLOT(slotClose() ) ); |
170 | 170 | ||
171 | 171 | ||
172 | /* | 172 | /* |
173 | * script actions | 173 | * script actions |
174 | */ | 174 | */ |
175 | m_runScript_id = m_scripts->insertItem(tr("Run Script"), m_scriptsPop, -1, 0); | 175 | m_runScript_id = m_scripts->insertItem(tr("Run Script"), m_scriptsPop, -1, 0); |
176 | connect(m_scriptsPop, SIGNAL(activated(int)), this, SLOT(slotRunScript(int))); | 176 | connect(m_scriptsPop, SIGNAL(activated(int)), this, SLOT(slotRunScript(int))); |
177 | 177 | ||
178 | m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0); | 178 | m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0); |
179 | m_recordScript->addTo(m_scripts); | 179 | m_recordScript->addTo(m_scripts); |
180 | connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript())); | 180 | connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript())); |
181 | 181 | ||
182 | m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0); | 182 | m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0); |
183 | m_saveScript->addTo(m_scripts); | 183 | m_saveScript->addTo(m_scripts); |
184 | connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript())); | 184 | connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript())); |
185 | 185 | ||
186 | 186 | ||
187 | /* | 187 | /* |
188 | * action that open/closes the keyboard | 188 | * action that open/closes the keyboard |
189 | */ | 189 | */ |
190 | m_openKeys = new QAction (tr("Open Keyboard..."), | 190 | m_openKeys = new QAction (tr("Open Keyboard..."), |
191 | Resource::loadPixmap( "console/keys/keyboard_icon" ), | 191 | Resource::loadPixmap( "console/keys/keyboard_icon" ), |
192 | QString::null, 0, this, 0); | 192 | QString::null, 0, this, 0); |
193 | m_openKeys->setToggleAction(true); | 193 | m_openKeys->setToggleAction(true); |
194 | connect (m_openKeys, SIGNAL(toggled(bool)), this, SLOT(slotOpenKeb(bool))); | 194 | connect (m_openKeys, SIGNAL(toggled(bool)), this, SLOT(slotOpenKeb(bool))); |
195 | 195 | ||
196 | /* insert the submenu */ | 196 | /* insert the submenu */ |
197 | m_console->insertItem(tr("New from Profile"), m_sessionsPop, | 197 | m_console->insertItem(tr("New from Profile"), m_sessionsPop, |
198 | -1, 0); | 198 | -1, 0); |
199 | 199 | ||
200 | /* insert the connection menu */ | 200 | /* insert the connection menu */ |
201 | m_bar->insertItem( tr("Connection"), m_console ); | 201 | m_bar->insertItem( tr("Connection"), m_console ); |
202 | 202 | ||
203 | /* the scripts menu */ | 203 | /* the scripts menu */ |
204 | m_bar->insertItem( tr("Scripts"), m_scripts ); | 204 | m_bar->insertItem( tr("Scripts"), m_scripts ); |
205 | 205 | ||
206 | /* and the keyboard */ | 206 | /* and the keyboard */ |
207 | m_keyBar = new QToolBar(this); | 207 | m_keyBar = new QToolBar(this); |
208 | addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE ); | 208 | addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE ); |
209 | m_keyBar->setHorizontalStretchable( TRUE ); | 209 | m_keyBar->setHorizontalStretchable( TRUE ); |
210 | m_keyBar->hide(); | 210 | m_keyBar->hide(); |
211 | 211 | ||
212 | m_kb = new FunctionKeyboard(m_keyBar); | 212 | m_kb = new FunctionKeyboard(m_keyBar); |
213 | connect(m_kb, SIGNAL(keyPressed(FKey, ushort, ushort, bool)), | 213 | connect(m_kb, SIGNAL(keyPressed(FKey,ushort,ushort,bool)), |
214 | this, SLOT(slotKeyReceived(FKey, ushort, ushort, bool))); | 214 | this, SLOT(slotKeyReceived(FKey,ushort,ushort,bool))); |
215 | 215 | ||
216 | 216 | ||
217 | a = new QAction(tr("Copy"), | 217 | a = new QAction(tr("Copy"), |
218 | Resource::loadPixmap("copy"), QString::null, | 218 | Resource::loadPixmap("copy"), QString::null, |
219 | 0, this, 0 ); | 219 | 0, this, 0 ); |
220 | //a->addTo( m_icons ); | 220 | //a->addTo( m_icons ); |
221 | connect( a, SIGNAL(activated() ), | 221 | connect( a, SIGNAL(activated() ), |
222 | this, SLOT(slotCopy() ) ); | 222 | this, SLOT(slotCopy() ) ); |
223 | 223 | ||
224 | QAction *paste = new QAction(tr("Paste"), | 224 | QAction *paste = new QAction(tr("Paste"), |
225 | Resource::loadPixmap("paste"), QString::null, | 225 | Resource::loadPixmap("paste"), QString::null, |
226 | 0, this, 0 ); | 226 | 0, this, 0 ); |
227 | connect( paste, SIGNAL(activated() ), | 227 | connect( paste, SIGNAL(activated() ), |
228 | this, SLOT(slotPaste() ) ); | 228 | this, SLOT(slotPaste() ) ); |
229 | 229 | ||
230 | 230 | ||
231 | newCon->addTo( m_icons ); | 231 | newCon->addTo( m_icons ); |
232 | //m_setProfiles->addTo( m_icons ); | 232 | //m_setProfiles->addTo( m_icons ); |
233 | paste->addTo( m_icons ); | 233 | paste->addTo( m_icons ); |
234 | m_openKeys->addTo(m_icons); | 234 | m_openKeys->addTo(m_icons); |
235 | m_fullscreen->addTo( m_icons ); | 235 | m_fullscreen->addTo( m_icons ); |
236 | 236 | ||
237 | m_connect->setEnabled( false ); | 237 | m_connect->setEnabled( false ); |
238 | m_disconnect->setEnabled( false ); | 238 | m_disconnect->setEnabled( false ); |
239 | m_terminate->setEnabled( false ); | 239 | m_terminate->setEnabled( false ); |
240 | m_transfer->setEnabled( false ); | 240 | m_transfer->setEnabled( false ); |
241 | m_scripts->setItemEnabled(m_runScript_id, false); | 241 | m_scripts->setItemEnabled(m_runScript_id, false); |
242 | m_recordScript->setEnabled( false ); | 242 | m_recordScript->setEnabled( false ); |
243 | m_saveScript->setEnabled( false ); | 243 | m_saveScript->setEnabled( false ); |
244 | m_fullscreen->setEnabled( false ); | 244 | m_fullscreen->setEnabled( false ); |
245 | m_closewindow->setEnabled( false ); | 245 | m_closewindow->setEnabled( false ); |
246 | m_wrap->setEnabled( false ); | 246 | m_wrap->setEnabled( false ); |
247 | 247 | ||
248 | /* | 248 | /* |
249 | * connect to the menu activation | 249 | * connect to the menu activation |
250 | */ | 250 | */ |
251 | connect( m_sessionsPop, SIGNAL(activated( int ) ), | 251 | connect( m_sessionsPop, SIGNAL(activated(int) ), |
252 | this, SLOT(slotProfile( int ) ) ); | 252 | this, SLOT(slotProfile(int) ) ); |
253 | 253 | ||
254 | m_consoleWindow = new TabWidget( this, "blah"); | 254 | m_consoleWindow = new TabWidget( this, "blah"); |
255 | connect(m_consoleWindow, SIGNAL(activated(Session*) ), | 255 | connect(m_consoleWindow, SIGNAL(activated(Session*) ), |
256 | this, SLOT(slotSessionChanged(Session*) ) ); | 256 | this, SLOT(slotSessionChanged(Session*) ) ); |
257 | setCentralWidget( m_consoleWindow ); | 257 | setCentralWidget( m_consoleWindow ); |
258 | 258 | ||
259 | slotQuickLaunch(); | 259 | slotQuickLaunch(); |
260 | } | 260 | } |
261 | 261 | ||
262 | ProfileManager* MainWindow::manager() { | 262 | ProfileManager* MainWindow::manager() { |
263 | return m_manager; | 263 | return m_manager; |
264 | } | 264 | } |
265 | TabWidget* MainWindow::tabWidget() { | 265 | TabWidget* MainWindow::tabWidget() { |
266 | return m_consoleWindow; | 266 | return m_consoleWindow; |
267 | } | 267 | } |
268 | void MainWindow::populateProfiles() { | 268 | void MainWindow::populateProfiles() { |
269 | m_sessionsPop->clear(); | 269 | m_sessionsPop->clear(); |
270 | Profile::ValueList list = manager()->all(); | 270 | Profile::ValueList list = manager()->all(); |
271 | for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) { | 271 | for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) { |
272 | m_sessionsPop->insertItem( (*it).name() ); | 272 | m_sessionsPop->insertItem( (*it).name() ); |
273 | } | 273 | } |
274 | 274 | ||
275 | } | 275 | } |
276 | 276 | ||
277 | void MainWindow::populateScripts() { | 277 | void MainWindow::populateScripts() { |
278 | m_scriptsPop->clear(); | 278 | m_scriptsPop->clear(); |
279 | m_scriptsData.clear(); | 279 | m_scriptsData.clear(); |
280 | DocLnkSet files(QPEApplication::documentDir(), "text/plain"); | 280 | DocLnkSet files(QPEApplication::documentDir(), "text/plain"); |
281 | QListIterator<DocLnk> dit(files.children()); | 281 | QListIterator<DocLnk> dit(files.children()); |
282 | for (; dit.current(); ++dit) { | 282 | for (; dit.current(); ++dit) { |
283 | if (*dit && (*dit)->name().length()>0) { | 283 | if (*dit && (*dit)->name().length()>0) { |
284 | QFileInfo info((*dit)->file()); | 284 | QFileInfo info((*dit)->file()); |
285 | if (info.extension(false) == "script") { | 285 | if (info.extension(false) == "script") { |
286 | m_scriptsData.append(new DocLnk(**dit)); | 286 | m_scriptsData.append(new DocLnk(**dit)); |
287 | m_scriptsPop->insertItem((*dit)->name()); | 287 | m_scriptsPop->insertItem((*dit)->name()); |
288 | } | 288 | } |
289 | } | 289 | } |
290 | } | 290 | } |
291 | 291 | ||
292 | } | 292 | } |
293 | 293 | ||
294 | MainWindow::~MainWindow() { | 294 | MainWindow::~MainWindow() { |
295 | delete m_factory; | 295 | delete m_factory; |
296 | manager()->save(); | 296 | manager()->save(); |
297 | } | 297 | } |
298 | 298 | ||
299 | MetaFactory* MainWindow::factory() { | 299 | MetaFactory* MainWindow::factory() { |
300 | return m_factory; | 300 | return m_factory; |
301 | } | 301 | } |
302 | 302 | ||
303 | Session* MainWindow::currentSession() { | 303 | Session* MainWindow::currentSession() { |
304 | return m_curSession; | 304 | return m_curSession; |
305 | } | 305 | } |
306 | 306 | ||
307 | QList<Session> MainWindow::sessions() { | 307 | QList<Session> MainWindow::sessions() { |
308 | return m_sessions; | 308 | return m_sessions; |
309 | } | 309 | } |
310 | 310 | ||
311 | void MainWindow::slotNew() { | 311 | void MainWindow::slotNew() { |
312 | ProfileEditorDialog dlg(factory() ); | 312 | ProfileEditorDialog dlg(factory() ); |
313 | dlg.setCaption( tr("New Connection") ); | 313 | dlg.setCaption( tr("New Connection") ); |
314 | int ret = QPEApplication::execDialog( &dlg ); | 314 | int ret = QPEApplication::execDialog( &dlg ); |
315 | 315 | ||
316 | if ( ret == QDialog::Accepted ) { | 316 | if ( ret == QDialog::Accepted ) { |
317 | create( dlg.profile() ); | 317 | create( dlg.profile() ); |
318 | } | 318 | } |
319 | } | 319 | } |
320 | 320 | ||
321 | void MainWindow::slotRecordScript() { | 321 | void MainWindow::slotRecordScript() { |
322 | if (currentSession()) { | 322 | if (currentSession()) { |
323 | currentSession()->emulationHandler()->startRecording(); | 323 | currentSession()->emulationHandler()->startRecording(); |
324 | m_saveScript->setEnabled(true); | 324 | m_saveScript->setEnabled(true); |
325 | m_recordScript->setEnabled(false); | 325 | m_recordScript->setEnabled(false); |
326 | } | 326 | } |
327 | } | 327 | } |
328 | 328 | ||
329 | void MainWindow::slotSaveScript() { | 329 | void MainWindow::slotSaveScript() { |
330 | if (currentSession() && currentSession()->emulationHandler()->isRecording()) { | 330 | if (currentSession() && currentSession()->emulationHandler()->isRecording()) { |
331 | QMap<QString, QStringList> map; | 331 | QMap<QString, QStringList> map; |
332 | QStringList text; | 332 | QStringList text; |
333 | text << "text/plain"; | 333 | text << "text/plain"; |
334 | map.insert(tr("Script"), text ); | 334 | map.insert(tr("Script"), text ); |
335 | QString filename = Opie::OFileDialog::getSaveFileName(2, QPEApplication::documentDir(), QString::null, map); | 335 | QString filename = Opie::OFileDialog::getSaveFileName(2, QPEApplication::documentDir(), QString::null, map); |
336 | if (!filename.isEmpty()) { | 336 | if (!filename.isEmpty()) { |
337 | QFileInfo info(filename); | 337 | QFileInfo info(filename); |
338 | if (info.extension(FALSE) != "script") | 338 | if (info.extension(FALSE) != "script") |
339 | filename += ".script"; | 339 | filename += ".script"; |
340 | DocLnk nf; | 340 | DocLnk nf; |
341 | nf.setType("text/plain"); | 341 | nf.setType("text/plain"); |
342 | nf.setFile(filename); | 342 | nf.setFile(filename); |
343 | nf.setName(info.fileName()); | 343 | nf.setName(info.fileName()); |
344 | FileManager fm; | 344 | FileManager fm; |
345 | fm.saveFile(nf, currentSession()->emulationHandler()->script()->script()); | 345 | fm.saveFile(nf, currentSession()->emulationHandler()->script()->script()); |
346 | currentSession()->emulationHandler()->clearScript(); | 346 | currentSession()->emulationHandler()->clearScript(); |
347 | m_saveScript->setEnabled(false); | 347 | m_saveScript->setEnabled(false); |
348 | m_recordScript->setEnabled(true); | 348 | m_recordScript->setEnabled(true); |
diff --git a/noncore/apps/opie-console/profileeditordialog.cpp b/noncore/apps/opie-console/profileeditordialog.cpp index 979e89d..6e1e23e 100644 --- a/noncore/apps/opie-console/profileeditordialog.cpp +++ b/noncore/apps/opie-console/profileeditordialog.cpp | |||
@@ -38,196 +38,196 @@ ProfileEditorDialog::ProfileEditorDialog( MetaFactory* fact ) | |||
38 | 38 | ||
39 | initUI(); | 39 | initUI(); |
40 | 40 | ||
41 | // Apply current profile | 41 | // Apply current profile |
42 | // plugin_plugin->load(profile); | 42 | // plugin_plugin->load(profile); |
43 | } | 43 | } |
44 | 44 | ||
45 | Profile ProfileEditorDialog::profile() const | 45 | Profile ProfileEditorDialog::profile() const |
46 | { | 46 | { |
47 | return m_prof; | 47 | return m_prof; |
48 | } | 48 | } |
49 | 49 | ||
50 | void ProfileEditorDialog::initUI() | 50 | void ProfileEditorDialog::initUI() |
51 | { | 51 | { |
52 | m_con = m_term = m_key = 0l; | 52 | m_con = m_term = m_key = 0l; |
53 | 53 | ||
54 | 54 | ||
55 | QVBoxLayout *mainLayout = new QVBoxLayout( this ); | 55 | QVBoxLayout *mainLayout = new QVBoxLayout( this ); |
56 | tabWidget = new OTabWidget( this ); | 56 | tabWidget = new OTabWidget( this ); |
57 | tabWidget->setTabStyle(OTabWidget::TextTab); | 57 | tabWidget->setTabStyle(OTabWidget::TextTab); |
58 | mainLayout->add(tabWidget); | 58 | mainLayout->add(tabWidget); |
59 | 59 | ||
60 | /* base tabs */ | 60 | /* base tabs */ |
61 | tabprof = new QWidget(this); | 61 | tabprof = new QWidget(this); |
62 | m_tabTerm = new QWidget(this); | 62 | m_tabTerm = new QWidget(this); |
63 | m_tabCon = new QWidget(this); | 63 | m_tabCon = new QWidget(this); |
64 | m_tabKey = new QWidget(this); | 64 | m_tabKey = new QWidget(this); |
65 | 65 | ||
66 | m_svCon = new QScrollView( m_tabCon ); | 66 | m_svCon = new QScrollView( m_tabCon ); |
67 | m_svCon->setResizePolicy( QScrollView::AutoOneFit ); | 67 | m_svCon->setResizePolicy( QScrollView::AutoOneFit ); |
68 | //m_svCon->setHScrollBarMode( QScrollView::AlwaysOff ); | 68 | //m_svCon->setHScrollBarMode( QScrollView::AlwaysOff ); |
69 | m_svCon->setFrameShape( QFrame::NoFrame ); | 69 | m_svCon->setFrameShape( QFrame::NoFrame ); |
70 | m_svTerm = new QScrollView( m_tabTerm ); | 70 | m_svTerm = new QScrollView( m_tabTerm ); |
71 | m_svTerm->setResizePolicy( QScrollView::AutoOneFit ); | 71 | m_svTerm->setResizePolicy( QScrollView::AutoOneFit ); |
72 | //m_svTerm->setHScrollBarMode( QScrollView::AlwaysOff ); | 72 | //m_svTerm->setHScrollBarMode( QScrollView::AlwaysOff ); |
73 | m_svTerm->setFrameShape( QFrame::NoFrame ); | 73 | m_svTerm->setFrameShape( QFrame::NoFrame ); |
74 | 74 | ||
75 | /* base layout for tabs */ | 75 | /* base layout for tabs */ |
76 | m_layCon = new QHBoxLayout( m_tabCon , 2 ); | 76 | m_layCon = new QHBoxLayout( m_tabCon , 2 ); |
77 | m_layTerm = new QHBoxLayout( m_tabTerm, 2 ); | 77 | m_layTerm = new QHBoxLayout( m_tabTerm, 2 ); |
78 | m_layKey = new QHBoxLayout( m_tabKey, 2 ); | 78 | m_layKey = new QHBoxLayout( m_tabKey, 2 ); |
79 | 79 | ||
80 | m_layCon->addWidget( m_svCon ); | 80 | m_layCon->addWidget( m_svCon ); |
81 | m_layTerm->addWidget( m_svTerm ); | 81 | m_layTerm->addWidget( m_svTerm ); |
82 | 82 | ||
83 | // profile tab | 83 | // profile tab |
84 | 84 | ||
85 | QLabel *name = new QLabel(QObject::tr("Profile name"), tabprof); | 85 | QLabel *name = new QLabel(QObject::tr("Profile name"), tabprof); |
86 | m_name = new QLineEdit(tabprof); | 86 | m_name = new QLineEdit(tabprof); |
87 | QLabel *con = new QLabel(tr("Connection"), tabprof ); | 87 | QLabel *con = new QLabel(tr("Connection"), tabprof ); |
88 | QLabel *term = new QLabel(tr("Terminal"), tabprof ); | 88 | QLabel *term = new QLabel(tr("Terminal"), tabprof ); |
89 | m_conCmb = new QComboBox( tabprof ); | 89 | m_conCmb = new QComboBox( tabprof ); |
90 | m_termCmb = new QComboBox( tabprof ); | 90 | m_termCmb = new QComboBox( tabprof ); |
91 | m_autoConnect = new QCheckBox(tr("Auto connect after load"), tabprof); | 91 | m_autoConnect = new QCheckBox(tr("Auto connect after load"), tabprof); |
92 | 92 | ||
93 | // layouting | 93 | // layouting |
94 | QVBoxLayout *vbox3 = new QVBoxLayout(tabprof, 2); | 94 | QVBoxLayout *vbox3 = new QVBoxLayout(tabprof, 2); |
95 | vbox3->add(name); | 95 | vbox3->add(name); |
96 | vbox3->add(m_name); | 96 | vbox3->add(m_name); |
97 | vbox3->add(con ); | 97 | vbox3->add(con ); |
98 | vbox3->add(m_conCmb ); | 98 | vbox3->add(m_conCmb ); |
99 | vbox3->add(term ); | 99 | vbox3->add(term ); |
100 | vbox3->add(m_termCmb ); | 100 | vbox3->add(m_termCmb ); |
101 | vbox3->add(m_autoConnect); | 101 | vbox3->add(m_autoConnect); |
102 | vbox3->addStretch(1); | 102 | vbox3->addStretch(1); |
103 | 103 | ||
104 | m_showconntab = 0; | 104 | m_showconntab = 0; |
105 | tabWidget->addTab(tabprof, "", QObject::tr("Profile")); | 105 | tabWidget->addTab(tabprof, "", QObject::tr("Profile")); |
106 | tabWidget->addTab(m_tabCon, "", QObject::tr("Connection")); | 106 | tabWidget->addTab(m_tabCon, "", QObject::tr("Connection")); |
107 | tabWidget->addTab(m_tabTerm, "", QObject::tr("Terminal")); | 107 | tabWidget->addTab(m_tabTerm, "", QObject::tr("Terminal")); |
108 | tabWidget->addTab(m_tabKey, "", QObject::tr("Special Keys")); | 108 | tabWidget->addTab(m_tabKey, "", QObject::tr("Special Keys")); |
109 | tabWidget->setCurrentTab( tabprof ); | 109 | tabWidget->setCurrentTab( tabprof ); |
110 | 110 | ||
111 | 111 | ||
112 | // fill the comboboxes | 112 | // fill the comboboxes |
113 | QStringList list = m_fact->connectionWidgets(); | 113 | QStringList list = m_fact->connectionWidgets(); |
114 | QStringList::Iterator it; | 114 | QStringList::Iterator it; |
115 | for (it =list.begin(); it != list.end(); ++it ) { | 115 | for (it =list.begin(); it != list.end(); ++it ) { |
116 | m_conCmb->insertItem( (*it) ); | 116 | m_conCmb->insertItem( (*it) ); |
117 | } | 117 | } |
118 | list = m_fact->terminalWidgets(); | 118 | list = m_fact->terminalWidgets(); |
119 | for (it =list.begin(); it != list.end(); ++it ) { | 119 | for (it =list.begin(); it != list.end(); ++it ) { |
120 | m_termCmb->insertItem( (*it) ); | 120 | m_termCmb->insertItem( (*it) ); |
121 | } | 121 | } |
122 | 122 | ||
123 | // load profile values | 123 | // load profile values |
124 | m_name->setText(m_prof.name()); | 124 | m_name->setText(m_prof.name()); |
125 | slotKeyActivated( "Default Keyboard" ); | 125 | slotKeyActivated( "Default Keyboard" ); |
126 | setCurrent( m_fact->external(m_prof.ioLayerName() ), m_conCmb ); | 126 | setCurrent( m_fact->external(m_prof.ioLayerName() ), m_conCmb ); |
127 | setCurrent( m_fact->external(m_prof.terminalName() ), m_termCmb ); | 127 | setCurrent( m_fact->external(m_prof.terminalName() ), m_termCmb ); |
128 | slotConActivated( m_fact->external(m_prof.ioLayerName() ) ); | 128 | slotConActivated( m_fact->external(m_prof.ioLayerName() ) ); |
129 | slotTermActivated( m_fact->external(m_prof.terminalName() ) ); | 129 | slotTermActivated( m_fact->external(m_prof.terminalName() ) ); |
130 | m_autoConnect->setChecked(m_prof.autoConnect()); | 130 | m_autoConnect->setChecked(m_prof.autoConnect()); |
131 | 131 | ||
132 | 132 | ||
133 | // signal and slots | 133 | // signal and slots |
134 | connect(m_conCmb, SIGNAL(activated(const QString& ) ), | 134 | connect(m_conCmb, SIGNAL(activated(const QString&) ), |
135 | this, SLOT(slotConActivated(const QString&) ) ); | 135 | this, SLOT(slotConActivated(const QString&) ) ); |
136 | connect(m_termCmb, SIGNAL(activated(const QString& ) ), | 136 | connect(m_termCmb, SIGNAL(activated(const QString&) ), |
137 | this, SLOT(slotTermActivated(const QString& ) ) ); | 137 | this, SLOT(slotTermActivated(const QString&) ) ); |
138 | 138 | ||
139 | } | 139 | } |
140 | 140 | ||
141 | ProfileEditorDialog::~ProfileEditorDialog() { | 141 | ProfileEditorDialog::~ProfileEditorDialog() { |
142 | 142 | ||
143 | } | 143 | } |
144 | void ProfileEditorDialog::accept() | 144 | void ProfileEditorDialog::accept() |
145 | { | 145 | { |
146 | if(profName().isEmpty()) | 146 | if(profName().isEmpty()) |
147 | { | 147 | { |
148 | QMessageBox::information(this, | 148 | QMessageBox::information(this, |
149 | QObject::tr("Invalid profile"), | 149 | QObject::tr("Invalid profile"), |
150 | QObject::tr("Please enter a profile name.")); | 150 | QObject::tr("Please enter a profile name.")); |
151 | return; | 151 | return; |
152 | } | 152 | } |
153 | // Save profile and plugin profile | 153 | // Save profile and plugin profile |
154 | //if(plugin_plugin) plugin_plugin->save(); | 154 | //if(plugin_plugin) plugin_plugin->save(); |
155 | 155 | ||
156 | // Save general values | 156 | // Save general values |
157 | m_prof.setName( profName() ); | 157 | m_prof.setName( profName() ); |
158 | m_prof.setIOLayer( m_fact->internal(m_conCmb ->currentText() ) ); | 158 | m_prof.setIOLayer( m_fact->internal(m_conCmb ->currentText() ) ); |
159 | m_prof.setTerminalName( m_fact->internal(m_termCmb->currentText() ) ); | 159 | m_prof.setTerminalName( m_fact->internal(m_termCmb->currentText() ) ); |
160 | m_prof.setAutoConnect( m_autoConnect->isChecked() ); | 160 | m_prof.setAutoConnect( m_autoConnect->isChecked() ); |
161 | 161 | ||
162 | if (m_con ) | 162 | if (m_con ) |
163 | m_con->save( m_prof ); | 163 | m_con->save( m_prof ); |
164 | if (m_term ) | 164 | if (m_term ) |
165 | m_term->save( m_prof ); | 165 | m_term->save( m_prof ); |
166 | if (m_key) | 166 | if (m_key) |
167 | m_key->save( m_prof ); | 167 | m_key->save( m_prof ); |
168 | 168 | ||
169 | QDialog::accept(); | 169 | QDialog::accept(); |
170 | } | 170 | } |
171 | 171 | ||
172 | 172 | ||
173 | QString ProfileEditorDialog::profName()const | 173 | QString ProfileEditorDialog::profName()const |
174 | { | 174 | { |
175 | return m_name->text(); | 175 | return m_name->text(); |
176 | } | 176 | } |
177 | 177 | ||
178 | QCString ProfileEditorDialog::profType()const | 178 | QCString ProfileEditorDialog::profType()const |
179 | { | 179 | { |
180 | /*QStringList w = m_fact->configWidgets(); | 180 | /*QStringList w = m_fact->configWidgets(); |
181 | for(QStringList::Iterator it = w.begin(); it != w.end(); it++) | 181 | for(QStringList::Iterator it = w.begin(); it != w.end(); it++) |
182 | if(device_box->currentText() == m_fact->name((*it))) return (*it); | 182 | if(device_box->currentText() == m_fact->name((*it))) return (*it); |
183 | */ | 183 | */ |
184 | return QCString(); | 184 | return QCString(); |
185 | } | 185 | } |
186 | /* | 186 | /* |
187 | * we need to switch the widget | 187 | * we need to switch the widget |
188 | */ | 188 | */ |
189 | void ProfileEditorDialog::slotConActivated( const QString& str ) { | 189 | void ProfileEditorDialog::slotConActivated( const QString& str ) { |
190 | 190 | ||
191 | delete m_con; | 191 | delete m_con; |
192 | 192 | ||
193 | m_con = m_fact->newConnectionPlugin( str, m_svCon->viewport() ); | 193 | m_con = m_fact->newConnectionPlugin( str, m_svCon->viewport() ); |
194 | 194 | ||
195 | if ( !m_con ) { | 195 | if ( !m_con ) { |
196 | m_con = new NoOptions( str, m_svCon->viewport(), "name"); | 196 | m_con = new NoOptions( str, m_svCon->viewport(), "name"); |
197 | } | 197 | } |
198 | 198 | ||
199 | // FIXME ugly hack right. Right solution would be to look into the layer and see if it | 199 | // FIXME ugly hack right. Right solution would be to look into the layer and see if it |
200 | // supports auto connect and then set it as prefered | 200 | // supports auto connect and then set it as prefered |
201 | if ( m_conCmb ->currentText() == tr("Local Console") ) { | 201 | if ( m_conCmb ->currentText() == tr("Local Console") ) { |
202 | m_autoConnect->setChecked( true ); | 202 | m_autoConnect->setChecked( true ); |
203 | m_prof.writeEntry("Terminal", Profile::Linux ); | 203 | m_prof.writeEntry("Terminal", Profile::Linux ); |
204 | slotTermActivated( m_fact->external (m_prof.terminalName() ) ); | 204 | slotTermActivated( m_fact->external (m_prof.terminalName() ) ); |
205 | } else { | 205 | } else { |
206 | m_prof.writeEntry("Terminal", Profile::VT102 ); | 206 | m_prof.writeEntry("Terminal", Profile::VT102 ); |
207 | slotTermActivated( m_fact->external (m_prof.terminalName() ) ); | 207 | slotTermActivated( m_fact->external (m_prof.terminalName() ) ); |
208 | m_autoConnect->setChecked( false ); | 208 | m_autoConnect->setChecked( false ); |
209 | } | 209 | } |
210 | 210 | ||
211 | m_con->load( m_prof ); | 211 | m_con->load( m_prof ); |
212 | m_svCon->addChild( m_con ); | 212 | m_svCon->addChild( m_con ); |
213 | } | 213 | } |
214 | 214 | ||
215 | 215 | ||
216 | /* | 216 | /* |
217 | * we need to switch the widget | 217 | * we need to switch the widget |
218 | */ | 218 | */ |
219 | void ProfileEditorDialog::slotTermActivated( const QString& str ) { | 219 | void ProfileEditorDialog::slotTermActivated( const QString& str ) { |
220 | 220 | ||
221 | delete m_term; | 221 | delete m_term; |
222 | 222 | ||
223 | m_term = m_fact->newTerminalPlugin( str, m_svTerm->viewport() ); | 223 | m_term = m_fact->newTerminalPlugin( str, m_svTerm->viewport() ); |
224 | 224 | ||
225 | if ( m_term ) { | 225 | if ( m_term ) { |
226 | m_term->load( m_prof ); | 226 | m_term->load( m_prof ); |
227 | m_svTerm->addChild( m_term ); | 227 | m_svTerm->addChild( m_term ); |
228 | } | 228 | } |
229 | } | 229 | } |
230 | 230 | ||
231 | void ProfileEditorDialog::slotKeyActivated(const QString &str) { | 231 | void ProfileEditorDialog::slotKeyActivated(const QString &str) { |
232 | delete m_key; | 232 | delete m_key; |
233 | m_key = m_fact->newKeyboardPlugin( str, m_tabKey ); | 233 | m_key = m_fact->newKeyboardPlugin( str, m_tabKey ); |
diff --git a/noncore/apps/opie-console/session.cpp b/noncore/apps/opie-console/session.cpp index 1034ede..b7f14c5 100644 --- a/noncore/apps/opie-console/session.cpp +++ b/noncore/apps/opie-console/session.cpp | |||
@@ -1,115 +1,115 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | #include "file_layer.h" | 3 | #include "file_layer.h" |
4 | #include "emulation_handler.h" | 4 | #include "emulation_handler.h" |
5 | #include "session.h" | 5 | #include "session.h" |
6 | 6 | ||
7 | 7 | ||
8 | Session::Session() { | 8 | Session::Session() { |
9 | m_widget = 0l; | 9 | m_widget = 0l; |
10 | m_layer = 0l; | 10 | m_layer = 0l; |
11 | m_emu = 0l; | 11 | m_emu = 0l; |
12 | m_transfer = 0l; | 12 | m_transfer = 0l; |
13 | } | 13 | } |
14 | Session::Session( const QString& na, QWidgetStack* widget, IOLayer* lay) | 14 | Session::Session( const QString& na, QWidgetStack* widget, IOLayer* lay) |
15 | : m_name( na ), m_widget( widget ), m_layer( lay ) | 15 | : m_name( na ), m_widget( widget ), m_layer( lay ) |
16 | { | 16 | { |
17 | // m_widLay = 0l; | 17 | // m_widLay = 0l; |
18 | // m_emLay = 0l; | 18 | // m_emLay = 0l; |
19 | m_emu = 0l; | 19 | m_emu = 0l; |
20 | } | 20 | } |
21 | Session::~Session() { | 21 | Session::~Session() { |
22 | delete m_layer; | 22 | delete m_layer; |
23 | delete m_emu; | 23 | delete m_emu; |
24 | delete m_widget; | 24 | delete m_widget; |
25 | /* the widget layer should be deleted by the m_widget */ | 25 | /* the widget layer should be deleted by the m_widget */ |
26 | } | 26 | } |
27 | QString Session::name()const { | 27 | QString Session::name()const { |
28 | return m_name; | 28 | return m_name; |
29 | } | 29 | } |
30 | QWidgetStack* Session::widgetStack() { | 30 | QWidgetStack* Session::widgetStack() { |
31 | return m_widget; | 31 | return m_widget; |
32 | } | 32 | } |
33 | IOLayer* Session::layer() { | 33 | IOLayer* Session::layer() { |
34 | return m_layer; | 34 | return m_layer; |
35 | } | 35 | } |
36 | EmulationHandler* Session::emulationHandler() { | 36 | EmulationHandler* Session::emulationHandler() { |
37 | return m_emu; | 37 | return m_emu; |
38 | } | 38 | } |
39 | QWidget* Session::widget() { | 39 | QWidget* Session::widget() { |
40 | if (!m_emu ) | 40 | if (!m_emu ) |
41 | return 0l; | 41 | return 0l; |
42 | 42 | ||
43 | return m_emu->widget(); | 43 | return m_emu->widget(); |
44 | } | 44 | } |
45 | Profile Session::profile()const { | 45 | Profile Session::profile()const { |
46 | return m_prof; | 46 | return m_prof; |
47 | } | 47 | } |
48 | /* | 48 | /* |
49 | WidgetLayer* Session::emulationWidget() { | 49 | WidgetLayer* Session::emulationWidget() { |
50 | return m_widLay; | 50 | return m_widLay; |
51 | } | 51 | } |
52 | */ | 52 | */ |
53 | void Session::connect() { | 53 | void Session::connect() { |
54 | if ( !m_layer || !m_emu ) | 54 | if ( !m_layer || !m_emu ) |
55 | return; | 55 | return; |
56 | 56 | ||
57 | QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ), | 57 | QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ), |
58 | m_emu, SLOT(recv(const QByteArray&) ) ); | 58 | m_emu, SLOT(recv(const QByteArray&) ) ); |
59 | QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ), | 59 | QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ), |
60 | m_layer, SLOT(send(const QByteArray&) ) ); | 60 | m_layer, SLOT(send(const QByteArray&) ) ); |
61 | QObject::connect(m_emu, SIGNAL(changeSize(int, int) ), | 61 | QObject::connect(m_emu, SIGNAL(changeSize(int,int) ), |
62 | m_layer, SLOT(setSize(int, int) ) ); | 62 | m_layer, SLOT(setSize(int,int) ) ); |
63 | } | 63 | } |
64 | 64 | ||
65 | void Session::disconnect() { | 65 | void Session::disconnect() { |
66 | 66 | ||
67 | if ( !m_layer || !m_emu ) | 67 | if ( !m_layer || !m_emu ) |
68 | return; | 68 | return; |
69 | 69 | ||
70 | QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ), | 70 | QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ), |
71 | m_emu, SLOT(recv(const QByteArray&) ) ); | 71 | m_emu, SLOT(recv(const QByteArray&) ) ); |
72 | QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ), | 72 | QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ), |
73 | m_layer, SLOT(send(const QByteArray&) ) ); | 73 | m_layer, SLOT(send(const QByteArray&) ) ); |
74 | } | 74 | } |
75 | 75 | ||
76 | void Session::setName( const QString& na){ | 76 | void Session::setName( const QString& na){ |
77 | m_name = na; | 77 | m_name = na; |
78 | } | 78 | } |
79 | 79 | ||
80 | void Session::setWidgetStack( QWidgetStack* wid ) { | 80 | void Session::setWidgetStack( QWidgetStack* wid ) { |
81 | delete m_emu; | 81 | delete m_emu; |
82 | m_emu = 0l; | 82 | m_emu = 0l; |
83 | delete m_widget; | 83 | delete m_widget; |
84 | /* the EmulationLayer was destroyed... */ | 84 | /* the EmulationLayer was destroyed... */ |
85 | 85 | ||
86 | m_widget = wid; | 86 | m_widget = wid; |
87 | } | 87 | } |
88 | void Session::setIOLayer( IOLayer* lay ) { | 88 | void Session::setIOLayer( IOLayer* lay ) { |
89 | delete m_layer; | 89 | delete m_layer; |
90 | m_layer = lay; | 90 | m_layer = lay; |
91 | } | 91 | } |
92 | 92 | ||
93 | void Session::setEmulationHandler( EmulationHandler* lay ) { | 93 | void Session::setEmulationHandler( EmulationHandler* lay ) { |
94 | delete m_emu; | 94 | delete m_emu; |
95 | m_emu = lay; | 95 | m_emu = lay; |
96 | } | 96 | } |
97 | void Session::setProfile( const Profile& prof ) { | 97 | void Session::setProfile( const Profile& prof ) { |
98 | m_prof = prof; | 98 | m_prof = prof; |
99 | } | 99 | } |
100 | /* | 100 | /* |
101 | void Session::setEmulationWidget( WidgetLayer* lay ) { | 101 | void Session::setEmulationWidget( WidgetLayer* lay ) { |
102 | delete m_widLay; | 102 | delete m_widLay; |
103 | m_widLay = lay; | 103 | m_widLay = lay; |
104 | } | 104 | } |
105 | */ | 105 | */ |
106 | void Session::setTransferDialog(QWidget *d) | 106 | void Session::setTransferDialog(QWidget *d) |
107 | { | 107 | { |
108 | m_transfer = d; | 108 | m_transfer = d; |
109 | } | 109 | } |
110 | 110 | ||
111 | QWidget *Session::transferDialog() | 111 | QWidget *Session::transferDialog() |
112 | { | 112 | { |
113 | return m_transfer; | 113 | return m_transfer; |
114 | } | 114 | } |
115 | 115 | ||
diff --git a/noncore/apps/opie-console/sz_transfer.cpp b/noncore/apps/opie-console/sz_transfer.cpp index c47e73e..2f82417 100644 --- a/noncore/apps/opie-console/sz_transfer.cpp +++ b/noncore/apps/opie-console/sz_transfer.cpp | |||
@@ -1,84 +1,84 @@ | |||
1 | 1 | ||
2 | #include "sz_transfer.h" | 2 | #include "sz_transfer.h" |
3 | #include <qfile.h> | 3 | #include <qfile.h> |
4 | #include <stdio.h> | 4 | #include <stdio.h> |
5 | #include <sys/termios.h> | 5 | #include <sys/termios.h> |
6 | 6 | ||
7 | 7 | ||
8 | 8 | ||
9 | SzTransfer::SzTransfer(Type t, IOLayer *layer) : FileTransferLayer(layer), m_t(t) | 9 | SzTransfer::SzTransfer(Type t, IOLayer *layer) : FileTransferLayer(layer), m_t(t) |
10 | { | 10 | { |
11 | } | 11 | } |
12 | 12 | ||
13 | SzTransfer::~SzTransfer() { | 13 | SzTransfer::~SzTransfer() { |
14 | } | 14 | } |
15 | 15 | ||
16 | void SzTransfer::sendFile(const QFile& file) { | 16 | void SzTransfer::sendFile(const QFile& file) { |
17 | 17 | ||
18 | sendFile(file.name()); | 18 | sendFile(file.name()); |
19 | } | 19 | } |
20 | 20 | ||
21 | void SzTransfer::sendFile(const QString& file) { | 21 | void SzTransfer::sendFile(const QString& file) { |
22 | 22 | ||
23 | //setcbreak(2); /* raw no echo */ | 23 | //setcbreak(2); /* raw no echo */ |
24 | 24 | ||
25 | proc = new OProcess; | 25 | proc = new OProcess; |
26 | *proc << "sz"; | 26 | *proc << "sz"; |
27 | *proc << "-v" << "-v" << "-b" << file; | 27 | *proc << "-v" << "-v" << "-b" << file; |
28 | connect(proc, SIGNAL(processExited(OProcess *)), | 28 | connect(proc, SIGNAL(processExited(OProcess*)), |
29 | this, SLOT(sent())); | 29 | this, SLOT(sent())); |
30 | connect(proc, SIGNAL(receivedStdout(OProcess *, char *, int)), | 30 | connect(proc, SIGNAL(receivedStdout(OProcess*,char*,int)), |
31 | this, SLOT(SzReceivedStdout(OProcess *, char *, int))); | 31 | this, SLOT(SzReceivedStdout(OProcess*,char*,int))); |
32 | connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)), | 32 | connect(proc, SIGNAL(receivedStderr(OProcess*,char*,int)), |
33 | this, SLOT(SzReceivedStderr(OProcess *, char *, int))); | 33 | this, SLOT(SzReceivedStderr(OProcess*,char*,int))); |
34 | connect(layer(), SIGNAL(received(const QByteArray &)), | 34 | connect(layer(), SIGNAL(received(const QByteArray&)), |
35 | this, SLOT(receivedStdin(const QByteArray &))); | 35 | this, SLOT(receivedStdin(const QByteArray&))); |
36 | proc->start(OProcess::NotifyOnExit, OProcess::All); | 36 | proc->start(OProcess::NotifyOnExit, OProcess::All); |
37 | 37 | ||
38 | } | 38 | } |
39 | 39 | ||
40 | void SzTransfer::SzReceivedStdout(OProcess *, char *buffer, int buflen) { | 40 | void SzTransfer::SzReceivedStdout(OProcess *, char *buffer, int buflen) { |
41 | 41 | ||
42 | qWarning("recieved from sz on stdout %d bytes", buflen); | 42 | qWarning("recieved from sz on stdout %d bytes", buflen); |
43 | 43 | ||
44 | QByteArray data(buflen); | 44 | QByteArray data(buflen); |
45 | data.fill(*buffer, buflen); | 45 | data.fill(*buffer, buflen); |
46 | for (uint i = 0; i < data.count(); i++ ) { | 46 | for (uint i = 0; i < data.count(); i++ ) { |
47 | printf("%c", buffer[i] ); | 47 | printf("%c", buffer[i] ); |
48 | } | 48 | } |
49 | printf("\n"); | 49 | printf("\n"); |
50 | 50 | ||
51 | // send out through the io layer | 51 | // send out through the io layer |
52 | layer()->send(data); | 52 | layer()->send(data); |
53 | } | 53 | } |
54 | 54 | ||
55 | void SzTransfer::SzReceivedStderr(OProcess *, char *buffer, int length) { | 55 | void SzTransfer::SzReceivedStderr(OProcess *, char *buffer, int length) { |
56 | 56 | ||
57 | // parse and show data in a progress dialog/widget | 57 | // parse and show data in a progress dialog/widget |
58 | printf("stderr:\n"); | 58 | printf("stderr:\n"); |
59 | //for (int i = 0; i < length; i++) | 59 | //for (int i = 0; i < length; i++) |
60 | // printf("%c", buffer[i]); | 60 | // printf("%c", buffer[i]); |
61 | //printf("\n"); | 61 | //printf("\n"); |
62 | } | 62 | } |
63 | 63 | ||
64 | void SzTransfer::receivedStdin(const QByteArray &data) { | 64 | void SzTransfer::receivedStdin(const QByteArray &data) { |
65 | 65 | ||
66 | qWarning("recieved from io_serial %d bytes", data.size()); | 66 | qWarning("recieved from io_serial %d bytes", data.size()); |
67 | 67 | ||
68 | // recieved data from the io layer goes to sz | 68 | // recieved data from the io layer goes to sz |
69 | proc->writeStdin(data.data(), data.size()); | 69 | proc->writeStdin(data.data(), data.size()); |
70 | 70 | ||
71 | } | 71 | } |
72 | 72 | ||
73 | void SzTransfer::sent() { | 73 | void SzTransfer::sent() { |
74 | 74 | ||
75 | qWarning("sent file"); | 75 | qWarning("sent file"); |
76 | 76 | ||
77 | //setcbreak(0); /* default */ | 77 | //setcbreak(0); /* default */ |
78 | 78 | ||
79 | 79 | ||
80 | delete proc; | 80 | delete proc; |
81 | disconnect(layer(), SIGNAL(received(const QByteArray &)), | 81 | disconnect(layer(), SIGNAL(received(const QByteArray&)), |
82 | this, SLOT(receivedStdin(const QByteArray &))); | 82 | this, SLOT(receivedStdin(const QByteArray&))); |
83 | 83 | ||
84 | } | 84 | } |
diff --git a/noncore/apps/opie-console/test/senderui.cpp b/noncore/apps/opie-console/test/senderui.cpp index 4a7202d..b1725db 100644 --- a/noncore/apps/opie-console/test/senderui.cpp +++ b/noncore/apps/opie-console/test/senderui.cpp | |||
@@ -1,77 +1,77 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | #include <stdio.h> | 2 | #include <stdio.h> |
3 | #include <fcntl.h> | 3 | #include <fcntl.h> |
4 | #include <sys/termios.h> | 4 | #include <sys/termios.h> |
5 | 5 | ||
6 | #include <qmultilineedit.h> | 6 | #include <qmultilineedit.h> |
7 | #include <qsocketnotifier.h> | 7 | #include <qsocketnotifier.h> |
8 | 8 | ||
9 | #include "../profile.h" | 9 | #include "../profile.h" |
10 | #include "../io_serial.h" | 10 | #include "../io_serial.h" |
11 | #include "../filetransfer.h" | 11 | #include "../filetransfer.h" |
12 | #include "../filereceive.h" | 12 | #include "../filereceive.h" |
13 | 13 | ||
14 | #include <opie2/oprocess.h> | 14 | #include <opie2/oprocess.h> |
15 | 15 | ||
16 | #include "senderui.h" | 16 | #include "senderui.h" |
17 | 17 | ||
18 | SenderUI::SenderUI() | 18 | SenderUI::SenderUI() |
19 | : Sender() { | 19 | : Sender() { |
20 | 20 | ||
21 | /* we do that manually */ | 21 | /* we do that manually */ |
22 | Profile prof; | 22 | Profile prof; |
23 | QString str = "/dev/bty0"; | 23 | QString str = "/dev/bty0"; |
24 | prof.writeEntry("Device",str ); | 24 | prof.writeEntry("Device",str ); |
25 | prof.writeEntry("Baud", 19200 ); | 25 | prof.writeEntry("Baud", 19200 ); |
26 | 26 | ||
27 | qWarning("prof " + prof.readEntry("Device") + " " + str); | 27 | qWarning("prof " + prof.readEntry("Device") + " " + str); |
28 | ser = new IOSerial(prof); | 28 | ser = new IOSerial(prof); |
29 | connect(ser, SIGNAL(received(const QByteArray& ) ), | 29 | connect(ser, SIGNAL(received(const QByteArray&) ), |
30 | this, SLOT(got(const QByteArray&) ) ); | 30 | this, SLOT(got(const QByteArray&) ) ); |
31 | 31 | ||
32 | if ( ser->open() ) | 32 | if ( ser->open() ) |
33 | qWarning("opened!!!"); | 33 | qWarning("opened!!!"); |
34 | else | 34 | else |
35 | qWarning("could not open"); | 35 | qWarning("could not open"); |
36 | 36 | ||
37 | 37 | ||
38 | } | 38 | } |
39 | SenderUI::~SenderUI() { | 39 | SenderUI::~SenderUI() { |
40 | 40 | ||
41 | } | 41 | } |
42 | void SenderUI::slotSendFile() { | 42 | void SenderUI::slotSendFile() { |
43 | 43 | ||
44 | sz = new FileTransfer(FileTransfer::SY, ser); | 44 | sz = new FileTransfer(FileTransfer::SY, ser); |
45 | sz->sendFile("/home/ich/bootopie-v06-13.jffs2"); | 45 | sz->sendFile("/home/ich/bootopie-v06-13.jffs2"); |
46 | 46 | ||
47 | connect (sz, SIGNAL(sent()), | 47 | connect (sz, SIGNAL(sent()), |
48 | this, SLOT(fileTransComplete())); | 48 | this, SLOT(fileTransComplete())); |
49 | } | 49 | } |
50 | 50 | ||
51 | void SenderUI::slotSend() { | 51 | void SenderUI::slotSend() { |
52 | QCString str = MultiLineEdit1->text().utf8(); | 52 | QCString str = MultiLineEdit1->text().utf8(); |
53 | qWarning("sending: %s", str.data() ); | 53 | qWarning("sending: %s", str.data() ); |
54 | str = str.replace( QRegExp("\n"), "\r"); | 54 | str = str.replace( QRegExp("\n"), "\r"); |
55 | ser->send( str ); | 55 | ser->send( str ); |
56 | } | 56 | } |
57 | void SenderUI::got(const QByteArray& ar) { | 57 | void SenderUI::got(const QByteArray& ar) { |
58 | qWarning("got:"); | 58 | qWarning("got:"); |
59 | for ( uint i = 0; i < ar.count(); i++ ) { | 59 | for ( uint i = 0; i < ar.count(); i++ ) { |
60 | printf("%c", ar[i] ); | 60 | printf("%c", ar[i] ); |
61 | } | 61 | } |
62 | printf("\n"); | 62 | printf("\n"); |
63 | } | 63 | } |
64 | 64 | ||
65 | void SenderUI::fileTransComplete() { | 65 | void SenderUI::fileTransComplete() { |
66 | 66 | ||
67 | qWarning("file transfer complete"); | 67 | qWarning("file transfer complete"); |
68 | } | 68 | } |
69 | void SenderUI::send() { | 69 | void SenderUI::send() { |
70 | 70 | ||
71 | } | 71 | } |
72 | void SenderUI::slotRev(){ | 72 | void SenderUI::slotRev(){ |
73 | qWarning("Going to receive!"); | 73 | qWarning("Going to receive!"); |
74 | FileReceive *rev = new FileReceive( FileReceive::SZ, ser ); | 74 | FileReceive *rev = new FileReceive( FileReceive::SZ, ser ); |
75 | rev->receive(); | 75 | rev->receive(); |
76 | 76 | ||
77 | } | 77 | } |
diff --git a/noncore/apps/opie-console/transferdialog.cpp b/noncore/apps/opie-console/transferdialog.cpp index 30e7caf..d494a6c 100644 --- a/noncore/apps/opie-console/transferdialog.cpp +++ b/noncore/apps/opie-console/transferdialog.cpp | |||
@@ -32,205 +32,205 @@ TransferDialog::TransferDialog(QWidget *parent, MainWindow *mainwindow, const ch | |||
32 | group = new QButtonGroup(QObject::tr("Transfer mode"), this); | 32 | group = new QButtonGroup(QObject::tr("Transfer mode"), this); |
33 | mode_send = new QRadioButton(QObject::tr("Send"), group); | 33 | mode_send = new QRadioButton(QObject::tr("Send"), group); |
34 | mode_receive = new QRadioButton(QObject::tr("Receive"), group); | 34 | mode_receive = new QRadioButton(QObject::tr("Receive"), group); |
35 | group->insert(mode_send, id_send); | 35 | group->insert(mode_send, id_send); |
36 | group->insert(mode_receive, id_receive); | 36 | group->insert(mode_receive, id_receive); |
37 | vbox2 = new QVBoxLayout(group, 2); | 37 | vbox2 = new QVBoxLayout(group, 2); |
38 | vbox2->addSpacing(10); | 38 | vbox2->addSpacing(10); |
39 | hbox3 = new QHBoxLayout(vbox2, 2); | 39 | hbox3 = new QHBoxLayout(vbox2, 2); |
40 | hbox3->add(mode_send); | 40 | hbox3->add(mode_send); |
41 | hbox3->add(mode_receive); | 41 | hbox3->add(mode_receive); |
42 | mode_send->setChecked(true); | 42 | mode_send->setChecked(true); |
43 | m_transfermode = id_send; | 43 | m_transfermode = id_send; |
44 | 44 | ||
45 | file = new QLabel(QObject::tr("Send file"), this); | 45 | file = new QLabel(QObject::tr("Send file"), this); |
46 | mode = new QLabel(QObject::tr("Transfer protocol"), this); | 46 | mode = new QLabel(QObject::tr("Transfer protocol"), this); |
47 | progress = new QLabel(QObject::tr("Progress"), this); | 47 | progress = new QLabel(QObject::tr("Progress"), this); |
48 | status = new QLabel(QObject::tr("Status"), this); | 48 | status = new QLabel(QObject::tr("Status"), this); |
49 | 49 | ||
50 | statusbar = new QLabel(QObject::tr("Ready"), this); | 50 | statusbar = new QLabel(QObject::tr("Ready"), this); |
51 | statusbar->setFrameStyle(QFrame::Panel | QFrame::Sunken); | 51 | statusbar->setFrameStyle(QFrame::Panel | QFrame::Sunken); |
52 | 52 | ||
53 | protocol = new QComboBox(this); | 53 | protocol = new QComboBox(this); |
54 | QStringList list = m_win->factory()->fileTransferLayers(); | 54 | QStringList list = m_win->factory()->fileTransferLayers(); |
55 | for (QStringList::Iterator it = list.begin(); it != list.end(); ++it) | 55 | for (QStringList::Iterator it = list.begin(); it != list.end(); ++it) |
56 | protocol->insertItem((*it)); | 56 | protocol->insertItem((*it)); |
57 | 57 | ||
58 | filename = new QLineEdit(this); | 58 | filename = new QLineEdit(this); |
59 | 59 | ||
60 | progressbar = new QProgressBar(this); | 60 | progressbar = new QProgressBar(this); |
61 | progressbar->setProgress(0); | 61 | progressbar->setProgress(0); |
62 | 62 | ||
63 | selector = new QPushButton("...", this); | 63 | selector = new QPushButton("...", this); |
64 | ok = new QPushButton(QObject::tr("Start transfer"), this); | 64 | ok = new QPushButton(QObject::tr("Start transfer"), this); |
65 | cancel = new QPushButton(QObject::tr("Cancel"), this); | 65 | cancel = new QPushButton(QObject::tr("Cancel"), this); |
66 | 66 | ||
67 | vbox = new QVBoxLayout(this, 2); | 67 | vbox = new QVBoxLayout(this, 2); |
68 | vbox->add(group); | 68 | vbox->add(group); |
69 | vbox->add(file); | 69 | vbox->add(file); |
70 | hbox = new QHBoxLayout(vbox, 0); | 70 | hbox = new QHBoxLayout(vbox, 0); |
71 | hbox->add(filename); | 71 | hbox->add(filename); |
72 | hbox->add(selector); | 72 | hbox->add(selector); |
73 | vbox->add(mode); | 73 | vbox->add(mode); |
74 | vbox->add(protocol); | 74 | vbox->add(protocol); |
75 | vbox->add(progress); | 75 | vbox->add(progress); |
76 | vbox->add(progressbar); | 76 | vbox->add(progressbar); |
77 | vbox->add(status); | 77 | vbox->add(status); |
78 | vbox->add(statusbar); | 78 | vbox->add(statusbar); |
79 | vbox->addStretch(1); | 79 | vbox->addStretch(1); |
80 | hbox2 = new QHBoxLayout(vbox, 2); | 80 | hbox2 = new QHBoxLayout(vbox, 2); |
81 | hbox2->add(ok); | 81 | hbox2->add(ok); |
82 | hbox2->add(cancel); | 82 | hbox2->add(cancel); |
83 | 83 | ||
84 | setCaption(QObject::tr("File transfer")); | 84 | setCaption(QObject::tr("File transfer")); |
85 | show(); | 85 | show(); |
86 | 86 | ||
87 | connect(selector, SIGNAL(clicked()), SLOT(slotFilename())); | 87 | connect(selector, SIGNAL(clicked()), SLOT(slotFilename())); |
88 | connect(ok, SIGNAL(clicked()), SLOT(slotTransfer())); | 88 | connect(ok, SIGNAL(clicked()), SLOT(slotTransfer())); |
89 | connect(cancel, SIGNAL(clicked()), SLOT(slotCancel())); | 89 | connect(cancel, SIGNAL(clicked()), SLOT(slotCancel())); |
90 | connect(group, SIGNAL(clicked(int)), SLOT(slotMode(int))); | 90 | connect(group, SIGNAL(clicked(int)), SLOT(slotMode(int))); |
91 | } | 91 | } |
92 | 92 | ||
93 | TransferDialog::~TransferDialog() | 93 | TransferDialog::~TransferDialog() |
94 | { | 94 | { |
95 | } | 95 | } |
96 | 96 | ||
97 | void TransferDialog::slotFilename() | 97 | void TransferDialog::slotFilename() |
98 | { | 98 | { |
99 | QString f; | 99 | QString f; |
100 | 100 | ||
101 | f = Opie::OFileDialog::getOpenFileName(0); | 101 | f = Opie::OFileDialog::getOpenFileName(0); |
102 | if(!f.isNull()) filename->setText(f); | 102 | if(!f.isNull()) filename->setText(f); |
103 | } | 103 | } |
104 | 104 | ||
105 | void TransferDialog::slotTransfer() | 105 | void TransferDialog::slotTransfer() |
106 | { | 106 | { |
107 | if((m_transfermode == id_send) && (filename->text().isEmpty())) | 107 | if((m_transfermode == id_send) && (filename->text().isEmpty())) |
108 | { | 108 | { |
109 | QMessageBox::information(this, | 109 | QMessageBox::information(this, |
110 | QObject::tr("Attention"), | 110 | QObject::tr("Attention"), |
111 | QObject::tr("No file has been specified.")); | 111 | QObject::tr("No file has been specified.")); |
112 | return; | 112 | return; |
113 | } | 113 | } |
114 | 114 | ||
115 | ok->setEnabled(false); | 115 | ok->setEnabled(false); |
116 | 116 | ||
117 | cleanup(); | 117 | cleanup(); |
118 | m_autocleanup = 0; | 118 | m_autocleanup = 0; |
119 | 119 | ||
120 | if(m_transfermode == id_send) statusbar->setText(QObject::tr("Sending...")); | 120 | if(m_transfermode == id_send) statusbar->setText(QObject::tr("Sending...")); |
121 | else statusbar->setText(QObject::tr("Receiving...")); | 121 | else statusbar->setText(QObject::tr("Receiving...")); |
122 | 122 | ||
123 | if(m_transfermode == id_send) | 123 | if(m_transfermode == id_send) |
124 | { | 124 | { |
125 | m_lay = m_win->factory()->newFileTransfer(protocol->currentText(), m_win->currentSession()->layer()); | 125 | m_lay = m_win->factory()->newFileTransfer(protocol->currentText(), m_win->currentSession()->layer()); |
126 | m_lay->sendFile(filename->text()); | 126 | m_lay->sendFile(filename->text()); |
127 | 127 | ||
128 | connect(m_lay, SIGNAL(progress(const QString&, int, int, int, int, int)), | 128 | connect(m_lay, SIGNAL(progress(const QString&,int,int,int,int,int)), |
129 | SLOT(slotProgress(const QString&, int, int, int, int, int))); | 129 | SLOT(slotProgress(const QString&,int,int,int,int,int))); |
130 | connect(m_lay, SIGNAL(error(int, const QString&)), SLOT(slotError(int, const QString&))); | 130 | connect(m_lay, SIGNAL(error(int,const QString&)), SLOT(slotError(int,const QString&))); |
131 | connect(m_lay, SIGNAL(sent()), SLOT(slotSent())); | 131 | connect(m_lay, SIGNAL(sent()), SLOT(slotSent())); |
132 | } | 132 | } |
133 | else | 133 | else |
134 | { | 134 | { |
135 | m_recvlay = m_win->factory()->newReceive(protocol->currentText(), m_win->currentSession()->layer()); | 135 | m_recvlay = m_win->factory()->newReceive(protocol->currentText(), m_win->currentSession()->layer()); |
136 | m_recvlay->receive(); | 136 | m_recvlay->receive(); |
137 | 137 | ||
138 | connect(m_recvlay, SIGNAL(progress(const QString&, int, int, int, int, int)), | 138 | connect(m_recvlay, SIGNAL(progress(const QString&,int,int,int,int,int)), |
139 | SLOT(slotProgress(const QString&, int, int, int, int, int))); | 139 | SLOT(slotProgress(const QString&,int,int,int,int,int))); |
140 | connect(m_recvlay, SIGNAL(error(int, const QString&)), SLOT(slotError(int, const QString&))); | 140 | connect(m_recvlay, SIGNAL(error(int,const QString&)), SLOT(slotError(int,const QString&))); |
141 | connect(m_recvlay, SIGNAL(received(const QString&)), SLOT(slotReceived(const QString&))); | 141 | connect(m_recvlay, SIGNAL(received(const QString&)), SLOT(slotReceived(const QString&))); |
142 | } | 142 | } |
143 | } | 143 | } |
144 | 144 | ||
145 | void TransferDialog::cleanup() | 145 | void TransferDialog::cleanup() |
146 | { | 146 | { |
147 | if(m_lay) | 147 | if(m_lay) |
148 | { | 148 | { |
149 | m_lay->cancel(); | 149 | m_lay->cancel(); |
150 | delete m_lay; | 150 | delete m_lay; |
151 | m_lay = 0l; | 151 | m_lay = 0l; |
152 | } | 152 | } |
153 | if(m_recvlay) | 153 | if(m_recvlay) |
154 | { | 154 | { |
155 | m_recvlay->cancel(); | 155 | m_recvlay->cancel(); |
156 | delete m_recvlay; | 156 | delete m_recvlay; |
157 | m_recvlay = 0l; | 157 | m_recvlay = 0l; |
158 | } | 158 | } |
159 | } | 159 | } |
160 | 160 | ||
161 | void TransferDialog::slotCancel() | 161 | void TransferDialog::slotCancel() |
162 | { | 162 | { |
163 | ok->setEnabled(true); | 163 | ok->setEnabled(true); |
164 | statusbar->setText(QObject::tr("Ready")); | 164 | statusbar->setText(QObject::tr("Ready")); |
165 | 165 | ||
166 | if((m_lay) || (m_recvlay)) | 166 | if((m_lay) || (m_recvlay)) |
167 | { | 167 | { |
168 | cleanup(); | 168 | cleanup(); |
169 | if(m_autocleanup) | 169 | if(m_autocleanup) |
170 | { | 170 | { |
171 | m_running = false; | 171 | m_running = false; |
172 | close(); | 172 | close(); |
173 | } | 173 | } |
174 | else | 174 | else |
175 | { | 175 | { |
176 | QMessageBox::information(this, | 176 | QMessageBox::information(this, |
177 | QObject::tr("Cancelled"), | 177 | QObject::tr("Cancelled"), |
178 | QObject::tr("The file transfer has been cancelled.")); | 178 | QObject::tr("The file transfer has been cancelled.")); |
179 | } | 179 | } |
180 | } | 180 | } |
181 | else | 181 | else |
182 | { | 182 | { |
183 | m_running = false; | 183 | m_running = false; |
184 | close(); | 184 | close(); |
185 | } | 185 | } |
186 | } | 186 | } |
187 | 187 | ||
188 | void TransferDialog::slotProgress(const QString& , int progress, int , int , int, int ) | 188 | void TransferDialog::slotProgress(const QString& , int progress, int , int , int, int ) |
189 | { | 189 | { |
190 | progressbar->setProgress(progress); | 190 | progressbar->setProgress(progress); |
191 | } | 191 | } |
192 | 192 | ||
193 | void TransferDialog::slotError(int error, const QString& ) | 193 | void TransferDialog::slotError(int error, const QString& ) |
194 | { | 194 | { |
195 | statusbar->setText(QObject::tr("Ready")); | 195 | statusbar->setText(QObject::tr("Ready")); |
196 | 196 | ||
197 | switch(error) | 197 | switch(error) |
198 | { | 198 | { |
199 | case FileTransferLayer::NotSupported: | 199 | case FileTransferLayer::NotSupported: |
200 | QMessageBox::critical(this, | 200 | QMessageBox::critical(this, |
201 | QObject::tr("Error"), | 201 | QObject::tr("Error"), |
202 | QObject::tr("Operation not supported.")); | 202 | QObject::tr("Operation not supported.")); |
203 | break; | 203 | break; |
204 | case FileTransferLayer::StartError: | 204 | case FileTransferLayer::StartError: |
205 | QMessageBox::critical(this, | 205 | QMessageBox::critical(this, |
206 | QObject::tr("Error"), | 206 | QObject::tr("Error"), |
207 | QObject::tr("Transfer could not be started.")); | 207 | QObject::tr("Transfer could not be started.")); |
208 | break; | 208 | break; |
209 | case FileTransferLayer::NoError: | 209 | case FileTransferLayer::NoError: |
210 | QMessageBox::critical(this, | 210 | QMessageBox::critical(this, |
211 | QObject::tr("Error"), | 211 | QObject::tr("Error"), |
212 | QObject::tr("No error.")); | 212 | QObject::tr("No error.")); |
213 | break; | 213 | break; |
214 | case FileTransferLayer::Undefined: | 214 | case FileTransferLayer::Undefined: |
215 | QMessageBox::critical(this, | 215 | QMessageBox::critical(this, |
216 | QObject::tr("Error"), | 216 | QObject::tr("Error"), |
217 | QObject::tr("Undefined error occured.")); | 217 | QObject::tr("Undefined error occured.")); |
218 | break; | 218 | break; |
219 | case FileTransferLayer::Incomplete: | 219 | case FileTransferLayer::Incomplete: |
220 | QMessageBox::critical(this, | 220 | QMessageBox::critical(this, |
221 | QObject::tr("Error"), | 221 | QObject::tr("Error"), |
222 | QObject::tr("Incomplete transfer.")); | 222 | QObject::tr("Incomplete transfer.")); |
223 | break; | 223 | break; |
224 | case FileTransferLayer::Unknown: | 224 | case FileTransferLayer::Unknown: |
225 | default: | 225 | default: |
226 | QMessageBox::critical(this, | 226 | QMessageBox::critical(this, |
227 | QObject::tr("Error"), | 227 | QObject::tr("Error"), |
228 | QObject::tr("Unknown error occured.")); | 228 | QObject::tr("Unknown error occured.")); |
229 | break; | 229 | break; |
230 | } | 230 | } |
231 | 231 | ||
232 | m_autocleanup = 1; | 232 | m_autocleanup = 1; |
233 | } | 233 | } |
234 | 234 | ||
235 | void TransferDialog::slotSent() | 235 | void TransferDialog::slotSent() |
236 | { | 236 | { |
diff --git a/noncore/apps/opie-reader/QTReaderApp.cpp b/noncore/apps/opie-reader/QTReaderApp.cpp index e759249..b0d589e 100644 --- a/noncore/apps/opie-reader/QTReaderApp.cpp +++ b/noncore/apps/opie-reader/QTReaderApp.cpp | |||
@@ -236,317 +236,317 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) | |||
236 | } | 236 | } |
237 | else if (rot.contains("Rot180")) | 237 | else if (rot.contains("Rot180")) |
238 | { | 238 | { |
239 | m_rot = 180; | 239 | m_rot = 180; |
240 | } | 240 | } |
241 | else if (rot.contains("Rot270")) | 241 | else if (rot.contains("Rot270")) |
242 | { | 242 | { |
243 | m_rot = 270; | 243 | m_rot = 270; |
244 | } | 244 | } |
245 | 245 | ||
246 | // qDebug("Initial Rotation(%d):%s", m_rot, (const char*)rot); | 246 | // qDebug("Initial Rotation(%d):%s", m_rot, (const char*)rot); |
247 | */ | 247 | */ |
248 | m_autogenstr = "^ *[A-Z].*[a-z] *$"; | 248 | m_autogenstr = "^ *[A-Z].*[a-z] *$"; |
249 | 249 | ||
250 | #ifdef USEQPE | 250 | #ifdef USEQPE |
251 | setIcon( Resource::loadPixmap( PICDIR "uqtreader") ); | 251 | setIcon( Resource::loadPixmap( PICDIR "uqtreader") ); |
252 | #else | 252 | #else |
253 | setIcon( QPixmap (PICDIR "uqtreader.png") ); | 253 | setIcon( QPixmap (PICDIR "uqtreader.png") ); |
254 | #endif /* USEQPE */ | 254 | #endif /* USEQPE */ |
255 | 255 | ||
256 | // QToolBar *bar = new QToolBar( this ); | 256 | // QToolBar *bar = new QToolBar( this ); |
257 | // menubar = new QToolBar( this ); | 257 | // menubar = new QToolBar( this ); |
258 | #ifdef USEQPE | 258 | #ifdef USEQPE |
259 | Config config( APPDIR ); | 259 | Config config( APPDIR ); |
260 | #else | 260 | #else |
261 | QDir d = QDir::home(); // "/" | 261 | QDir d = QDir::home(); // "/" |
262 | if ( !d.cd(APPDIR) ) { // "/tmp" | 262 | if ( !d.cd(APPDIR) ) { // "/tmp" |
263 | qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); | 263 | qWarning( "Cannot find the \"~/" APPDIR "\" directory" ); |
264 | d = QDir::home(); | 264 | d = QDir::home(); |
265 | d.mkdir(APPDIR); | 265 | d.mkdir(APPDIR); |
266 | d.cd(APPDIR); | 266 | d.cd(APPDIR); |
267 | } | 267 | } |
268 | QFileInfo fi(d, INIFILE); | 268 | QFileInfo fi(d, INIFILE); |
269 | // qDebug("Path:%s", (const char*)fi.absFilePath()); | 269 | // qDebug("Path:%s", (const char*)fi.absFilePath()); |
270 | Config config(fi.absFilePath()); | 270 | Config config(fi.absFilePath()); |
271 | #endif | 271 | #endif |
272 | config.setGroup("Toolbar"); | 272 | config.setGroup("Toolbar"); |
273 | m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); | 273 | m_tbmovesave = m_tbmove = config.readBoolEntry("Movable", false); |
274 | m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); | 274 | m_tbpolsave = m_tbpol = (ToolbarPolicy)config.readNumEntry("Policy", 1); |
275 | m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); | 275 | m_tbposition = (ToolBarDock)config.readNumEntry("Position", 2); |
276 | menubar = new QToolBar("Menus", this, m_tbposition); | 276 | menubar = new QToolBar("Menus", this, m_tbposition); |
277 | 277 | ||
278 | // fileBar = new QToolBar("File", this); | 278 | // fileBar = new QToolBar("File", this); |
279 | // QToolBar* viewBar = new QToolBar("File", this); | 279 | // QToolBar* viewBar = new QToolBar("File", this); |
280 | // QToolBar* navBar = new QToolBar("File", this); | 280 | // QToolBar* navBar = new QToolBar("File", this); |
281 | // QToolBar* markBar = new QToolBar("File", this); | 281 | // QToolBar* markBar = new QToolBar("File", this); |
282 | 282 | ||
283 | #ifdef USEQPE | 283 | #ifdef USEQPE |
284 | mb = new QMenuBar( menubar ); | 284 | mb = new QMenuBar( menubar ); |
285 | #else | 285 | #else |
286 | mb = new QMenuBar( menubar ); | 286 | mb = new QMenuBar( menubar ); |
287 | #endif | 287 | #endif |
288 | 288 | ||
289 | //#ifdef USEQPE | 289 | //#ifdef USEQPE |
290 | QPopupMenu* tmp = new QPopupMenu(mb); | 290 | QPopupMenu* tmp = new QPopupMenu(mb); |
291 | mb->insertItem( geticon( "AppsIcon" ), tmp ); | 291 | mb->insertItem( geticon( "AppsIcon" ), tmp ); |
292 | //#else | 292 | //#else |
293 | // QMenuBar* tmp = mb; | 293 | // QMenuBar* tmp = mb; |
294 | //#endif | 294 | //#endif |
295 | 295 | ||
296 | QPopupMenu *file = new QPopupMenu( mb ); | 296 | QPopupMenu *file = new QPopupMenu( mb ); |
297 | tmp->insertItem( tr( "File" ), file ); | 297 | tmp->insertItem( tr( "File" ), file ); |
298 | 298 | ||
299 | QPopupMenu *navigation = new QPopupMenu(mb); | 299 | QPopupMenu *navigation = new QPopupMenu(mb); |
300 | tmp->insertItem( tr( "Navigation" ), navigation ); | 300 | tmp->insertItem( tr( "Navigation" ), navigation ); |
301 | 301 | ||
302 | QPopupMenu *view = new QPopupMenu( mb ); | 302 | QPopupMenu *view = new QPopupMenu( mb ); |
303 | tmp->insertItem( tr( "View" ), view ); | 303 | tmp->insertItem( tr( "View" ), view ); |
304 | 304 | ||
305 | QPopupMenu *marks = new QPopupMenu( this ); | 305 | QPopupMenu *marks = new QPopupMenu( this ); |
306 | tmp->insertItem( tr( "Marks" ), marks ); | 306 | tmp->insertItem( tr( "Marks" ), marks ); |
307 | 307 | ||
308 | QPopupMenu *settings = new QPopupMenu( this ); | 308 | QPopupMenu *settings = new QPopupMenu( this ); |
309 | tmp->insertItem( tr( "Settings" ), settings ); | 309 | tmp->insertItem( tr( "Settings" ), settings ); |
310 | 310 | ||
311 | // addToolBar(menubar, "Menus",QMainWindow::Top); | 311 | // addToolBar(menubar, "Menus",QMainWindow::Top); |
312 | // addToolBar(fileBar, "Toolbar",QMainWindow::Top); | 312 | // addToolBar(fileBar, "Toolbar",QMainWindow::Top); |
313 | 313 | ||
314 | // QPopupMenu *edit = new QPopupMenu( this ); | 314 | // QPopupMenu *edit = new QPopupMenu( this ); |
315 | 315 | ||
316 | /* | 316 | /* |
317 | QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); | 317 | QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); |
318 | connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); | 318 | connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); |
319 | a->addTo( bar ); | 319 | a->addTo( bar ); |
320 | a->addTo( file ); | 320 | a->addTo( file ); |
321 | */ | 321 | */ |
322 | 322 | ||
323 | editorStack = new QWidgetStack( this ); | 323 | editorStack = new QWidgetStack( this ); |
324 | setCentralWidget( editorStack ); | 324 | setCentralWidget( editorStack ); |
325 | 325 | ||
326 | searchVisible = FALSE; | 326 | searchVisible = FALSE; |
327 | regVisible = FALSE; | 327 | regVisible = FALSE; |
328 | m_fontVisible = false; | 328 | m_fontVisible = false; |
329 | 329 | ||
330 | m_annoWin = new CAnnoEdit(editorStack); | 330 | m_annoWin = new CAnnoEdit(editorStack); |
331 | editorStack->addWidget(m_annoWin, get_unique_id()); | 331 | editorStack->addWidget(m_annoWin, get_unique_id()); |
332 | connect( m_annoWin, SIGNAL( finished(const QString&, const QString&) ), this, SLOT( addAnno(const QString&, const QString&) ) ); | 332 | connect( m_annoWin, SIGNAL( finished(const QString&,const QString&) ), this, SLOT( addAnno(const QString&,const QString&) ) ); |
333 | connect( m_annoWin, SIGNAL( cancelled() ), this, SLOT( infoClose() ) ); | 333 | connect( m_annoWin, SIGNAL( cancelled() ), this, SLOT( infoClose() ) ); |
334 | 334 | ||
335 | m_infoWin = new infowin(editorStack); | 335 | m_infoWin = new infowin(editorStack); |
336 | editorStack->addWidget(m_infoWin, get_unique_id()); | 336 | editorStack->addWidget(m_infoWin, get_unique_id()); |
337 | connect( m_infoWin, SIGNAL( Close() ), this, SLOT( infoClose() ) ); | 337 | connect( m_infoWin, SIGNAL( Close() ), this, SLOT( infoClose() ) ); |
338 | 338 | ||
339 | m_graphicwin = new GraphicWin(editorStack); | 339 | m_graphicwin = new GraphicWin(editorStack); |
340 | editorStack->addWidget(m_graphicwin, get_unique_id()); | 340 | editorStack->addWidget(m_graphicwin, get_unique_id()); |
341 | connect( m_graphicwin, SIGNAL( Closed() ), this, SLOT( infoClose() ) ); | 341 | connect( m_graphicwin, SIGNAL( Closed() ), this, SLOT( infoClose() ) ); |
342 | 342 | ||
343 | // bkmkselector = new QListBox(editorStack, "Bookmarks"); | 343 | // bkmkselector = new QListBox(editorStack, "Bookmarks"); |
344 | bkmkselector = new CBkmkSelector(editorStack, "Bookmarks"); | 344 | bkmkselector = new CBkmkSelector(editorStack, "Bookmarks"); |
345 | // connect(bkmkselector, SIGNAL( selected(const QString&) ), this, SLOT( gotobkmk(const QString&) ) ); | 345 | // connect(bkmkselector, SIGNAL( selected(const QString&) ), this, SLOT( gotobkmk(const QString&) ) ); |
346 | connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( gotobkmk(int) ) ); | 346 | connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( gotobkmk(int) ) ); |
347 | connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) ); | 347 | connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) ); |
348 | editorStack->addWidget( bkmkselector, get_unique_id() ); | 348 | editorStack->addWidget( bkmkselector, get_unique_id() ); |
349 | 349 | ||
350 | /* | 350 | /* |
351 | importSelector = new FileSelector( "*", editorStack, "importselector", false ); | 351 | importSelector = new FileSelector( "*", editorStack, "importselector", false ); |
352 | connect( importSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( importFile( const DocLnk & ) ) ); | 352 | connect( importSelector, SIGNAL( fileSelected(const DocLnk&) ), this, SLOT( importFile(const DocLnk&) ) ); |
353 | 353 | ||
354 | editorStack->addWidget( importSelector, get_unique_id() ); | 354 | editorStack->addWidget( importSelector, get_unique_id() ); |
355 | 355 | ||
356 | // don't need the close visible, it is redundant... | 356 | // don't need the close visible, it is redundant... |
357 | importSelector->setCloseVisible( FALSE ); | 357 | importSelector->setCloseVisible( FALSE ); |
358 | */ | 358 | */ |
359 | // qDebug("Reading file list"); | 359 | // qDebug("Reading file list"); |
360 | readfilelist(); | 360 | readfilelist(); |
361 | 361 | ||
362 | reader = new QTReader( editorStack ); | 362 | reader = new QTReader( editorStack ); |
363 | 363 | ||
364 | reader->bDoUpdates = false; | 364 | reader->bDoUpdates = false; |
365 | 365 | ||
366 | #ifdef USEQPE | 366 | #ifdef USEQPE |
367 | ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold); | 367 | ((QPEApplication*)qApp)->setStylusOperation(reader, QPEApplication::RightOnHold); |
368 | #endif | 368 | #endif |
369 | 369 | ||
370 | // qDebug("Reading config"); | 370 | // qDebug("Reading config"); |
371 | // Config config( APPDIR ); | 371 | // Config config( APPDIR ); |
372 | config.setGroup( "View" ); | 372 | config.setGroup( "View" ); |
373 | m_debounce = config.readNumEntry("Debounce", 0); | 373 | m_debounce = config.readNumEntry("Debounce", 0); |
374 | #ifdef USEQPE | 374 | #ifdef USEQPE |
375 | m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); | 375 | m_bFloatingDialog = config.readBoolEntry("FloatDialogs", false); |
376 | #else | 376 | #else |
377 | m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true); | 377 | m_bFloatingDialog = config.readBoolEntry("FloatDialogs", true); |
378 | #endif | 378 | #endif |
379 | reader->bstripcr = config.readBoolEntry( "StripCr", true ); | 379 | reader->bstripcr = config.readBoolEntry( "StripCr", true ); |
380 | reader->bfulljust = config.readBoolEntry( "FullJust", false ); | 380 | reader->bfulljust = config.readBoolEntry( "FullJust", false ); |
381 | reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); | 381 | reader->setextraspace(config.readNumEntry( "ExtraSpace", 0 )); |
382 | reader->setlead(config.readNumEntry( "ExtraLead", 0 )); | 382 | reader->setlead(config.readNumEntry( "ExtraLead", 0 )); |
383 | reader->btextfmt = config.readBoolEntry( "TextFmt", false ); | 383 | reader->btextfmt = config.readBoolEntry( "TextFmt", false ); |
384 | reader->bautofmt = config.readBoolEntry( "AutoFmt", true ); | 384 | reader->bautofmt = config.readBoolEntry( "AutoFmt", true ); |
385 | reader->bstriphtml = config.readBoolEntry( "StripHtml", false ); | 385 | reader->bstriphtml = config.readBoolEntry( "StripHtml", false ); |
386 | reader->bpeanut = config.readBoolEntry( "Peanut", false ); | 386 | reader->bpeanut = config.readBoolEntry( "Peanut", false ); |
387 | reader->bdehyphen = config.readBoolEntry( "Dehyphen", false ); | 387 | reader->bdehyphen = config.readBoolEntry( "Dehyphen", false ); |
388 | reader->bdepluck = config.readBoolEntry( "Depluck", false ); | 388 | reader->bdepluck = config.readBoolEntry( "Depluck", false ); |
389 | reader->bdejpluck = config.readBoolEntry( "Dejpluck", false ); | 389 | reader->bdejpluck = config.readBoolEntry( "Dejpluck", false ); |
390 | reader->bonespace = config.readBoolEntry( "OneSpace", false ); | 390 | reader->bonespace = config.readBoolEntry( "OneSpace", false ); |
391 | reader->bunindent = config.readBoolEntry( "Unindent", false ); | 391 | reader->bunindent = config.readBoolEntry( "Unindent", false ); |
392 | reader->brepara = config.readBoolEntry( "Repara", false ); | 392 | reader->brepara = config.readBoolEntry( "Repara", false ); |
393 | reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); | 393 | reader->bdblspce = config.readBoolEntry( "DoubleSpace", false ); |
394 | reader->bindenter = config.readNumEntry( "Indent", 0 ); | 394 | reader->bindenter = config.readNumEntry( "Indent", 0 ); |
395 | reader->m_textsize = config.readNumEntry( "FontSize", 12 ); | 395 | reader->m_textsize = config.readNumEntry( "FontSize", 12 ); |
396 | reader->m_delay = config.readNumEntry( "ScrollDelay", 5184); | 396 | reader->m_delay = config.readNumEntry( "ScrollDelay", 5184); |
397 | reader->m_lastfile = config.readEntry( "LastFile", QString::null ); | 397 | reader->m_lastfile = config.readEntry( "LastFile", QString::null ); |
398 | reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); | 398 | reader->m_lastposn = config.readNumEntry( "LastPosn", 0 ); |
399 | reader->m_bpagemode = config.readBoolEntry( "PageMode", true ); | 399 | reader->m_bpagemode = config.readBoolEntry( "PageMode", true ); |
400 | reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false); | 400 | reader->m_bMonoSpaced = config.readBoolEntry( "MonoSpaced", false); |
401 | reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false); | 401 | reader->m_swapmouse = config.readBoolEntry( "SwapMouse", false); |
402 | reader->m_fontname = config.readEntry( "Fontname", "helvetica" ); | 402 | reader->m_fontname = config.readEntry( "Fontname", "helvetica" ); |
403 | reader->m_encd = config.readNumEntry( "Encoding", 0 ); | 403 | reader->m_encd = config.readNumEntry( "Encoding", 0 ); |
404 | reader->m_charpc = config.readNumEntry( "CharSpacing", 100 ); | 404 | reader->m_charpc = config.readNumEntry( "CharSpacing", 100 ); |
405 | reader->m_overlap = config.readNumEntry( "Overlap", 0 ); | 405 | reader->m_overlap = config.readNumEntry( "Overlap", 0 ); |
406 | reader->m_border = config.readNumEntry( "Margin", 6 ); | 406 | reader->m_border = config.readNumEntry( "Margin", 6 ); |
407 | #ifdef REPALM | 407 | #ifdef REPALM |
408 | reader->brepalm = config.readBoolEntry( "Repalm", true ); | 408 | reader->brepalm = config.readBoolEntry( "Repalm", true ); |
409 | #endif | 409 | #endif |
410 | reader->bremap = config.readBoolEntry( "Remap", true ); | 410 | reader->bremap = config.readBoolEntry( "Remap", true ); |
411 | reader->bmakebold = config.readBoolEntry( "MakeBold", false ); | 411 | reader->bmakebold = config.readBoolEntry( "MakeBold", false ); |
412 | reader->setContinuous(config.readBoolEntry( "Continuous", true )); | 412 | reader->setContinuous(config.readBoolEntry( "Continuous", true )); |
413 | m_targetapp = config.readEntry( "TargetApp", QString::null ); | 413 | m_targetapp = config.readEntry( "TargetApp", QString::null ); |
414 | m_targetmsg = config.readEntry( "TargetMsg", QString::null ); | 414 | m_targetmsg = config.readEntry( "TargetMsg", QString::null ); |
415 | #ifdef _SCROLLPIPE | 415 | #ifdef _SCROLLPIPE |
416 | reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null ); | 416 | reader->m_pipetarget = config.readEntry( "PipeTarget", QString::null ); |
417 | reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true ); | 417 | reader->m_pauseAfterEachPara = config.readBoolEntry( "PauseAfterPara", true ); |
418 | #endif | 418 | #endif |
419 | m_twoTouch = config.readBoolEntry( "TwoTouch", false); | 419 | m_twoTouch = config.readBoolEntry( "TwoTouch", false); |
420 | m_doAnnotation = config.readBoolEntry( "Annotation", false); | 420 | m_doAnnotation = config.readBoolEntry( "Annotation", false); |
421 | m_doDictionary = config.readBoolEntry( "Dictionary", false); | 421 | m_doDictionary = config.readBoolEntry( "Dictionary", false); |
422 | m_doClipboard = config.readBoolEntry( "Clipboard", false); | 422 | m_doClipboard = config.readBoolEntry( "Clipboard", false); |
423 | m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); | 423 | m_spaceTarget = (ActionTypes)config.readNumEntry("SpaceTarget", cesAutoScroll); |
424 | m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); | 424 | m_escapeTarget = (ActionTypes)config.readNumEntry("EscapeTarget", cesNone); |
425 | m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); | 425 | m_returnTarget = (ActionTypes)config.readNumEntry("ReturnTarget", cesFullScreen); |
426 | m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut); | 426 | m_leftTarget = (ActionTypes)config.readNumEntry("LeftTarget", cesZoomOut); |
427 | m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn); | 427 | m_rightTarget = (ActionTypes)config.readNumEntry("RightTarget", cesZoomIn); |
428 | m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp); | 428 | m_upTarget = (ActionTypes)config.readNumEntry("UpTarget", cesPageUp); |
429 | m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown); | 429 | m_downTarget = (ActionTypes)config.readNumEntry("DownTarget", cesPageDown); |
430 | 430 | ||
431 | m_leftScroll = config.readBoolEntry("LeftScroll", false); | 431 | m_leftScroll = config.readBoolEntry("LeftScroll", false); |
432 | m_rightScroll = config.readBoolEntry("RightScroll", false); | 432 | m_rightScroll = config.readBoolEntry("RightScroll", false); |
433 | m_upScroll = config.readBoolEntry("UpScroll", true); | 433 | m_upScroll = config.readBoolEntry("UpScroll", true); |
434 | m_downScroll = config.readBoolEntry("DownScroll", true); | 434 | m_downScroll = config.readBoolEntry("DownScroll", true); |
435 | 435 | ||
436 | m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false); | 436 | m_propogatefontchange = config.readBoolEntry( "RequestorFontChange", false); |
437 | reader->setBaseSize(config.readNumEntry( "Basesize", 10 )); | 437 | reader->setBaseSize(config.readNumEntry( "Basesize", 10 )); |
438 | 438 | ||
439 | #ifndef USEQPE | 439 | #ifndef USEQPE |
440 | config.setGroup( "Geometry" ); | 440 | config.setGroup( "Geometry" ); |
441 | setGeometry(0,0, | 441 | setGeometry(0,0, |
442 | config.readNumEntry( "width", QApplication::desktop()->width()/2 ), | 442 | config.readNumEntry( "width", QApplication::desktop()->width()/2 ), |
443 | config.readNumEntry( "height", QApplication::desktop()->height()/2 )); | 443 | config.readNumEntry( "height", QApplication::desktop()->height()/2 )); |
444 | move( | 444 | move( |
445 | config.readNumEntry( "x", 20 ), | 445 | config.readNumEntry( "x", 20 ), |
446 | config.readNumEntry( "y", 20 )); | 446 | config.readNumEntry( "y", 20 )); |
447 | #endif | 447 | #endif |
448 | 448 | ||
449 | 449 | ||
450 | 450 | ||
451 | setTwoTouch(m_twoTouch); | 451 | setTwoTouch(m_twoTouch); |
452 | 452 | ||
453 | connect( reader, SIGNAL( OnShowPicture(QImage&) ), this, SLOT( showgraphic(QImage&) ) ); | 453 | connect( reader, SIGNAL( OnShowPicture(QImage&) ), this, SLOT( showgraphic(QImage&) ) ); |
454 | 454 | ||
455 | connect( reader, SIGNAL( OnRedraw() ), this, SLOT( OnRedraw() ) ); | 455 | connect( reader, SIGNAL( OnRedraw() ), this, SLOT( OnRedraw() ) ); |
456 | connect( reader, SIGNAL( OnWordSelected(const QString&, size_t, const QString&) ), this, SLOT( OnWordSelected(const QString&, size_t, const QString&) ) ); | 456 | connect( reader, SIGNAL( OnWordSelected(const QString&,size_t,const QString&) ), this, SLOT( OnWordSelected(const QString&,size_t,const QString&) ) ); |
457 | connect( reader, SIGNAL( OnURLSelected(const QString&) ), this, SLOT( OnURLSelected(const QString&) ) ); | 457 | connect( reader, SIGNAL( OnURLSelected(const QString&) ), this, SLOT( OnURLSelected(const QString&) ) ); |
458 | editorStack->addWidget( reader, get_unique_id() ); | 458 | editorStack->addWidget( reader, get_unique_id() ); |
459 | 459 | ||
460 | m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL); | 460 | m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL); |
461 | connect( m_preferences_action, SIGNAL( activated() ), this, SLOT( showprefs() ) ); | 461 | connect( m_preferences_action, SIGNAL( activated() ), this, SLOT( showprefs() ) ); |
462 | m_preferences_action->addTo( settings ); | 462 | m_preferences_action->addTo( settings ); |
463 | 463 | ||
464 | m_saveconfig_action = new QAction( tr( "Save Config" ), QString::null, 0, this, NULL); | 464 | m_saveconfig_action = new QAction( tr( "Save Config" ), QString::null, 0, this, NULL); |
465 | connect( m_saveconfig_action, SIGNAL( activated() ), this, SLOT( SaveConfig() ) ); | 465 | connect( m_saveconfig_action, SIGNAL( activated() ), this, SLOT( SaveConfig() ) ); |
466 | m_saveconfig_action->addTo( settings ); | 466 | m_saveconfig_action->addTo( settings ); |
467 | 467 | ||
468 | m_loadconfig_action = new QAction( tr( "Load Config" ), QString::null, 0, this, NULL); | 468 | m_loadconfig_action = new QAction( tr( "Load Config" ), QString::null, 0, this, NULL); |
469 | connect( m_loadconfig_action, SIGNAL( activated() ), this, SLOT( LoadConfig() ) ); | 469 | connect( m_loadconfig_action, SIGNAL( activated() ), this, SLOT( LoadConfig() ) ); |
470 | m_loadconfig_action->addTo( settings ); | 470 | m_loadconfig_action->addTo( settings ); |
471 | 471 | ||
472 | m_tidyconfig_action = new QAction( tr( "Delete Config" ), QString::null, 0, this, NULL); | 472 | m_tidyconfig_action = new QAction( tr( "Delete Config" ), QString::null, 0, this, NULL); |
473 | connect( m_tidyconfig_action, SIGNAL( activated() ), this, SLOT( TidyConfig() ) ); | 473 | connect( m_tidyconfig_action, SIGNAL( activated() ), this, SLOT( TidyConfig() ) ); |
474 | m_tidyconfig_action->addTo( settings ); | 474 | m_tidyconfig_action->addTo( settings ); |
475 | 475 | ||
476 | settings->insertSeparator(); | 476 | settings->insertSeparator(); |
477 | m_toolbarprefs_action = new QAction( tr( "Toolbars" ), QString::null, 0, this, NULL); | 477 | m_toolbarprefs_action = new QAction( tr( "Toolbars" ), QString::null, 0, this, NULL); |
478 | connect( m_toolbarprefs_action, SIGNAL( activated() ), this, SLOT( showtoolbarprefs() ) ); | 478 | connect( m_toolbarprefs_action, SIGNAL( activated() ), this, SLOT( showtoolbarprefs() ) ); |
479 | m_toolbarprefs_action->addTo( settings ); | 479 | m_toolbarprefs_action->addTo( settings ); |
480 | 480 | ||
481 | m_open_action = new QAction( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 ); | 481 | m_open_action = new QAction( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 ); |
482 | connect( m_open_action, SIGNAL( activated() ), this, SLOT( fileOpen() ) ); | 482 | connect( m_open_action, SIGNAL( activated() ), this, SLOT( fileOpen() ) ); |
483 | m_open_action->addTo( file ); | 483 | m_open_action->addTo( file ); |
484 | 484 | ||
485 | m_close_action = new QAction( tr( "Close" ), geticon( "close" ), QString::null, 0, this, 0 ); | 485 | m_close_action = new QAction( tr( "Close" ), geticon( "close" ), QString::null, 0, this, 0 ); |
486 | connect( m_close_action, SIGNAL( activated() ), this, SLOT( fileClose() ) ); | 486 | connect( m_close_action, SIGNAL( activated() ), this, SLOT( fileClose() ) ); |
487 | m_close_action->addTo( file ); | 487 | m_close_action->addTo( file ); |
488 | 488 | ||
489 | #ifdef _SCRIPT | 489 | #ifdef _SCRIPT |
490 | a = new QAction( tr( "Run Script" ), QString::null, 0, this, NULL); | 490 | a = new QAction( tr( "Run Script" ), QString::null, 0, this, NULL); |
491 | connect( a, SIGNAL( activated() ), this, SLOT( RunScript() ) ); | 491 | connect( a, SIGNAL( activated() ), this, SLOT( RunScript() ) ); |
492 | a->addTo( file ); | 492 | a->addTo( file ); |
493 | #endif | 493 | #endif |
494 | /* | 494 | /* |
495 | a = new QAction( tr( "Revert" ), geticon( "close" ), QString::null, 0, this, 0 ); | 495 | a = new QAction( tr( "Revert" ), geticon( "close" ), QString::null, 0, this, 0 ); |
496 | connect( a, SIGNAL( activated() ), this, SLOT( fileRevert() ) ); | 496 | connect( a, SIGNAL( activated() ), this, SLOT( fileRevert() ) ); |
497 | a->addTo( file ); | 497 | a->addTo( file ); |
498 | 498 | ||
499 | a = new QAction( tr( "Cut" ), geticon( "cut" ), QString::null, 0, this, 0 ); | 499 | a = new QAction( tr( "Cut" ), geticon( "cut" ), QString::null, 0, this, 0 ); |
500 | connect( a, SIGNAL( activated() ), this, SLOT( editCut() ) ); | 500 | connect( a, SIGNAL( activated() ), this, SLOT( editCut() ) ); |
501 | a->addTo( filebar() ); | 501 | a->addTo( filebar() ); |
502 | a->addTo( edit ); | 502 | a->addTo( edit ); |
503 | */ | 503 | */ |
504 | 504 | ||
505 | m_info_action = new QAction( tr( "Info" ), geticon( "UtilsIcon" ), QString::null, 0, this, NULL); | 505 | m_info_action = new QAction( tr( "Info" ), geticon( "UtilsIcon" ), QString::null, 0, this, NULL); |
506 | connect( m_info_action, SIGNAL( activated() ), this, SLOT( showinfo() ) ); | 506 | connect( m_info_action, SIGNAL( activated() ), this, SLOT( showinfo() ) ); |
507 | m_info_action->addTo( file ); | 507 | m_info_action->addTo( file ); |
508 | 508 | ||
509 | m_touch_action = new QAction( tr( "Two/One Touch" ), geticon( "1to1" ), QString::null, 0, this, NULL, true ); | 509 | m_touch_action = new QAction( tr( "Two/One Touch" ), geticon( "1to1" ), QString::null, 0, this, NULL, true ); |
510 | connect( m_touch_action, SIGNAL( toggled(bool) ), this, SLOT( setTwoTouch(bool) ) ); | 510 | connect( m_touch_action, SIGNAL( toggled(bool) ), this, SLOT( setTwoTouch(bool) ) ); |
511 | m_touch_action->setOn(m_twoTouch); | 511 | m_touch_action->setOn(m_twoTouch); |
512 | m_touch_action->addTo( file ); | 512 | m_touch_action->addTo( file ); |
513 | 513 | ||
514 | m_find_action = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, NULL); | 514 | m_find_action = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, NULL); |
515 | connect( m_find_action, SIGNAL( activated() ), this, SLOT( editFind() ) ); | 515 | connect( m_find_action, SIGNAL( activated() ), this, SLOT( editFind() ) ); |
516 | file->insertSeparator(); | 516 | file->insertSeparator(); |
517 | // a->addTo( bar ); | 517 | // a->addTo( bar ); |
518 | m_find_action->addTo( file ); | 518 | m_find_action->addTo( file ); |
519 | 519 | ||
520 | m_exportlinks_action = new QAction( tr( "Export Links" ), QString::null, 0, this, NULL); | 520 | m_exportlinks_action = new QAction( tr( "Export Links" ), QString::null, 0, this, NULL); |
521 | connect( m_exportlinks_action, SIGNAL( activated() ), this, SLOT( ExportLinks() ) ); | 521 | connect( m_exportlinks_action, SIGNAL( activated() ), this, SLOT( ExportLinks() ) ); |
522 | m_exportlinks_action->addTo( file ); | 522 | m_exportlinks_action->addTo( file ); |
523 | 523 | ||
524 | m_scrollButton = new QAction( tr( "Scroll" ), getmyicon( "panel-arrow-down" ), QString::null, 0, this, 0, true ); | 524 | m_scrollButton = new QAction( tr( "Scroll" ), getmyicon( "panel-arrow-down" ), QString::null, 0, this, 0, true ); |
525 | connect( m_scrollButton, SIGNAL( toggled(bool) ), this, SLOT( autoScroll(bool) ) ); | 525 | connect( m_scrollButton, SIGNAL( toggled(bool) ), this, SLOT( autoScroll(bool) ) ); |
526 | m_scrollButton->addTo(navigation); | 526 | m_scrollButton->addTo(navigation); |
527 | m_scrollButton->setOn(false); | 527 | m_scrollButton->setOn(false); |
528 | 528 | ||
529 | m_start_action = new QAction( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL); | 529 | m_start_action = new QAction( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL); |
530 | connect( m_start_action, SIGNAL( activated() ), this, SLOT( gotoStart() ) ); | 530 | connect( m_start_action, SIGNAL( activated() ), this, SLOT( gotoStart() ) ); |
531 | m_start_action->addTo(navigation); | 531 | m_start_action->addTo(navigation); |
532 | 532 | ||
533 | m_end_action = new QAction( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL); | 533 | m_end_action = new QAction( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL); |
534 | connect( m_end_action, SIGNAL( activated() ), this, SLOT( gotoEnd() ) ); | 534 | connect( m_end_action, SIGNAL( activated() ), this, SLOT( gotoEnd() ) ); |
535 | m_end_action->addTo(navigation); | 535 | m_end_action->addTo(navigation); |
536 | 536 | ||
537 | m_jump_action = new QAction( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL); | 537 | m_jump_action = new QAction( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL); |
538 | connect( m_jump_action, SIGNAL( activated() ), this, SLOT( jump() ) ); | 538 | connect( m_jump_action, SIGNAL( activated() ), this, SLOT( jump() ) ); |
539 | m_jump_action->addTo(navigation); | 539 | m_jump_action->addTo(navigation); |
540 | 540 | ||
541 | m_pageline_action = new QAction( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true ); | 541 | m_pageline_action = new QAction( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true ); |
542 | connect( m_pageline_action, SIGNAL( toggled(bool) ), this, SLOT( pagemode(bool) ) ); | 542 | connect( m_pageline_action, SIGNAL( toggled(bool) ), this, SLOT( pagemode(bool) ) ); |
543 | m_pageline_action->addTo(navigation); | 543 | m_pageline_action->addTo(navigation); |
544 | m_pageline_action->setOn(reader->m_bpagemode); | 544 | m_pageline_action->setOn(reader->m_bpagemode); |
545 | 545 | ||
546 | m_pageup_action = new QAction( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 ); | 546 | m_pageup_action = new QAction( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 ); |
547 | connect( m_pageup_action, SIGNAL( activated() ), this, SLOT( pageup() ) ); | 547 | connect( m_pageup_action, SIGNAL( activated() ), this, SLOT( pageup() ) ); |
548 | m_pageup_action->addTo( navigation ); | 548 | m_pageup_action->addTo( navigation ); |
549 | 549 | ||
550 | m_pagedn_action = new QAction( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 ); | 550 | m_pagedn_action = new QAction( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 ); |
551 | connect( m_pagedn_action, SIGNAL( activated() ), this, SLOT( pagedn() ) ); | 551 | connect( m_pagedn_action, SIGNAL( activated() ), this, SLOT( pagedn() ) ); |
552 | m_pagedn_action->addTo( navigation ); | 552 | m_pagedn_action->addTo( navigation ); |
@@ -633,266 +633,266 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) | |||
633 | view->insertSeparator(); | 633 | view->insertSeparator(); |
634 | m_setenc_action = new QAction( tr( "Set Encoding" ), getmyicon( "charset" ), QString::null, 0, this); | 634 | m_setenc_action = new QAction( tr( "Set Encoding" ), getmyicon( "charset" ), QString::null, 0, this); |
635 | connect( m_setenc_action, SIGNAL( activated() ), this, SLOT( chooseencoding() ) ); | 635 | connect( m_setenc_action, SIGNAL( activated() ), this, SLOT( chooseencoding() ) ); |
636 | m_setenc_action->addTo( view ); | 636 | m_setenc_action->addTo( view ); |
637 | 637 | ||
638 | m_setmono_action = new QAction( tr( "Ideogram" ), getmyicon( "ideogram" ), QString::null, 0, this, NULL, true); | 638 | m_setmono_action = new QAction( tr( "Ideogram" ), getmyicon( "ideogram" ), QString::null, 0, this, NULL, true); |
639 | connect( m_setmono_action, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) ); | 639 | connect( m_setmono_action, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) ); |
640 | m_setmono_action->addTo( view ); | 640 | m_setmono_action->addTo( view ); |
641 | m_setmono_action->setOn(reader->m_bMonoSpaced); | 641 | m_setmono_action->setOn(reader->m_bMonoSpaced); |
642 | 642 | ||
643 | 643 | ||
644 | // a = new QAction( tr( "Zoom" ), QString::null, 0, this, NULL, true ); | 644 | // a = new QAction( tr( "Zoom" ), QString::null, 0, this, NULL, true ); |
645 | // a = new QAction( tr( "Zoom" ), geticon( "mag" ), QString::null, 0, this, 0 ); | 645 | // a = new QAction( tr( "Zoom" ), geticon( "mag" ), QString::null, 0, this, 0 ); |
646 | 646 | ||
647 | 647 | ||
648 | 648 | ||
649 | // a->addTo( filebar() ); | 649 | // a->addTo( filebar() ); |
650 | // view->insertSeparator(); | 650 | // view->insertSeparator(); |
651 | 651 | ||
652 | /* | 652 | /* |
653 | a = new QAction( tr( "Ideogram/Word" ), QString::null, 0, this, NULL, true ); | 653 | a = new QAction( tr( "Ideogram/Word" ), QString::null, 0, this, NULL, true ); |
654 | connect( a, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) ); | 654 | connect( a, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) ); |
655 | a->setOn(reader->m_bMonoSpaced); | 655 | a->setOn(reader->m_bMonoSpaced); |
656 | a->addTo( view ); | 656 | a->addTo( view ); |
657 | */ | 657 | */ |
658 | /* | 658 | /* |
659 | a = new QAction( tr( "Set Width" ), QString::null, 0, this, NULL); | 659 | a = new QAction( tr( "Set Width" ), QString::null, 0, this, NULL); |
660 | connect( a, SIGNAL( activated() ), this, SLOT( setspacing() ) ); | 660 | connect( a, SIGNAL( activated() ), this, SLOT( setspacing() ) ); |
661 | a->addTo( view ); | 661 | a->addTo( view ); |
662 | */ | 662 | */ |
663 | 663 | ||
664 | m_mark_action = new QAction( tr( "Bookmark" ), getmyicon( "bookmark" ), QString::null, 0, this, NULL); | 664 | m_mark_action = new QAction( tr( "Bookmark" ), getmyicon( "bookmark" ), QString::null, 0, this, NULL); |
665 | connect( m_mark_action, SIGNAL( activated() ), this, SLOT( addbkmk() ) ); | 665 | connect( m_mark_action, SIGNAL( activated() ), this, SLOT( addbkmk() ) ); |
666 | m_mark_action->addTo( marks ); | 666 | m_mark_action->addTo( marks ); |
667 | 667 | ||
668 | m_annotate_action = new QAction( tr( "Annotate" ), getmyicon( "annotate" ), QString::null, 0, this, NULL); | 668 | m_annotate_action = new QAction( tr( "Annotate" ), getmyicon( "annotate" ), QString::null, 0, this, NULL); |
669 | connect( m_annotate_action, SIGNAL( activated() ), this, SLOT( addanno() ) ); | 669 | connect( m_annotate_action, SIGNAL( activated() ), this, SLOT( addanno() ) ); |
670 | m_annotate_action->addTo( marks ); | 670 | m_annotate_action->addTo( marks ); |
671 | 671 | ||
672 | m_goto_action = new QAction( tr( "Goto" ), getmyicon( "bookmark_goto" ), QString::null, 0, this, NULL, false ); | 672 | m_goto_action = new QAction( tr( "Goto" ), getmyicon( "bookmark_goto" ), QString::null, 0, this, NULL, false ); |
673 | connect( m_goto_action, SIGNAL( activated() ), this, SLOT( do_gotomark() ) ); | 673 | connect( m_goto_action, SIGNAL( activated() ), this, SLOT( do_gotomark() ) ); |
674 | m_goto_action->addTo( marks ); | 674 | m_goto_action->addTo( marks ); |
675 | 675 | ||
676 | m_delete_action = new QAction( tr( "Delete" ), getmyicon( "bookmark_delete" ), QString::null, 0, this, NULL); | 676 | m_delete_action = new QAction( tr( "Delete" ), getmyicon( "bookmark_delete" ), QString::null, 0, this, NULL); |
677 | connect( m_delete_action, SIGNAL( activated() ), this, SLOT( do_delmark() ) ); | 677 | connect( m_delete_action, SIGNAL( activated() ), this, SLOT( do_delmark() ) ); |
678 | m_delete_action->addTo( marks ); | 678 | m_delete_action->addTo( marks ); |
679 | 679 | ||
680 | m_autogen_action = new QAction( tr( "Autogen" ), geticon( "exec" ), QString::null, 0, this, NULL, false ); | 680 | m_autogen_action = new QAction( tr( "Autogen" ), geticon( "exec" ), QString::null, 0, this, NULL, false ); |
681 | connect( m_autogen_action, SIGNAL( activated() ), this, SLOT( do_autogen() ) ); | 681 | connect( m_autogen_action, SIGNAL( activated() ), this, SLOT( do_autogen() ) ); |
682 | marks->insertSeparator(); | 682 | marks->insertSeparator(); |
683 | m_autogen_action->addTo( marks ); | 683 | m_autogen_action->addTo( marks ); |
684 | 684 | ||
685 | m_clear_action = new QAction( tr( "Clear" ), getmyicon( "bookmark_clear" ), QString::null, 0, this, NULL); | 685 | m_clear_action = new QAction( tr( "Clear" ), getmyicon( "bookmark_clear" ), QString::null, 0, this, NULL); |
686 | connect( m_clear_action, SIGNAL( activated() ), this, SLOT( clearBkmkList() ) ); | 686 | connect( m_clear_action, SIGNAL( activated() ), this, SLOT( clearBkmkList() ) ); |
687 | m_clear_action->addTo( marks ); | 687 | m_clear_action->addTo( marks ); |
688 | 688 | ||
689 | m_save_action = new QAction( tr( "Save" ), getmyicon( "bookmark_save" ), QString::null, 0, this, NULL ); | 689 | m_save_action = new QAction( tr( "Save" ), getmyicon( "bookmark_save" ), QString::null, 0, this, NULL ); |
690 | connect( m_save_action, SIGNAL( activated() ), this, SLOT( savebkmks() ) ); | 690 | connect( m_save_action, SIGNAL( activated() ), this, SLOT( savebkmks() ) ); |
691 | m_save_action->addTo( marks ); | 691 | m_save_action->addTo( marks ); |
692 | 692 | ||
693 | m_tidy_action = new QAction( tr( "Tidy" ), getmyicon( "bookmark_tidy" ), QString::null, 0, this, NULL); | 693 | m_tidy_action = new QAction( tr( "Tidy" ), getmyicon( "bookmark_tidy" ), QString::null, 0, this, NULL); |
694 | connect( m_tidy_action, SIGNAL( activated() ), this, SLOT( listBkmkFiles() ) ); | 694 | connect( m_tidy_action, SIGNAL( activated() ), this, SLOT( listBkmkFiles() ) ); |
695 | marks->insertSeparator(); | 695 | marks->insertSeparator(); |
696 | m_tidy_action->addTo( marks ); | 696 | m_tidy_action->addTo( marks ); |
697 | 697 | ||
698 | m_startBlock_action = new QAction( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL); | 698 | m_startBlock_action = new QAction( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL); |
699 | connect( m_startBlock_action, SIGNAL( activated() ), this, SLOT( editMark() ) ); | 699 | connect( m_startBlock_action, SIGNAL( activated() ), this, SLOT( editMark() ) ); |
700 | marks->insertSeparator(); | 700 | marks->insertSeparator(); |
701 | m_startBlock_action->addTo( marks ); | 701 | m_startBlock_action->addTo( marks ); |
702 | 702 | ||
703 | m_endBlock_action = new QAction( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL); | 703 | m_endBlock_action = new QAction( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL); |
704 | connect( m_endBlock_action, SIGNAL( activated() ), this, SLOT( editCopy() ) ); | 704 | connect( m_endBlock_action, SIGNAL( activated() ), this, SLOT( editCopy() ) ); |
705 | m_endBlock_action->addTo( marks ); | 705 | m_endBlock_action->addTo( marks ); |
706 | 706 | ||
707 | m_bkmkAvail = NULL; | 707 | m_bkmkAvail = NULL; |
708 | 708 | ||
709 | 709 | ||
710 | setToolBarsMovable(m_tbmove); | 710 | setToolBarsMovable(m_tbmove); |
711 | addtoolbars(&config); | 711 | addtoolbars(&config); |
712 | 712 | ||
713 | pbar = new QProgressBar(this); | 713 | pbar = new QProgressBar(this); |
714 | pbar->hide(); | 714 | pbar->hide(); |
715 | 715 | ||
716 | searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE ); | 716 | searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE ); |
717 | 717 | ||
718 | searchBar->setHorizontalStretchable( TRUE ); | 718 | searchBar->setHorizontalStretchable( TRUE ); |
719 | 719 | ||
720 | connect(searchBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); | 720 | connect(searchBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); |
721 | 721 | ||
722 | searchEdit = new QLineEdit( searchBar, "searchEdit" ); | 722 | searchEdit = new QLineEdit( searchBar, "searchEdit" ); |
723 | // QFont f("unifont", 16 /*, QFont::Bold*/); | 723 | // QFont f("unifont", 16 /*, QFont::Bold*/); |
724 | // searchEdit->setFont( f ); | 724 | // searchEdit->setFont( f ); |
725 | searchBar->setStretchableWidget( searchEdit ); | 725 | searchBar->setStretchableWidget( searchEdit ); |
726 | 726 | ||
727 | 727 | ||
728 | #ifdef __ISEARCH | 728 | #ifdef __ISEARCH |
729 | connect( searchEdit, SIGNAL( textChanged( const QString & ) ), | 729 | connect( searchEdit, SIGNAL( textChanged(const QString&) ), |
730 | this, SLOT( search( const QString& ) ) ); | 730 | this, SLOT( search(const QString&) ) ); |
731 | #else | 731 | #else |
732 | connect( searchEdit, SIGNAL( returnPressed( ) ), | 732 | connect( searchEdit, SIGNAL( returnPressed() ), |
733 | this, SLOT( search( ) ) ); | 733 | this, SLOT( search() ) ); |
734 | #endif | 734 | #endif |
735 | QAction*a = new QAction( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 ); | 735 | QAction*a = new QAction( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 ); |
736 | connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); | 736 | connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); |
737 | a->addTo( searchBar ); | 737 | a->addTo( searchBar ); |
738 | 738 | ||
739 | a = new QAction( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 ); | 739 | a = new QAction( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 ); |
740 | connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); | 740 | connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); |
741 | a->addTo( searchBar ); | 741 | a->addTo( searchBar ); |
742 | 742 | ||
743 | searchBar->hide(); | 743 | searchBar->hide(); |
744 | 744 | ||
745 | regBar = new QFloatBar( "Autogen", this, QMainWindow::Top, TRUE ); | 745 | regBar = new QFloatBar( "Autogen", this, QMainWindow::Top, TRUE ); |
746 | connect(regBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); | 746 | connect(regBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); |
747 | 747 | ||
748 | regBar->setHorizontalStretchable( TRUE ); | 748 | regBar->setHorizontalStretchable( TRUE ); |
749 | 749 | ||
750 | regEdit = new QLineEdit( regBar, "regEdit" ); | 750 | regEdit = new QLineEdit( regBar, "regEdit" ); |
751 | // regEdit->setFont( f ); | 751 | // regEdit->setFont( f ); |
752 | 752 | ||
753 | regBar->setStretchableWidget( regEdit ); | 753 | regBar->setStretchableWidget( regEdit ); |
754 | 754 | ||
755 | connect( regEdit, SIGNAL( returnPressed( ) ), | 755 | connect( regEdit, SIGNAL( returnPressed() ), |
756 | this, SLOT( do_regaction() ) ); | 756 | this, SLOT( do_regaction() ) ); |
757 | 757 | ||
758 | a = new QAction( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 ); | 758 | a = new QAction( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 ); |
759 | connect( a, SIGNAL( activated() ), this, SLOT( do_regaction() ) ); | 759 | connect( a, SIGNAL( activated() ), this, SLOT( do_regaction() ) ); |
760 | a->addTo( regBar ); | 760 | a->addTo( regBar ); |
761 | 761 | ||
762 | a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 ); | 762 | a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 ); |
763 | connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) ); | 763 | connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) ); |
764 | a->addTo( regBar ); | 764 | a->addTo( regBar ); |
765 | 765 | ||
766 | regBar->hide(); | 766 | regBar->hide(); |
767 | 767 | ||
768 | m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE ); | 768 | m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE ); |
769 | 769 | ||
770 | m_fontBar->setHorizontalStretchable( TRUE ); | 770 | m_fontBar->setHorizontalStretchable( TRUE ); |
771 | 771 | ||
772 | // qDebug("Font selector"); | 772 | // qDebug("Font selector"); |
773 | m_fontSelector = new QComboBox(false, m_fontBar); | 773 | m_fontSelector = new QComboBox(false, m_fontBar); |
774 | m_fontBar->setStretchableWidget( m_fontSelector ); | 774 | m_fontBar->setStretchableWidget( m_fontSelector ); |
775 | { | 775 | { |
776 | #ifndef USEQPE | 776 | #ifndef USEQPE |
777 | QFontDatabase f; | 777 | QFontDatabase f; |
778 | #else | 778 | #else |
779 | FontDatabase f; | 779 | FontDatabase f; |
780 | #endif | 780 | #endif |
781 | QStringList flist = f.families(); | 781 | QStringList flist = f.families(); |
782 | bool realfont = false; | 782 | bool realfont = false; |
783 | for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++) | 783 | for (QStringList::Iterator nm = flist.begin(); nm != flist.end(); nm++) |
784 | { | 784 | { |
785 | if (reader->m_fontname == *nm) | 785 | if (reader->m_fontname == *nm) |
786 | { | 786 | { |
787 | realfont = true; | 787 | realfont = true; |
788 | } | 788 | } |
789 | if ((*nm).contains(FIXEDFONT,false)) reader->m_fontControl.hasCourier(true, *nm); | 789 | if ((*nm).contains(FIXEDFONT,false)) reader->m_fontControl.hasCourier(true, *nm); |
790 | } | 790 | } |
791 | if (!realfont) reader->m_fontname = flist[0]; | 791 | if (!realfont) reader->m_fontname = flist[0]; |
792 | } // delete the FontDatabase!!! | 792 | } // delete the FontDatabase!!! |
793 | connect( m_fontSelector, SIGNAL( activated(const QString& ) ), | 793 | connect( m_fontSelector, SIGNAL( activated(const QString&) ), |
794 | this, SLOT( do_setfont(const QString&) ) ); | 794 | this, SLOT( do_setfont(const QString&) ) ); |
795 | connect( m_fontSelector, SIGNAL( activated(int ) ), | 795 | connect( m_fontSelector, SIGNAL( activated(int) ), |
796 | this, SLOT( do_setencoding(int) ) ); | 796 | this, SLOT( do_setencoding(int) ) ); |
797 | 797 | ||
798 | m_fontBar->hide(); | 798 | m_fontBar->hide(); |
799 | m_fontVisible = false; | 799 | m_fontVisible = false; |
800 | #ifdef USEMSGS | 800 | #ifdef USEMSGS |
801 | connect(qApp, SIGNAL( appMessage(const QCString&, const QByteArray& ) ), | 801 | connect(qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ), |
802 | this, SLOT( msgHandler(const QCString&, const QByteArray&) ) ); | 802 | this, SLOT( msgHandler(const QCString&,const QByteArray&) ) ); |
803 | #endif | 803 | #endif |
804 | // qDebug("Initing"); | 804 | // qDebug("Initing"); |
805 | reader->init(); | 805 | reader->init(); |
806 | // qDebug("Inited"); | 806 | // qDebug("Inited"); |
807 | // m_buttonAction[m_spaceTarget]->setOn(true); | 807 | // m_buttonAction[m_spaceTarget]->setOn(true); |
808 | // qDebug("fonting"); | 808 | // qDebug("fonting"); |
809 | do_setfont(reader->m_fontname); | 809 | do_setfont(reader->m_fontname); |
810 | if (!reader->m_lastfile.isEmpty()) | 810 | if (!reader->m_lastfile.isEmpty()) |
811 | { | 811 | { |
812 | //qDebug("doclnk"); | 812 | //qDebug("doclnk"); |
813 | //doc = new DocLnk(reader->m_lastfile); | 813 | //doc = new DocLnk(reader->m_lastfile); |
814 | //qDebug("doclnk done"); | 814 | //qDebug("doclnk done"); |
815 | if (pOpenlist != NULL) | 815 | if (pOpenlist != NULL) |
816 | { | 816 | { |
817 | 817 | ||
818 | /* | 818 | /* |
819 | int ind = 0; | 819 | int ind = 0; |
820 | Bkmk* p = (*pOpenlist)[ind]; | 820 | Bkmk* p = (*pOpenlist)[ind]; |
821 | while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) | 821 | while (p != NULL && toQString(CFiledata(p->anno()).name()) != reader->m_lastfile) |
822 | { | 822 | { |
823 | p = (*pOpenlist)[++ind]; | 823 | p = (*pOpenlist)[++ind]; |
824 | } | 824 | } |
825 | */ | 825 | */ |
826 | Bkmk* p = NULL; | 826 | Bkmk* p = NULL; |
827 | for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) | 827 | for (CList<Bkmk>::iterator iter = pOpenlist->begin(); iter != pOpenlist->end(); iter++) |
828 | { | 828 | { |
829 | p = iter.pContent(); | 829 | p = iter.pContent(); |
830 | if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile) | 830 | if (toQString(CFiledata(p->anno()).name()) == reader->m_lastfile) |
831 | { | 831 | { |
832 | break; | 832 | break; |
833 | } | 833 | } |
834 | // qDebug("Item:%s", (const char*)toQString(CFiledata(p->anno()).name())); | 834 | // qDebug("Item:%s", (const char*)toQString(CFiledata(p->anno()).name())); |
835 | p = NULL; | 835 | p = NULL; |
836 | } | 836 | } |
837 | if (p != NULL) | 837 | if (p != NULL) |
838 | { | 838 | { |
839 | //qDebug("openfrombkmk"); | 839 | //qDebug("openfrombkmk"); |
840 | if (!openfrombkmk(p)) | 840 | if (!openfrombkmk(p)) |
841 | showEditTools(); | 841 | showEditTools(); |
842 | } | 842 | } |
843 | else | 843 | else |
844 | { | 844 | { |
845 | //qDebug("openfile"); | 845 | //qDebug("openfile"); |
846 | openFile( reader->m_lastfile ); | 846 | openFile( reader->m_lastfile ); |
847 | } | 847 | } |
848 | } | 848 | } |
849 | else | 849 | else |
850 | { | 850 | { |
851 | // qDebug("Openfile 2"); | 851 | // qDebug("Openfile 2"); |
852 | if (!reader->m_lastfile.isEmpty()) | 852 | if (!reader->m_lastfile.isEmpty()) |
853 | openFile( reader->m_lastfile ); | 853 | openFile( reader->m_lastfile ); |
854 | } | 854 | } |
855 | } | 855 | } |
856 | else | 856 | else |
857 | { | 857 | { |
858 | showEditTools(); | 858 | showEditTools(); |
859 | } | 859 | } |
860 | // qApp->processEvents(); | 860 | // qApp->processEvents(); |
861 | reader->bDoUpdates = true; | 861 | reader->bDoUpdates = true; |
862 | reader->update(); | 862 | reader->update(); |
863 | config.setGroup("Version"); | 863 | config.setGroup("Version"); |
864 | int major = config.readNumEntry("Major", 0); | 864 | int major = config.readNumEntry("Major", 0); |
865 | int bkmktype = config.readNumEntry("BkmkType", 0); | 865 | int bkmktype = config.readNumEntry("BkmkType", 0); |
866 | char minor = config.readNumEntry("Minor", 0); | 866 | char minor = config.readNumEntry("Minor", 0); |
867 | if (CheckVersion(major, bkmktype, minor)) | 867 | if (CheckVersion(major, bkmktype, minor)) |
868 | { | 868 | { |
869 | config.writeEntry("Major", major); | 869 | config.writeEntry("Major", major); |
870 | config.writeEntry("BkmkType", bkmktype); | 870 | config.writeEntry("BkmkType", bkmktype); |
871 | config.writeEntry("Minor", (int)minor); | 871 | config.writeEntry("Minor", (int)minor); |
872 | } | 872 | } |
873 | // qDebug("finished update"); | 873 | // qDebug("finished update"); |
874 | } | 874 | } |
875 | 875 | ||
876 | void QTReaderApp::addtoolbars(Config* config) | 876 | void QTReaderApp::addtoolbars(Config* config) |
877 | { | 877 | { |
878 | config->setGroup("Toolbar"); | 878 | config->setGroup("Toolbar"); |
879 | 879 | ||
880 | if (fileBar != NULL) | 880 | if (fileBar != NULL) |
881 | { | 881 | { |
882 | if (fileBar != menubar) | 882 | if (fileBar != menubar) |
883 | { | 883 | { |
884 | fileBar->clear(); | 884 | fileBar->clear(); |
885 | } | 885 | } |
886 | else | 886 | else |
887 | { | 887 | { |
888 | m_preferences_action->removeFrom( filebar() ); | 888 | m_preferences_action->removeFrom( filebar() ); |
889 | m_open_action->removeFrom( filebar() ); | 889 | m_open_action->removeFrom( filebar() ); |
890 | m_close_action->removeFrom( filebar() ); | 890 | m_close_action->removeFrom( filebar() ); |
891 | m_info_action->removeFrom( filebar() ); | 891 | m_info_action->removeFrom( filebar() ); |
892 | m_touch_action->removeFrom( filebar() ); | 892 | m_touch_action->removeFrom( filebar() ); |
893 | m_find_action->removeFrom( filebar() ); | 893 | m_find_action->removeFrom( filebar() ); |
894 | } | 894 | } |
895 | } | 895 | } |
896 | 896 | ||
897 | m_preferences_action->addTo( filebar() ); | 897 | m_preferences_action->addTo( filebar() ); |
898 | addfilebar(config, "Open", m_open_action); | 898 | addfilebar(config, "Open", m_open_action); |
diff --git a/noncore/apps/opie-reader/fileBrowser.cpp b/noncore/apps/opie-reader/fileBrowser.cpp index ebd14f3..e1cde6c 100644 --- a/noncore/apps/opie-reader/fileBrowser.cpp +++ b/noncore/apps/opie-reader/fileBrowser.cpp | |||
@@ -1,176 +1,176 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | 2 | ||
3 | Derived from a file browser which was | 3 | Derived from a file browser which was |
4 | 4 | ||
5 | ** copyright 2001 ljp ljp@llornkcor.com | 5 | ** copyright 2001 ljp ljp@llornkcor.com |
6 | 6 | ||
7 | Extensive modification by Tim Wentford to allow it to work in rotated mode | 7 | Extensive modification by Tim Wentford to allow it to work in rotated mode |
8 | 8 | ||
9 | ****************************************************************************/ | 9 | ****************************************************************************/ |
10 | #include "fileBrowser.h" | 10 | #include "fileBrowser.h" |
11 | 11 | ||
12 | #include "QtrListView.h" | 12 | #include "QtrListView.h" |
13 | #include <qlineedit.h> | 13 | #include <qlineedit.h> |
14 | #include <qpushbutton.h> | 14 | #include <qpushbutton.h> |
15 | #ifndef _WINDOWS | 15 | #ifndef _WINDOWS |
16 | #include <unistd.h> | 16 | #include <unistd.h> |
17 | #endif | 17 | #endif |
18 | #include <qlayout.h> | 18 | #include <qlayout.h> |
19 | #ifdef _WINDOWS | 19 | #ifdef _WINDOWS |
20 | #include <direct.h> | 20 | #include <direct.h> |
21 | #endif | 21 | #endif |
22 | 22 | ||
23 | #include <qpe/qpeapplication.h> | 23 | #include <qpe/qpeapplication.h> |
24 | 24 | ||
25 | 25 | ||
26 | fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter, const QString iPath ) | 26 | fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter, const QString iPath ) |
27 | : QDialog( parent, name, true, | 27 | : QDialog( parent, name, true, |
28 | fl/* | WStyle_Customize | WStyle_Tool*/), | 28 | fl/* | WStyle_Customize | WStyle_Tool*/), |
29 | filterspec(QDir::All) | 29 | filterspec(QDir::All) |
30 | { | 30 | { |
31 | // showMaximized(); | 31 | // showMaximized(); |
32 | if ( !name ) | 32 | if ( !name ) |
33 | setName( "fileBrowser" ); | 33 | setName( "fileBrowser" ); |
34 | /* | 34 | /* |
35 | if (parent != NULL) | 35 | if (parent != NULL) |
36 | { | 36 | { |
37 | #ifdef OPIE | 37 | #ifdef OPIE |
38 | move(0,0); | 38 | move(0,0); |
39 | resize( parent->width(), parent->height() ); | 39 | resize( parent->width(), parent->height() ); |
40 | #else | 40 | #else |
41 | setGeometry(parent->x(), parent->y(), parent->width(), parent->height() ); | 41 | setGeometry(parent->x(), parent->y(), parent->width(), parent->height() ); |
42 | #endif | 42 | #endif |
43 | } | 43 | } |
44 | */ | 44 | */ |
45 | // showFullScreen(); | 45 | // showFullScreen(); |
46 | setCaption(tr( "Browse for file" ) ); | 46 | setCaption(tr( "Browse for file" ) ); |
47 | filterStr=filter; | 47 | filterStr=filter; |
48 | 48 | ||
49 | buttonOk = new QPushButton( this, "buttonOk" ); | 49 | buttonOk = new QPushButton( this, "buttonOk" ); |
50 | buttonOk->setFixedSize( 25, 25 ); | 50 | buttonOk->setFixedSize( 25, 25 ); |
51 | buttonOk->setAutoDefault( false ); | 51 | buttonOk->setAutoDefault( false ); |
52 | buttonOk->setText( tr( "/" ) ); | 52 | buttonOk->setText( tr( "/" ) ); |
53 | 53 | ||
54 | buttonShowHidden = new QPushButton( this, "buttonShowHidden" ); | 54 | buttonShowHidden = new QPushButton( this, "buttonShowHidden" ); |
55 | // buttonShowHidden->setFixedSize( 50, 25 ); | 55 | // buttonShowHidden->setFixedSize( 50, 25 ); |
56 | buttonShowHidden->setText( tr( "Hidden" ) ); | 56 | buttonShowHidden->setText( tr( "Hidden" ) ); |
57 | buttonShowHidden->setAutoDefault( false ); | 57 | buttonShowHidden->setAutoDefault( false ); |
58 | buttonShowHidden->setToggleButton( true ); | 58 | buttonShowHidden->setToggleButton( true ); |
59 | buttonShowHidden->setOn( false ); | 59 | buttonShowHidden->setOn( false ); |
60 | 60 | ||
61 | dirLabel = new QLabel(this, "DirLabel"); | 61 | dirLabel = new QLabel(this, "DirLabel"); |
62 | dirLabel->setAlignment(AlignLeft | AlignVCenter | ExpandTabs | WordBreak); | 62 | dirLabel->setAlignment(AlignLeft | AlignVCenter | ExpandTabs | WordBreak); |
63 | dirLabel->setText(currentDir.canonicalPath()); | 63 | dirLabel->setText(currentDir.canonicalPath()); |
64 | 64 | ||
65 | ListView = new QtrListView( this, "ListView" ); | 65 | ListView = new QtrListView( this, "ListView" ); |
66 | ListView->addColumn( tr( "Name" ) ); | 66 | ListView->addColumn( tr( "Name" ) ); |
67 | ListView->setSorting( 2, FALSE); | 67 | ListView->setSorting( 2, FALSE); |
68 | ListView->addColumn( tr( "Size" ) ); | 68 | ListView->addColumn( tr( "Size" ) ); |
69 | ListView->setSelectionMode(QListView::Single); | 69 | ListView->setSelectionMode(QListView::Single); |
70 | ListView->setAllColumnsShowFocus( TRUE ); | 70 | ListView->setAllColumnsShowFocus( TRUE ); |
71 | ListView->setColumnWidthMode(0, QListView::Manual); | 71 | ListView->setColumnWidthMode(0, QListView::Manual); |
72 | ListView->setColumnWidthMode(1, QListView::Manual); | 72 | ListView->setColumnWidthMode(1, QListView::Manual); |
73 | 73 | ||
74 | // signals and slots connections | 74 | // signals and slots connections |
75 | connect( buttonShowHidden, SIGNAL( toggled(bool) ), this, SLOT( setHidden(bool) ) ); | 75 | connect( buttonShowHidden, SIGNAL( toggled(bool) ), this, SLOT( setHidden(bool) ) ); |
76 | connect( buttonOk, SIGNAL( clicked() ), this, SLOT( OnRoot() ) ); | 76 | connect( buttonOk, SIGNAL( clicked() ), this, SLOT( OnRoot() ) ); |
77 | connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); | 77 | connect( ListView, SIGNAL(doubleClicked(QListViewItem*)), SLOT(listDoubleClicked(QListViewItem*)) ); |
78 | connect( ListView, SIGNAL(clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); | 78 | connect( ListView, SIGNAL(clicked(QListViewItem*)), SLOT(listClicked(QListViewItem*)) ); |
79 | connect( ListView, SIGNAL(OnOKButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); | 79 | connect( ListView, SIGNAL(OnOKButton(QListViewItem*)), SLOT(listClicked(QListViewItem*)) ); |
80 | connect( ListView, SIGNAL(OnCentreButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); | 80 | connect( ListView, SIGNAL(OnCentreButton(QListViewItem*)), SLOT(listClicked(QListViewItem*)) ); |
81 | connect( ListView, SIGNAL(OnCancelButton()), SLOT(OnCancel()) ); | 81 | connect( ListView, SIGNAL(OnCancelButton()), SLOT(OnCancel()) ); |
82 | 82 | ||
83 | QVBoxLayout* grid = new QVBoxLayout(this); | 83 | QVBoxLayout* grid = new QVBoxLayout(this); |
84 | QHBoxLayout* hgrid = new QHBoxLayout(grid); | 84 | QHBoxLayout* hgrid = new QHBoxLayout(grid); |
85 | hgrid->addWidget(dirLabel,1); | 85 | hgrid->addWidget(dirLabel,1); |
86 | hgrid->addWidget(buttonShowHidden); | 86 | hgrid->addWidget(buttonShowHidden); |
87 | hgrid->addWidget(buttonOk); | 87 | hgrid->addWidget(buttonOk); |
88 | grid->addWidget(ListView,1); | 88 | grid->addWidget(ListView,1); |
89 | if (allownew) | 89 | if (allownew) |
90 | { | 90 | { |
91 | m_filename = new QLineEdit(this); | 91 | m_filename = new QLineEdit(this); |
92 | grid->addWidget(m_filename); | 92 | grid->addWidget(m_filename); |
93 | connect( m_filename, SIGNAL( returnPressed() ), this, SLOT( onReturn() )); | 93 | connect( m_filename, SIGNAL( returnPressed() ), this, SLOT( onReturn() )); |
94 | } | 94 | } |
95 | else | 95 | else |
96 | { | 96 | { |
97 | m_filename = NULL; | 97 | m_filename = NULL; |
98 | } | 98 | } |
99 | 99 | ||
100 | if (QFileInfo(iPath).exists()) | 100 | if (QFileInfo(iPath).exists()) |
101 | { | 101 | { |
102 | currentDir.setPath(iPath); | 102 | currentDir.setPath(iPath); |
103 | #ifdef _WINDOWS | 103 | #ifdef _WINDOWS |
104 | _chdir(iPath.latin1()); | 104 | _chdir(iPath.latin1()); |
105 | #else | 105 | #else |
106 | chdir(iPath.latin1()); | 106 | chdir(iPath.latin1()); |
107 | #endif | 107 | #endif |
108 | } | 108 | } |
109 | else | 109 | else |
110 | { | 110 | { |
111 | currentDir.setPath(QDir::currentDirPath()); | 111 | currentDir.setPath(QDir::currentDirPath()); |
112 | chdir(QDir::currentDirPath().latin1()); | 112 | chdir(QDir::currentDirPath().latin1()); |
113 | } | 113 | } |
114 | 114 | ||
115 | populateList(); | 115 | populateList(); |
116 | 116 | ||
117 | if (modal) | 117 | if (modal) |
118 | QPEApplication::showDialog( this ); | 118 | QPEApplication::showDialog( this ); |
119 | } | 119 | } |
120 | 120 | ||
121 | void fileBrowser::resizeEvent(QResizeEvent* e) | 121 | void fileBrowser::resizeEvent(QResizeEvent* e) |
122 | { | 122 | { |
123 | ListView->setColumnWidth(1,(ListView->width())/4); | 123 | ListView->setColumnWidth(1,(ListView->width())/4); |
124 | ListView->setColumnWidth(0,ListView->width()-20-ListView->columnWidth(1)); | 124 | ListView->setColumnWidth(0,ListView->width()-20-ListView->columnWidth(1)); |
125 | } | 125 | } |
126 | 126 | ||
127 | fileBrowser::~fileBrowser() | 127 | fileBrowser::~fileBrowser() |
128 | { | 128 | { |
129 | } | 129 | } |
130 | 130 | ||
131 | 131 | ||
132 | void fileBrowser::populateList() | 132 | void fileBrowser::populateList() |
133 | { | 133 | { |
134 | ListView->clear(); | 134 | ListView->clear(); |
135 | ////qDebug(currentDir.canonicalPath()); | 135 | ////qDebug(currentDir.canonicalPath()); |
136 | // currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::NoSymLinks ); | 136 | // currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::NoSymLinks ); |
137 | currentDir.setFilter( filterspec ); | 137 | currentDir.setFilter( filterspec ); |
138 | currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 138 | currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
139 | currentDir.setMatchAllDirs(TRUE); | 139 | currentDir.setMatchAllDirs(TRUE); |
140 | 140 | ||
141 | currentDir.setNameFilter(filterStr); | 141 | currentDir.setNameFilter(filterStr); |
142 | // currentDir.setNameFilter("*.txt;*.etx"); | 142 | // currentDir.setNameFilter("*.txt;*.etx"); |
143 | QString fileL, fileS; | 143 | QString fileL, fileS; |
144 | const QFileInfoList *list = currentDir.entryInfoList(); | 144 | const QFileInfoList *list = currentDir.entryInfoList(); |
145 | QFileInfoListIterator it(*list); | 145 | QFileInfoListIterator it(*list); |
146 | QFileInfo *fi; | 146 | QFileInfo *fi; |
147 | while ( (fi=it.current()) ) | 147 | while ( (fi=it.current()) ) |
148 | { | 148 | { |
149 | if (fi->fileName() != ".") | 149 | if (fi->fileName() != ".") |
150 | { | 150 | { |
151 | fileS.sprintf( "%10li", fi->size() ); | 151 | fileS.sprintf( "%10li", fi->size() ); |
152 | fileL.sprintf( "%s",fi->fileName().data() ); | 152 | fileL.sprintf( "%s",fi->fileName().data() ); |
153 | if( fi->isDir() ) | 153 | if( fi->isDir() ) |
154 | { | 154 | { |
155 | fileL+="/"; | 155 | fileL+="/"; |
156 | } | 156 | } |
157 | else | 157 | else |
158 | { | 158 | { |
159 | //// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); | 159 | //// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); |
160 | } | 160 | } |
161 | new QListViewItem( ListView,fileL,fileS ); | 161 | new QListViewItem( ListView,fileL,fileS ); |
162 | } | 162 | } |
163 | ++it; | 163 | ++it; |
164 | } | 164 | } |
165 | ListView->setSorting( 2, FALSE); | 165 | ListView->setSorting( 2, FALSE); |
166 | dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath()); | 166 | dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath()); |
167 | ListView->setFocus(); | 167 | ListView->setFocus(); |
168 | } | 168 | } |
169 | 169 | ||
170 | void fileBrowser::upDir() | 170 | void fileBrowser::upDir() |
171 | { | 171 | { |
172 | //// qDebug(currentDir.canonicalPath()); | 172 | //// qDebug(currentDir.canonicalPath()); |
173 | } | 173 | } |
174 | 174 | ||
175 | void fileBrowser::listClicked(QListViewItem *selectedItem) | 175 | void fileBrowser::listClicked(QListViewItem *selectedItem) |
176 | { | 176 | { |
diff --git a/noncore/apps/opie-sheet/mainwindow.cpp b/noncore/apps/opie-sheet/mainwindow.cpp index 1fb2a3d..061748e 100644 --- a/noncore/apps/opie-sheet/mainwindow.cpp +++ b/noncore/apps/opie-sheet/mainwindow.cpp | |||
@@ -1,142 +1,142 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * This program is free software; you can redistribute it and/or modify * | 3 | * This program is free software; you can redistribute it and/or modify * |
4 | * it under the terms of the GNU General Public License as published by * | 4 | * it under the terms of the GNU General Public License as published by * |
5 | * the Free Software Foundation; either version 2 of the License, or * | 5 | * the Free Software Foundation; either version 2 of the License, or * |
6 | * (at your option) any later version. * | 6 | * (at your option) any later version. * |
7 | * * | 7 | * * |
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | 9 | ||
10 | /* | 10 | /* |
11 | * Opie Sheet (formerly Sheet/Qt) | 11 | * Opie Sheet (formerly Sheet/Qt) |
12 | * by Serdar Ozler <sozler@sitebest.com> | 12 | * by Serdar Ozler <sozler@sitebest.com> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include "mainwindow.h" | 15 | #include "mainwindow.h" |
16 | 16 | ||
17 | #include <qpe/resource.h> | 17 | #include <qpe/resource.h> |
18 | #include <qpe/qpeapplication.h> | 18 | #include <qpe/qpeapplication.h> |
19 | 19 | ||
20 | #include <qmessagebox.h> | 20 | #include <qmessagebox.h> |
21 | #include <qradiobutton.h> | 21 | #include <qradiobutton.h> |
22 | 22 | ||
23 | #include "cellformat.h" | 23 | #include "cellformat.h" |
24 | #include "numberdlg.h" | 24 | #include "numberdlg.h" |
25 | #include "textdlg.h" | 25 | #include "textdlg.h" |
26 | #include "sortdlg.h" | 26 | #include "sortdlg.h" |
27 | #include "finddlg.h" | 27 | #include "finddlg.h" |
28 | 28 | ||
29 | #define DEFAULT_NUM_ROWS 300 | 29 | #define DEFAULT_NUM_ROWS 300 |
30 | #define DEFAULT_NUM_COLS (26*3) | 30 | #define DEFAULT_NUM_COLS (26*3) |
31 | #define DEFAULT_NUM_SHEETS 3 | 31 | #define DEFAULT_NUM_SHEETS 3 |
32 | 32 | ||
33 | MainWindow::MainWindow(QWidget *parent, const char* n, WFlags fl) | 33 | MainWindow::MainWindow(QWidget *parent, const char* n, WFlags fl) |
34 | :QMainWindow(parent, n, fl) | 34 | :QMainWindow(parent, n, fl) |
35 | { | 35 | { |
36 | // initialize variables | 36 | // initialize variables |
37 | documentModified=FALSE; | 37 | documentModified=FALSE; |
38 | 38 | ||
39 | // construct objects | 39 | // construct objects |
40 | currentDoc=0; | 40 | currentDoc=0; |
41 | fileSelector=new FileSelector("application/sheet-qt", this, QString::null); | 41 | fileSelector=new FileSelector("application/sheet-qt", this, QString::null); |
42 | ExcelSelector=new FileSelector("application/excel",this,QString::null,FALSE); | 42 | ExcelSelector=new FileSelector("application/excel",this,QString::null,FALSE); |
43 | connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide())); | 43 | connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide())); |
44 | connect(fileSelector, SIGNAL(newSelected(const DocLnk &)), this, SLOT(selectorFileNew(const DocLnk &))); | 44 | connect(fileSelector, SIGNAL(newSelected(const DocLnk&)), this, SLOT(selectorFileNew(const DocLnk&))); |
45 | connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), this, SLOT(selectorFileOpen(const DocLnk &))); | 45 | connect(fileSelector, SIGNAL(fileSelected(const DocLnk&)), this, SLOT(selectorFileOpen(const DocLnk&))); |
46 | connect(ExcelSelector,SIGNAL(fileSelected(const DocLnk &)),this,SLOT(slotImportExcel(const DocLnk &))); | 46 | connect(ExcelSelector,SIGNAL(fileSelected(const DocLnk&)),this,SLOT(slotImportExcel(const DocLnk&))); |
47 | connect(ExcelSelector,SIGNAL(closeMe()), this, SLOT(ExcelSelectorHide())); | 47 | connect(ExcelSelector,SIGNAL(closeMe()), this, SLOT(ExcelSelectorHide())); |
48 | 48 | ||
49 | 49 | ||
50 | listSheets.setAutoDelete(TRUE); | 50 | listSheets.setAutoDelete(TRUE); |
51 | 51 | ||
52 | initActions(); | 52 | initActions(); |
53 | initMenu(); | 53 | initMenu(); |
54 | initEditToolbar(); | 54 | initEditToolbar(); |
55 | initFunctionsToolbar(); | 55 | initFunctionsToolbar(); |
56 | initStandardToolbar(); | 56 | initStandardToolbar(); |
57 | initSheet(); | 57 | initSheet(); |
58 | 58 | ||
59 | // set window title | 59 | // set window title |
60 | setCaption(tr("Opie Sheet")); | 60 | setCaption(tr("Opie Sheet")); |
61 | 61 | ||
62 | // create sheets | 62 | // create sheets |
63 | selectorFileNew(DocLnk()); | 63 | selectorFileNew(DocLnk()); |
64 | } | 64 | } |
65 | 65 | ||
66 | MainWindow::~MainWindow() | 66 | MainWindow::~MainWindow() |
67 | { | 67 | { |
68 | if (currentDoc) delete currentDoc; | 68 | if (currentDoc) delete currentDoc; |
69 | } | 69 | } |
70 | 70 | ||
71 | void MainWindow::documentSave(DocLnk *lnkDoc) | 71 | void MainWindow::documentSave(DocLnk *lnkDoc) |
72 | { | 72 | { |
73 | FileManager fm; | 73 | FileManager fm; |
74 | QByteArray streamBuffer; | 74 | QByteArray streamBuffer; |
75 | QDataStream stream(streamBuffer, IO_WriteOnly); | 75 | QDataStream stream(streamBuffer, IO_WriteOnly); |
76 | 76 | ||
77 | typeSheet *currentSheet=findSheet(sheet->getName()); | 77 | typeSheet *currentSheet=findSheet(sheet->getName()); |
78 | if (!currentSheet) | 78 | if (!currentSheet) |
79 | { | 79 | { |
80 | QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!")); | 80 | QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!")); |
81 | return; | 81 | return; |
82 | } | 82 | } |
83 | sheet->copySheetData(¤tSheet->data); | 83 | sheet->copySheetData(¤tSheet->data); |
84 | stream.writeRawBytes("SQT100", 6); | 84 | stream.writeRawBytes("SQT100", 6); |
85 | stream << (Q_UINT32)listSheets.count(); | 85 | stream << (Q_UINT32)listSheets.count(); |
86 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) | 86 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) |
87 | { | 87 | { |
88 | stream << tempSheet->name << (Q_UINT32)tempSheet->data.count(); | 88 | stream << tempSheet->name << (Q_UINT32)tempSheet->data.count(); |
89 | for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next()) | 89 | for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next()) |
90 | stream << (Q_UINT32)tempCell->col << (Q_UINT32)tempCell->row << tempCell->borders.right << tempCell->borders.bottom << tempCell->background << (Q_UINT32)tempCell->alignment << tempCell->fontColor << tempCell->font << tempCell->data; | 90 | stream << (Q_UINT32)tempCell->col << (Q_UINT32)tempCell->row << tempCell->borders.right << tempCell->borders.bottom << tempCell->background << (Q_UINT32)tempCell->alignment << tempCell->fontColor << tempCell->font << tempCell->data; |
91 | } | 91 | } |
92 | 92 | ||
93 | lnkDoc->setType("application/sheet-qt"); | 93 | lnkDoc->setType("application/sheet-qt"); |
94 | if (!fm.saveFile(*lnkDoc, streamBuffer)) | 94 | if (!fm.saveFile(*lnkDoc, streamBuffer)) |
95 | { | 95 | { |
96 | QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!")); | 96 | QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!")); |
97 | return; | 97 | return; |
98 | } | 98 | } |
99 | documentModified=FALSE; | 99 | documentModified=FALSE; |
100 | } | 100 | } |
101 | 101 | ||
102 | void MainWindow::documentOpen(const DocLnk &lnkDoc) | 102 | void MainWindow::documentOpen(const DocLnk &lnkDoc) |
103 | { | 103 | { |
104 | FileManager fm; | 104 | FileManager fm; |
105 | QByteArray streamBuffer; | 105 | QByteArray streamBuffer; |
106 | if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer)) | 106 | if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer)) |
107 | { | 107 | { |
108 | QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!")); | 108 | QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!")); |
109 | documentModified=FALSE; | 109 | documentModified=FALSE; |
110 | selectorFileNew(DocLnk()); | 110 | selectorFileNew(DocLnk()); |
111 | return; | 111 | return; |
112 | } | 112 | } |
113 | QDataStream stream(streamBuffer, IO_ReadOnly); | 113 | QDataStream stream(streamBuffer, IO_ReadOnly); |
114 | 114 | ||
115 | Q_UINT32 countSheet, countCell, i, j, row, col, alignment; | 115 | Q_UINT32 countSheet, countCell, i, j, row, col, alignment; |
116 | typeSheet *newSheet; | 116 | typeSheet *newSheet; |
117 | typeCellData *newCell; | 117 | typeCellData *newCell; |
118 | 118 | ||
119 | char fileFormat[7]; | 119 | char fileFormat[7]; |
120 | stream.readRawBytes(fileFormat, 6); | 120 | stream.readRawBytes(fileFormat, 6); |
121 | fileFormat[6]=0; | 121 | fileFormat[6]=0; |
122 | if ((QString)fileFormat!="SQT100") | 122 | if ((QString)fileFormat!="SQT100") |
123 | { | 123 | { |
124 | QMessageBox::critical(this, tr("Error"), tr("Invalid file format!")); | 124 | QMessageBox::critical(this, tr("Error"), tr("Invalid file format!")); |
125 | documentModified=FALSE; | 125 | documentModified=FALSE; |
126 | selectorFileNew(DocLnk()); | 126 | selectorFileNew(DocLnk()); |
127 | return; | 127 | return; |
128 | } | 128 | } |
129 | 129 | ||
130 | stream >> countSheet; | 130 | stream >> countSheet; |
131 | for (i=0; i<countSheet; ++i) | 131 | for (i=0; i<countSheet; ++i) |
132 | { | 132 | { |
133 | newSheet=new typeSheet; | 133 | newSheet=new typeSheet; |
134 | newSheet->data.setAutoDelete(TRUE); | 134 | newSheet->data.setAutoDelete(TRUE); |
135 | stream >> newSheet->name >> countCell; | 135 | stream >> newSheet->name >> countCell; |
136 | comboSheets->insertItem(newSheet->name); | 136 | comboSheets->insertItem(newSheet->name); |
137 | 137 | ||
138 | for (j=0; j<countCell; ++j) | 138 | for (j=0; j<countCell; ++j) |
139 | { | 139 | { |
140 | newCell=new typeCellData; | 140 | newCell=new typeCellData; |
141 | stream >> col >> row >> newCell->borders.right >> newCell->borders.bottom >> newCell->background >> alignment >> newCell->fontColor >> newCell->font >> newCell->data; | 141 | stream >> col >> row >> newCell->borders.right >> newCell->borders.bottom >> newCell->background >> alignment >> newCell->fontColor >> newCell->font >> newCell->data; |
142 | newCell->col=col; | 142 | newCell->col=col; |
@@ -487,253 +487,253 @@ void MainWindow::initMenu() | |||
487 | addFlyAction(tr("COS(x)"), tr("COS(x)"), "COS(", submenuFuncTrig); | 487 | addFlyAction(tr("COS(x)"), tr("COS(x)"), "COS(", submenuFuncTrig); |
488 | addFlyAction(tr("TAN(x)"), tr("TAN(x)"), "TAN(", submenuFuncTrig); | 488 | addFlyAction(tr("TAN(x)"), tr("TAN(x)"), "TAN(", submenuFuncTrig); |
489 | addFlyAction(tr("ASIN(x)"), tr("ASIN(x)"), "ASIN(", submenuFuncTrig); | 489 | addFlyAction(tr("ASIN(x)"), tr("ASIN(x)"), "ASIN(", submenuFuncTrig); |
490 | addFlyAction(tr("ACOS(x)"), tr("ACOS(x)"), "ACOS(", submenuFuncTrig); | 490 | addFlyAction(tr("ACOS(x)"), tr("ACOS(x)"), "ACOS(", submenuFuncTrig); |
491 | addFlyAction(tr("ATAN(x)"), tr("ATAN(x)"), "ATAN(", submenuFuncTrig); | 491 | addFlyAction(tr("ATAN(x)"), tr("ATAN(x)"), "ATAN(", submenuFuncTrig); |
492 | addFlyAction(tr("ATAN2(x,y)"), tr("ATAN2(x,y)"), "ATAN2(", submenuFuncTrig); | 492 | addFlyAction(tr("ATAN2(x,y)"), tr("ATAN2(x,y)"), "ATAN2(", submenuFuncTrig); |
493 | submenuFuncTrig->insertSeparator(); | 493 | submenuFuncTrig->insertSeparator(); |
494 | addFlyAction(tr("SINH(x)"), tr("SINH(x)"), "SINH(", submenuFuncTrig); | 494 | addFlyAction(tr("SINH(x)"), tr("SINH(x)"), "SINH(", submenuFuncTrig); |
495 | addFlyAction(tr("COSH(x)"), tr("COSH(x)"), "COSH(", submenuFuncTrig); | 495 | addFlyAction(tr("COSH(x)"), tr("COSH(x)"), "COSH(", submenuFuncTrig); |
496 | addFlyAction(tr("TANH(x)"), tr("TANH(x)"), "TANH(", submenuFuncTrig); | 496 | addFlyAction(tr("TANH(x)"), tr("TANH(x)"), "TANH(", submenuFuncTrig); |
497 | addFlyAction(tr("ACOSH(x)"), tr("ACOSH(x)"), "ACOSH(", submenuFuncTrig); | 497 | addFlyAction(tr("ACOSH(x)"), tr("ACOSH(x)"), "ACOSH(", submenuFuncTrig); |
498 | addFlyAction(tr("ASINH(x)"), tr("ASINH(x)"), "ASINH(", submenuFuncTrig); | 498 | addFlyAction(tr("ASINH(x)"), tr("ASINH(x)"), "ASINH(", submenuFuncTrig); |
499 | addFlyAction(tr("ATANH(x)"), tr("ATANH(x)"), "ATANH(", submenuFuncTrig); | 499 | addFlyAction(tr("ATANH(x)"), tr("ATANH(x)"), "ATANH(", submenuFuncTrig); |
500 | submenuFunc->insertItem(tr("&Trigonometric"), submenuFuncTrig); | 500 | submenuFunc->insertItem(tr("&Trigonometric"), submenuFuncTrig); |
501 | 501 | ||
502 | submenuFuncString=new QPopupMenu; | 502 | submenuFuncString=new QPopupMenu; |
503 | addFlyAction(tr("LEN(s)"), tr("LEN(s)"), "LEN(",submenuFuncString); | 503 | addFlyAction(tr("LEN(s)"), tr("LEN(s)"), "LEN(",submenuFuncString); |
504 | addFlyAction(tr("LEFT(s,num)"), tr("LEFT(s,num)"), "LEFT(",submenuFuncString); | 504 | addFlyAction(tr("LEFT(s,num)"), tr("LEFT(s,num)"), "LEFT(",submenuFuncString); |
505 | addFlyAction(tr("RIGHT(s,num)"), tr("RIGHT(s,num)"), "RIGHT(",submenuFuncString); | 505 | addFlyAction(tr("RIGHT(s,num)"), tr("RIGHT(s,num)"), "RIGHT(",submenuFuncString); |
506 | addFlyAction(tr("MID(s,pos,len)"), tr("MID(s,pos,len)"), "MID(",submenuFuncString); | 506 | addFlyAction(tr("MID(s,pos,len)"), tr("MID(s,pos,len)"), "MID(",submenuFuncString); |
507 | submenuFuncString->insertSeparator(); | 507 | submenuFuncString->insertSeparator(); |
508 | addFlyAction(tr("CONCATENATE(s1,s2..)"), tr("CONCATENATE(s1,s2..)"), "CONCATENATE(",submenuFuncString); | 508 | addFlyAction(tr("CONCATENATE(s1,s2..)"), tr("CONCATENATE(s1,s2..)"), "CONCATENATE(",submenuFuncString); |
509 | addFlyAction(tr("EXACT(s1,s2)"), tr("EXACT(s1,s2)"), "EXACT(",submenuFuncString); | 509 | addFlyAction(tr("EXACT(s1,s2)"), tr("EXACT(s1,s2)"), "EXACT(",submenuFuncString); |
510 | addFlyAction(tr("FIND(what,where,pos)"), | 510 | addFlyAction(tr("FIND(what,where,pos)"), |
511 | tr("FIND(what,where,pos)"), "FIND(",submenuFuncString); | 511 | tr("FIND(what,where,pos)"), "FIND(",submenuFuncString); |
512 | addFlyAction(tr("REPLACE(s,pos,len,ns)"), tr("REPLACE(s,pos,len,ns)"), "REPLACE(",submenuFuncString); | 512 | addFlyAction(tr("REPLACE(s,pos,len,ns)"), tr("REPLACE(s,pos,len,ns)"), "REPLACE(",submenuFuncString); |
513 | addFlyAction(tr("REPT(s,n)"), tr("REPT(s,n)"), "REPT(",submenuFuncString); | 513 | addFlyAction(tr("REPT(s,n)"), tr("REPT(s,n)"), "REPT(",submenuFuncString); |
514 | submenuFuncString->insertSeparator(); | 514 | submenuFuncString->insertSeparator(); |
515 | addFlyAction(tr("UPPER(s)"), tr("UPPER(s)"), "UPPER(",submenuFuncString); | 515 | addFlyAction(tr("UPPER(s)"), tr("UPPER(s)"), "UPPER(",submenuFuncString); |
516 | addFlyAction(tr("LOWER(s)"), tr("LOWER(s)"), "LOWER(",submenuFuncString); | 516 | addFlyAction(tr("LOWER(s)"), tr("LOWER(s)"), "LOWER(",submenuFuncString); |
517 | submenuFunc->insertItem(tr("&Strings"), submenuFuncString); | 517 | submenuFunc->insertItem(tr("&Strings"), submenuFuncString); |
518 | 518 | ||
519 | submenuFuncStat=new QPopupMenu; | 519 | submenuFuncStat=new QPopupMenu; |
520 | addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat); | 520 | addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat); |
521 | addFlyAction(tr("COUNT(range)"), tr("COUNT(range)"), "COUNT(",submenuFuncStat); | 521 | addFlyAction(tr("COUNT(range)"), tr("COUNT(range)"), "COUNT(",submenuFuncStat); |
522 | addFlyAction(tr("COUNTIF(range,eqls)"), tr("COUNTIF(range,eqls)"), "COUNTIF(",submenuFuncStat); | 522 | addFlyAction(tr("COUNTIF(range,eqls)"), tr("COUNTIF(range,eqls)"), "COUNTIF(",submenuFuncStat); |
523 | addFlyAction(tr("MAX(range)"), tr("MAX(range)"), "MAX(",submenuFuncStat); | 523 | addFlyAction(tr("MAX(range)"), tr("MAX(range)"), "MAX(",submenuFuncStat); |
524 | addFlyAction(tr("MIN(range)"), tr("MIN(range)"), "MIN(",submenuFuncStat); | 524 | addFlyAction(tr("MIN(range)"), tr("MIN(range)"), "MIN(",submenuFuncStat); |
525 | addFlyAction(tr("SUM(range)"), tr("SUM(range)"), "SUM(",submenuFuncStat); | 525 | addFlyAction(tr("SUM(range)"), tr("SUM(range)"), "SUM(",submenuFuncStat); |
526 | addFlyAction(tr("SUMSQ(range)"), tr("SUMSQ(range)"), "SUMSQ(",submenuFuncStat); | 526 | addFlyAction(tr("SUMSQ(range)"), tr("SUMSQ(range)"), "SUMSQ(",submenuFuncStat); |
527 | submenuFuncStat->insertSeparator(); | 527 | submenuFuncStat->insertSeparator(); |
528 | addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat); | 528 | addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat); |
529 | addFlyAction(tr("VAR(range)"), tr("VAR(range)"), "VAR(",submenuFuncStat); | 529 | addFlyAction(tr("VAR(range)"), tr("VAR(range)"), "VAR(",submenuFuncStat); |
530 | addFlyAction(tr("VARP(range)"), tr("VARP(range)"), "VARP(",submenuFuncStat); | 530 | addFlyAction(tr("VARP(range)"), tr("VARP(range)"), "VARP(",submenuFuncStat); |
531 | addFlyAction(tr("STDEV(range)"), tr("STDEV(range)"), "STDEV(",submenuFuncStat); | 531 | addFlyAction(tr("STDEV(range)"), tr("STDEV(range)"), "STDEV(",submenuFuncStat); |
532 | addFlyAction(tr("STDEVP(range)"), tr("STDEVP(range)"), "STDEVP(",submenuFuncStat); | 532 | addFlyAction(tr("STDEVP(range)"), tr("STDEVP(range)"), "STDEVP(",submenuFuncStat); |
533 | addFlyAction(tr("SKEW(range)"), tr("SKEW(range)"), "SKEW(",submenuFuncStat); | 533 | addFlyAction(tr("SKEW(range)"), tr("SKEW(range)"), "SKEW(",submenuFuncStat); |
534 | addFlyAction(tr("KURT(range)"), tr("KURT(range)"), "KURT(",submenuFuncStat); | 534 | addFlyAction(tr("KURT(range)"), tr("KURT(range)"), "KURT(",submenuFuncStat); |
535 | submenuFunc->insertItem(tr("Sta&tistical"), submenuFuncStat); | 535 | submenuFunc->insertItem(tr("Sta&tistical"), submenuFuncStat); |
536 | 536 | ||
537 | submenuFuncScientific=new QPopupMenu; | 537 | submenuFuncScientific=new QPopupMenu; |
538 | addFlyAction(tr("BESSELI(x,n)"), tr("BESSELI(x,n)"), "BESSELI(",submenuFuncScientific); | 538 | addFlyAction(tr("BESSELI(x,n)"), tr("BESSELI(x,n)"), "BESSELI(",submenuFuncScientific); |
539 | addFlyAction(tr("BESSELJ(x,n)"), tr("BESSELJ(x,n)"), "BESSELJ(",submenuFuncScientific); | 539 | addFlyAction(tr("BESSELJ(x,n)"), tr("BESSELJ(x,n)"), "BESSELJ(",submenuFuncScientific); |
540 | addFlyAction(tr("BESSELK(x,n)"), tr("BESSELK(x,n)"), "BESSELK(",submenuFuncScientific); | 540 | addFlyAction(tr("BESSELK(x,n)"), tr("BESSELK(x,n)"), "BESSELK(",submenuFuncScientific); |
541 | addFlyAction(tr("BESSELY(x,n)"), tr("BESSELY(x,n)"), "BESSELY(",submenuFuncScientific); | 541 | addFlyAction(tr("BESSELY(x,n)"), tr("BESSELY(x,n)"), "BESSELY(",submenuFuncScientific); |
542 | submenuFuncScientific->insertSeparator(); | 542 | submenuFuncScientific->insertSeparator(); |
543 | addFlyAction(tr("BETAI(x,a,b)"), tr("BETAI(x,a,b)"), "BETAI(",submenuFuncScientific); | 543 | addFlyAction(tr("BETAI(x,a,b)"), tr("BETAI(x,a,b)"), "BETAI(",submenuFuncScientific); |
544 | addFlyAction(tr("ERF(a,b)"), tr("ERF(a,b)"), "ERF(",submenuFuncScientific); | 544 | addFlyAction(tr("ERF(a,b)"), tr("ERF(a,b)"), "ERF(",submenuFuncScientific); |
545 | addFlyAction(tr("ERFC(a,b)"), tr("ERFC(a,b)"), "ERFC(",submenuFuncScientific); | 545 | addFlyAction(tr("ERFC(a,b)"), tr("ERFC(a,b)"), "ERFC(",submenuFuncScientific); |
546 | addFlyAction(tr("GAMMALN(x)"), tr("GAMMALN(x)"), "GAMMALN(",submenuFuncScientific); | 546 | addFlyAction(tr("GAMMALN(x)"), tr("GAMMALN(x)"), "GAMMALN(",submenuFuncScientific); |
547 | addFlyAction(tr("GAMMAP(x,a)"), tr("GAMMAP(x,a)"), "GAMMAP(",submenuFuncScientific); | 547 | addFlyAction(tr("GAMMAP(x,a)"), tr("GAMMAP(x,a)"), "GAMMAP(",submenuFuncScientific); |
548 | addFlyAction(tr("GAMMAQ(x,a)"), tr("GAMMAQ(x,a)"), "GAMMAQ(",submenuFuncScientific); | 548 | addFlyAction(tr("GAMMAQ(x,a)"), tr("GAMMAQ(x,a)"), "GAMMAQ(",submenuFuncScientific); |
549 | submenuFunc->insertItem(tr("Scienti&fic"), submenuFuncScientific); | 549 | submenuFunc->insertItem(tr("Scienti&fic"), submenuFuncScientific); |
550 | 550 | ||
551 | submenuFuncDistr=new QPopupMenu; | 551 | submenuFuncDistr=new QPopupMenu; |
552 | addFlyAction(tr("BETADIST(z,a,b,Q?)"), tr("BETADIST(z,a,b,Q?)"), "BETADIST(",submenuFuncDistr); | 552 | addFlyAction(tr("BETADIST(z,a,b,Q?)"), tr("BETADIST(z,a,b,Q?)"), "BETADIST(",submenuFuncDistr); |
553 | addFlyAction(tr("CHI2DIST(x,n,Q?)"), tr("CHI2DIST(x,n,Q?)"), "CHI2DIST(",submenuFuncDistr); | 553 | addFlyAction(tr("CHI2DIST(x,n,Q?)"), tr("CHI2DIST(x,n,Q?)"), "CHI2DIST(",submenuFuncDistr); |
554 | addFlyAction(tr("CHIDIST(x,n,Q?)"), tr("CHIDIST(x,n,Q?)"), "CHIDIST(",submenuFuncDistr); | 554 | addFlyAction(tr("CHIDIST(x,n,Q?)"), tr("CHIDIST(x,n,Q?)"), "CHIDIST(",submenuFuncDistr); |
555 | addFlyAction(tr("FDIST(z,deg1,deg2,Q?)"), tr("FDIST(z,deg1,deg2,Q?)"), "FDIST(",submenuFuncDistr); | 555 | addFlyAction(tr("FDIST(z,deg1,deg2,Q?)"), tr("FDIST(z,deg1,deg2,Q?)"), "FDIST(",submenuFuncDistr); |
556 | addFlyAction(tr("GAMMADIST(x,a,b,Q?)"), tr("GAMMADIST(x,a,b,Q?)"), "GAMMADIST(",submenuFuncDistr); | 556 | addFlyAction(tr("GAMMADIST(x,a,b,Q?)"), tr("GAMMADIST(x,a,b,Q?)"), "GAMMADIST(",submenuFuncDistr); |
557 | addFlyAction(tr("NORMALDIST(x,m,s,Q?)"), tr("NORMALDIST(x,m,s,Q?)"), "NORMALDIST(",submenuFuncDistr); | 557 | addFlyAction(tr("NORMALDIST(x,m,s,Q?)"), tr("NORMALDIST(x,m,s,Q?)"), "NORMALDIST(",submenuFuncDistr); |
558 | addFlyAction(tr("PHI(x,Q?)"), tr("PHI(x,Q?)"), "PHI(",submenuFuncDistr); | 558 | addFlyAction(tr("PHI(x,Q?)"), tr("PHI(x,Q?)"), "PHI(",submenuFuncDistr); |
559 | addFlyAction(tr("POISSON(x,n,Q?)"), tr("POISSON(x,n,Q?)"), "POISSON(",submenuFuncDistr); | 559 | addFlyAction(tr("POISSON(x,n,Q?)"), tr("POISSON(x,n,Q?)"), "POISSON(",submenuFuncDistr); |
560 | submenuFunc->insertItem(tr("&Distributions"), submenuFuncDistr); | 560 | submenuFunc->insertItem(tr("&Distributions"), submenuFuncDistr); |
561 | 561 | ||
562 | 562 | ||
563 | 563 | ||
564 | menuInsert->insertSeparator(); | 564 | menuInsert->insertSeparator(); |
565 | insertCells->addTo(menuInsert); | 565 | insertCells->addTo(menuInsert); |
566 | insertRows->addTo(menuInsert); | 566 | insertRows->addTo(menuInsert); |
567 | insertCols->addTo(menuInsert); | 567 | insertCols->addTo(menuInsert); |
568 | insertSheets->addTo(menuInsert); | 568 | insertSheets->addTo(menuInsert); |
569 | } | 569 | } |
570 | 570 | ||
571 | void MainWindow::initStandardToolbar() | 571 | void MainWindow::initStandardToolbar() |
572 | { | 572 | { |
573 | toolbarStandard=new QToolBar(this); | 573 | toolbarStandard=new QToolBar(this); |
574 | toolbarStandard->setHorizontalStretchable(TRUE); | 574 | toolbarStandard->setHorizontalStretchable(TRUE); |
575 | moveToolBar(toolbarStandard, Top); | 575 | moveToolBar(toolbarStandard, Top); |
576 | 576 | ||
577 | fileNew->addTo(toolbarStandard); | 577 | fileNew->addTo(toolbarStandard); |
578 | fileOpen->addTo(toolbarStandard); | 578 | fileOpen->addTo(toolbarStandard); |
579 | fileSave->addTo(toolbarStandard); | 579 | fileSave->addTo(toolbarStandard); |
580 | 580 | ||
581 | comboSheets=new QComboBox(toolbarStandard); | 581 | comboSheets=new QComboBox(toolbarStandard); |
582 | toolbarStandard->setStretchableWidget(comboSheets); | 582 | toolbarStandard->setStretchableWidget(comboSheets); |
583 | connect(comboSheets, SIGNAL(activated(const QString &)), this, SLOT(slotSheetChanged(const QString &))); | 583 | connect(comboSheets, SIGNAL(activated(const QString&)), this, SLOT(slotSheetChanged(const QString&))); |
584 | } | 584 | } |
585 | 585 | ||
586 | void MainWindow::initFunctionsToolbar() | 586 | void MainWindow::initFunctionsToolbar() |
587 | { | 587 | { |
588 | toolbarFunctions=new QToolBar(this); | 588 | toolbarFunctions=new QToolBar(this); |
589 | toolbarFunctions->setHorizontalStretchable(TRUE); | 589 | toolbarFunctions->setHorizontalStretchable(TRUE); |
590 | moveToolBar(toolbarFunctions, Bottom); | 590 | moveToolBar(toolbarFunctions, Bottom); |
591 | 591 | ||
592 | funcEqual->addTo(toolbarFunctions); | 592 | funcEqual->addTo(toolbarFunctions); |
593 | funcPlus->addTo(toolbarFunctions); | 593 | funcPlus->addTo(toolbarFunctions); |
594 | funcMinus->addTo(toolbarFunctions); | 594 | funcMinus->addTo(toolbarFunctions); |
595 | funcCross->addTo(toolbarFunctions); | 595 | funcCross->addTo(toolbarFunctions); |
596 | funcDivide->addTo(toolbarFunctions); | 596 | funcDivide->addTo(toolbarFunctions); |
597 | funcParanOpen->addTo(toolbarFunctions); | 597 | funcParanOpen->addTo(toolbarFunctions); |
598 | funcParanClose->addTo(toolbarFunctions); | 598 | funcParanClose->addTo(toolbarFunctions); |
599 | funcComma->addTo(toolbarFunctions); | 599 | funcComma->addTo(toolbarFunctions); |
600 | 600 | ||
601 | toolFunction=new QToolButton(toolbarFunctions); | 601 | toolFunction=new QToolButton(toolbarFunctions); |
602 | toolFunction->setPixmap(Resource::loadPixmap( "opie-sheet/func-func" )); | 602 | toolFunction->setPixmap(Resource::loadPixmap( "opie-sheet/func-func" )); |
603 | toolFunction->setTextLabel(tr("Functions")); | 603 | toolFunction->setTextLabel(tr("Functions")); |
604 | toolFunction->setPopup(submenuFunc); | 604 | toolFunction->setPopup(submenuFunc); |
605 | toolFunction->setPopupDelay(0); | 605 | toolFunction->setPopupDelay(0); |
606 | } | 606 | } |
607 | 607 | ||
608 | void MainWindow::initEditToolbar() | 608 | void MainWindow::initEditToolbar() |
609 | { | 609 | { |
610 | toolbarEdit=new QToolBar(this); | 610 | toolbarEdit=new QToolBar(this); |
611 | toolbarEdit->setHorizontalStretchable(TRUE); | 611 | toolbarEdit->setHorizontalStretchable(TRUE); |
612 | moveToolBar(toolbarEdit, Bottom); | 612 | moveToolBar(toolbarEdit, Bottom); |
613 | 613 | ||
614 | editAccept->addTo(toolbarEdit); | 614 | editAccept->addTo(toolbarEdit); |
615 | editCancel->addTo(toolbarEdit); | 615 | editCancel->addTo(toolbarEdit); |
616 | 616 | ||
617 | editData=new QLineEdit(toolbarEdit); | 617 | editData=new QLineEdit(toolbarEdit); |
618 | toolbarEdit->setStretchableWidget(editData); | 618 | toolbarEdit->setStretchableWidget(editData); |
619 | connect(editData, SIGNAL(returnPressed()), this, SLOT(slotEditAccept())); | 619 | connect(editData, SIGNAL(returnPressed()), this, SLOT(slotEditAccept())); |
620 | 620 | ||
621 | editCellSelect->addTo(toolbarEdit); | 621 | editCellSelect->addTo(toolbarEdit); |
622 | } | 622 | } |
623 | 623 | ||
624 | void MainWindow::slotHelpAbout() | 624 | void MainWindow::slotHelpAbout() |
625 | { | 625 | { |
626 | QDialog dialogAbout(this, 0, TRUE); | 626 | QDialog dialogAbout(this, 0, TRUE); |
627 | dialogAbout.resize(width()-40, height()-80); | 627 | dialogAbout.resize(width()-40, height()-80); |
628 | dialogAbout.setCaption(tr("About Opie Sheet")); | 628 | dialogAbout.setCaption(tr("About Opie Sheet")); |
629 | 629 | ||
630 | QLabel label(tr("Opie Sheet\nSpreadsheet Software for Opie\nQWDC Beta Winner (as Sheet/Qt)\n\nDeveloped by: Serdar Ozler\nRelease 1.0.2\nRelease Date: October 08, 2002\n\nThis product is licensed under GPL. It is freely distributable. If you want to get the latest version and also the source code, please visit the web site.\n\nhttp://qtopia.sitebest.com"), &dialogAbout); | 630 | QLabel label(tr("Opie Sheet\nSpreadsheet Software for Opie\nQWDC Beta Winner (as Sheet/Qt)\n\nDeveloped by: Serdar Ozler\nRelease 1.0.2\nRelease Date: October 08, 2002\n\nThis product is licensed under GPL. It is freely distributable. If you want to get the latest version and also the source code, please visit the web site.\n\nhttp://qtopia.sitebest.com"), &dialogAbout); |
631 | label.setGeometry(dialogAbout.rect()); | 631 | label.setGeometry(dialogAbout.rect()); |
632 | label.setAlignment(Qt::AlignCenter | Qt::WordBreak); | 632 | label.setAlignment(Qt::AlignCenter | Qt::WordBreak); |
633 | 633 | ||
634 | dialogAbout.exec(); | 634 | dialogAbout.exec(); |
635 | } | 635 | } |
636 | 636 | ||
637 | void MainWindow::initSheet() | 637 | void MainWindow::initSheet() |
638 | { | 638 | { |
639 | sheet=new Sheet(DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS, this); | 639 | sheet=new Sheet(DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS, this); |
640 | setCentralWidget(sheet); | 640 | setCentralWidget(sheet); |
641 | 641 | ||
642 | connect(sheet, SIGNAL(currentDataChanged(const QString &)), editData, SLOT(setText(const QString &))); | 642 | connect(sheet, SIGNAL(currentDataChanged(const QString&)), editData, SLOT(setText(const QString&))); |
643 | connect(sheet, SIGNAL(cellClicked(const QString &)), this, SLOT(slotCellClicked(const QString &))); | 643 | connect(sheet, SIGNAL(cellClicked(const QString&)), this, SLOT(slotCellClicked(const QString&))); |
644 | connect(sheet, SIGNAL(sheetModified()), this, SLOT(slotDocModified())); | 644 | connect(sheet, SIGNAL(sheetModified()), this, SLOT(slotDocModified())); |
645 | 645 | ||
646 | connect(editCut, SIGNAL(activated()), sheet, SLOT(editCut())); | 646 | connect(editCut, SIGNAL(activated()), sheet, SLOT(editCut())); |
647 | connect(editCopy, SIGNAL(activated()), sheet, SLOT(editCopy())); | 647 | connect(editCopy, SIGNAL(activated()), sheet, SLOT(editCopy())); |
648 | connect(editClear, SIGNAL(activated()), sheet, SLOT(editClear())); | 648 | connect(editClear, SIGNAL(activated()), sheet, SLOT(editClear())); |
649 | } | 649 | } |
650 | 650 | ||
651 | void MainWindow::slotEditAccept() | 651 | void MainWindow::slotEditAccept() |
652 | { | 652 | { |
653 | sheet->setData(editData->text()); | 653 | sheet->setData(editData->text()); |
654 | } | 654 | } |
655 | 655 | ||
656 | void MainWindow::slotEditCancel() | 656 | void MainWindow::slotEditCancel() |
657 | { | 657 | { |
658 | editData->setText(sheet->getData()); | 658 | editData->setText(sheet->getData()); |
659 | } | 659 | } |
660 | 660 | ||
661 | void MainWindow::slotCellSelect(bool lock) | 661 | void MainWindow::slotCellSelect(bool lock) |
662 | { | 662 | { |
663 | sheet->lockClicks(lock); | 663 | sheet->lockClicks(lock); |
664 | } | 664 | } |
665 | 665 | ||
666 | void MainWindow::addToData(const QString &data) | 666 | void MainWindow::addToData(const QString &data) |
667 | { | 667 | { |
668 | editData->setText(editData->text().insert(editData->cursorPosition(), data)); | 668 | editData->setText(editData->text().insert(editData->cursorPosition(), data)); |
669 | } | 669 | } |
670 | 670 | ||
671 | void MainWindow::slotFuncOutput() | 671 | void MainWindow::slotFuncOutput() |
672 | { | 672 | { |
673 | if (sender()->isA("QAction")) | 673 | if (sender()->isA("QAction")) |
674 | addToData(((QAction *)sender())->toolTip()); | 674 | addToData(((QAction *)sender())->toolTip()); |
675 | } | 675 | } |
676 | 676 | ||
677 | void MainWindow::slotInsertRows() | 677 | void MainWindow::slotInsertRows() |
678 | { | 678 | { |
679 | NumberDialog dialogNumber(this); | 679 | NumberDialog dialogNumber(this); |
680 | if (dialogNumber.exec(tr("Insert Rows"), tr("&Number of rows:"))==QDialog::Accepted) | 680 | if (dialogNumber.exec(tr("Insert Rows"), tr("&Number of rows:"))==QDialog::Accepted) |
681 | sheet->insertRows(dialogNumber.getValue()); | 681 | sheet->insertRows(dialogNumber.getValue()); |
682 | } | 682 | } |
683 | 683 | ||
684 | void MainWindow::slotInsertCols() | 684 | void MainWindow::slotInsertCols() |
685 | { | 685 | { |
686 | NumberDialog dialogNumber(this); | 686 | NumberDialog dialogNumber(this); |
687 | if (dialogNumber.exec(tr("Insert Columns"), tr("&Number of columns:"))==QDialog::Accepted) | 687 | if (dialogNumber.exec(tr("Insert Columns"), tr("&Number of columns:"))==QDialog::Accepted) |
688 | sheet->insertColumns(dialogNumber.getValue()); | 688 | sheet->insertColumns(dialogNumber.getValue()); |
689 | } | 689 | } |
690 | 690 | ||
691 | void MainWindow::slotInsertSheets() | 691 | void MainWindow::slotInsertSheets() |
692 | { | 692 | { |
693 | NumberDialog dialogNumber(this); | 693 | NumberDialog dialogNumber(this); |
694 | if (dialogNumber.exec(tr("Add Sheets"), tr("&Number of sheets:"))==QDialog::Accepted) | 694 | if (dialogNumber.exec(tr("Add Sheets"), tr("&Number of sheets:"))==QDialog::Accepted) |
695 | for (int i=dialogNumber.getValue(); i>0; --i) createNewSheet(); | 695 | for (int i=dialogNumber.getValue(); i>0; --i) createNewSheet(); |
696 | } | 696 | } |
697 | 697 | ||
698 | void MainWindow::slotCellClicked(const QString &cell) | 698 | void MainWindow::slotCellClicked(const QString &cell) |
699 | { | 699 | { |
700 | editCellSelect->setOn(FALSE); | 700 | editCellSelect->setOn(FALSE); |
701 | addToData(cell); | 701 | addToData(cell); |
702 | } | 702 | } |
703 | 703 | ||
704 | typeSheet *MainWindow::createNewSheet() | 704 | typeSheet *MainWindow::createNewSheet() |
705 | { | 705 | { |
706 | typeSheet *newSheet=new typeSheet; | 706 | typeSheet *newSheet=new typeSheet; |
707 | int currentNo=1, tempNo=0; | 707 | int currentNo=1, tempNo=0; |
708 | bool ok; | 708 | bool ok; |
709 | 709 | ||
710 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) | 710 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) |
711 | if (tempSheet->name.startsWith(tr("Sheet")) && (tempNo=tempSheet->name.mid(tr("Sheet").length()).toInt(&ok))>=currentNo && ok) | 711 | if (tempSheet->name.startsWith(tr("Sheet")) && (tempNo=tempSheet->name.mid(tr("Sheet").length()).toInt(&ok))>=currentNo && ok) |
712 | currentNo=tempNo+1; | 712 | currentNo=tempNo+1; |
713 | 713 | ||
714 | newSheet->name=tr("Sheet")+QString::number(currentNo); | 714 | newSheet->name=tr("Sheet")+QString::number(currentNo); |
715 | newSheet->data.setAutoDelete(TRUE); | 715 | newSheet->data.setAutoDelete(TRUE); |
716 | 716 | ||
717 | comboSheets->insertItem(newSheet->name); | 717 | comboSheets->insertItem(newSheet->name); |
718 | listSheets.append(newSheet); | 718 | listSheets.append(newSheet); |
719 | return newSheet; | 719 | return newSheet; |
720 | } | 720 | } |
721 | 721 | ||
722 | typeSheet *MainWindow::findSheet(const QString &name) | 722 | typeSheet *MainWindow::findSheet(const QString &name) |
723 | { | 723 | { |
724 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) | 724 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) |
725 | if (tempSheet->name==name) | 725 | if (tempSheet->name==name) |
726 | return tempSheet; | 726 | return tempSheet; |
727 | return NULL; | 727 | return NULL; |
728 | } | 728 | } |
729 | 729 | ||
730 | void MainWindow::slotSheetChanged(const QString &name) | 730 | void MainWindow::slotSheetChanged(const QString &name) |
731 | { | 731 | { |
732 | sheet->copySheetData(&findSheet(sheet->getName())->data); | 732 | sheet->copySheetData(&findSheet(sheet->getName())->data); |
733 | sheet->setName(name); | 733 | sheet->setName(name); |
734 | sheet->setSheetData(&findSheet(name)->data); | 734 | sheet->setSheetData(&findSheet(name)->data); |
735 | sheet->ReCalc(); | 735 | sheet->ReCalc(); |
736 | } | 736 | } |
737 | 737 | ||
738 | void MainWindow::addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w) | 738 | void MainWindow::addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w) |
739 | { | 739 | { |
diff --git a/noncore/apps/opie-sheet/sheet.cpp b/noncore/apps/opie-sheet/sheet.cpp index f303d33..d4419af 100644 --- a/noncore/apps/opie-sheet/sheet.cpp +++ b/noncore/apps/opie-sheet/sheet.cpp | |||
@@ -1,143 +1,143 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * This program is free software; you can redistribute it and/or modify * | 3 | * This program is free software; you can redistribute it and/or modify * |
4 | * it under the terms of the GNU General Public License as published by * | 4 | * it under the terms of the GNU General Public License as published by * |
5 | * the Free Software Foundation; either version 2 of the License, or * | 5 | * the Free Software Foundation; either version 2 of the License, or * |
6 | * (at your option) any later version. * | 6 | * (at your option) any later version. * |
7 | * * | 7 | * * |
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | 9 | ||
10 | /* | 10 | /* |
11 | * Opie Sheet (formerly Sheet/Qt) | 11 | * Opie Sheet (formerly Sheet/Qt) |
12 | * by Serdar Ozler <sozler@sitebest.com> | 12 | * by Serdar Ozler <sozler@sitebest.com> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include "sheet.h" | 15 | #include "sheet.h" |
16 | 16 | ||
17 | #include <qmessagebox.h> | 17 | #include <qmessagebox.h> |
18 | #include <math.h> | 18 | #include <math.h> |
19 | #include <stdlib.h> | 19 | #include <stdlib.h> |
20 | #include <stdio.h> | 20 | #include <stdio.h> |
21 | #include <time.h> | 21 | #include <time.h> |
22 | 22 | ||
23 | #define DEFAULT_COL_WIDTH 50 | 23 | #define DEFAULT_COL_WIDTH 50 |
24 | 24 | ||
25 | Sheet::Sheet(int numRows, int numCols, QWidget *parent) | 25 | Sheet::Sheet(int numRows, int numCols, QWidget *parent) |
26 | :QTable(numRows, numCols, parent) | 26 | :QTable(numRows, numCols, parent) |
27 | { | 27 | { |
28 | defaultBorders.right=defaultBorders.bottom=QPen(Qt::gray, 1, Qt::SolidLine); | 28 | defaultBorders.right=defaultBorders.bottom=QPen(Qt::gray, 1, Qt::SolidLine); |
29 | defaultCellData.data=""; | 29 | defaultCellData.data=""; |
30 | defaultCellData.background=QBrush(Qt::white, Qt::SolidPattern); | 30 | defaultCellData.background=QBrush(Qt::white, Qt::SolidPattern); |
31 | defaultCellData.alignment=(Qt::AlignmentFlags)(Qt::AlignLeft | Qt::AlignTop); | 31 | defaultCellData.alignment=(Qt::AlignmentFlags)(Qt::AlignLeft | Qt::AlignTop); |
32 | defaultCellData.fontColor=Qt::black; | 32 | defaultCellData.fontColor=Qt::black; |
33 | defaultCellData.font=font(); | 33 | defaultCellData.font=font(); |
34 | defaultCellData.borders=defaultBorders; | 34 | defaultCellData.borders=defaultBorders; |
35 | 35 | ||
36 | clicksLocked=FALSE; | 36 | clicksLocked=FALSE; |
37 | selectionNo=-1; | 37 | selectionNo=-1; |
38 | setSelectionMode(QTable::Single); | 38 | setSelectionMode(QTable::Single); |
39 | 39 | ||
40 | sheetData.setAutoDelete(TRUE); | 40 | sheetData.setAutoDelete(TRUE); |
41 | clipboardData.setAutoDelete(TRUE); | 41 | clipboardData.setAutoDelete(TRUE); |
42 | for (int i=0; i<numCols; ++i) | 42 | for (int i=0; i<numCols; ++i) |
43 | horizontalHeader()->setLabel(i, getHeaderString(i+1), DEFAULT_COL_WIDTH); | 43 | horizontalHeader()->setLabel(i, getHeaderString(i+1), DEFAULT_COL_WIDTH); |
44 | 44 | ||
45 | 45 | ||
46 | connect(this, SIGNAL(currentChanged(int, int)), this, SLOT(slotCellSelected(int, int))); | 46 | connect(this, SIGNAL(currentChanged(int,int)), this, SLOT(slotCellSelected(int,int))); |
47 | connect(this, SIGNAL(valueChanged(int, int)), this, SLOT(slotCellChanged(int, int))); | 47 | connect(this, SIGNAL(valueChanged(int,int)), this, SLOT(slotCellChanged(int,int))); |
48 | } | 48 | } |
49 | 49 | ||
50 | Sheet::~Sheet() | 50 | Sheet::~Sheet() |
51 | { | 51 | { |
52 | } | 52 | } |
53 | 53 | ||
54 | typeCellData *Sheet::findCellData(int row, int col) | 54 | typeCellData *Sheet::findCellData(int row, int col) |
55 | { | 55 | { |
56 | typeCellData *tempCellData; | 56 | typeCellData *tempCellData; |
57 | for (tempCellData=sheetData.first(); tempCellData; tempCellData=sheetData.next()) | 57 | for (tempCellData=sheetData.first(); tempCellData; tempCellData=sheetData.next()) |
58 | { | 58 | { |
59 | if (tempCellData->row==row && tempCellData->col==col) return tempCellData; | 59 | if (tempCellData->row==row && tempCellData->col==col) return tempCellData; |
60 | } | 60 | } |
61 | return NULL; | 61 | return NULL; |
62 | } | 62 | } |
63 | 63 | ||
64 | void Sheet::slotCellSelected(int row, int col) | 64 | void Sheet::slotCellSelected(int row, int col) |
65 | { | 65 | { |
66 | typeCellData *cellData=findCellData(row, col); | 66 | typeCellData *cellData=findCellData(row, col); |
67 | if (cellData) | 67 | if (cellData) |
68 | { | 68 | { |
69 | emit currentDataChanged(cellData->data); | 69 | emit currentDataChanged(cellData->data); |
70 | }else | 70 | }else |
71 | emit currentDataChanged(""); | 71 | emit currentDataChanged(""); |
72 | } | 72 | } |
73 | 73 | ||
74 | typeCellData *Sheet::createCellData(int row, int col) | 74 | typeCellData *Sheet::createCellData(int row, int col) |
75 | { | 75 | { |
76 | if (row<0 || col<0) return NULL; | 76 | if (row<0 || col<0) return NULL; |
77 | typeCellData *cellData=new typeCellData; | 77 | typeCellData *cellData=new typeCellData; |
78 | cellData->row=row; | 78 | cellData->row=row; |
79 | cellData->col=col; | 79 | cellData->col=col; |
80 | cellData->data=defaultCellData.data; | 80 | cellData->data=defaultCellData.data; |
81 | cellData->borders=defaultCellData.borders; | 81 | cellData->borders=defaultCellData.borders; |
82 | cellData->alignment=defaultCellData.alignment; | 82 | cellData->alignment=defaultCellData.alignment; |
83 | cellData->font=defaultCellData.font; | 83 | cellData->font=defaultCellData.font; |
84 | cellData->fontColor=defaultCellData.fontColor; | 84 | cellData->fontColor=defaultCellData.fontColor; |
85 | cellData->background=defaultCellData.background; | 85 | cellData->background=defaultCellData.background; |
86 | sheetData.append(cellData); | 86 | sheetData.append(cellData); |
87 | return cellData; | 87 | return cellData; |
88 | } | 88 | } |
89 | 89 | ||
90 | void Sheet::slotCellChanged(int row, int col) | 90 | void Sheet::slotCellChanged(int row, int col) |
91 | { | 91 | { |
92 | typeCellData *cellData=findCellData(row, col); | 92 | typeCellData *cellData=findCellData(row, col); |
93 | if (!cellData) cellData=createCellData(row, col); | 93 | if (!cellData) cellData=createCellData(row, col); |
94 | if (cellData) cellData->data=text(row, col); | 94 | if (cellData) cellData->data=text(row, col); |
95 | for (cellData=sheetData.first(); cellData; cellData=sheetData.next()) | 95 | for (cellData=sheetData.first(); cellData; cellData=sheetData.next()) |
96 | { | 96 | { |
97 | // modified by Toussis Manolis koppermind@panafonet.gr | 97 | // modified by Toussis Manolis koppermind@panafonet.gr |
98 | // the parser was crashing if there were no closed parenthesis. | 98 | // the parser was crashing if there were no closed parenthesis. |
99 | int w1,ii=0; | 99 | int w1,ii=0; |
100 | for(w1=0;w1<=(int)text(row, col).length();w1++) | 100 | for(w1=0;w1<=(int)text(row, col).length();w1++) |
101 | { | 101 | { |
102 | if(text(row,col)[w1]=='(') ii++; | 102 | if(text(row,col)[w1]=='(') ii++; |
103 | if(text(row,col)[w1]==')') ii--; | 103 | if(text(row,col)[w1]==')') ii--; |
104 | }; | 104 | }; |
105 | if(ii==0) setText(cellData->row, cellData->col, dataParser(findCellName(cellData->row, cellData->col), cellData->data)); | 105 | if(ii==0) setText(cellData->row, cellData->col, dataParser(findCellName(cellData->row, cellData->col), cellData->data)); |
106 | //end of modification | 106 | //end of modification |
107 | // old was plain: | 107 | // old was plain: |
108 | //setText(cellData->row, cellData->col, dataParser(findCellName(cellData->row, cellData->col), cellData->data)); | 108 | //setText(cellData->row, cellData->col, dataParser(findCellName(cellData->row, cellData->col), cellData->data)); |
109 | }; | 109 | }; |
110 | emit sheetModified(); | 110 | emit sheetModified(); |
111 | } | 111 | } |
112 | 112 | ||
113 | 113 | ||
114 | void Sheet::ReCalc(void) | 114 | void Sheet::ReCalc(void) |
115 | { | 115 | { |
116 | typeCellData* cellData; | 116 | typeCellData* cellData; |
117 | for (cellData=sheetData.first(); cellData; cellData=sheetData.next()) | 117 | for (cellData=sheetData.first(); cellData; cellData=sheetData.next()) |
118 | { | 118 | { |
119 | //printf("cellchanged:%d, %d\r\n",cellData->row,cellData->col); | 119 | //printf("cellchanged:%d, %d\r\n",cellData->row,cellData->col); |
120 | 120 | ||
121 | slotCellChanged(cellData->row,cellData->col); | 121 | slotCellChanged(cellData->row,cellData->col); |
122 | }; | 122 | }; |
123 | }; | 123 | }; |
124 | 124 | ||
125 | 125 | ||
126 | 126 | ||
127 | 127 | ||
128 | void Sheet::swapCells(int row1, int col1, int row2, int col2) | 128 | void Sheet::swapCells(int row1, int col1, int row2, int col2) |
129 | { | 129 | { |
130 | typeCellData *cellData1=findCellData(row1, col1), *cellData2=findCellData(row2, col2); | 130 | typeCellData *cellData1=findCellData(row1, col1), *cellData2=findCellData(row2, col2); |
131 | if (!cellData1) cellData1=createCellData(row1, col1); | 131 | if (!cellData1) cellData1=createCellData(row1, col1); |
132 | if (!cellData2) cellData2=createCellData(row2, col2); | 132 | if (!cellData2) cellData2=createCellData(row2, col2); |
133 | if (cellData1 && cellData2) | 133 | if (cellData1 && cellData2) |
134 | { | 134 | { |
135 | QString tempData(cellData1->data); | 135 | QString tempData(cellData1->data); |
136 | cellData1->data=cellData2->data; | 136 | cellData1->data=cellData2->data; |
137 | cellData2->data=tempData; | 137 | cellData2->data=tempData; |
138 | setText(cellData1->row, cellData1->col, dataParser(findCellName(cellData1->row, cellData1->col), cellData1->data)); | 138 | setText(cellData1->row, cellData1->col, dataParser(findCellName(cellData1->row, cellData1->col), cellData1->data)); |
139 | setText(cellData2->row, cellData2->col, dataParser(findCellName(cellData2->row, cellData2->col), cellData2->data)); | 139 | setText(cellData2->row, cellData2->col, dataParser(findCellName(cellData2->row, cellData2->col), cellData2->data)); |
140 | emit sheetModified(); | 140 | emit sheetModified(); |
141 | } | 141 | } |
142 | } | 142 | } |
143 | 143 | ||
diff --git a/noncore/apps/opie-write/mainwindow.cpp b/noncore/apps/opie-write/mainwindow.cpp index 6bb524f..90e1a70 100644 --- a/noncore/apps/opie-write/mainwindow.cpp +++ b/noncore/apps/opie-write/mainwindow.cpp | |||
@@ -30,345 +30,345 @@ | |||
30 | #include <qaction.h> | 30 | #include <qaction.h> |
31 | #include <qtoolbar.h> | 31 | #include <qtoolbar.h> |
32 | #include <qtoolbutton.h> | 32 | #include <qtoolbutton.h> |
33 | #include <qtabwidget.h> | 33 | #include <qtabwidget.h> |
34 | #include <qapplication.h> | 34 | #include <qapplication.h> |
35 | #include <qfontdatabase.h> | 35 | #include <qfontdatabase.h> |
36 | #include <qcombobox.h> | 36 | #include <qcombobox.h> |
37 | #include <qlineedit.h> | 37 | #include <qlineedit.h> |
38 | #include <qfileinfo.h> | 38 | #include <qfileinfo.h> |
39 | #include <qfile.h> | 39 | #include <qfile.h> |
40 | #include <qfiledialog.h> | 40 | #include <qfiledialog.h> |
41 | #include <qprinter.h> | 41 | #include <qprinter.h> |
42 | #include <qpaintdevicemetrics.h> | 42 | #include <qpaintdevicemetrics.h> |
43 | #include <qmenubar.h> | 43 | #include <qmenubar.h> |
44 | #include <qpopupmenu.h> | 44 | #include <qpopupmenu.h> |
45 | #include <qcolordialog.h> | 45 | #include <qcolordialog.h> |
46 | #include <qpainter.h> | 46 | #include <qpainter.h> |
47 | #include <qstyle.h> | 47 | #include <qstyle.h> |
48 | 48 | ||
49 | class ButtonMenu : public QToolButton | 49 | class ButtonMenu : public QToolButton |
50 | { | 50 | { |
51 | Q_OBJECT | 51 | Q_OBJECT |
52 | public: | 52 | public: |
53 | ButtonMenu( QWidget *parent, const char *name=0 ) | 53 | ButtonMenu( QWidget *parent, const char *name=0 ) |
54 | : QToolButton( parent, name ), current(0) | 54 | : QToolButton( parent, name ), current(0) |
55 | { | 55 | { |
56 | setPopup( new QPopupMenu( this ) ); | 56 | setPopup( new QPopupMenu( this ) ); |
57 | setPopupDelay( 1 ); | 57 | setPopupDelay( 1 ); |
58 | connect( popup(), SIGNAL(activated(int)), this, SLOT(selected(int)) ); | 58 | connect( popup(), SIGNAL(activated(int)), this, SLOT(selected(int)) ); |
59 | } | 59 | } |
60 | 60 | ||
61 | int insertItem(const QIconSet &icon, const QString &text, int id ) { | 61 | int insertItem(const QIconSet &icon, const QString &text, int id ) { |
62 | if ( !popup()->count() ) { | 62 | if ( !popup()->count() ) { |
63 | setIconSet( icon ); | 63 | setIconSet( icon ); |
64 | current = id; | 64 | current = id; |
65 | } | 65 | } |
66 | return popup()->insertItem( icon, text, id ); | 66 | return popup()->insertItem( icon, text, id ); |
67 | } | 67 | } |
68 | 68 | ||
69 | void setCurrentItem( int id ) { | 69 | void setCurrentItem( int id ) { |
70 | if ( id != current ) { | 70 | if ( id != current ) { |
71 | current = id; | 71 | current = id; |
72 | setIconSet( *popup()->iconSet( id ) ); | 72 | setIconSet( *popup()->iconSet( id ) ); |
73 | } | 73 | } |
74 | } | 74 | } |
75 | 75 | ||
76 | virtual QSize sizeHint() const { | 76 | virtual QSize sizeHint() const { |
77 | return QToolButton::sizeHint() + QSize( 4, 0 ); | 77 | return QToolButton::sizeHint() + QSize( 4, 0 ); |
78 | } | 78 | } |
79 | 79 | ||
80 | signals: | 80 | signals: |
81 | void activated( int id ); | 81 | void activated( int id ); |
82 | 82 | ||
83 | protected slots: | 83 | protected slots: |
84 | void selected( int id ) { | 84 | void selected( int id ) { |
85 | current = id; | 85 | current = id; |
86 | setIconSet( *popup()->iconSet( id ) ); | 86 | setIconSet( *popup()->iconSet( id ) ); |
87 | emit activated( id ); | 87 | emit activated( id ); |
88 | } | 88 | } |
89 | 89 | ||
90 | protected: | 90 | protected: |
91 | virtual void drawButtonLabel( QPainter *p ) { | 91 | virtual void drawButtonLabel( QPainter *p ) { |
92 | p->translate( -4, 0 ); | 92 | p->translate( -4, 0 ); |
93 | QToolButton::drawButtonLabel( p ); | 93 | QToolButton::drawButtonLabel( p ); |
94 | p->translate( 4, 0 ); | 94 | p->translate( 4, 0 ); |
95 | } | 95 | } |
96 | 96 | ||
97 | private: | 97 | private: |
98 | int current; | 98 | int current; |
99 | }; | 99 | }; |
100 | 100 | ||
101 | //=========================================================================== | 101 | //=========================================================================== |
102 | 102 | ||
103 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags fl ) | 103 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags fl ) |
104 | : QMainWindow( parent, name, fl ), | 104 | : QMainWindow( parent, name, fl ), |
105 | doc( 0 ) | 105 | doc( 0 ) |
106 | { | 106 | { |
107 | setRightJustification(TRUE); | 107 | setRightJustification(TRUE); |
108 | 108 | ||
109 | editorStack = new QWidgetStack( this ); | 109 | editorStack = new QWidgetStack( this ); |
110 | 110 | ||
111 | fileSelector = new FileSelector( "text/html", | 111 | fileSelector = new FileSelector( "text/html", |
112 | editorStack, "fileselector" ); | 112 | editorStack, "fileselector" ); |
113 | 113 | ||
114 | 114 | ||
115 | fileSelector->setCloseVisible( FALSE ); | 115 | fileSelector->setCloseVisible( FALSE ); |
116 | editorStack->addWidget( fileSelector, 0 ); | 116 | editorStack->addWidget( fileSelector, 0 ); |
117 | 117 | ||
118 | editor = new Qt3::QTextEdit( editorStack ); | 118 | editor = new Qt3::QTextEdit( editorStack ); |
119 | editor->setTextFormat( Qt::RichText ); | 119 | editor->setTextFormat( Qt::RichText ); |
120 | editorStack->addWidget( editor, 1 ); | 120 | editorStack->addWidget( editor, 1 ); |
121 | 121 | ||
122 | setupActions(); | 122 | setupActions(); |
123 | 123 | ||
124 | QObject::connect( fileSelector, SIGNAL(closeMe()), | 124 | QObject::connect( fileSelector, SIGNAL(closeMe()), |
125 | this, SLOT(showEditTools()) ); | 125 | this, SLOT(showEditTools()) ); |
126 | QObject::connect( fileSelector, SIGNAL(fileSelected(const DocLnk &)), | 126 | QObject::connect( fileSelector, SIGNAL(fileSelected(const DocLnk&)), |
127 | this, SLOT(openFile(const DocLnk &)) ); | 127 | this, SLOT(openFile(const DocLnk&)) ); |
128 | QObject::connect( fileSelector, SIGNAL(newSelected(const DocLnk&)), | 128 | QObject::connect( fileSelector, SIGNAL(newSelected(const DocLnk&)), |
129 | this, SLOT(newFile(const DocLnk&)) ); | 129 | this, SLOT(newFile(const DocLnk&)) ); |
130 | 130 | ||
131 | if ( fileSelector->fileCount() < 1 ) | 131 | if ( fileSelector->fileCount() < 1 ) |
132 | fileNew(); | 132 | fileNew(); |
133 | else { | 133 | else { |
134 | fileOpen(); | 134 | fileOpen(); |
135 | } | 135 | } |
136 | doConnections( editor ); | 136 | doConnections( editor ); |
137 | 137 | ||
138 | setCentralWidget( editorStack ); | 138 | setCentralWidget( editorStack ); |
139 | } | 139 | } |
140 | 140 | ||
141 | MainWindow::~MainWindow() | 141 | MainWindow::~MainWindow() |
142 | { | 142 | { |
143 | save(); | 143 | save(); |
144 | } | 144 | } |
145 | 145 | ||
146 | void MainWindow::setupActions() | 146 | void MainWindow::setupActions() |
147 | { | 147 | { |
148 | setToolBarsMovable(false); | 148 | setToolBarsMovable(false); |
149 | 149 | ||
150 | tbMenu = new QToolBar( this ); | 150 | tbMenu = new QToolBar( this ); |
151 | tbMenu->setHorizontalStretchable( TRUE ); | 151 | tbMenu->setHorizontalStretchable( TRUE ); |
152 | 152 | ||
153 | QMenuBar *menu = new QMenuBar( tbMenu ); | 153 | QMenuBar *menu = new QMenuBar( tbMenu ); |
154 | 154 | ||
155 | tbEdit = new QToolBar( this ); | 155 | tbEdit = new QToolBar( this ); |
156 | 156 | ||
157 | QPopupMenu *file = new QPopupMenu( this ); | 157 | QPopupMenu *file = new QPopupMenu( this ); |
158 | menu->insertItem( tr("File"), file ); | 158 | menu->insertItem( tr("File"), file ); |
159 | 159 | ||
160 | QPopupMenu *edit = new QPopupMenu( this ); | 160 | QPopupMenu *edit = new QPopupMenu( this ); |
161 | menu->insertItem( tr("Edit"), edit ); | 161 | menu->insertItem( tr("Edit"), edit ); |
162 | 162 | ||
163 | // ### perhaps these shortcut keys should have some | 163 | // ### perhaps these shortcut keys should have some |
164 | // IPaq keys defined??? | 164 | // IPaq keys defined??? |
165 | QAction *a; | 165 | QAction *a; |
166 | 166 | ||
167 | a = new QAction( tr( "New" ), Resource::loadPixmap("new"), QString::null, 0, this, 0 ); | 167 | a = new QAction( tr( "New" ), Resource::loadPixmap("new"), QString::null, 0, this, 0 ); |
168 | connect( a, SIGNAL(activated()), this, SLOT(fileNew()) ); | 168 | connect( a, SIGNAL(activated()), this, SLOT(fileNew()) ); |
169 | a->addTo( file ); | 169 | a->addTo( file ); |
170 | 170 | ||
171 | a = new QAction( tr( "Open" ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); | 171 | a = new QAction( tr( "Open" ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); |
172 | connect( a, SIGNAL(activated()), this, SLOT(fileOpen()) ); | 172 | connect( a, SIGNAL(activated()), this, SLOT(fileOpen()) ); |
173 | a->addTo( file ); | 173 | a->addTo( file ); |
174 | 174 | ||
175 | a = new QAction( tr( "Undo" ), Resource::loadIconSet("undo"), | 175 | a = new QAction( tr( "Undo" ), Resource::loadIconSet("undo"), |
176 | QString::null, 0, this, "editUndo" ); | 176 | QString::null, 0, this, "editUndo" ); |
177 | connect( a, SIGNAL( activated() ), this, SLOT( editUndo() ) ); | 177 | connect( a, SIGNAL( activated() ), this, SLOT( editUndo() ) ); |
178 | connect( editor, SIGNAL(undoAvailable(bool)), a, SLOT(setEnabled(bool)) ); | 178 | connect( editor, SIGNAL(undoAvailable(bool)), a, SLOT(setEnabled(bool)) ); |
179 | a->addTo( tbEdit ); | 179 | a->addTo( tbEdit ); |
180 | a->addTo( edit ); | 180 | a->addTo( edit ); |
181 | a = new QAction( tr( "Redo" ), Resource::loadIconSet("redo"), | 181 | a = new QAction( tr( "Redo" ), Resource::loadIconSet("redo"), |
182 | QString::null, 0, this, "editRedo" ); | 182 | QString::null, 0, this, "editRedo" ); |
183 | connect( a, SIGNAL( activated() ), this, SLOT( editRedo() ) ); | 183 | connect( a, SIGNAL( activated() ), this, SLOT( editRedo() ) ); |
184 | connect( editor, SIGNAL(redoAvailable(bool)), a, SLOT(setEnabled(bool)) ); | 184 | connect( editor, SIGNAL(redoAvailable(bool)), a, SLOT(setEnabled(bool)) ); |
185 | a->addTo( tbEdit ); | 185 | a->addTo( tbEdit ); |
186 | a->addTo( edit ); | 186 | a->addTo( edit ); |
187 | 187 | ||
188 | edit->insertSeparator(); | 188 | edit->insertSeparator(); |
189 | 189 | ||
190 | a = new QAction( tr( "Copy" ), Resource::loadIconSet("copy"), | 190 | a = new QAction( tr( "Copy" ), Resource::loadIconSet("copy"), |
191 | QString::null, 0, this, "editCopy" ); | 191 | QString::null, 0, this, "editCopy" ); |
192 | connect( a, SIGNAL( activated() ), this, SLOT( editCopy() ) ); | 192 | connect( a, SIGNAL( activated() ), this, SLOT( editCopy() ) ); |
193 | connect( editor, SIGNAL(copyAvailable(bool)), a, SLOT(setEnabled(bool)) ); | 193 | connect( editor, SIGNAL(copyAvailable(bool)), a, SLOT(setEnabled(bool)) ); |
194 | a->addTo( tbEdit ); | 194 | a->addTo( tbEdit ); |
195 | a->addTo( edit ); | 195 | a->addTo( edit ); |
196 | a = new QAction( tr( "Cut" ), Resource::loadIconSet("cut"), | 196 | a = new QAction( tr( "Cut" ), Resource::loadIconSet("cut"), |
197 | QString::null, 0, this, "editCut" ); | 197 | QString::null, 0, this, "editCut" ); |
198 | connect( a, SIGNAL( activated() ), this, SLOT( editCut() ) ); | 198 | connect( a, SIGNAL( activated() ), this, SLOT( editCut() ) ); |
199 | connect( editor, SIGNAL(copyAvailable(bool)), a, SLOT(setEnabled(bool)) ); | 199 | connect( editor, SIGNAL(copyAvailable(bool)), a, SLOT(setEnabled(bool)) ); |
200 | a->addTo( tbEdit ); | 200 | a->addTo( tbEdit ); |
201 | a->addTo( edit ); | 201 | a->addTo( edit ); |
202 | a = new QAction( tr( "Paste" ), Resource::loadPixmap("paste"), | 202 | a = new QAction( tr( "Paste" ), Resource::loadPixmap("paste"), |
203 | QString::null, 0, this, "editPaste" ); | 203 | QString::null, 0, this, "editPaste" ); |
204 | connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) ); | 204 | connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) ); |
205 | a->addTo( tbEdit ); | 205 | a->addTo( tbEdit ); |
206 | a->addTo( edit ); | 206 | a->addTo( edit ); |
207 | 207 | ||
208 | tbFont = new QToolBar( this ); | 208 | tbFont = new QToolBar( this ); |
209 | tbFont->setLabel( "Font Actions" ); | 209 | tbFont->setLabel( "Font Actions" ); |
210 | tbFont->setHorizontalStretchable(TRUE); | 210 | tbFont->setHorizontalStretchable(TRUE); |
211 | 211 | ||
212 | comboFont = new QComboBox( FALSE, tbFont ); | 212 | comboFont = new QComboBox( FALSE, tbFont ); |
213 | FontDatabase db; | 213 | FontDatabase db; |
214 | QStringList f= db.families(); | 214 | QStringList f= db.families(); |
215 | comboFont->insertStringList( db.families() ); | 215 | comboFont->insertStringList( db.families() ); |
216 | connect( comboFont, SIGNAL( activated( const QString & ) ), | 216 | connect( comboFont, SIGNAL( activated(const QString&) ), |
217 | this, SLOT( textFamily( const QString & ) ) ); | 217 | this, SLOT( textFamily(const QString&) ) ); |
218 | comboFont->setCurrentItem( comboFont->listBox()->index( comboFont->listBox()->findItem( QApplication::font().family() ) ) ); | 218 | comboFont->setCurrentItem( comboFont->listBox()->index( comboFont->listBox()->findItem( QApplication::font().family() ) ) ); |
219 | comboFont->setMaximumWidth(90); | 219 | comboFont->setMaximumWidth(90); |
220 | 220 | ||
221 | comboSize = new QComboBox( TRUE, tbFont ); | 221 | comboSize = new QComboBox( TRUE, tbFont ); |
222 | QValueList<int> sizes = db.standardSizes(); | 222 | QValueList<int> sizes = db.standardSizes(); |
223 | QValueList<int>::Iterator it = sizes.begin(); | 223 | QValueList<int>::Iterator it = sizes.begin(); |
224 | for ( ; it != sizes.end(); ++it ) | 224 | for ( ; it != sizes.end(); ++it ) |
225 | comboSize->insertItem( QString::number( *it ) ); | 225 | comboSize->insertItem( QString::number( *it ) ); |
226 | connect( comboSize, SIGNAL( activated( const QString & ) ), | 226 | connect( comboSize, SIGNAL( activated(const QString&) ), |
227 | this, SLOT( textSize( const QString & ) ) ); | 227 | this, SLOT( textSize(const QString&) ) ); |
228 | comboSize->lineEdit()->setText( QString::number( QApplication::font().pointSize() ) ); | 228 | comboSize->lineEdit()->setText( QString::number( QApplication::font().pointSize() ) ); |
229 | comboSize->setFixedWidth( 38 ); | 229 | comboSize->setFixedWidth( 38 ); |
230 | 230 | ||
231 | tbStyle = new QToolBar( this ); | 231 | tbStyle = new QToolBar( this ); |
232 | tbStyle->setLabel( "Style Actions" ); | 232 | tbStyle->setLabel( "Style Actions" ); |
233 | 233 | ||
234 | actionTextBold = new QAction( tr( "Bold" ), | 234 | actionTextBold = new QAction( tr( "Bold" ), |
235 | Resource::loadPixmap("bold"), | 235 | Resource::loadPixmap("bold"), |
236 | QString::null, CTRL + Key_B, | 236 | QString::null, CTRL + Key_B, |
237 | this, "textBold" ); | 237 | this, "textBold" ); |
238 | connect( actionTextBold, SIGNAL( activated() ), this, SLOT( textBold() ) ); | 238 | connect( actionTextBold, SIGNAL( activated() ), this, SLOT( textBold() ) ); |
239 | actionTextBold->addTo( tbStyle ); | 239 | actionTextBold->addTo( tbStyle ); |
240 | actionTextBold->setToggleAction( TRUE ); | 240 | actionTextBold->setToggleAction( TRUE ); |
241 | actionTextItalic = new QAction( tr( "Italic" ), | 241 | actionTextItalic = new QAction( tr( "Italic" ), |
242 | Resource::loadPixmap("italic"), | 242 | Resource::loadPixmap("italic"), |
243 | tr( "&Italic" ), CTRL + Key_I, | 243 | tr( "&Italic" ), CTRL + Key_I, |
244 | this, "textItalic" ); | 244 | this, "textItalic" ); |
245 | connect( actionTextItalic, SIGNAL( activated() ), this, | 245 | connect( actionTextItalic, SIGNAL( activated() ), this, |
246 | SLOT( textItalic() ) ); | 246 | SLOT( textItalic() ) ); |
247 | actionTextItalic->addTo( tbStyle ); | 247 | actionTextItalic->addTo( tbStyle ); |
248 | actionTextItalic->setToggleAction( TRUE ); | 248 | actionTextItalic->setToggleAction( TRUE ); |
249 | actionTextUnderline = new QAction( tr( "Underline" ), | 249 | actionTextUnderline = new QAction( tr( "Underline" ), |
250 | Resource::loadPixmap("underline"), | 250 | Resource::loadPixmap("underline"), |
251 | tr( "&Underline" ), CTRL + Key_U, | 251 | tr( "&Underline" ), CTRL + Key_U, |
252 | this, "textUnderline" ); | 252 | this, "textUnderline" ); |
253 | connect( actionTextUnderline, SIGNAL( activated() ), | 253 | connect( actionTextUnderline, SIGNAL( activated() ), |
254 | this, SLOT( textUnderline() ) ); | 254 | this, SLOT( textUnderline() ) ); |
255 | actionTextUnderline->addTo( tbStyle ); | 255 | actionTextUnderline->addTo( tbStyle ); |
256 | actionTextUnderline->setToggleAction( TRUE ); | 256 | actionTextUnderline->setToggleAction( TRUE ); |
257 | 257 | ||
258 | alignMenu = new ButtonMenu( tbStyle ); | 258 | alignMenu = new ButtonMenu( tbStyle ); |
259 | alignMenu->insertItem( Resource::loadPixmap("left"), tr("Left"), AlignLeft ); | 259 | alignMenu->insertItem( Resource::loadPixmap("left"), tr("Left"), AlignLeft ); |
260 | alignMenu->insertItem( Resource::loadPixmap("center"), tr("Center"), AlignCenter ); | 260 | alignMenu->insertItem( Resource::loadPixmap("center"), tr("Center"), AlignCenter ); |
261 | alignMenu->insertItem( Resource::loadPixmap("right"), tr("Right"), AlignRight ); | 261 | alignMenu->insertItem( Resource::loadPixmap("right"), tr("Right"), AlignRight ); |
262 | alignMenu->insertItem( Resource::loadPixmap("opie-write/justify"), tr("Full"), Qt3::AlignJustify ); | 262 | alignMenu->insertItem( Resource::loadPixmap("opie-write/justify"), tr("Full"), Qt3::AlignJustify ); |
263 | connect( alignMenu, SIGNAL(activated(int)), this, SLOT(textAlign(int)) ); | 263 | connect( alignMenu, SIGNAL(activated(int)), this, SLOT(textAlign(int)) ); |
264 | } | 264 | } |
265 | 265 | ||
266 | Qt3::QTextEdit *MainWindow::currentEditor() const | 266 | Qt3::QTextEdit *MainWindow::currentEditor() const |
267 | { | 267 | { |
268 | return editor; | 268 | return editor; |
269 | } | 269 | } |
270 | 270 | ||
271 | void MainWindow::doConnections( Qt3::QTextEdit *e ) | 271 | void MainWindow::doConnections( Qt3::QTextEdit *e ) |
272 | { | 272 | { |
273 | connect( e, SIGNAL( currentFontChanged( const QFont & ) ), | 273 | connect( e, SIGNAL( currentFontChanged(const QFont&) ), |
274 | this, SLOT( fontChanged( const QFont & ) ) ); | 274 | this, SLOT( fontChanged(const QFont&) ) ); |
275 | connect( e, SIGNAL( currentColorChanged( const QColor & ) ), | 275 | connect( e, SIGNAL( currentColorChanged(const QColor&) ), |
276 | this, SLOT( colorChanged( const QColor & ) ) ); | 276 | this, SLOT( colorChanged(const QColor&) ) ); |
277 | connect( e, SIGNAL( currentAlignmentChanged( int ) ), | 277 | connect( e, SIGNAL( currentAlignmentChanged(int) ), |
278 | this, SLOT( alignmentChanged( int ) ) ); | 278 | this, SLOT( alignmentChanged(int) ) ); |
279 | } | 279 | } |
280 | 280 | ||
281 | void MainWindow::updateFontSizeCombo( const QFont &f ) | 281 | void MainWindow::updateFontSizeCombo( const QFont &f ) |
282 | { | 282 | { |
283 | comboSize->clear(); | 283 | comboSize->clear(); |
284 | FontDatabase fdb; | 284 | FontDatabase fdb; |
285 | QValueList<int> sizes = fdb.pointSizes( f.family() ); | 285 | QValueList<int> sizes = fdb.pointSizes( f.family() ); |
286 | QValueList<int>::Iterator it = sizes.begin(); | 286 | QValueList<int>::Iterator it = sizes.begin(); |
287 | for ( ; it != sizes.end(); ++it ) | 287 | for ( ; it != sizes.end(); ++it ) |
288 | comboSize->insertItem( QString::number( *it ) ); | 288 | comboSize->insertItem( QString::number( *it ) ); |
289 | } | 289 | } |
290 | 290 | ||
291 | void MainWindow::editUndo() | 291 | void MainWindow::editUndo() |
292 | { | 292 | { |
293 | if ( !currentEditor() ) | 293 | if ( !currentEditor() ) |
294 | return; | 294 | return; |
295 | currentEditor()->undo(); | 295 | currentEditor()->undo(); |
296 | } | 296 | } |
297 | 297 | ||
298 | void MainWindow::editRedo() | 298 | void MainWindow::editRedo() |
299 | { | 299 | { |
300 | if ( !currentEditor() ) | 300 | if ( !currentEditor() ) |
301 | return; | 301 | return; |
302 | currentEditor()->redo(); | 302 | currentEditor()->redo(); |
303 | } | 303 | } |
304 | 304 | ||
305 | void MainWindow::editCut() | 305 | void MainWindow::editCut() |
306 | { | 306 | { |
307 | if ( !currentEditor() ) | 307 | if ( !currentEditor() ) |
308 | return; | 308 | return; |
309 | currentEditor()->cut(); | 309 | currentEditor()->cut(); |
310 | } | 310 | } |
311 | 311 | ||
312 | void MainWindow::editCopy() | 312 | void MainWindow::editCopy() |
313 | { | 313 | { |
314 | if ( !currentEditor() ) | 314 | if ( !currentEditor() ) |
315 | return; | 315 | return; |
316 | currentEditor()->copy(); | 316 | currentEditor()->copy(); |
317 | } | 317 | } |
318 | 318 | ||
319 | void MainWindow::editPaste() | 319 | void MainWindow::editPaste() |
320 | { | 320 | { |
321 | if ( !currentEditor() ) | 321 | if ( !currentEditor() ) |
322 | return; | 322 | return; |
323 | currentEditor()->paste(); | 323 | currentEditor()->paste(); |
324 | } | 324 | } |
325 | 325 | ||
326 | void MainWindow::textBold() | 326 | void MainWindow::textBold() |
327 | { | 327 | { |
328 | if ( !currentEditor() ) | 328 | if ( !currentEditor() ) |
329 | return; | 329 | return; |
330 | currentEditor()->setBold( actionTextBold->isOn() ); | 330 | currentEditor()->setBold( actionTextBold->isOn() ); |
331 | } | 331 | } |
332 | 332 | ||
333 | void MainWindow::textUnderline() | 333 | void MainWindow::textUnderline() |
334 | { | 334 | { |
335 | if ( !currentEditor() ) | 335 | if ( !currentEditor() ) |
336 | return; | 336 | return; |
337 | currentEditor()->setUnderline( actionTextUnderline->isOn() ); | 337 | currentEditor()->setUnderline( actionTextUnderline->isOn() ); |
338 | } | 338 | } |
339 | 339 | ||
340 | void MainWindow::textItalic() | 340 | void MainWindow::textItalic() |
341 | { | 341 | { |
342 | if ( !currentEditor() ) | 342 | if ( !currentEditor() ) |
343 | return; | 343 | return; |
344 | currentEditor()->setItalic( actionTextItalic->isOn() ); | 344 | currentEditor()->setItalic( actionTextItalic->isOn() ); |
345 | } | 345 | } |
346 | 346 | ||
347 | void MainWindow::textFamily( const QString &f ) | 347 | void MainWindow::textFamily( const QString &f ) |
348 | { | 348 | { |
349 | if ( !currentEditor() ) | 349 | if ( !currentEditor() ) |
350 | return; | 350 | return; |
351 | currentEditor()->setFamily( f ); | 351 | currentEditor()->setFamily( f ); |
352 | currentEditor()->viewport()->setFocus(); | 352 | currentEditor()->viewport()->setFocus(); |
353 | } | 353 | } |
354 | 354 | ||
355 | void MainWindow::textSize( const QString &p ) | 355 | void MainWindow::textSize( const QString &p ) |
356 | { | 356 | { |
357 | if ( !currentEditor() ) | 357 | if ( !currentEditor() ) |
358 | return; | 358 | return; |
359 | currentEditor()->setPointSize( p.toInt() ); | 359 | currentEditor()->setPointSize( p.toInt() ); |
360 | currentEditor()->viewport()->setFocus(); | 360 | currentEditor()->viewport()->setFocus(); |
361 | } | 361 | } |
362 | 362 | ||
363 | void MainWindow::textStyle( int i ) | 363 | void MainWindow::textStyle( int i ) |
364 | { | 364 | { |
365 | if ( !currentEditor() ) | 365 | if ( !currentEditor() ) |
366 | return; | 366 | return; |
367 | if ( i == 0 ) | 367 | if ( i == 0 ) |
368 | currentEditor()->setParagType( Qt3::QStyleSheetItem::DisplayBlock, | 368 | currentEditor()->setParagType( Qt3::QStyleSheetItem::DisplayBlock, |
369 | Qt3::QStyleSheetItem::ListDisc ); | 369 | Qt3::QStyleSheetItem::ListDisc ); |
370 | else if ( i == 1 ) | 370 | else if ( i == 1 ) |
371 | currentEditor()->setParagType( Qt3::QStyleSheetItem::DisplayListItem, | 371 | currentEditor()->setParagType( Qt3::QStyleSheetItem::DisplayListItem, |
372 | Qt3::QStyleSheetItem::ListDisc ); | 372 | Qt3::QStyleSheetItem::ListDisc ); |
373 | else if ( i == 2 ) | 373 | else if ( i == 2 ) |
374 | currentEditor()->setParagType( Qt3::QStyleSheetItem::DisplayListItem, | 374 | currentEditor()->setParagType( Qt3::QStyleSheetItem::DisplayListItem, |
diff --git a/noncore/apps/opie-write/qtextedit.cpp b/noncore/apps/opie-write/qtextedit.cpp index 27dd515..73b7b7b 100644 --- a/noncore/apps/opie-write/qtextedit.cpp +++ b/noncore/apps/opie-write/qtextedit.cpp | |||
@@ -584,194 +584,194 @@ static bool block_set_alignment = FALSE; | |||
584 | 584 | ||
585 | The new alignment is \a a. | 585 | The new alignment is \a a. |
586 | 586 | ||
587 | \sa setAlignment() | 587 | \sa setAlignment() |
588 | */ | 588 | */ |
589 | 589 | ||
590 | /*! \fn void QTextEdit::cursorPositionChanged( QTextCursor *c ) | 590 | /*! \fn void QTextEdit::cursorPositionChanged( QTextCursor *c ) |
591 | 591 | ||
592 | This signal is emitted if the position of the cursor changed. \a c | 592 | This signal is emitted if the position of the cursor changed. \a c |
593 | points to the text cursor object. | 593 | points to the text cursor object. |
594 | 594 | ||
595 | \sa setCursorPosition() | 595 | \sa setCursorPosition() |
596 | */ | 596 | */ |
597 | 597 | ||
598 | /*! \overload void QTextEdit::cursorPositionChanged( int para, int pos ) | 598 | /*! \overload void QTextEdit::cursorPositionChanged( int para, int pos ) |
599 | 599 | ||
600 | This signal is emitted if the position of the cursor changed. \a | 600 | This signal is emitted if the position of the cursor changed. \a |
601 | para contains the paragraph index and \a pos contains the character | 601 | para contains the paragraph index and \a pos contains the character |
602 | position within the paragraph. | 602 | position within the paragraph. |
603 | 603 | ||
604 | \sa setCursorPosition() | 604 | \sa setCursorPosition() |
605 | */ | 605 | */ |
606 | 606 | ||
607 | /*! \fn void QTextEdit::returnPressed() | 607 | /*! \fn void QTextEdit::returnPressed() |
608 | 608 | ||
609 | This signal is emitted if the user pressed the Return or the Enter key. | 609 | This signal is emitted if the user pressed the Return or the Enter key. |
610 | */ | 610 | */ |
611 | 611 | ||
612 | /*! | 612 | /*! |
613 | \fn QTextCursor *QTextEdit::textCursor() const | 613 | \fn QTextCursor *QTextEdit::textCursor() const |
614 | 614 | ||
615 | Returns the text edit's text cursor. | 615 | Returns the text edit's text cursor. |
616 | 616 | ||
617 | \warning QTextCursor is not in the public API, but in special | 617 | \warning QTextCursor is not in the public API, but in special |
618 | circumstances you might wish to use it. | 618 | circumstances you might wish to use it. |
619 | */ | 619 | */ |
620 | 620 | ||
621 | /*! Constructs an empty QTextEdit with parent \a parent and name \a | 621 | /*! Constructs an empty QTextEdit with parent \a parent and name \a |
622 | name. | 622 | name. |
623 | */ | 623 | */ |
624 | 624 | ||
625 | QTextEdit::QTextEdit( QWidget *parent, const char *name ) | 625 | QTextEdit::QTextEdit( QWidget *parent, const char *name ) |
626 | : QScrollView( parent, name, WStaticContents | WRepaintNoErase | WResizeNoErase ), | 626 | : QScrollView( parent, name, WStaticContents | WRepaintNoErase | WResizeNoErase ), |
627 | doc( new QTextDocument( 0 ) ), undoRedoInfo( doc ) | 627 | doc( new QTextDocument( 0 ) ), undoRedoInfo( doc ) |
628 | { | 628 | { |
629 | init(); | 629 | init(); |
630 | } | 630 | } |
631 | 631 | ||
632 | /*! | 632 | /*! |
633 | Constructs a QTextEdit with parent \a parent and name \a name. The | 633 | Constructs a QTextEdit with parent \a parent and name \a name. The |
634 | text edit will display the text \a text using context \a context. | 634 | text edit will display the text \a text using context \a context. |
635 | 635 | ||
636 | The \a context is a path which the text edit's QMimeSourceFactory | 636 | The \a context is a path which the text edit's QMimeSourceFactory |
637 | uses to resolve the locations of files and images. It is passed to | 637 | uses to resolve the locations of files and images. It is passed to |
638 | the mimeSourceFactory() when quering data. | 638 | the mimeSourceFactory() when quering data. |
639 | 639 | ||
640 | For example if the text contains an image tag, | 640 | For example if the text contains an image tag, |
641 | \c{<img src="image.png">}, and the context is "path/to/look/in", the | 641 | \c{<img src="image.png">}, and the context is "path/to/look/in", the |
642 | QMimeSourceFactory will try to load the image from | 642 | QMimeSourceFactory will try to load the image from |
643 | "path/to/look/in/image.png". If the tag was | 643 | "path/to/look/in/image.png". If the tag was |
644 | \c{<img src="/image.png">}, the context will not be used (because | 644 | \c{<img src="/image.png">}, the context will not be used (because |
645 | QMimeSourceFactory recognizes that we have used an absolute path) | 645 | QMimeSourceFactory recognizes that we have used an absolute path) |
646 | and will try to load "/image.png". The context is applied in exactly | 646 | and will try to load "/image.png". The context is applied in exactly |
647 | the same way to \e hrefs, for example, | 647 | the same way to \e hrefs, for example, |
648 | \c{<a href="target.html">Target</a>}, would resolve to | 648 | \c{<a href="target.html">Target</a>}, would resolve to |
649 | "path/to/look/in/target.html". | 649 | "path/to/look/in/target.html". |
650 | 650 | ||
651 | */ | 651 | */ |
652 | 652 | ||
653 | QTextEdit::QTextEdit( const QString& text, const QString& context, | 653 | QTextEdit::QTextEdit( const QString& text, const QString& context, |
654 | QWidget *parent, const char *name) | 654 | QWidget *parent, const char *name) |
655 | : QScrollView( parent, name, WStaticContents | WRepaintNoErase | WResizeNoErase ), | 655 | : QScrollView( parent, name, WStaticContents | WRepaintNoErase | WResizeNoErase ), |
656 | doc( new QTextDocument( 0 ) ), undoRedoInfo( doc ) | 656 | doc( new QTextDocument( 0 ) ), undoRedoInfo( doc ) |
657 | { | 657 | { |
658 | init(); | 658 | init(); |
659 | setText( text, context ); | 659 | setText( text, context ); |
660 | } | 660 | } |
661 | 661 | ||
662 | /*! \reimp */ | 662 | /*! \reimp */ |
663 | 663 | ||
664 | QTextEdit::~QTextEdit() | 664 | QTextEdit::~QTextEdit() |
665 | { | 665 | { |
666 | delete undoRedoInfo.d; | 666 | delete undoRedoInfo.d; |
667 | undoRedoInfo.d = 0; | 667 | undoRedoInfo.d = 0; |
668 | delete cursor; | 668 | delete cursor; |
669 | delete doc; | 669 | delete doc; |
670 | delete d; | 670 | delete d; |
671 | } | 671 | } |
672 | 672 | ||
673 | void QTextEdit::init() | 673 | void QTextEdit::init() |
674 | { | 674 | { |
675 | setFrameStyle( Sunken ); | 675 | setFrameStyle( Sunken ); |
676 | undoEnabled = TRUE; | 676 | undoEnabled = TRUE; |
677 | readonly = TRUE; | 677 | readonly = TRUE; |
678 | setReadOnly( FALSE ); | 678 | setReadOnly( FALSE ); |
679 | d = new QTextEditPrivate; | 679 | d = new QTextEditPrivate; |
680 | connect( doc, SIGNAL( minimumWidthChanged( int ) ), | 680 | connect( doc, SIGNAL( minimumWidthChanged(int) ), |
681 | this, SLOT( documentWidthChanged( int ) ) ); | 681 | this, SLOT( documentWidthChanged(int) ) ); |
682 | 682 | ||
683 | mousePressed = FALSE; | 683 | mousePressed = FALSE; |
684 | inDoubleClick = FALSE; | 684 | inDoubleClick = FALSE; |
685 | modified = FALSE; | 685 | modified = FALSE; |
686 | onLink = QString::null; | 686 | onLink = QString::null; |
687 | overWrite = FALSE; | 687 | overWrite = FALSE; |
688 | wrapMode = WidgetWidth; | 688 | wrapMode = WidgetWidth; |
689 | wrapWidth = -1; | 689 | wrapWidth = -1; |
690 | wPolicy = AtWhiteSpace; | 690 | wPolicy = AtWhiteSpace; |
691 | inDnD = FALSE; | 691 | inDnD = FALSE; |
692 | 692 | ||
693 | doc->setFormatter( new QTextFormatterBreakWords ); | 693 | doc->setFormatter( new QTextFormatterBreakWords ); |
694 | doc->formatCollection()->defaultFormat()->setFont( QScrollView::font() ); | 694 | doc->formatCollection()->defaultFormat()->setFont( QScrollView::font() ); |
695 | doc->formatCollection()->defaultFormat()->setColor( colorGroup().color( QColorGroup::Text ) ); | 695 | doc->formatCollection()->defaultFormat()->setColor( colorGroup().color( QColorGroup::Text ) ); |
696 | currentFormat = doc->formatCollection()->defaultFormat(); | 696 | currentFormat = doc->formatCollection()->defaultFormat(); |
697 | currentAlignment = Qt3::AlignAuto; | 697 | currentAlignment = Qt3::AlignAuto; |
698 | 698 | ||
699 | viewport()->setBackgroundMode( PaletteBase ); | 699 | viewport()->setBackgroundMode( PaletteBase ); |
700 | viewport()->setAcceptDrops( TRUE ); | 700 | viewport()->setAcceptDrops( TRUE ); |
701 | resizeContents( 0, doc->lastParagraph() ? | 701 | resizeContents( 0, doc->lastParagraph() ? |
702 | ( doc->lastParagraph()->paragId() + 1 ) * doc->formatCollection()->defaultFormat()->height() : 0 ); | 702 | ( doc->lastParagraph()->paragId() + 1 ) * doc->formatCollection()->defaultFormat()->height() : 0 ); |
703 | 703 | ||
704 | setKeyCompression( TRUE ); | 704 | setKeyCompression( TRUE ); |
705 | viewport()->setMouseTracking( TRUE ); | 705 | viewport()->setMouseTracking( TRUE ); |
706 | #ifndef QT_NO_CURSOR | 706 | #ifndef QT_NO_CURSOR |
707 | viewport()->setCursor( isReadOnly() ? arrowCursor : ibeamCursor ); | 707 | viewport()->setCursor( isReadOnly() ? arrowCursor : ibeamCursor ); |
708 | #endif | 708 | #endif |
709 | cursor = new QTextCursor( doc ); | 709 | cursor = new QTextCursor( doc ); |
710 | 710 | ||
711 | formatTimer = new QTimer( this ); | 711 | formatTimer = new QTimer( this ); |
712 | connect( formatTimer, SIGNAL( timeout() ), | 712 | connect( formatTimer, SIGNAL( timeout() ), |
713 | this, SLOT( formatMore() ) ); | 713 | this, SLOT( formatMore() ) ); |
714 | lastFormatted = doc->firstParagraph(); | 714 | lastFormatted = doc->firstParagraph(); |
715 | 715 | ||
716 | scrollTimer = new QTimer( this ); | 716 | scrollTimer = new QTimer( this ); |
717 | connect( scrollTimer, SIGNAL( timeout() ), | 717 | connect( scrollTimer, SIGNAL( timeout() ), |
718 | this, SLOT( autoScrollTimerDone() ) ); | 718 | this, SLOT( autoScrollTimerDone() ) ); |
719 | 719 | ||
720 | interval = 0; | 720 | interval = 0; |
721 | changeIntervalTimer = new QTimer( this ); | 721 | changeIntervalTimer = new QTimer( this ); |
722 | connect( changeIntervalTimer, SIGNAL( timeout() ), | 722 | connect( changeIntervalTimer, SIGNAL( timeout() ), |
723 | this, SLOT( doChangeInterval() ) ); | 723 | this, SLOT( doChangeInterval() ) ); |
724 | 724 | ||
725 | cursorVisible = TRUE; | 725 | cursorVisible = TRUE; |
726 | blinkTimer = new QTimer( this ); | 726 | blinkTimer = new QTimer( this ); |
727 | connect( blinkTimer, SIGNAL( timeout() ), | 727 | connect( blinkTimer, SIGNAL( timeout() ), |
728 | this, SLOT( blinkCursor() ) ); | 728 | this, SLOT( blinkCursor() ) ); |
729 | 729 | ||
730 | #ifndef QT_NO_DRAGANDDROP | 730 | #ifndef QT_NO_DRAGANDDROP |
731 | dragStartTimer = new QTimer( this ); | 731 | dragStartTimer = new QTimer( this ); |
732 | connect( dragStartTimer, SIGNAL( timeout() ), | 732 | connect( dragStartTimer, SIGNAL( timeout() ), |
733 | this, SLOT( startDrag() ) ); | 733 | this, SLOT( startDrag() ) ); |
734 | #endif | 734 | #endif |
735 | 735 | ||
736 | 736 | ||
737 | formatMore(); | 737 | formatMore(); |
738 | 738 | ||
739 | blinkCursorVisible = FALSE; | 739 | blinkCursorVisible = FALSE; |
740 | 740 | ||
741 | viewport()->setFocusProxy( this ); | 741 | viewport()->setFocusProxy( this ); |
742 | viewport()->setFocusPolicy( WheelFocus ); | 742 | viewport()->setFocusPolicy( WheelFocus ); |
743 | viewport()->installEventFilter( this ); | 743 | viewport()->installEventFilter( this ); |
744 | installEventFilter( this ); | 744 | installEventFilter( this ); |
745 | } | 745 | } |
746 | 746 | ||
747 | void QTextEdit::paintDocument( bool drawAll, QPainter *p, int cx, int cy, int cw, int ch ) | 747 | void QTextEdit::paintDocument( bool drawAll, QPainter *p, int cx, int cy, int cw, int ch ) |
748 | { | 748 | { |
749 | bool drawCur = hasFocus() || viewport()->hasFocus(); | 749 | bool drawCur = hasFocus() || viewport()->hasFocus(); |
750 | if ( hasSelectedText() || isReadOnly() || !cursorVisible ) | 750 | if ( hasSelectedText() || isReadOnly() || !cursorVisible ) |
751 | drawCur = FALSE; | 751 | drawCur = FALSE; |
752 | QColorGroup g = colorGroup(); | 752 | QColorGroup g = colorGroup(); |
753 | if ( doc->paper() ) | 753 | if ( doc->paper() ) |
754 | g.setBrush( QColorGroup::Base, *doc->paper() ); | 754 | g.setBrush( QColorGroup::Base, *doc->paper() ); |
755 | 755 | ||
756 | if ( contentsY() < doc->y() ) { | 756 | if ( contentsY() < doc->y() ) { |
757 | p->fillRect( contentsX(), contentsY(), visibleWidth(), doc->y(), | 757 | p->fillRect( contentsX(), contentsY(), visibleWidth(), doc->y(), |
758 | g.brush( QColorGroup::Base ) ); | 758 | g.brush( QColorGroup::Base ) ); |
759 | } | 759 | } |
760 | if ( drawAll && doc->width() - contentsX() < cx + cw ) { | 760 | if ( drawAll && doc->width() - contentsX() < cx + cw ) { |
761 | p->fillRect( doc->width() - contentsX(), cy, cx + cw - doc->width() + contentsX(), ch, | 761 | p->fillRect( doc->width() - contentsX(), cy, cx + cw - doc->width() + contentsX(), ch, |
762 | g.brush( QColorGroup::Base ) ); | 762 | g.brush( QColorGroup::Base ) ); |
763 | } | 763 | } |
764 | 764 | ||
765 | p->setBrushOrigin( -contentsX(), -contentsY() ); | 765 | p->setBrushOrigin( -contentsX(), -contentsY() ); |
766 | 766 | ||
767 | lastFormatted = doc->draw( p, cx, cy, cw, ch, g, !drawAll, drawCur, cursor ); | 767 | lastFormatted = doc->draw( p, cx, cy, cw, ch, g, !drawAll, drawCur, cursor ); |
768 | 768 | ||
769 | if ( lastFormatted == doc->lastParagraph() ) | 769 | if ( lastFormatted == doc->lastParagraph() ) |
770 | resizeContents( contentsWidth(), doc->height() ); | 770 | resizeContents( contentsWidth(), doc->height() ); |
771 | 771 | ||
772 | if ( contentsHeight() < visibleHeight() && ( !doc->lastParagraph() || doc->lastParagraph()->isValid() ) && drawAll ) | 772 | if ( contentsHeight() < visibleHeight() && ( !doc->lastParagraph() || doc->lastParagraph()->isValid() ) && drawAll ) |
773 | p->fillRect( 0, contentsHeight(), visibleWidth(), | 773 | p->fillRect( 0, contentsHeight(), visibleWidth(), |
774 | visibleHeight() - contentsHeight(), g.brush( QColorGroup::Base ) ); | 774 | visibleHeight() - contentsHeight(), g.brush( QColorGroup::Base ) ); |
775 | } | 775 | } |
776 | 776 | ||
777 | /*! \reimp */ | 777 | /*! \reimp */ |
diff --git a/noncore/apps/qashmoney/accountdisplay.cpp b/noncore/apps/qashmoney/accountdisplay.cpp index 5ef5454..0fe5b09 100755 --- a/noncore/apps/qashmoney/accountdisplay.cpp +++ b/noncore/apps/qashmoney/accountdisplay.cpp | |||
@@ -1,390 +1,390 @@ | |||
1 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
2 | #include <qheader.h> | 2 | #include <qheader.h> |
3 | 3 | ||
4 | #include "accountdisplay.h" | 4 | #include "accountdisplay.h" |
5 | #include "newaccount.h" | 5 | #include "newaccount.h" |
6 | #include "transaction.h" | 6 | #include "transaction.h" |
7 | #include "transferdialog.h" | 7 | #include "transferdialog.h" |
8 | #include "transfer.h" | 8 | #include "transfer.h" |
9 | 9 | ||
10 | extern Account *account; | 10 | extern Account *account; |
11 | extern Transaction *transaction; | 11 | extern Transaction *transaction; |
12 | extern Transfer *transfer; | 12 | extern Transfer *transfer; |
13 | extern Preferences *preferences; | 13 | extern Preferences *preferences; |
14 | 14 | ||
15 | AccountDisplay::AccountDisplay ( QWidget *parent ) : QWidget ( parent ) | 15 | AccountDisplay::AccountDisplay ( QWidget *parent ) : QWidget ( parent ) |
16 | { | 16 | { |
17 | cleared = 0; | 17 | cleared = 0; |
18 | 18 | ||
19 | firstline = new QHBox ( this ); | 19 | firstline = new QHBox ( this ); |
20 | firstline->setSpacing ( 2 ); | 20 | firstline->setSpacing ( 2 ); |
21 | 21 | ||
22 | newaccount = new QPushButton ( firstline ); | 22 | newaccount = new QPushButton ( firstline ); |
23 | newaccount->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); | 23 | newaccount->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); |
24 | connect ( newaccount, SIGNAL ( released () ), this, SLOT ( addAccount () ) ); | 24 | connect ( newaccount, SIGNAL ( released() ), this, SLOT ( addAccount() ) ); |
25 | 25 | ||
26 | editaccount = new QPushButton ( firstline ); | 26 | editaccount = new QPushButton ( firstline ); |
27 | editaccount->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); | 27 | editaccount->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); |
28 | connect ( editaccount, SIGNAL ( released () ), this, SLOT ( editAccount () ) ); | 28 | connect ( editaccount, SIGNAL ( released() ), this, SLOT ( editAccount() ) ); |
29 | 29 | ||
30 | deleteaccount = new QPushButton ( firstline ); | 30 | deleteaccount = new QPushButton ( firstline ); |
31 | deleteaccount->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); | 31 | deleteaccount->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); |
32 | connect ( deleteaccount, SIGNAL ( released () ), this, SLOT ( deleteAccount () ) ); | 32 | connect ( deleteaccount, SIGNAL ( released() ), this, SLOT ( deleteAccount() ) ); |
33 | 33 | ||
34 | transferbutton = new QPushButton ( firstline ); | 34 | transferbutton = new QPushButton ( firstline ); |
35 | transferbutton->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/transfer.png") ); | 35 | transferbutton->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/transfer.png") ); |
36 | transferbutton->setToggleButton ( TRUE ); | 36 | transferbutton->setToggleButton ( TRUE ); |
37 | connect ( transferbutton, SIGNAL ( toggled ( bool ) ), this, SLOT ( accountTransfer ( bool ) ) ); | 37 | connect ( transferbutton, SIGNAL ( toggled(bool) ), this, SLOT ( accountTransfer(bool) ) ); |
38 | 38 | ||
39 | listview = new QListView ( this ); | 39 | listview = new QListView ( this ); |
40 | listview->setAllColumnsShowFocus ( TRUE ); | 40 | listview->setAllColumnsShowFocus ( TRUE ); |
41 | listview->setShowSortIndicator ( TRUE ); | 41 | listview->setShowSortIndicator ( TRUE ); |
42 | listview->setRootIsDecorated ( TRUE ); | 42 | listview->setRootIsDecorated ( TRUE ); |
43 | listview->setMultiSelection ( FALSE ); | 43 | listview->setMultiSelection ( FALSE ); |
44 | connect ( listview, SIGNAL ( expanded ( QListViewItem * ) ), this, SLOT ( setAccountExpanded ( QListViewItem * ) ) ); | 44 | connect ( listview, SIGNAL ( expanded(QListViewItem*) ), this, SLOT ( setAccountExpanded(QListViewItem*) ) ); |
45 | connect ( listview, SIGNAL ( collapsed ( QListViewItem * ) ), this, SLOT ( setAccountCollapsed ( QListViewItem * ) ) ); | 45 | connect ( listview, SIGNAL ( collapsed(QListViewItem*) ), this, SLOT ( setAccountCollapsed(QListViewItem*) ) ); |
46 | 46 | ||
47 | listview->header()->setTracking ( FALSE ); | 47 | listview->header()->setTracking ( FALSE ); |
48 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); | 48 | connect ( listview->header(), SIGNAL ( sizeChange(int,int,int) ), this, SLOT ( saveColumnSize(int,int,int) ) ); |
49 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); | 49 | connect ( listview->header(), SIGNAL ( clicked(int) ), this, SLOT ( saveSortingPreference(int) ) ); |
50 | 50 | ||
51 | layout = new QVBoxLayout ( this, 2, 5 ); | 51 | layout = new QVBoxLayout ( this, 2, 5 ); |
52 | layout->addWidget ( firstline ); | 52 | layout->addWidget ( firstline ); |
53 | layout->addWidget ( listview ); | 53 | layout->addWidget ( listview ); |
54 | } | 54 | } |
55 | 55 | ||
56 | void AccountDisplay::setTabs ( QWidget *newtab2, QTabWidget *newtabs ) | 56 | void AccountDisplay::setTabs ( QWidget *newtab2, QTabWidget *newtabs ) |
57 | { | 57 | { |
58 | tab2 = newtab2; | 58 | tab2 = newtab2; |
59 | maintabs = newtabs; | 59 | maintabs = newtabs; |
60 | } | 60 | } |
61 | 61 | ||
62 | void AccountDisplay::addAccount () | 62 | void AccountDisplay::addAccount () |
63 | { | 63 | { |
64 | // initialize local variables | 64 | // initialize local variables |
65 | int parentid = 0; | 65 | int parentid = 0; |
66 | type = 0; | 66 | type = 0; |
67 | QString parentlist [ listview->childCount() + 1 ] [ 3 ] ; | 67 | QString parentlist [ listview->childCount() + 1 ] [ 3 ] ; |
68 | 68 | ||
69 | // create new account window for entering data | 69 | // create new account window for entering data |
70 | NewAccount *newaccount = new NewAccount ( this ); | 70 | NewAccount *newaccount = new NewAccount ( this ); |
71 | int width = this->width(); | 71 | int width = this->width(); |
72 | newaccount->accountbox->setMaximumWidth ( ( int ) ( width * 0.5 ) ); | 72 | newaccount->accountbox->setMaximumWidth ( ( int ) ( width * 0.5 ) ); |
73 | newaccount->datebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 73 | newaccount->datebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
74 | newaccount->childbox->setMaximumWidth ( ( int ) ( width * 0.5 ) ); | 74 | newaccount->childbox->setMaximumWidth ( ( int ) ( width * 0.5 ) ); |
75 | newaccount->balancebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 75 | newaccount->balancebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
76 | newaccount->creditlimitbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 76 | newaccount->creditlimitbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
77 | 77 | ||
78 | // if there are no accounts, disable the child check box | 78 | // if there are no accounts, disable the child check box |
79 | if ( account->getNumberOfAccounts () == 0 ) | 79 | if ( account->getNumberOfAccounts () == 0 ) |
80 | newaccount->childcheckbox->setEnabled ( FALSE ); | 80 | newaccount->childcheckbox->setEnabled ( FALSE ); |
81 | 81 | ||
82 | // if there are accounts, fill up the pulldown menu for | 82 | // if there are accounts, fill up the pulldown menu for |
83 | // selecting a parent account. We should only add those parents without transactions | 83 | // selecting a parent account. We should only add those parents without transactions |
84 | else | 84 | else |
85 | { | 85 | { |
86 | int c = 0; | 86 | int c = 0; |
87 | QListViewItemIterator it ( listview ); | 87 | QListViewItemIterator it ( listview ); |
88 | for ( ; it.current(); ++it ) | 88 | for ( ; it.current(); ++it ) |
89 | { | 89 | { |
90 | int id = it.current()->text ( getIDColumn() ).toInt(); | 90 | int id = it.current()->text ( getIDColumn() ).toInt(); |
91 | // iterate through accountdisplay listview and add parents with no transactions | 91 | // iterate through accountdisplay listview and add parents with no transactions |
92 | // add this item to the list box only if it is a parent and has no transactions | 92 | // add this item to the list box only if it is a parent and has no transactions |
93 | if ( transfer->getNumberOfTransfers ( id ) == 0 && transaction->getNumberOfTransactions ( id ) == 0 && it.current()->parent() == 0 ) | 93 | if ( transfer->getNumberOfTransfers ( id ) == 0 && transaction->getNumberOfTransactions ( id ) == 0 && it.current()->parent() == 0 ) |
94 | { | 94 | { |
95 | newaccount->childbox->insertItem ( it.current()->text ( 0 ) ); | 95 | newaccount->childbox->insertItem ( it.current()->text ( 0 ) ); |
96 | parentlist [ c ] [ 0 ] = it.current()->text ( 0 ); | 96 | parentlist [ c ] [ 0 ] = it.current()->text ( 0 ); |
97 | parentlist [ c ] [ 1 ] = it.current()->text ( getIDColumn() ); | 97 | parentlist [ c ] [ 1 ] = it.current()->text ( getIDColumn() ); |
98 | parentlist [ c ] [ 2 ] = QString::number ( c ); | 98 | parentlist [ c ] [ 2 ] = QString::number ( c ); |
99 | c++; | 99 | c++; |
100 | } | 100 | } |
101 | } | 101 | } |
102 | } | 102 | } |
103 | 103 | ||
104 | if ( preferences->getPreference ( 4 ) == 0 ) | 104 | if ( preferences->getPreference ( 4 ) == 0 ) |
105 | newaccount->currencybox->setEnabled ( FALSE ); | 105 | newaccount->currencybox->setEnabled ( FALSE ); |
106 | 106 | ||
107 | // enter today's date in the date box as default | 107 | // enter today's date in the date box as default |
108 | QDate today = QDate::currentDate (); | 108 | QDate today = QDate::currentDate (); |
109 | int defaultday = today.day(); | 109 | int defaultday = today.day(); |
110 | int defaultmonth = today.month(); | 110 | int defaultmonth = today.month(); |
111 | int defaultyear = today.year(); | 111 | int defaultyear = today.year(); |
112 | newaccount->startdate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); | 112 | newaccount->startdate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); |
113 | 113 | ||
114 | //add account information if user pushes OK button | 114 | //add account information if user pushes OK button |
115 | if ( newaccount->exec() == QDialog::Accepted ) | 115 | if ( newaccount->exec() == QDialog::Accepted ) |
116 | { | 116 | { |
117 | if ( newaccount->childcheckbox->isChecked () == TRUE ) // set a parent id and type for a child account | 117 | if ( newaccount->childcheckbox->isChecked () == TRUE ) // set a parent id and type for a child account |
118 | { | 118 | { |
119 | // go through the parentlist we created and determine the parent accountid | 119 | // go through the parentlist we created and determine the parent accountid |
120 | // we can't use the name of the account because there may be two accounts | 120 | // we can't use the name of the account because there may be two accounts |
121 | // with the same name. This function does it all by accountid | 121 | // with the same name. This function does it all by accountid |
122 | int counter; | 122 | int counter; |
123 | for ( counter = 0; counter < listview->childCount() + 1; counter++ ) | 123 | for ( counter = 0; counter < listview->childCount() + 1; counter++ ) |
124 | if ( ( parentlist [ counter ] [ 2 ].toInt() ) == newaccount->childbox->currentItem() ) | 124 | if ( ( parentlist [ counter ] [ 2 ].toInt() ) == newaccount->childbox->currentItem() ) |
125 | { | 125 | { |
126 | parentid = parentlist [ counter ] [ 1 ].toInt(); | 126 | parentid = parentlist [ counter ] [ 1 ].toInt(); |
127 | break; | 127 | break; |
128 | } | 128 | } |
129 | type = ( newaccount->accounttype->currentItem() ) + 6; // sets account ids for child accounts. See accountdisplay.h for types | 129 | type = ( newaccount->accounttype->currentItem() ) + 6; // sets account ids for child accounts. See accountdisplay.h for types |
130 | } | 130 | } |
131 | else | 131 | else |
132 | { | 132 | { |
133 | parentid = -1; | 133 | parentid = -1; |
134 | type = newaccount->accounttype->currentItem(); // sets account ids for parent accounts | 134 | type = newaccount->accounttype->currentItem(); // sets account ids for parent accounts |
135 | } | 135 | } |
136 | 136 | ||
137 | // add the new account | 137 | // add the new account |
138 | if ( newaccount->getDateEdited () == TRUE ) | 138 | if ( newaccount->getDateEdited () == TRUE ) |
139 | account->addAccount ( newaccount->accountname->text(), parentid, newaccount->accountbalance->text().toFloat(), type, | 139 | account->addAccount ( newaccount->accountname->text(), parentid, newaccount->accountbalance->text().toFloat(), type, |
140 | newaccount->getDescription(), newaccount->creditlimit->text().toFloat(), newaccount->getYear(), | 140 | newaccount->getDescription(), newaccount->creditlimit->text().toFloat(), newaccount->getYear(), |
141 | newaccount->getMonth(), newaccount->getDay(), newaccount->accountbalance->text().toFloat(), newaccount->currencybox->currencybox->currentText() ); | 141 | newaccount->getMonth(), newaccount->getDay(), newaccount->accountbalance->text().toFloat(), newaccount->currencybox->currencybox->currentText() ); |
142 | else | 142 | else |
143 | account->addAccount ( newaccount->accountname->text (), parentid, newaccount->accountbalance->text().toFloat(), type, | 143 | account->addAccount ( newaccount->accountname->text (), parentid, newaccount->accountbalance->text().toFloat(), type, |
144 | newaccount->getDescription(), newaccount->creditlimit->text().toFloat(), defaultyear, | 144 | newaccount->getDescription(), newaccount->creditlimit->text().toFloat(), defaultyear, |
145 | defaultmonth, defaultday, newaccount->accountbalance->text().toFloat(), newaccount->currencybox->currencybox->currentText() ); | 145 | defaultmonth, defaultday, newaccount->accountbalance->text().toFloat(), newaccount->currencybox->currencybox->currentText() ); |
146 | 146 | ||
147 | if ( parentid != -1 ) | 147 | if ( parentid != -1 ) |
148 | account->changeParentAccountBalance ( parentid ); | 148 | account->changeParentAccountBalance ( parentid ); |
149 | 149 | ||
150 | // redisplay accounts | 150 | // redisplay accounts |
151 | // this function clears the account display first | 151 | // this function clears the account display first |
152 | account->displayAccounts ( listview ); | 152 | account->displayAccounts ( listview ); |
153 | setToggleButton(); | 153 | setToggleButton(); |
154 | } | 154 | } |
155 | maintabs->setTabEnabled ( tab2, FALSE ); | 155 | maintabs->setTabEnabled ( tab2, FALSE ); |
156 | } | 156 | } |
157 | 157 | ||
158 | void AccountDisplay::deleteAccount () | 158 | void AccountDisplay::deleteAccount () |
159 | { | 159 | { |
160 | if ( listview->selectedItem() == 0 ) | 160 | if ( listview->selectedItem() == 0 ) |
161 | QMessageBox::warning ( this, "QashMoney", "Please select an account\nto delete."); | 161 | QMessageBox::warning ( this, "QashMoney", "Please select an account\nto delete."); |
162 | else if ( listview->selectedItem()->parent() == 0 && listview->selectedItem()->childCount() != 0 ) | 162 | else if ( listview->selectedItem()->parent() == 0 && listview->selectedItem()->childCount() != 0 ) |
163 | QMessageBox::warning ( this, "QashMoney", "Can't delete parent accounts\nwith children"); | 163 | QMessageBox::warning ( this, "QashMoney", "Can't delete parent accounts\nwith children"); |
164 | else | 164 | else |
165 | { | 165 | { |
166 | QMessageBox mb ( "Delete Account", "This will delete all transactions\nand transfers for this account.", QMessageBox::Information, QMessageBox::Ok, QMessageBox::Cancel, QMessageBox::NoButton ); | 166 | QMessageBox mb ( "Delete Account", "This will delete all transactions\nand transfers for this account.", QMessageBox::Information, QMessageBox::Ok, QMessageBox::Cancel, QMessageBox::NoButton ); |
167 | if ( mb.exec() == QMessageBox::Ok ) | 167 | if ( mb.exec() == QMessageBox::Ok ) |
168 | { | 168 | { |
169 | int accountid = listview->selectedItem()->text ( getIDColumn() ).toInt (); | 169 | int accountid = listview->selectedItem()->text ( getIDColumn() ).toInt (); |
170 | int parentid = account->getParentAccountID ( accountid ); | 170 | int parentid = account->getParentAccountID ( accountid ); |
171 | 171 | ||
172 | // delete all the transactions and transfers for the account | 172 | // delete all the transactions and transfers for the account |
173 | transaction->deleteAllTransactions ( accountid ); | 173 | transaction->deleteAllTransactions ( accountid ); |
174 | transfer->deleteAllTransfers ( accountid ); | 174 | transfer->deleteAllTransfers ( accountid ); |
175 | 175 | ||
176 | // delete the account | 176 | // delete the account |
177 | account->deleteAccount ( accountid ); | 177 | account->deleteAccount ( accountid ); |
178 | 178 | ||
179 | // update account balances | 179 | // update account balances |
180 | if ( parentid != -1 ) | 180 | if ( parentid != -1 ) |
181 | account->changeParentAccountBalance ( parentid ); | 181 | account->changeParentAccountBalance ( parentid ); |
182 | 182 | ||
183 | //redisplay accounts | 183 | //redisplay accounts |
184 | account->displayAccounts ( listview ); | 184 | account->displayAccounts ( listview ); |
185 | 185 | ||
186 | //remove all the columns from the accountdisplay if there are not any accounts | 186 | //remove all the columns from the accountdisplay if there are not any accounts |
187 | if ( account->getNumberOfAccounts() == 0 ) | 187 | if ( account->getNumberOfAccounts() == 0 ) |
188 | { | 188 | { |
189 | int columns = listview->columns(); | 189 | int columns = listview->columns(); |
190 | int counter; | 190 | int counter; |
191 | for ( counter = 0; counter <= columns; counter++ ) | 191 | for ( counter = 0; counter <= columns; counter++ ) |
192 | listview->removeColumn ( 0 ); | 192 | listview->removeColumn ( 0 ); |
193 | } | 193 | } |
194 | 194 | ||
195 | setToggleButton(); | 195 | setToggleButton(); |
196 | } | 196 | } |
197 | } | 197 | } |
198 | maintabs->setTabEnabled ( tab2, FALSE ); | 198 | maintabs->setTabEnabled ( tab2, FALSE ); |
199 | } | 199 | } |
200 | 200 | ||
201 | void AccountDisplay::setToggleButton () | 201 | void AccountDisplay::setToggleButton () |
202 | { | 202 | { |
203 | // iterate through account display and determine how many "transferable" accounts we have | 203 | // iterate through account display and determine how many "transferable" accounts we have |
204 | // if there are less than two, disable the transfer button | 204 | // if there are less than two, disable the transfer button |
205 | QListViewItemIterator it ( listview ); | 205 | QListViewItemIterator it ( listview ); |
206 | int counter = 0; | 206 | int counter = 0; |
207 | for ( ; it.current(); ++it ) | 207 | for ( ; it.current(); ++it ) |
208 | { | 208 | { |
209 | // add one to counter if we find a transferable account | 209 | // add one to counter if we find a transferable account |
210 | if ( it.current()->parent() != 0 || ( it.current()->childCount() ) == 0 ) | 210 | if ( it.current()->parent() != 0 || ( it.current()->childCount() ) == 0 ) |
211 | counter++; | 211 | counter++; |
212 | } | 212 | } |
213 | if ( counter > 1 ) | 213 | if ( counter > 1 ) |
214 | transferbutton->show(); | 214 | transferbutton->show(); |
215 | else | 215 | else |
216 | transferbutton->hide(); | 216 | transferbutton->hide(); |
217 | } | 217 | } |
218 | 218 | ||
219 | void AccountDisplay::accountTransfer ( bool state ) | 219 | void AccountDisplay::accountTransfer ( bool state ) |
220 | { | 220 | { |
221 | if ( state == TRUE ) | 221 | if ( state == TRUE ) |
222 | { | 222 | { |
223 | firstaccountid = -1; | 223 | firstaccountid = -1; |
224 | secondaccountid = -1; | 224 | secondaccountid = -1; |
225 | listview->clearSelection (); | 225 | listview->clearSelection (); |
226 | listview->setMultiSelection ( TRUE ); | 226 | listview->setMultiSelection ( TRUE ); |
227 | disableParentsWithChildren (); | 227 | disableParentsWithChildren (); |
228 | connect ( listview, SIGNAL ( clicked ( QListViewItem * ) ), this, SLOT ( getTransferAccounts ( QListViewItem * ) ) ); | 228 | connect ( listview, SIGNAL ( clicked(QListViewItem*) ), this, SLOT ( getTransferAccounts(QListViewItem*) ) ); |
229 | } | 229 | } |
230 | else | 230 | else |
231 | { | 231 | { |
232 | firstaccountid = -1; | 232 | firstaccountid = -1; |
233 | secondaccountid = -1; | 233 | secondaccountid = -1; |
234 | listview->clearSelection (); | 234 | listview->clearSelection (); |
235 | listview->setMultiSelection ( FALSE ); | 235 | listview->setMultiSelection ( FALSE ); |
236 | enableAccounts (); | 236 | enableAccounts (); |
237 | disconnect ( listview, SIGNAL ( clicked ( QListViewItem * ) ), this, SLOT ( getTransferAccounts ( QListViewItem * ) ) ); | 237 | disconnect ( listview, SIGNAL ( clicked(QListViewItem*) ), this, SLOT ( getTransferAccounts(QListViewItem*) ) ); |
238 | } | 238 | } |
239 | } | 239 | } |
240 | 240 | ||
241 | void AccountDisplay::getTransferAccounts ( QListViewItem * item ) | 241 | void AccountDisplay::getTransferAccounts ( QListViewItem * item ) |
242 | { | 242 | { |
243 | if ( item->parent() != 0 || item->childCount() == 0 ) // only set an account for transfer if its a child or parent with no children | 243 | if ( item->parent() != 0 || item->childCount() == 0 ) // only set an account for transfer if its a child or parent with no children |
244 | { | 244 | { |
245 | if ( firstaccountid == -1 ) | 245 | if ( firstaccountid == -1 ) |
246 | firstaccountid = item->text ( getIDColumn() ).toInt(); // set first account if we've selected a valid account | 246 | firstaccountid = item->text ( getIDColumn() ).toInt(); // set first account if we've selected a valid account |
247 | else | 247 | else |
248 | if ( item->text ( getIDColumn() ).toInt() != firstaccountid ) // set the second account if its not equal to the first | 248 | if ( item->text ( getIDColumn() ).toInt() != firstaccountid ) // set the second account if its not equal to the first |
249 | secondaccountid = item->text ( getIDColumn() ).toInt(); | 249 | secondaccountid = item->text ( getIDColumn() ).toInt(); |
250 | } | 250 | } |
251 | 251 | ||
252 | // open transfer window if both accounts are set | 252 | // open transfer window if both accounts are set |
253 | if ( firstaccountid != -1 && secondaccountid != -1 ) | 253 | if ( firstaccountid != -1 && secondaccountid != -1 ) |
254 | { | 254 | { |
255 | // construct the transferdialog window | 255 | // construct the transferdialog window |
256 | TransferDialog *td = new TransferDialog ( this, firstaccountid, secondaccountid ); | 256 | TransferDialog *td = new TransferDialog ( this, firstaccountid, secondaccountid ); |
257 | 257 | ||
258 | // enter today's date in the date box as default | 258 | // enter today's date in the date box as default |
259 | QDate today = QDate::currentDate (); | 259 | QDate today = QDate::currentDate (); |
260 | int defaultday = today.day(); | 260 | int defaultday = today.day(); |
261 | int defaultmonth = today.month(); | 261 | int defaultmonth = today.month(); |
262 | int defaultyear = today.year(); | 262 | int defaultyear = today.year(); |
263 | td->date->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); | 263 | td->date->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); |
264 | 264 | ||
265 | if ( td->exec() == QDialog::Accepted ) | 265 | if ( td->exec() == QDialog::Accepted ) |
266 | { | 266 | { |
267 | // set the cleared integer if the checkbox is checked | 267 | // set the cleared integer if the checkbox is checked |
268 | if ( td->clearedcheckbox->isChecked() == TRUE ) | 268 | if ( td->clearedcheckbox->isChecked() == TRUE ) |
269 | cleared = 1; | 269 | cleared = 1; |
270 | qDebug("Year from transferdialog = %i",td->getYear()); | 270 | qDebug("Year from transferdialog = %i",td->getYear()); |
271 | // add the transfer with a new date if its been edited or use the default date | 271 | // add the transfer with a new date if its been edited or use the default date |
272 | if ( td->getDateEdited () == TRUE ) | 272 | if ( td->getDateEdited () == TRUE ) |
273 | transfer->addTransfer ( firstaccountid, account->getParentAccountID ( firstaccountid ), secondaccountid, account->getParentAccountID ( secondaccountid ), td->getDay(), td->getMonth(), td->getYear(), td->amount->text().toFloat(), cleared ); | 273 | transfer->addTransfer ( firstaccountid, account->getParentAccountID ( firstaccountid ), secondaccountid, account->getParentAccountID ( secondaccountid ), td->getDay(), td->getMonth(), td->getYear(), td->amount->text().toFloat(), cleared ); |
274 | else | 274 | else |
275 | transfer->addTransfer ( firstaccountid, account->getParentAccountID ( firstaccountid ), secondaccountid, account->getParentAccountID ( secondaccountid ), defaultday, defaultmonth, defaultyear, td->amount->text().toFloat(), cleared ); | 275 | transfer->addTransfer ( firstaccountid, account->getParentAccountID ( firstaccountid ), secondaccountid, account->getParentAccountID ( secondaccountid ), defaultday, defaultmonth, defaultyear, td->amount->text().toFloat(), cleared ); |
276 | 276 | ||
277 | // update account balances of both accounts and parents if necessary | 277 | // update account balances of both accounts and parents if necessary |
278 | account->updateAccountBalance ( firstaccountid ); | 278 | account->updateAccountBalance ( firstaccountid ); |
279 | if ( account->getParentAccountID ( firstaccountid ) != -1 ) | 279 | if ( account->getParentAccountID ( firstaccountid ) != -1 ) |
280 | account->changeParentAccountBalance ( account->getParentAccountID ( firstaccountid ) ); | 280 | account->changeParentAccountBalance ( account->getParentAccountID ( firstaccountid ) ); |
281 | account->updateAccountBalance ( secondaccountid ); | 281 | account->updateAccountBalance ( secondaccountid ); |
282 | if ( account->getParentAccountID ( secondaccountid ) != -1 ) | 282 | if ( account->getParentAccountID ( secondaccountid ) != -1 ) |
283 | account->changeParentAccountBalance ( account->getParentAccountID ( secondaccountid ) ); | 283 | account->changeParentAccountBalance ( account->getParentAccountID ( secondaccountid ) ); |
284 | 284 | ||
285 | // redisplay accounts | 285 | // redisplay accounts |
286 | account->displayAccounts ( listview ); | 286 | account->displayAccounts ( listview ); |
287 | } | 287 | } |
288 | else | 288 | else |
289 | { | 289 | { |
290 | firstaccountid = -1; | 290 | firstaccountid = -1; |
291 | secondaccountid = -1; | 291 | secondaccountid = -1; |
292 | listview->clearSelection (); | 292 | listview->clearSelection (); |
293 | listview->setMultiSelection ( FALSE ); | 293 | listview->setMultiSelection ( FALSE ); |
294 | disconnect ( listview, SIGNAL ( clicked ( QListViewItem * ) ), this, SLOT ( getTransferAccounts ( QListViewItem * ) ) ); | 294 | disconnect ( listview, SIGNAL ( clicked(QListViewItem*) ), this, SLOT ( getTransferAccounts(QListViewItem*) ) ); |
295 | } | 295 | } |
296 | 296 | ||
297 | // reset the accounts display window | 297 | // reset the accounts display window |
298 | transferbutton->toggle(); // toggling this button with clear the window as well | 298 | transferbutton->toggle(); // toggling this button with clear the window as well |
299 | 299 | ||
300 | // reenable all the accounts so the transaction tab will be properly set | 300 | // reenable all the accounts so the transaction tab will be properly set |
301 | enableAccounts (); | 301 | enableAccounts (); |
302 | } | 302 | } |
303 | } | 303 | } |
304 | 304 | ||
305 | void AccountDisplay::disableParentsWithChildren () | 305 | void AccountDisplay::disableParentsWithChildren () |
306 | { | 306 | { |
307 | // iterate through accountdisplay listview and disable all the parents that have children | 307 | // iterate through accountdisplay listview and disable all the parents that have children |
308 | QListViewItemIterator it ( listview ); | 308 | QListViewItemIterator it ( listview ); |
309 | for ( ; it.current(); ++it ) | 309 | for ( ; it.current(); ++it ) |
310 | { | 310 | { |
311 | if ( it.current()->parent() == 0 && it.current()->childCount() != 0 ) | 311 | if ( it.current()->parent() == 0 && it.current()->childCount() != 0 ) |
312 | it.current()->setSelectable ( FALSE ); | 312 | it.current()->setSelectable ( FALSE ); |
313 | } | 313 | } |
314 | } | 314 | } |
315 | 315 | ||
316 | void AccountDisplay::enableAccounts () | 316 | void AccountDisplay::enableAccounts () |
317 | { | 317 | { |
318 | // iterate through accountdisplay listview and enable all accounts | 318 | // iterate through accountdisplay listview and enable all accounts |
319 | QListViewItemIterator it ( listview ); | 319 | QListViewItemIterator it ( listview ); |
320 | for ( ; it.current(); ++it ) | 320 | for ( ; it.current(); ++it ) |
321 | it.current()->setSelectable ( TRUE ); | 321 | it.current()->setSelectable ( TRUE ); |
322 | } | 322 | } |
323 | 323 | ||
324 | void AccountDisplay::saveColumnSize ( int column, int oldsize, int newsize ) | 324 | void AccountDisplay::saveColumnSize ( int column, int oldsize, int newsize ) |
325 | { | 325 | { |
326 | switch ( column ) | 326 | switch ( column ) |
327 | { | 327 | { |
328 | case 0: | 328 | case 0: |
329 | if ( listview->columns() == 3 ) | 329 | if ( listview->columns() == 3 ) |
330 | preferences->changeColumnPreference ( 1, newsize ); | 330 | preferences->changeColumnPreference ( 1, newsize ); |
331 | else | 331 | else |
332 | preferences->changeColumnPreference ( 10, newsize ); | 332 | preferences->changeColumnPreference ( 10, newsize ); |
333 | break; | 333 | break; |
334 | case 1: | 334 | case 1: |
335 | if ( listview->columns() == 3 ) | 335 | if ( listview->columns() == 3 ) |
336 | preferences->changeColumnPreference ( 2, newsize ); | 336 | preferences->changeColumnPreference ( 2, newsize ); |
337 | else | 337 | else |
338 | preferences->changeColumnPreference ( 11, newsize ); | 338 | preferences->changeColumnPreference ( 11, newsize ); |
339 | break; | 339 | break; |
340 | case 2: | 340 | case 2: |
341 | preferences->changeColumnPreference ( 12, newsize ); | 341 | preferences->changeColumnPreference ( 12, newsize ); |
342 | break; | 342 | break; |
343 | } | 343 | } |
344 | 344 | ||
345 | } | 345 | } |
346 | 346 | ||
347 | void AccountDisplay::saveSortingPreference ( int column ) | 347 | void AccountDisplay::saveSortingPreference ( int column ) |
348 | { | 348 | { |
349 | preferences->changeSortingPreference ( 1, column ); | 349 | preferences->changeSortingPreference ( 1, column ); |
350 | } | 350 | } |
351 | 351 | ||
352 | int AccountDisplay::getIDColumn () | 352 | int AccountDisplay::getIDColumn () |
353 | { | 353 | { |
354 | int counter; | 354 | int counter; |
355 | int columns = listview->columns(); | 355 | int columns = listview->columns(); |
356 | for ( counter = 0; counter <= columns; counter++ ) | 356 | for ( counter = 0; counter <= columns; counter++ ) |
357 | if ( listview->header()->label ( counter ).length() == 0 ) | 357 | if ( listview->header()->label ( counter ).length() == 0 ) |
358 | return counter; | 358 | return counter; |
359 | } | 359 | } |
360 | 360 | ||
361 | void AccountDisplay::editAccount () | 361 | void AccountDisplay::editAccount () |
362 | { | 362 | { |
363 | if ( listview->selectedItem() == 0 ) | 363 | if ( listview->selectedItem() == 0 ) |
364 | QMessageBox::warning ( this, "QashMoney", "Please select an account\nto edit."); | 364 | QMessageBox::warning ( this, "QashMoney", "Please select an account\nto edit."); |
365 | else | 365 | else |
366 | { | 366 | { |
367 | // set the accountid | 367 | // set the accountid |
368 | int accountid = listview->selectedItem()->text ( getIDColumn() ).toInt(); | 368 | int accountid = listview->selectedItem()->text ( getIDColumn() ).toInt(); |
369 | 369 | ||
370 | //construct new dialog box | 370 | //construct new dialog box |
371 | QDialog *editaccountwindow = new QDialog ( this, 0, TRUE ); | 371 | QDialog *editaccountwindow = new QDialog ( this, 0, TRUE ); |
372 | editaccountwindow->setCaption ( "Edit Account" ); | 372 | editaccountwindow->setCaption ( "Edit Account" ); |
373 | 373 | ||
374 | // construct the items which will go in the dialog bix | 374 | // construct the items which will go in the dialog bix |
375 | QLabel *namelabel = new QLabel ( "Account Name", editaccountwindow ); | 375 | QLabel *namelabel = new QLabel ( "Account Name", editaccountwindow ); |
376 | QLineEdit *accountname = new QLineEdit ( editaccountwindow ); | 376 | QLineEdit *accountname = new QLineEdit ( editaccountwindow ); |
377 | QLabel *descriptionlabel = new QLabel ( "Account Description", editaccountwindow ); | 377 | QLabel *descriptionlabel = new QLabel ( "Account Description", editaccountwindow ); |
378 | QLineEdit *accountdescription = new QLineEdit ( editaccountwindow ); | 378 | QLineEdit *accountdescription = new QLineEdit ( editaccountwindow ); |
379 | Currency *currencybox = new Currency ( editaccountwindow ); | 379 | Currency *currencybox = new Currency ( editaccountwindow ); |
380 | 380 | ||
381 | QVBoxLayout *layout = new QVBoxLayout ( editaccountwindow, 5, 2 ); | 381 | QVBoxLayout *layout = new QVBoxLayout ( editaccountwindow, 5, 2 ); |
382 | layout->addWidget ( namelabel ); | 382 | layout->addWidget ( namelabel ); |
383 | layout->addWidget ( accountname ); | 383 | layout->addWidget ( accountname ); |
384 | layout->addWidget ( descriptionlabel ); | 384 | layout->addWidget ( descriptionlabel ); |
385 | layout->addWidget ( accountdescription ); | 385 | layout->addWidget ( accountdescription ); |
386 | layout->addWidget ( currencybox ); | 386 | layout->addWidget ( currencybox ); |
387 | 387 | ||
388 | //set the account name | 388 | //set the account name |
389 | accountname->setText ( listview->selectedItem()->text ( 0 ) ); | 389 | accountname->setText ( listview->selectedItem()->text ( 0 ) ); |
390 | 390 | ||
diff --git a/noncore/apps/qashmoney/budgetdisplay.cpp b/noncore/apps/qashmoney/budgetdisplay.cpp index d4047bf..3fc4e6c 100755 --- a/noncore/apps/qashmoney/budgetdisplay.cpp +++ b/noncore/apps/qashmoney/budgetdisplay.cpp | |||
@@ -1,178 +1,178 @@ | |||
1 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
2 | #include <qheader.h> | 2 | #include <qheader.h> |
3 | #include <sqlite.h> | 3 | #include <sqlite.h> |
4 | 4 | ||
5 | #include "budgetdisplay.h" | 5 | #include "budgetdisplay.h" |
6 | #include "budget.h" | 6 | #include "budget.h" |
7 | #include "datepicker.h" | 7 | #include "datepicker.h" |
8 | #include "transaction.h" | 8 | #include "transaction.h" |
9 | 9 | ||
10 | extern Preferences *preferences; | 10 | extern Preferences *preferences; |
11 | extern Budget *budget; | 11 | extern Budget *budget; |
12 | extern Transaction *transaction; | 12 | extern Transaction *transaction; |
13 | 13 | ||
14 | BudgetDisplay::BudgetDisplay ( QWidget *parent ) : QWidget ( parent ) | 14 | BudgetDisplay::BudgetDisplay ( QWidget *parent ) : QWidget ( parent ) |
15 | { | 15 | { |
16 | QFont font = this->font(); | 16 | QFont font = this->font(); |
17 | font.setWeight ( QFont::Bold ); | 17 | font.setWeight ( QFont::Bold ); |
18 | 18 | ||
19 | //set the default date to today | 19 | //set the default date to today |
20 | newDate = QDate::currentDate (); | 20 | newDate = QDate::currentDate (); |
21 | year = newDate.year(); | 21 | year = newDate.year(); |
22 | month = newDate.month(); | 22 | month = newDate.month(); |
23 | day = newDate.day(); | 23 | day = newDate.day(); |
24 | datelabel = preferences->getDate ( year, month ); | 24 | datelabel = preferences->getDate ( year, month ); |
25 | 25 | ||
26 | setCaption ( "Budget" ); | 26 | setCaption ( "Budget" ); |
27 | 27 | ||
28 | firstline = new QHBox ( this ); | 28 | firstline = new QHBox ( this ); |
29 | firstline->setSpacing ( 2 ); | 29 | firstline->setSpacing ( 2 ); |
30 | secondline = new QHBox ( this ); | 30 | secondline = new QHBox ( this ); |
31 | secondline->setSpacing ( 10 ); | 31 | secondline->setSpacing ( 10 ); |
32 | 32 | ||
33 | menu = new QMenuBar ( this ); | 33 | menu = new QMenuBar ( this ); |
34 | menu->setFrameStyle ( QFrame::Box | QFrame::Sunken ); | 34 | menu->setFrameStyle ( QFrame::Box | QFrame::Sunken ); |
35 | budgetmenu = new QPopupMenu ( this ); | 35 | budgetmenu = new QPopupMenu ( this ); |
36 | lineitemsmenu = new QPopupMenu ( this ); | 36 | lineitemsmenu = new QPopupMenu ( this ); |
37 | datemenu = new QPopupMenu ( this ); | 37 | datemenu = new QPopupMenu ( this ); |
38 | menu->insertItem ( "Budget", budgetmenu ); | 38 | menu->insertItem ( "Budget", budgetmenu ); |
39 | menu->insertItem ( "Line Item", lineitemsmenu ); | 39 | menu->insertItem ( "Line Item", lineitemsmenu ); |
40 | menu->insertItem ( "Date", datemenu ); | 40 | menu->insertItem ( "Date", datemenu ); |
41 | budgetmenu->insertItem ( "New", this, SLOT ( newBudget () ), 0, 1 ); | 41 | budgetmenu->insertItem ( "New", this, SLOT ( newBudget() ), 0, 1 ); |
42 | budgetmenu->insertItem ( "Edit", this, SLOT ( editBudget () ), 0, 2 ); | 42 | budgetmenu->insertItem ( "Edit", this, SLOT ( editBudget() ), 0, 2 ); |
43 | budgetmenu->insertItem ( "Delete", this, SLOT ( deleteBudget () ), 0, 3 ); | 43 | budgetmenu->insertItem ( "Delete", this, SLOT ( deleteBudget() ), 0, 3 ); |
44 | lineitemsmenu->insertItem ( "New", this, SLOT ( newLineItem () ), 0, 1 ); | 44 | lineitemsmenu->insertItem ( "New", this, SLOT ( newLineItem() ), 0, 1 ); |
45 | lineitemsmenu->insertItem ( "Edit", this, SLOT ( editLineItem () ), 0, 2 ); | 45 | lineitemsmenu->insertItem ( "Edit", this, SLOT ( editLineItem() ), 0, 2 ); |
46 | lineitemsmenu->insertItem ( "Delete", this, SLOT ( deleteLineItem () ), 0, 3 ); | 46 | lineitemsmenu->insertItem ( "Delete", this, SLOT ( deleteLineItem() ), 0, 3 ); |
47 | datemenu->insertItem ( "Change", this, SLOT ( showCalendar() ) ); | 47 | datemenu->insertItem ( "Change", this, SLOT ( showCalendar() ) ); |
48 | 48 | ||
49 | budgetbox = new QComboBox ( firstline ); | 49 | budgetbox = new QComboBox ( firstline ); |
50 | connect ( budgetbox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentBudget ( int ) ) ); | 50 | connect ( budgetbox, SIGNAL ( activated(int) ), this, SLOT ( setCurrentBudget(int) ) ); |
51 | 51 | ||
52 | budgetview = new QComboBox ( firstline ); | 52 | budgetview = new QComboBox ( firstline ); |
53 | budgetview->insertItem ( "Month" ); | 53 | budgetview->insertItem ( "Month" ); |
54 | budgetview->insertItem ( "Year" ); | 54 | budgetview->insertItem ( "Year" ); |
55 | connect ( budgetview, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentView ( int ) ) ); | 55 | connect ( budgetview, SIGNAL ( activated(int) ), this, SLOT ( setCurrentView(int) ) ); |
56 | 56 | ||
57 | budgeted = new QLabel ( secondline ); | 57 | budgeted = new QLabel ( secondline ); |
58 | budgeted->setFont ( font ); | 58 | budgeted->setFont ( font ); |
59 | actual = new QLabel ( secondline ); | 59 | actual = new QLabel ( secondline ); |
60 | actual->setFont ( font ); | 60 | actual->setFont ( font ); |
61 | date = new QLabel ( secondline ); | 61 | date = new QLabel ( secondline ); |
62 | date->setFont ( font ); | 62 | date->setFont ( font ); |
63 | 63 | ||
64 | listview = new QListView ( this ); | 64 | listview = new QListView ( this ); |
65 | listview->setAllColumnsShowFocus ( TRUE ); | 65 | listview->setAllColumnsShowFocus ( TRUE ); |
66 | listview->setShowSortIndicator ( TRUE ); | 66 | listview->setShowSortIndicator ( TRUE ); |
67 | listview->setRootIsDecorated ( TRUE ); | 67 | listview->setRootIsDecorated ( TRUE ); |
68 | listview->setMultiSelection ( FALSE ); | 68 | listview->setMultiSelection ( FALSE ); |
69 | listview->addColumn ( "Line Item", preferences->getColumnPreference ( 13 ) ); // column id 13 | 69 | listview->addColumn ( "Line Item", preferences->getColumnPreference ( 13 ) ); // column id 13 |
70 | listview->addColumn ( "Budget", preferences->getColumnPreference ( 14 ) ); // column id 14 | 70 | listview->addColumn ( "Budget", preferences->getColumnPreference ( 14 ) ); // column id 14 |
71 | listview->addColumn ( "Actual", preferences->getColumnPreference ( 15 ) ); // column id 15 | 71 | listview->addColumn ( "Actual", preferences->getColumnPreference ( 15 ) ); // column id 15 |
72 | listview->addColumn ( "", 0 ); // line item ids | 72 | listview->addColumn ( "", 0 ); // line item ids |
73 | listview->setColumnWidthMode ( 0, QListView::Manual ); | 73 | listview->setColumnWidthMode ( 0, QListView::Manual ); |
74 | listview->setColumnWidthMode ( 1, QListView::Manual ); | 74 | listview->setColumnWidthMode ( 1, QListView::Manual ); |
75 | listview->setColumnWidthMode ( 2, QListView::Manual ); | 75 | listview->setColumnWidthMode ( 2, QListView::Manual ); |
76 | listview->setColumnAlignment ( 1, Qt::AlignRight ); | 76 | listview->setColumnAlignment ( 1, Qt::AlignRight ); |
77 | listview->setColumnAlignment ( 2, Qt::AlignRight ); | 77 | listview->setColumnAlignment ( 2, Qt::AlignRight ); |
78 | listview->setColumnWidthMode ( 3, QListView::Manual ); | 78 | listview->setColumnWidthMode ( 3, QListView::Manual ); |
79 | 79 | ||
80 | listview->header()->setTracking ( FALSE ); | 80 | listview->header()->setTracking ( FALSE ); |
81 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); | 81 | connect ( listview->header(), SIGNAL ( sizeChange(int,int,int) ), this, SLOT ( saveColumnSize(int,int,int) ) ); |
82 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); | 82 | connect ( listview->header(), SIGNAL ( clicked(int) ), this, SLOT ( saveSortingPreference(int) ) ); |
83 | 83 | ||
84 | // pull the column sorting preference from the preferences table, and configure the listview accordingly | 84 | // pull the column sorting preference from the preferences table, and configure the listview accordingly |
85 | int column = 0; | 85 | int column = 0; |
86 | int direction = 0; | 86 | int direction = 0; |
87 | preferences->getSortingPreference ( 3, &column, &direction ); | 87 | preferences->getSortingPreference ( 3, &column, &direction ); |
88 | listview->setSorting ( column, direction ); | 88 | listview->setSorting ( column, direction ); |
89 | 89 | ||
90 | displayBudgetNames(); | 90 | displayBudgetNames(); |
91 | 91 | ||
92 | layout = new QVBoxLayout ( this, 2, 2 ); | 92 | layout = new QVBoxLayout ( this, 2, 2 ); |
93 | layout->setMenuBar ( menu ); | 93 | layout->setMenuBar ( menu ); |
94 | layout->addWidget ( firstline ); | 94 | layout->addWidget ( firstline ); |
95 | layout->addWidget ( secondline ); | 95 | layout->addWidget ( secondline ); |
96 | layout->addWidget ( listview ); | 96 | layout->addWidget ( listview ); |
97 | } | 97 | } |
98 | 98 | ||
99 | void BudgetDisplay::deleteBudget () | 99 | void BudgetDisplay::deleteBudget () |
100 | { | 100 | { |
101 | listview->clear(); | 101 | listview->clear(); |
102 | transaction->clearBudgetIDs ( currentbudget ); | 102 | transaction->clearBudgetIDs ( currentbudget ); |
103 | budget->deleteBudget ( currentbudget ); | 103 | budget->deleteBudget ( currentbudget ); |
104 | if ( budgetbox->count() != 0 ) | 104 | if ( budgetbox->count() != 0 ) |
105 | displayBudgetNames(); | 105 | displayBudgetNames(); |
106 | checkBudgets(); | 106 | checkBudgets(); |
107 | } | 107 | } |
108 | 108 | ||
109 | void BudgetDisplay::saveColumnSize ( int column, int oldsize, int newsize ) | 109 | void BudgetDisplay::saveColumnSize ( int column, int oldsize, int newsize ) |
110 | { | 110 | { |
111 | switch ( column ) | 111 | switch ( column ) |
112 | { | 112 | { |
113 | case 0: | 113 | case 0: |
114 | preferences->changeColumnPreference ( 13, newsize ); | 114 | preferences->changeColumnPreference ( 13, newsize ); |
115 | break; | 115 | break; |
116 | case 1: | 116 | case 1: |
117 | preferences->changeColumnPreference ( 14, newsize ); | 117 | preferences->changeColumnPreference ( 14, newsize ); |
118 | break; | 118 | break; |
119 | case 2: | 119 | case 2: |
120 | preferences->changeColumnPreference ( 15, newsize ); | 120 | preferences->changeColumnPreference ( 15, newsize ); |
121 | break; | 121 | break; |
122 | } | 122 | } |
123 | } | 123 | } |
124 | 124 | ||
125 | void BudgetDisplay::saveSortingPreference ( int column ) | 125 | void BudgetDisplay::saveSortingPreference ( int column ) |
126 | { | 126 | { |
127 | preferences->changeSortingPreference ( 3, column ); | 127 | preferences->changeSortingPreference ( 3, column ); |
128 | } | 128 | } |
129 | 129 | ||
130 | int BudgetDisplay::getIDColumn () | 130 | int BudgetDisplay::getIDColumn () |
131 | { | 131 | { |
132 | int counter; | 132 | int counter; |
133 | int columns = listview->columns(); | 133 | int columns = listview->columns(); |
134 | for ( counter = 0; counter <= columns; counter++ ) | 134 | for ( counter = 0; counter <= columns; counter++ ) |
135 | if ( listview->header()->label ( counter ).length() == 0 ) | 135 | if ( listview->header()->label ( counter ).length() == 0 ) |
136 | return counter; | 136 | return counter; |
137 | } | 137 | } |
138 | 138 | ||
139 | void BudgetDisplay::newBudget () | 139 | void BudgetDisplay::newBudget () |
140 | { | 140 | { |
141 | constructBudgetWindow(); | 141 | constructBudgetWindow(); |
142 | int response = nb->exec(); | 142 | int response = nb->exec(); |
143 | if ( response == 1 ) | 143 | if ( response == 1 ) |
144 | { | 144 | { |
145 | // open a new budget object | 145 | // open a new budget object |
146 | int addedbudget = budget->addBudget ( budgetname->text(), 0, description->text(), currencybox->currencybox->currentText(), day, month, year, day, month, year, 0 ); | 146 | int addedbudget = budget->addBudget ( budgetname->text(), 0, description->text(), currencybox->currencybox->currentText(), day, month, year, day, month, year, 0 ); |
147 | transaction->clearBudgetIDs ( addedbudget ); | 147 | transaction->clearBudgetIDs ( addedbudget ); |
148 | displayBudgetNames(); | 148 | displayBudgetNames(); |
149 | } | 149 | } |
150 | checkBudgets(); | 150 | checkBudgets(); |
151 | } | 151 | } |
152 | 152 | ||
153 | void BudgetDisplay::constructBudgetWindow () | 153 | void BudgetDisplay::constructBudgetWindow () |
154 | { | 154 | { |
155 | //construct and format the new budget window | 155 | //construct and format the new budget window |
156 | nb = new QDialog ( this, 0, TRUE ); | 156 | nb = new QDialog ( this, 0, TRUE ); |
157 | nb->setCaption ( "Budget" ); | 157 | nb->setCaption ( "Budget" ); |
158 | QLabel *namelabel = new QLabel ( "Budget Name", nb ); | 158 | QLabel *namelabel = new QLabel ( "Budget Name", nb ); |
159 | budgetname = new QLineEdit ( nb ); | 159 | budgetname = new QLineEdit ( nb ); |
160 | QLabel *descriptionlabel = new QLabel ( "Description", nb ); | 160 | QLabel *descriptionlabel = new QLabel ( "Description", nb ); |
161 | description = new QLineEdit ( nb ); | 161 | description = new QLineEdit ( nb ); |
162 | currencybox = new Currency ( nb ); | 162 | currencybox = new Currency ( nb ); |
163 | QBoxLayout *layout = new QVBoxLayout ( nb, 2, 2 ); | 163 | QBoxLayout *layout = new QVBoxLayout ( nb, 2, 2 ); |
164 | layout->addWidget ( namelabel ); | 164 | layout->addWidget ( namelabel ); |
165 | layout->addWidget ( budgetname ); | 165 | layout->addWidget ( budgetname ); |
166 | layout->addWidget ( descriptionlabel ); | 166 | layout->addWidget ( descriptionlabel ); |
167 | layout->addWidget ( description ); | 167 | layout->addWidget ( description ); |
168 | layout->addWidget ( currencybox ); | 168 | layout->addWidget ( currencybox ); |
169 | } | 169 | } |
170 | 170 | ||
171 | void BudgetDisplay::displayBudgetNames () | 171 | void BudgetDisplay::displayBudgetNames () |
172 | { | 172 | { |
173 | budgetbox->clear(); | 173 | budgetbox->clear(); |
174 | if ( budget->getNumberOfBudgets() != 0 ) | 174 | if ( budget->getNumberOfBudgets() != 0 ) |
175 | { | 175 | { |
176 | ids = budget->getBudgetIDs(); | 176 | ids = budget->getBudgetIDs(); |
177 | for ( QStringList::Iterator it = ids->begin(); it != ids->end(); ++it ) | 177 | for ( QStringList::Iterator it = ids->begin(); it != ids->end(); ++it ) |
178 | { | 178 | { |
diff --git a/noncore/apps/qashmoney/calculator.cpp b/noncore/apps/qashmoney/calculator.cpp index 0e0a043..2c92103 100755 --- a/noncore/apps/qashmoney/calculator.cpp +++ b/noncore/apps/qashmoney/calculator.cpp | |||
@@ -1,113 +1,113 @@ | |||
1 | #include "calculator.h" | 1 | #include "calculator.h" |
2 | 2 | ||
3 | #include <qpushbutton.h> | 3 | #include <qpushbutton.h> |
4 | 4 | ||
5 | Calculator::Calculator ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) | 5 | Calculator::Calculator ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) |
6 | { | 6 | { |
7 | 7 | ||
8 | display = new QLineEdit ( this, "display" ); | 8 | display = new QLineEdit ( this, "display" ); |
9 | display->setFrame ( FALSE ); | 9 | display->setFrame ( FALSE ); |
10 | display->setAlignment ( Qt::AlignRight ); | 10 | display->setAlignment ( Qt::AlignRight ); |
11 | 11 | ||
12 | QPushButton *one = new QPushButton ( "1", this, "one" ); // make buttons for first row | 12 | QPushButton *one = new QPushButton ( "1", this, "one" ); // make buttons for first row |
13 | one->setFlat ( TRUE ); | 13 | one->setFlat ( TRUE ); |
14 | connect ( one, SIGNAL ( released () ), this, SLOT ( displayOne () ) ); | 14 | connect ( one, SIGNAL ( released() ), this, SLOT ( displayOne() ) ); |
15 | 15 | ||
16 | QPushButton *two = new QPushButton ( "2", this, "two" ); | 16 | QPushButton *two = new QPushButton ( "2", this, "two" ); |
17 | two->setFlat ( TRUE ); | 17 | two->setFlat ( TRUE ); |
18 | connect ( two, SIGNAL ( released () ), this, SLOT ( displayTwo () ) ); | 18 | connect ( two, SIGNAL ( released() ), this, SLOT ( displayTwo() ) ); |
19 | 19 | ||
20 | QPushButton *three = new QPushButton ( "3", this, "three" ); | 20 | QPushButton *three = new QPushButton ( "3", this, "three" ); |
21 | three->setFlat ( TRUE ); | 21 | three->setFlat ( TRUE ); |
22 | connect ( three, SIGNAL ( released () ), this, SLOT ( displayThree () ) ); | 22 | connect ( three, SIGNAL ( released() ), this, SLOT ( displayThree() ) ); |
23 | 23 | ||
24 | QPushButton *four = new QPushButton ( "4", this, "four" ); // make buttons for second row | 24 | QPushButton *four = new QPushButton ( "4", this, "four" ); // make buttons for second row |
25 | four->setFlat ( TRUE ); | 25 | four->setFlat ( TRUE ); |
26 | connect ( four, SIGNAL ( released () ), this, SLOT ( displayFour () ) ); | 26 | connect ( four, SIGNAL ( released() ), this, SLOT ( displayFour() ) ); |
27 | 27 | ||
28 | QPushButton *five = new QPushButton ( "5", this, "five" ); | 28 | QPushButton *five = new QPushButton ( "5", this, "five" ); |
29 | five->setFlat ( TRUE ); | 29 | five->setFlat ( TRUE ); |
30 | connect ( five, SIGNAL ( released () ), this, SLOT ( displayFive () ) ); | 30 | connect ( five, SIGNAL ( released() ), this, SLOT ( displayFive() ) ); |
31 | 31 | ||
32 | QPushButton *six = new QPushButton ( "6", this, "six" ); | 32 | QPushButton *six = new QPushButton ( "6", this, "six" ); |
33 | six->setFlat ( TRUE ); | 33 | six->setFlat ( TRUE ); |
34 | connect ( six, SIGNAL ( released () ), this, SLOT ( displaySix () ) ); | 34 | connect ( six, SIGNAL ( released() ), this, SLOT ( displaySix() ) ); |
35 | 35 | ||
36 | QPushButton *seven = new QPushButton ( "7", this, "seven" ); // make buttons for third row | 36 | QPushButton *seven = new QPushButton ( "7", this, "seven" ); // make buttons for third row |
37 | seven->setFlat ( TRUE ); | 37 | seven->setFlat ( TRUE ); |
38 | connect ( seven, SIGNAL ( released () ), this, SLOT ( displaySeven () ) ); | 38 | connect ( seven, SIGNAL ( released() ), this, SLOT ( displaySeven() ) ); |
39 | 39 | ||
40 | QPushButton *eight = new QPushButton ( "8", this, "eight" ); | 40 | QPushButton *eight = new QPushButton ( "8", this, "eight" ); |
41 | eight->setFlat ( TRUE ); | 41 | eight->setFlat ( TRUE ); |
42 | connect ( eight, SIGNAL ( released () ), this, SLOT ( displayEight () ) ); | 42 | connect ( eight, SIGNAL ( released() ), this, SLOT ( displayEight() ) ); |
43 | 43 | ||
44 | QPushButton *nine = new QPushButton ( "9", this, "nine" ); | 44 | QPushButton *nine = new QPushButton ( "9", this, "nine" ); |
45 | nine->setFlat ( TRUE ); | 45 | nine->setFlat ( TRUE ); |
46 | connect ( nine, SIGNAL ( released () ), this, SLOT ( displayNine () ) ); | 46 | connect ( nine, SIGNAL ( released() ), this, SLOT ( displayNine() ) ); |
47 | 47 | ||
48 | QPushButton *zero = new QPushButton ( "0", this, "zero" ); | 48 | QPushButton *zero = new QPushButton ( "0", this, "zero" ); |
49 | zero->setFlat ( TRUE ); | 49 | zero->setFlat ( TRUE ); |
50 | connect ( zero, SIGNAL ( released () ), this, SLOT ( displayZero () ) ); | 50 | connect ( zero, SIGNAL ( released() ), this, SLOT ( displayZero() ) ); |
51 | 51 | ||
52 | QPushButton *dp = new QPushButton ( ".", this, "dp" ); | 52 | QPushButton *dp = new QPushButton ( ".", this, "dp" ); |
53 | dp->setFlat ( TRUE ); | 53 | dp->setFlat ( TRUE ); |
54 | connect ( dp, SIGNAL ( released () ), this, SLOT ( displayPoint () ) ); | 54 | connect ( dp, SIGNAL ( released() ), this, SLOT ( displayPoint() ) ); |
55 | 55 | ||
56 | QPushButton *back = new QPushButton ( "<-", this, "back" ); | 56 | QPushButton *back = new QPushButton ( "<-", this, "back" ); |
57 | back->setFlat ( TRUE ); | 57 | back->setFlat ( TRUE ); |
58 | connect ( back, SIGNAL ( released () ), this, SLOT ( back () ) ); | 58 | connect ( back, SIGNAL ( released() ), this, SLOT ( back() ) ); |
59 | 59 | ||
60 | layout = new QGridLayout ( this, 5, 3, 5, 1, "calculatorlayout" ); | 60 | layout = new QGridLayout ( this, 5, 3, 5, 1, "calculatorlayout" ); |
61 | layout->addMultiCellWidget ( display, 0, 0, 0, 2 ); | 61 | layout->addMultiCellWidget ( display, 0, 0, 0, 2 ); |
62 | layout->addWidget ( one, 1, 0 ); | 62 | layout->addWidget ( one, 1, 0 ); |
63 | layout->addWidget ( two, 1, 1 ); | 63 | layout->addWidget ( two, 1, 1 ); |
64 | layout->addWidget ( three, 1, 2 ); | 64 | layout->addWidget ( three, 1, 2 ); |
65 | layout->addWidget ( four, 2, 0 ); | 65 | layout->addWidget ( four, 2, 0 ); |
66 | layout->addWidget ( five, 2, 1 ); | 66 | layout->addWidget ( five, 2, 1 ); |
67 | layout->addWidget ( six, 2, 2 ); | 67 | layout->addWidget ( six, 2, 2 ); |
68 | layout->addWidget ( seven, 3, 0 ); | 68 | layout->addWidget ( seven, 3, 0 ); |
69 | layout->addWidget ( eight, 3, 1 ); | 69 | layout->addWidget ( eight, 3, 1 ); |
70 | layout->addWidget ( nine, 3, 2 ); | 70 | layout->addWidget ( nine, 3, 2 ); |
71 | layout->addWidget ( zero, 4, 0 ); | 71 | layout->addWidget ( zero, 4, 0 ); |
72 | layout->addWidget ( dp, 4, 1 ); | 72 | layout->addWidget ( dp, 4, 1 ); |
73 | layout->addWidget ( back, 4, 2 ); | 73 | layout->addWidget ( back, 4, 2 ); |
74 | 74 | ||
75 | } | 75 | } |
76 | 76 | ||
77 | void Calculator::displayOne () | 77 | void Calculator::displayOne () |
78 | { display->insert ( "1" ); } | 78 | { display->insert ( "1" ); } |
79 | 79 | ||
80 | void Calculator::displayTwo () | 80 | void Calculator::displayTwo () |
81 | { display->insert ( "2" ); } | 81 | { display->insert ( "2" ); } |
82 | 82 | ||
83 | void Calculator::displayThree () | 83 | void Calculator::displayThree () |
84 | { display->insert ( "3" ); } | 84 | { display->insert ( "3" ); } |
85 | 85 | ||
86 | void Calculator::displayFour () | 86 | void Calculator::displayFour () |
87 | { display->insert ( "4" ); } | 87 | { display->insert ( "4" ); } |
88 | 88 | ||
89 | void Calculator::displayFive () | 89 | void Calculator::displayFive () |
90 | { display->insert ( "5" ); } | 90 | { display->insert ( "5" ); } |
91 | 91 | ||
92 | void Calculator::displaySix () | 92 | void Calculator::displaySix () |
93 | { display->insert ( "6" ); } | 93 | { display->insert ( "6" ); } |
94 | 94 | ||
95 | void Calculator::displaySeven () | 95 | void Calculator::displaySeven () |
96 | { display->insert ( "7" ); } | 96 | { display->insert ( "7" ); } |
97 | 97 | ||
98 | void Calculator::displayEight () | 98 | void Calculator::displayEight () |
99 | { display->insert ( "8" ); } | 99 | { display->insert ( "8" ); } |
100 | 100 | ||
101 | void Calculator::displayNine () | 101 | void Calculator::displayNine () |
102 | { display->insert ( "9" ); } | 102 | { display->insert ( "9" ); } |
103 | 103 | ||
104 | void Calculator::displayZero () | 104 | void Calculator::displayZero () |
105 | { display->insert ( "0" ); } | 105 | { display->insert ( "0" ); } |
106 | 106 | ||
107 | void Calculator::displayPoint () | 107 | void Calculator::displayPoint () |
108 | { display->insert ( "." ); } | 108 | { display->insert ( "." ); } |
109 | 109 | ||
110 | void Calculator::back () | 110 | void Calculator::back () |
111 | { display->backspace(); } | 111 | { display->backspace(); } |
112 | 112 | ||
113 | 113 | ||
diff --git a/noncore/apps/qashmoney/datepicker.cpp b/noncore/apps/qashmoney/datepicker.cpp index 02fbcf3..7997c0b 100755 --- a/noncore/apps/qashmoney/datepicker.cpp +++ b/noncore/apps/qashmoney/datepicker.cpp | |||
@@ -1,95 +1,95 @@ | |||
1 | #include "datepicker.h" | 1 | #include "datepicker.h" |
2 | 2 | ||
3 | DatePicker::DatePicker ( QDate entrydate ) : QDialog ( 0, 0, TRUE ) | 3 | DatePicker::DatePicker ( QDate entrydate ) : QDialog ( 0, 0, TRUE ) |
4 | { | 4 | { |
5 | setCaption ( "Select Date" ); | 5 | setCaption ( "Select Date" ); |
6 | date = entrydate; | 6 | date = entrydate; |
7 | day = date.day(); | 7 | day = date.day(); |
8 | month = date.month(); | 8 | month = date.month(); |
9 | year = date.year(); | 9 | year = date.year(); |
10 | 10 | ||
11 | daylabel = new QLabel ( "Day", this ); | 11 | daylabel = new QLabel ( "Day", this ); |
12 | monthlabel = new QLabel ( "Month", this ); | 12 | monthlabel = new QLabel ( "Month", this ); |
13 | yearlabel = new QLabel ( "Year", this ); | 13 | yearlabel = new QLabel ( "Year", this ); |
14 | 14 | ||
15 | daybox = new QComboBox ( this, "daybox" ); | 15 | daybox = new QComboBox ( this, "daybox" ); |
16 | connect ( daybox, SIGNAL ( activated ( int ) ), this, SLOT ( setDay ( int ) ) ); | 16 | connect ( daybox, SIGNAL ( activated(int) ), this, SLOT ( setDay(int) ) ); |
17 | displayDays ( daybox ); | 17 | displayDays ( daybox ); |
18 | monthbox = new QComboBox ( this, "monthbox" ); | 18 | monthbox = new QComboBox ( this, "monthbox" ); |
19 | connect ( monthbox, SIGNAL ( activated ( int ) ), this, SLOT ( setMonth ( int ) ) ); | 19 | connect ( monthbox, SIGNAL ( activated(int) ), this, SLOT ( setMonth(int) ) ); |
20 | displayMonths ( monthbox ); | 20 | displayMonths ( monthbox ); |
21 | yearbox = new QComboBox ( this, "yearbox" ); | 21 | yearbox = new QComboBox ( this, "yearbox" ); |
22 | connect ( yearbox, SIGNAL ( activated ( int ) ), this, SLOT ( setYear ( int ) ) ); | 22 | connect ( yearbox, SIGNAL ( activated(int) ), this, SLOT ( setYear(int) ) ); |
23 | displayYears ( yearbox ); | 23 | displayYears ( yearbox ); |
24 | 24 | ||
25 | layout = new QGridLayout ( this, 2, 3, 5, 5, "datepickerlayout" ); | 25 | layout = new QGridLayout ( this, 2, 3, 5, 5, "datepickerlayout" ); |
26 | layout->addWidget ( daylabel, 0, 2 ); | 26 | layout->addWidget ( daylabel, 0, 2 ); |
27 | layout->addWidget ( monthlabel, 0, 1 ); | 27 | layout->addWidget ( monthlabel, 0, 1 ); |
28 | layout->addWidget ( yearlabel, 0, 0 ); | 28 | layout->addWidget ( yearlabel, 0, 0 ); |
29 | layout->addWidget ( daybox, 1, 2 ); | 29 | layout->addWidget ( daybox, 1, 2 ); |
30 | layout->addWidget ( monthbox, 1, 1 ); | 30 | layout->addWidget ( monthbox, 1, 1 ); |
31 | layout->addWidget ( yearbox, 1, 0 ); | 31 | layout->addWidget ( yearbox, 1, 0 ); |
32 | } | 32 | } |
33 | 33 | ||
34 | void DatePicker::displayDays ( QComboBox *daybox ) | 34 | void DatePicker::displayDays ( QComboBox *daybox ) |
35 | { | 35 | { |
36 | int counter; | 36 | int counter; |
37 | int days = date.daysInMonth(); | 37 | int days = date.daysInMonth(); |
38 | for ( counter = 1; counter <= days; counter++ ) | 38 | for ( counter = 1; counter <= days; counter++ ) |
39 | daybox->insertItem ( QString::number ( counter ) ); | 39 | daybox->insertItem ( QString::number ( counter ) ); |
40 | daybox->setCurrentItem ( ( date.day() ) - 1 ); | 40 | daybox->setCurrentItem ( ( date.day() ) - 1 ); |
41 | } | 41 | } |
42 | 42 | ||
43 | void DatePicker::displayMonths ( QComboBox *monthbox ) | 43 | void DatePicker::displayMonths ( QComboBox *monthbox ) |
44 | { | 44 | { |
45 | int counter; | 45 | int counter; |
46 | for ( counter = 1; counter <= 12; counter++ ) | 46 | for ( counter = 1; counter <= 12; counter++ ) |
47 | monthbox->insertItem ( QString::number ( counter ) ); | 47 | monthbox->insertItem ( QString::number ( counter ) ); |
48 | monthbox->setCurrentItem ( ( date.month() ) - 1 ); | 48 | monthbox->setCurrentItem ( ( date.month() ) - 1 ); |
49 | } | 49 | } |
50 | 50 | ||
51 | void DatePicker::displayYears ( QComboBox *yearbox ) | 51 | void DatePicker::displayYears ( QComboBox *yearbox ) |
52 | { | 52 | { |
53 | int counter; | 53 | int counter; |
54 | int indexcounter = 0; | 54 | int indexcounter = 0; |
55 | int yearindex = 0; | 55 | int yearindex = 0; |
56 | int year = date.year(); | 56 | int year = date.year(); |
57 | for ( counter = ( year - 1 ); counter <= ( year + 1 ); counter++ ) | 57 | for ( counter = ( year - 1 ); counter <= ( year + 1 ); counter++ ) |
58 | { | 58 | { |
59 | yearbox->insertItem ( QString::number ( counter ) ); | 59 | yearbox->insertItem ( QString::number ( counter ) ); |
60 | if ( date.year() == counter ) | 60 | if ( date.year() == counter ) |
61 | yearindex = indexcounter; | 61 | yearindex = indexcounter; |
62 | indexcounter ++; | 62 | indexcounter ++; |
63 | } | 63 | } |
64 | yearbox->setCurrentItem ( yearindex ); | 64 | yearbox->setCurrentItem ( yearindex ); |
65 | } | 65 | } |
66 | 66 | ||
67 | void DatePicker::setDay ( int index ) | 67 | void DatePicker::setDay ( int index ) |
68 | { | 68 | { |
69 | day = daybox->text ( index ).toInt(); | 69 | day = daybox->text ( index ).toInt(); |
70 | } | 70 | } |
71 | 71 | ||
72 | void DatePicker::setMonth ( int index ) | 72 | void DatePicker::setMonth ( int index ) |
73 | { | 73 | { |
74 | month = monthbox->text( index ).toInt(); | 74 | month = monthbox->text( index ).toInt(); |
75 | } | 75 | } |
76 | 76 | ||
77 | void DatePicker::setYear ( int index ) | 77 | void DatePicker::setYear ( int index ) |
78 | { | 78 | { |
79 | year = yearbox->text ( index ).toInt(); | 79 | year = yearbox->text ( index ).toInt(); |
80 | } | 80 | } |
81 | 81 | ||
82 | int DatePicker::getDay () | 82 | int DatePicker::getDay () |
83 | { return day; } | 83 | { return day; } |
84 | 84 | ||
85 | int DatePicker::getMonth () | 85 | int DatePicker::getMonth () |
86 | { return month; } | 86 | { return month; } |
87 | 87 | ||
88 | int DatePicker::getYear () | 88 | int DatePicker::getYear () |
89 | { return year; } | 89 | { return year; } |
90 | 90 | ||
91 | 91 | ||
92 | 92 | ||
93 | 93 | ||
94 | 94 | ||
95 | 95 | ||
diff --git a/noncore/apps/qashmoney/memorydialog.cpp b/noncore/apps/qashmoney/memorydialog.cpp index e9ebd54..ba11540 100755 --- a/noncore/apps/qashmoney/memorydialog.cpp +++ b/noncore/apps/qashmoney/memorydialog.cpp | |||
@@ -1,86 +1,86 @@ | |||
1 | #include "memorydialog.h" | 1 | #include "memorydialog.h" |
2 | #include "memory.h" | 2 | #include "memory.h" |
3 | #include <qmessagebox.h> | 3 | #include <qmessagebox.h> |
4 | 4 | ||
5 | extern Memory *memory; | 5 | extern Memory *memory; |
6 | 6 | ||
7 | MemoryDialog::MemoryDialog () : QDialog ( 0, 0, TRUE ) | 7 | MemoryDialog::MemoryDialog () : QDialog ( 0, 0, TRUE ) |
8 | { | 8 | { |
9 | setCaption ( tr ( "Edit Memory" ) ); | 9 | setCaption ( tr ( "Edit Memory" ) ); |
10 | 10 | ||
11 | listbox = new QListBox ( this, "listbox" ); | 11 | listbox = new QListBox ( this, "listbox" ); |
12 | memory->displayMemoryItems ( listbox ); | 12 | memory->displayMemoryItems ( listbox ); |
13 | listbox->clearSelection(); | 13 | listbox->clearSelection(); |
14 | 14 | ||
15 | secondline = new QHBox ( this ); | 15 | secondline = new QHBox ( this ); |
16 | 16 | ||
17 | newbutton = new QPushButton ( secondline ); | 17 | newbutton = new QPushButton ( secondline ); |
18 | newbutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/new.png") ); | 18 | newbutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/new.png") ); |
19 | connect ( newbutton, SIGNAL ( released () ), this, SLOT ( addItem () ) ); | 19 | connect ( newbutton, SIGNAL ( released() ), this, SLOT ( addItem() ) ); |
20 | 20 | ||
21 | editbutton = new QPushButton ( secondline ); | 21 | editbutton = new QPushButton ( secondline ); |
22 | editbutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); | 22 | editbutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); |
23 | connect ( editbutton, SIGNAL ( released () ), this, SLOT ( editItem () ) ); | 23 | connect ( editbutton, SIGNAL ( released() ), this, SLOT ( editItem() ) ); |
24 | 24 | ||
25 | deletebutton = new QPushButton( secondline ); | 25 | deletebutton = new QPushButton( secondline ); |
26 | deletebutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/delete.png") ); | 26 | deletebutton->setPixmap( QPixmap ("/opt/QtPalmtop/pics/delete.png") ); |
27 | connect ( deletebutton, SIGNAL ( released () ), this, SLOT ( deleteItem () ) ); | 27 | connect ( deletebutton, SIGNAL ( released() ), this, SLOT ( deleteItem() ) ); |
28 | 28 | ||
29 | lineedit = new QLineEdit ( this ); | 29 | lineedit = new QLineEdit ( this ); |
30 | 30 | ||
31 | layout = new QVBoxLayout ( this, 2, 2 ); | 31 | layout = new QVBoxLayout ( this, 2, 2 ); |
32 | layout->addWidget ( listbox ); | 32 | layout->addWidget ( listbox ); |
33 | layout->addWidget ( secondline ); | 33 | layout->addWidget ( secondline ); |
34 | layout->addWidget ( lineedit ); | 34 | layout->addWidget ( lineedit ); |
35 | } | 35 | } |
36 | 36 | ||
37 | MemoryDialog::~MemoryDialog() | 37 | MemoryDialog::~MemoryDialog() |
38 | { | 38 | { |
39 | } | 39 | } |
40 | 40 | ||
41 | void MemoryDialog::addItem () | 41 | void MemoryDialog::addItem () |
42 | { | 42 | { |
43 | if ( lineedit->text().length() != 0 ) | 43 | if ( lineedit->text().length() != 0 ) |
44 | { | 44 | { |
45 | memory->addMemoryItem ( lineedit->text() ); | 45 | memory->addMemoryItem ( lineedit->text() ); |
46 | listbox->clear (); | 46 | listbox->clear (); |
47 | memory->displayMemoryItems ( listbox ); | 47 | memory->displayMemoryItems ( listbox ); |
48 | listbox->clearFocus(); | 48 | listbox->clearFocus(); |
49 | listbox->clearSelection (); | 49 | listbox->clearSelection (); |
50 | lineedit->clear(); | 50 | lineedit->clear(); |
51 | } | 51 | } |
52 | } | 52 | } |
53 | 53 | ||
54 | void MemoryDialog::editItem () | 54 | void MemoryDialog::editItem () |
55 | { | 55 | { |
56 | if ( listbox->currentItem() != -1 ) | 56 | if ( listbox->currentItem() != -1 ) |
57 | { | 57 | { |
58 | lineedit->setText ( listbox->currentText() ); | 58 | lineedit->setText ( listbox->currentText() ); |
59 | memory->deleteMemoryItem ( listbox->currentText() ); | 59 | memory->deleteMemoryItem ( listbox->currentText() ); |
60 | listbox->clear (); | 60 | listbox->clear (); |
61 | memory->displayMemoryItems ( listbox ); | 61 | memory->displayMemoryItems ( listbox ); |
62 | listbox->clearSelection(); | 62 | listbox->clearSelection(); |
63 | } | 63 | } |
64 | else | 64 | else |
65 | QMessageBox::warning ( this, "QashMoney", "Please select an item to edit." ); | 65 | QMessageBox::warning ( this, "QashMoney", "Please select an item to edit." ); |
66 | } | 66 | } |
67 | 67 | ||
68 | void MemoryDialog::deleteItem () | 68 | void MemoryDialog::deleteItem () |
69 | { | 69 | { |
70 | if ( listbox->currentItem() != -1 ) | 70 | if ( listbox->currentItem() != -1 ) |
71 | { | 71 | { |
72 | memory->deleteMemoryItem ( listbox->currentText() ); | 72 | memory->deleteMemoryItem ( listbox->currentText() ); |
73 | listbox->clear (); | 73 | listbox->clear (); |
74 | memory->displayMemoryItems ( listbox ); | 74 | memory->displayMemoryItems ( listbox ); |
75 | listbox->clearSelection(); | 75 | listbox->clearSelection(); |
76 | } | 76 | } |
77 | else | 77 | else |
78 | QMessageBox::warning ( this, "QashMoney", "Please select an item to delete." ); | 78 | QMessageBox::warning ( this, "QashMoney", "Please select an item to delete." ); |
79 | } | 79 | } |
80 | 80 | ||
81 | 81 | ||
82 | 82 | ||
83 | 83 | ||
84 | 84 | ||
85 | 85 | ||
86 | 86 | ||
diff --git a/noncore/apps/qashmoney/newaccount.cpp b/noncore/apps/qashmoney/newaccount.cpp index 7e57a18..5932182 100755 --- a/noncore/apps/qashmoney/newaccount.cpp +++ b/noncore/apps/qashmoney/newaccount.cpp | |||
@@ -1,180 +1,180 @@ | |||
1 | #include "newaccount.h" | 1 | #include "newaccount.h" |
2 | #include "calculator.h" | 2 | #include "calculator.h" |
3 | #include "datepicker.h" | 3 | #include "datepicker.h" |
4 | #include <qmultilineedit.h> | 4 | #include <qmultilineedit.h> |
5 | 5 | ||
6 | extern Preferences *preferences; | 6 | extern Preferences *preferences; |
7 | 7 | ||
8 | NewAccount::NewAccount ( QWidget *parent, const char *name, bool modal ) : QDialog ( parent, name, modal ) | 8 | NewAccount::NewAccount ( QWidget *parent, const char *name, bool modal ) : QDialog ( parent, name, modal ) |
9 | { | 9 | { |
10 | accountdescription = ""; | 10 | accountdescription = ""; |
11 | dateedited = FALSE; | 11 | dateedited = FALSE; |
12 | setCaption( tr( "Account" ) ); | 12 | setCaption( tr( "Account" ) ); |
13 | 13 | ||
14 | namelabel = new QLabel ( "Account Name", this ); | 14 | namelabel = new QLabel ( "Account Name", this ); |
15 | 15 | ||
16 | accountbox = new QHBox ( this ); | 16 | accountbox = new QHBox ( this ); |
17 | accountname = new QLineEdit ( accountbox ); | 17 | accountname = new QLineEdit ( accountbox ); |
18 | descriptionbutton = new QPushButton ( accountbox ); | 18 | descriptionbutton = new QPushButton ( accountbox ); |
19 | descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); | 19 | descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); |
20 | 20 | ||
21 | datelabel = new QLabel ( "Date", this ); | 21 | datelabel = new QLabel ( "Date", this ); |
22 | 22 | ||
23 | datebox = new QHBox ( this ); | 23 | datebox = new QHBox ( this ); |
24 | startdate = new QLineEdit ( datebox ); | 24 | startdate = new QLineEdit ( datebox ); |
25 | startdate->setDisabled ( TRUE ); | 25 | startdate->setDisabled ( TRUE ); |
26 | datebutton = new QPushButton ( datebox ); | 26 | datebutton = new QPushButton ( datebox ); |
27 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); | 27 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); |
28 | 28 | ||
29 | childcheckbox = new QCheckBox ( this ); | 29 | childcheckbox = new QCheckBox ( this ); |
30 | childcheckbox->setText( tr ( "Child Account" ) ); | 30 | childcheckbox->setText( tr ( "Child Account" ) ); |
31 | 31 | ||
32 | childlabel = new QLabel ( "Child of", this ); | 32 | childlabel = new QLabel ( "Child of", this ); |
33 | childbox = new QComboBox ( FALSE, this ); | 33 | childbox = new QComboBox ( FALSE, this ); |
34 | hideChildPulldownMenu (); | 34 | hideChildPulldownMenu (); |
35 | 35 | ||
36 | balancelabel = new QLabel ( "Balance", this ); | 36 | balancelabel = new QLabel ( "Balance", this ); |
37 | 37 | ||
38 | balancebox = new QHBox ( this ); | 38 | balancebox = new QHBox ( this ); |
39 | accountbalance = new QLineEdit ( balancebox ); | 39 | accountbalance = new QLineEdit ( balancebox ); |
40 | accountbalance->setText ( "0.00" ); | 40 | accountbalance->setText ( "0.00" ); |
41 | balancecalculator = new QPushButton( balancebox ); | 41 | balancecalculator = new QPushButton( balancebox ); |
42 | balancecalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 42 | balancecalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
43 | 43 | ||
44 | creditlimitlabel = new QLabel ( "Credit Limit", this ); | 44 | creditlimitlabel = new QLabel ( "Credit Limit", this ); |
45 | 45 | ||
46 | creditlimitbox = new QHBox ( this ); | 46 | creditlimitbox = new QHBox ( this ); |
47 | creditlimit = new QLineEdit ( creditlimitbox ); | 47 | creditlimit = new QLineEdit ( creditlimitbox ); |
48 | creditlimitbox->setEnabled ( FALSE ); | 48 | creditlimitbox->setEnabled ( FALSE ); |
49 | creditlimitcalculator = new QPushButton( creditlimitbox ); | 49 | creditlimitcalculator = new QPushButton( creditlimitbox ); |
50 | creditlimitcalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 50 | creditlimitcalculator->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
51 | 51 | ||
52 | currencybox = new Currency ( this ); | 52 | currencybox = new Currency ( this ); |
53 | 53 | ||
54 | typelabel = new QLabel ( "Type", this ); | 54 | typelabel = new QLabel ( "Type", this ); |
55 | accounttype = new QComboBox ( FALSE, this ); | 55 | accounttype = new QComboBox ( FALSE, this ); |
56 | accounttype->insertItem( tr( "Bank" ) ); | 56 | accounttype->insertItem( tr( "Bank" ) ); |
57 | accounttype->insertItem( tr( "Cash" ) ); | 57 | accounttype->insertItem( tr( "Cash" ) ); |
58 | accounttype->insertItem( tr( "Credit Card" ) ); | 58 | accounttype->insertItem( tr( "Credit Card" ) ); |
59 | accounttype->insertItem( tr( "Equity" ) ); | 59 | accounttype->insertItem( tr( "Equity" ) ); |
60 | accounttype->insertItem( tr( "Asset" ) ); | 60 | accounttype->insertItem( tr( "Asset" ) ); |
61 | accounttype->insertItem( tr( "Liability" ) ); | 61 | accounttype->insertItem( tr( "Liability" ) ); |
62 | 62 | ||
63 | layout = new QGridLayout ( this, 7, 2, 4, 2 ); | 63 | layout = new QGridLayout ( this, 7, 2, 4, 2 ); |
64 | layout->addWidget ( namelabel , 0, 0, Qt::AlignLeft ); | 64 | layout->addWidget ( namelabel , 0, 0, Qt::AlignLeft ); |
65 | layout->addWidget ( accountbox, 1, 0, Qt::AlignLeft ); | 65 | layout->addWidget ( accountbox, 1, 0, Qt::AlignLeft ); |
66 | layout->addWidget ( datelabel, 2, 0, Qt::AlignLeft ); | 66 | layout->addWidget ( datelabel, 2, 0, Qt::AlignLeft ); |
67 | layout->addWidget ( datebox, 3, 0, Qt::AlignLeft ); | 67 | layout->addWidget ( datebox, 3, 0, Qt::AlignLeft ); |
68 | layout->addWidget ( childcheckbox, 4, 0, Qt::AlignLeft ); | 68 | layout->addWidget ( childcheckbox, 4, 0, Qt::AlignLeft ); |
69 | layout->addWidget ( childlabel, 5, 0, Qt::AlignLeft ); | 69 | layout->addWidget ( childlabel, 5, 0, Qt::AlignLeft ); |
70 | layout->addWidget ( childbox, 6, 0, Qt::AlignLeft ); | 70 | layout->addWidget ( childbox, 6, 0, Qt::AlignLeft ); |
71 | layout->addWidget ( balancelabel, 0, 1, Qt::AlignLeft ); | 71 | layout->addWidget ( balancelabel, 0, 1, Qt::AlignLeft ); |
72 | layout->addWidget ( balancebox, 1, 1, Qt::AlignLeft ); | 72 | layout->addWidget ( balancebox, 1, 1, Qt::AlignLeft ); |
73 | layout->addWidget ( creditlimitlabel, 2, 1, Qt::AlignLeft ); | 73 | layout->addWidget ( creditlimitlabel, 2, 1, Qt::AlignLeft ); |
74 | layout->addWidget ( creditlimitbox, 3, 1, Qt::AlignLeft ); | 74 | layout->addWidget ( creditlimitbox, 3, 1, Qt::AlignLeft ); |
75 | layout->addWidget ( currencybox, 4, 1, Qt::AlignLeft ); | 75 | layout->addWidget ( currencybox, 4, 1, Qt::AlignLeft ); |
76 | layout->addWidget ( typelabel, 5, 1, Qt::AlignLeft ); | 76 | layout->addWidget ( typelabel, 5, 1, Qt::AlignLeft ); |
77 | layout->addWidget ( accounttype, 6, 1, Qt::AlignLeft ); | 77 | layout->addWidget ( accounttype, 6, 1, Qt::AlignLeft ); |
78 | 78 | ||
79 | connect ( childcheckbox, SIGNAL ( clicked () ), this, SLOT ( showChildPulldownMenu() ) ); | 79 | connect ( childcheckbox, SIGNAL ( clicked() ), this, SLOT ( showChildPulldownMenu() ) ); |
80 | connect ( balancecalculator, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); | 80 | connect ( balancecalculator, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); |
81 | connect ( creditlimitcalculator, SIGNAL ( released() ), this, SLOT ( showCreditLimitCalculator() ) ); | 81 | connect ( creditlimitcalculator, SIGNAL ( released() ), this, SLOT ( showCreditLimitCalculator() ) ); |
82 | connect ( accounttype, SIGNAL ( activated ( int ) ), this, SLOT ( activateCreditLimit ( int ) ) ); | 82 | connect ( accounttype, SIGNAL ( activated(int) ), this, SLOT ( activateCreditLimit(int) ) ); |
83 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); | 83 | connect ( datebutton, SIGNAL ( released() ), this, SLOT ( showCalendar() ) ); |
84 | connect ( descriptionbutton, SIGNAL ( released () ), this, SLOT ( addAccountDescription() ) ); | 84 | connect ( descriptionbutton, SIGNAL ( released() ), this, SLOT ( addAccountDescription() ) ); |
85 | } | 85 | } |
86 | 86 | ||
87 | NewAccount::~NewAccount () | 87 | NewAccount::~NewAccount () |
88 | { | 88 | { |
89 | } | 89 | } |
90 | 90 | ||
91 | void NewAccount::showChildPulldownMenu () | 91 | void NewAccount::showChildPulldownMenu () |
92 | { | 92 | { |
93 | if ( childcheckbox->isChecked() == TRUE ) | 93 | if ( childcheckbox->isChecked() == TRUE ) |
94 | { | 94 | { |
95 | childlabel->setEnabled ( TRUE ); | 95 | childlabel->setEnabled ( TRUE ); |
96 | childbox->setEnabled ( TRUE ); | 96 | childbox->setEnabled ( TRUE ); |
97 | } | 97 | } |
98 | else | 98 | else |
99 | hideChildPulldownMenu(); | 99 | hideChildPulldownMenu(); |
100 | } | 100 | } |
101 | 101 | ||
102 | void NewAccount::hideChildPulldownMenu () | 102 | void NewAccount::hideChildPulldownMenu () |
103 | { | 103 | { |
104 | childlabel->setEnabled ( FALSE ); | 104 | childlabel->setEnabled ( FALSE ); |
105 | childbox->setEnabled ( FALSE ); | 105 | childbox->setEnabled ( FALSE ); |
106 | } | 106 | } |
107 | 107 | ||
108 | void NewAccount::showCalculator () | 108 | void NewAccount::showCalculator () |
109 | { | 109 | { |
110 | Calculator *calculator = new Calculator ( this ); | 110 | Calculator *calculator = new Calculator ( this ); |
111 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 111 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
112 | if ( calculator->exec () == QDialog::Accepted ) | 112 | if ( calculator->exec () == QDialog::Accepted ) |
113 | accountbalance->setText ( calculator->display->text() ); | 113 | accountbalance->setText ( calculator->display->text() ); |
114 | } | 114 | } |
115 | 115 | ||
116 | void NewAccount::showCreditLimitCalculator () | 116 | void NewAccount::showCreditLimitCalculator () |
117 | { | 117 | { |
118 | Calculator *calculator = new Calculator ( this ); | 118 | Calculator *calculator = new Calculator ( this ); |
119 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 119 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
120 | if ( calculator->exec () == QDialog::Accepted ) | 120 | if ( calculator->exec () == QDialog::Accepted ) |
121 | creditlimit->setText ( calculator->display->text() ); | 121 | creditlimit->setText ( calculator->display->text() ); |
122 | } | 122 | } |
123 | 123 | ||
124 | void NewAccount::activateCreditLimit ( int index ) | 124 | void NewAccount::activateCreditLimit ( int index ) |
125 | { | 125 | { |
126 | if ( index == 2 || index == 5 ) | 126 | if ( index == 2 || index == 5 ) |
127 | creditlimitbox->setEnabled ( TRUE ); | 127 | creditlimitbox->setEnabled ( TRUE ); |
128 | else | 128 | else |
129 | { | 129 | { |
130 | creditlimit->clear (); | 130 | creditlimit->clear (); |
131 | creditlimitbox->setEnabled ( FALSE ); | 131 | creditlimitbox->setEnabled ( FALSE ); |
132 | } | 132 | } |
133 | } | 133 | } |
134 | 134 | ||
135 | void NewAccount::showCalendar () | 135 | void NewAccount::showCalendar () |
136 | { | 136 | { |
137 | QDate newDate = QDate::currentDate (); | 137 | QDate newDate = QDate::currentDate (); |
138 | DatePicker *dp = new DatePicker ( newDate ); | 138 | DatePicker *dp = new DatePicker ( newDate ); |
139 | dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 139 | dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
140 | 140 | ||
141 | int response = dp->exec(); | 141 | int response = dp->exec(); |
142 | if ( response == QDialog::Accepted ) | 142 | if ( response == QDialog::Accepted ) |
143 | { | 143 | { |
144 | // Set date integers | 144 | // Set date integers |
145 | year = dp->getYear(); | 145 | year = dp->getYear(); |
146 | month = dp->getMonth(); | 146 | month = dp->getMonth(); |
147 | day = dp->getDay(); | 147 | day = dp->getDay(); |
148 | 148 | ||
149 | // Set dateedited to TRUE | 149 | // Set dateedited to TRUE |
150 | // This tells the accountdisplay object that the user edited an account | 150 | // This tells the accountdisplay object that the user edited an account |
151 | // and did change the date | 151 | // and did change the date |
152 | dateedited = TRUE; | 152 | dateedited = TRUE; |
153 | 153 | ||
154 | // Display date with our selected format | 154 | // Display date with our selected format |
155 | startdate->setText ( preferences->getDate ( year, month, day ) ); | 155 | startdate->setText ( preferences->getDate ( year, month, day ) ); |
156 | } | 156 | } |
157 | } | 157 | } |
158 | 158 | ||
159 | bool NewAccount::getDateEdited () | 159 | bool NewAccount::getDateEdited () |
160 | { | 160 | { |
161 | return dateedited; | 161 | return dateedited; |
162 | } | 162 | } |
163 | 163 | ||
164 | int NewAccount::getDay () | 164 | int NewAccount::getDay () |
165 | { | 165 | { |
166 | return day; | 166 | return day; |
167 | } | 167 | } |
168 | 168 | ||
169 | int NewAccount::getMonth () | 169 | int NewAccount::getMonth () |
170 | { | 170 | { |
171 | return month; | 171 | return month; |
172 | } | 172 | } |
173 | 173 | ||
174 | int NewAccount::getYear () | 174 | int NewAccount::getYear () |
175 | { | 175 | { |
176 | return year; | 176 | return year; |
177 | } | 177 | } |
178 | 178 | ||
179 | QString NewAccount::getDescription () | 179 | QString NewAccount::getDescription () |
180 | { | 180 | { |
diff --git a/noncore/apps/qashmoney/newtransaction.cpp b/noncore/apps/qashmoney/newtransaction.cpp index 5c78139..87b7f7e 100755 --- a/noncore/apps/qashmoney/newtransaction.cpp +++ b/noncore/apps/qashmoney/newtransaction.cpp | |||
@@ -1,184 +1,184 @@ | |||
1 | #include "newtransaction.h" | 1 | #include "newtransaction.h" |
2 | #include "calculator.h" | 2 | #include "calculator.h" |
3 | #include "datepicker.h" | 3 | #include "datepicker.h" |
4 | #include "budget.h" | 4 | #include "budget.h" |
5 | 5 | ||
6 | #include <qmultilineedit.h> | 6 | #include <qmultilineedit.h> |
7 | 7 | ||
8 | extern Budget *budget; | 8 | extern Budget *budget; |
9 | extern Preferences *preferences; | 9 | extern Preferences *preferences; |
10 | 10 | ||
11 | NewTransaction::NewTransaction ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) | 11 | NewTransaction::NewTransaction ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) |
12 | { | 12 | { |
13 | transactiondescription = ""; | 13 | transactiondescription = ""; |
14 | currentlineitem = -1; | 14 | currentlineitem = -1; |
15 | currentbudget = -1; | 15 | currentbudget = -1; |
16 | dateedited = FALSE; | 16 | dateedited = FALSE; |
17 | setCaption( tr( "Transaction" ) ); | 17 | setCaption( tr( "Transaction" ) ); |
18 | 18 | ||
19 | // START FIRST COLUMN | 19 | // START FIRST COLUMN |
20 | 20 | ||
21 | namelabel = new QLabel ( "Transaction", this ); | 21 | namelabel = new QLabel ( "Transaction", this ); |
22 | 22 | ||
23 | transactionnamebox = new QHBox ( this ); | 23 | transactionnamebox = new QHBox ( this ); |
24 | transactionname = new QComboBox ( transactionnamebox ); | 24 | transactionname = new QComboBox ( transactionnamebox ); |
25 | transactionname->setEditable ( TRUE ); | 25 | transactionname->setEditable ( TRUE ); |
26 | descriptionbutton = new QPushButton ( transactionnamebox ); | 26 | descriptionbutton = new QPushButton ( transactionnamebox ); |
27 | descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); | 27 | descriptionbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/info.png" ) ); |
28 | connect ( descriptionbutton, SIGNAL ( released () ), this, SLOT ( addTransactionDescription() ) ); | 28 | connect ( descriptionbutton, SIGNAL ( released() ), this, SLOT ( addTransactionDescription() ) ); |
29 | 29 | ||
30 | amountlabel = new QLabel ( "Amount", this ); | 30 | amountlabel = new QLabel ( "Amount", this ); |
31 | 31 | ||
32 | transactionamountbox = new QHBox ( this ); | 32 | transactionamountbox = new QHBox ( this ); |
33 | transactionamount = new QLineEdit ( transactionamountbox ); | 33 | transactionamount = new QLineEdit ( transactionamountbox ); |
34 | transactionamount->setAlignment ( Qt::AlignRight ); | 34 | transactionamount->setAlignment ( Qt::AlignRight ); |
35 | transactionamount->setText ( "0.00" ); | 35 | transactionamount->setText ( "0.00" ); |
36 | calculatorbutton = new QPushButton( transactionamountbox ); | 36 | calculatorbutton = new QPushButton( transactionamountbox ); |
37 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 37 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
38 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); | 38 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); |
39 | 39 | ||
40 | datelabel = new QLabel ( "Date", this ); | 40 | datelabel = new QLabel ( "Date", this ); |
41 | 41 | ||
42 | transactiondatebox = new QHBox ( this ); | 42 | transactiondatebox = new QHBox ( this ); |
43 | transactiondate = new QLineEdit ( transactiondatebox ); | 43 | transactiondate = new QLineEdit ( transactiondatebox ); |
44 | transactiondate->setAlignment ( Qt::AlignRight ); | 44 | transactiondate->setAlignment ( Qt::AlignRight ); |
45 | transactiondate->setDisabled ( TRUE ); | 45 | transactiondate->setDisabled ( TRUE ); |
46 | datebutton = new QPushButton( transactiondatebox ); | 46 | datebutton = new QPushButton( transactiondatebox ); |
47 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); | 47 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); |
48 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); | 48 | connect ( datebutton, SIGNAL ( released() ), this, SLOT ( showCalendar() ) ); |
49 | 49 | ||
50 | clearedcheckbox = new QCheckBox ( "Cleared", this ); | 50 | clearedcheckbox = new QCheckBox ( "Cleared", this ); |
51 | depositbox = new QCheckBox ( "Credit", this ); | 51 | depositbox = new QCheckBox ( "Credit", this ); |
52 | 52 | ||
53 | // START SECOND COLUMN | 53 | // START SECOND COLUMN |
54 | 54 | ||
55 | numberlabel = new QLabel ( "Number", this ); | 55 | numberlabel = new QLabel ( "Number", this ); |
56 | transactionnumber = new QLineEdit ( this ); | 56 | transactionnumber = new QLineEdit ( this ); |
57 | 57 | ||
58 | budgetlabel = new QLabel ( "Budget", this ); | 58 | budgetlabel = new QLabel ( "Budget", this ); |
59 | budgetbox = new QComboBox ( FALSE, this ); | 59 | budgetbox = new QComboBox ( FALSE, this ); |
60 | 60 | ||
61 | lineitemlabel = new QLabel ( "LineItem", this ); | 61 | lineitemlabel = new QLabel ( "LineItem", this ); |
62 | lineitembox = new QComboBox ( FALSE, this ); | 62 | lineitembox = new QComboBox ( FALSE, this ); |
63 | 63 | ||
64 | layout = new QGridLayout ( this, 7, 2, 2, 2 ); | 64 | layout = new QGridLayout ( this, 7, 2, 2, 2 ); |
65 | layout->addWidget ( namelabel, 0, 0, Qt::AlignLeft ); | 65 | layout->addWidget ( namelabel, 0, 0, Qt::AlignLeft ); |
66 | layout->addWidget ( transactionnamebox, 1, 0, Qt::AlignLeft ); | 66 | layout->addWidget ( transactionnamebox, 1, 0, Qt::AlignLeft ); |
67 | layout->addWidget ( amountlabel, 2, 0, Qt::AlignLeft ); | 67 | layout->addWidget ( amountlabel, 2, 0, Qt::AlignLeft ); |
68 | layout->addWidget ( transactionamountbox, 3, 0, Qt::AlignLeft ); | 68 | layout->addWidget ( transactionamountbox, 3, 0, Qt::AlignLeft ); |
69 | layout->addWidget ( datelabel, 4, 0, Qt::AlignLeft ); | 69 | layout->addWidget ( datelabel, 4, 0, Qt::AlignLeft ); |
70 | layout->addWidget ( transactiondatebox, 5, 0, Qt::AlignLeft ); | 70 | layout->addWidget ( transactiondatebox, 5, 0, Qt::AlignLeft ); |
71 | layout->addWidget ( clearedcheckbox, 6, 0, Qt::AlignLeft ); | 71 | layout->addWidget ( clearedcheckbox, 6, 0, Qt::AlignLeft ); |
72 | layout->addWidget ( numberlabel, 0, 1, Qt::AlignLeft ); | 72 | layout->addWidget ( numberlabel, 0, 1, Qt::AlignLeft ); |
73 | layout->addWidget ( transactionnumber, 1, 1, Qt::AlignLeft ); | 73 | layout->addWidget ( transactionnumber, 1, 1, Qt::AlignLeft ); |
74 | layout->addWidget ( budgetlabel, 2, 1, Qt::AlignLeft ); | 74 | layout->addWidget ( budgetlabel, 2, 1, Qt::AlignLeft ); |
75 | layout->addWidget ( budgetbox, 3, 1, Qt::AlignLeft ); | 75 | layout->addWidget ( budgetbox, 3, 1, Qt::AlignLeft ); |
76 | layout->addWidget ( lineitemlabel, 4, 1, Qt::AlignLeft ); | 76 | layout->addWidget ( lineitemlabel, 4, 1, Qt::AlignLeft ); |
77 | layout->addWidget ( lineitembox, 5, 1, Qt::AlignLeft ); | 77 | layout->addWidget ( lineitembox, 5, 1, Qt::AlignLeft ); |
78 | layout->addWidget ( depositbox, 6, 1, Qt::AlignLeft ); | 78 | layout->addWidget ( depositbox, 6, 1, Qt::AlignLeft ); |
79 | 79 | ||
80 | if ( budget->getNumberOfBudgets() != 0 ) | 80 | if ( budget->getNumberOfBudgets() != 0 ) |
81 | { | 81 | { |
82 | budgetnameslist = budget->getBudgetNames(); | 82 | budgetnameslist = budget->getBudgetNames(); |
83 | budgetidslist = budget->getBudgetIDs(); | 83 | budgetidslist = budget->getBudgetIDs(); |
84 | budgetbox->insertStringList ( *budgetnameslist ); | 84 | budgetbox->insertStringList ( *budgetnameslist ); |
85 | lineitemlabel->setEnabled ( FALSE ); | 85 | lineitemlabel->setEnabled ( FALSE ); |
86 | lineitembox->setEnabled ( FALSE ); | 86 | lineitembox->setEnabled ( FALSE ); |
87 | connect ( budgetbox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentBudget ( int ) ) ); | 87 | connect ( budgetbox, SIGNAL ( activated(int) ), this, SLOT ( setCurrentBudget(int) ) ); |
88 | connect ( lineitembox, SIGNAL ( activated ( int ) ), this, SLOT ( setCurrentLineItem ( int ) ) ); | 88 | connect ( lineitembox, SIGNAL ( activated(int) ), this, SLOT ( setCurrentLineItem(int) ) ); |
89 | } | 89 | } |
90 | else | 90 | else |
91 | { | 91 | { |
92 | budgetlabel->setEnabled ( FALSE ); | 92 | budgetlabel->setEnabled ( FALSE ); |
93 | budgetbox->setEnabled ( FALSE ); | 93 | budgetbox->setEnabled ( FALSE ); |
94 | lineitemlabel->setEnabled ( FALSE ); | 94 | lineitemlabel->setEnabled ( FALSE ); |
95 | lineitembox->setEnabled ( FALSE ); | 95 | lineitembox->setEnabled ( FALSE ); |
96 | } | 96 | } |
97 | 97 | ||
98 | } | 98 | } |
99 | 99 | ||
100 | NewTransaction::~NewTransaction () | 100 | NewTransaction::~NewTransaction () |
101 | { | 101 | { |
102 | } | 102 | } |
103 | 103 | ||
104 | void NewTransaction::showCalculator () | 104 | void NewTransaction::showCalculator () |
105 | { | 105 | { |
106 | Calculator *calculator = new Calculator ( this ); | 106 | Calculator *calculator = new Calculator ( this ); |
107 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 107 | calculator->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
108 | if ( calculator->exec () == QDialog::Accepted ) | 108 | if ( calculator->exec () == QDialog::Accepted ) |
109 | transactionamount->setText ( calculator->display->text() ); | 109 | transactionamount->setText ( calculator->display->text() ); |
110 | } | 110 | } |
111 | 111 | ||
112 | void NewTransaction::showCalendar () | 112 | void NewTransaction::showCalendar () |
113 | { | 113 | { |
114 | QDate newDate = QDate::currentDate (); | 114 | QDate newDate = QDate::currentDate (); |
115 | DatePicker *dp = new DatePicker ( newDate ); | 115 | DatePicker *dp = new DatePicker ( newDate ); |
116 | dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); | 116 | dp->setMaximumWidth ( ( int ) ( this->size().width() * 0.9 ) ); |
117 | 117 | ||
118 | int response = dp->exec(); | 118 | int response = dp->exec(); |
119 | if ( response == QDialog::Accepted ) | 119 | if ( response == QDialog::Accepted ) |
120 | { | 120 | { |
121 | // Set date integers | 121 | // Set date integers |
122 | year = dp->getYear(); | 122 | year = dp->getYear(); |
123 | month = dp->getMonth(); | 123 | month = dp->getMonth(); |
124 | day = dp->getDay(); | 124 | day = dp->getDay(); |
125 | 125 | ||
126 | // Set dateedited to TRUE | 126 | // Set dateedited to TRUE |
127 | // This tells the transactiondisplay object that the user edited an transaction | 127 | // This tells the transactiondisplay object that the user edited an transaction |
128 | // and did change the date3 | 128 | // and did change the date3 |
129 | dateedited = TRUE; | 129 | dateedited = TRUE; |
130 | 130 | ||
131 | // Display date with our selected format | 131 | // Display date with our selected format |
132 | transactiondate->setText ( preferences->getDate ( year, month, day ) ); | 132 | transactiondate->setText ( preferences->getDate ( year, month, day ) ); |
133 | } | 133 | } |
134 | } | 134 | } |
135 | 135 | ||
136 | bool NewTransaction::getDateEdited () | 136 | bool NewTransaction::getDateEdited () |
137 | { | 137 | { |
138 | return dateedited; | 138 | return dateedited; |
139 | } | 139 | } |
140 | 140 | ||
141 | int NewTransaction::getDay () | 141 | int NewTransaction::getDay () |
142 | { | 142 | { |
143 | return day; | 143 | return day; |
144 | } | 144 | } |
145 | 145 | ||
146 | int NewTransaction::getMonth () | 146 | int NewTransaction::getMonth () |
147 | { | 147 | { |
148 | return month; | 148 | return month; |
149 | } | 149 | } |
150 | 150 | ||
151 | int NewTransaction::getYear () | 151 | int NewTransaction::getYear () |
152 | { | 152 | { |
153 | return year; | 153 | return year; |
154 | } | 154 | } |
155 | 155 | ||
156 | QString NewTransaction::getDescription () | 156 | QString NewTransaction::getDescription () |
157 | { | 157 | { |
158 | return transactiondescription; | 158 | return transactiondescription; |
159 | } | 159 | } |
160 | 160 | ||
161 | void NewTransaction::setDescription ( QString description ) | 161 | void NewTransaction::setDescription ( QString description ) |
162 | { | 162 | { |
163 | transactiondescription = description; | 163 | transactiondescription = description; |
164 | } | 164 | } |
165 | 165 | ||
166 | void NewTransaction::addTransactionDescription () | 166 | void NewTransaction::addTransactionDescription () |
167 | { | 167 | { |
168 | // Function for adding or editing an transaction description. | 168 | // Function for adding or editing an transaction description. |
169 | QDialog *description = new QDialog ( this, "description", TRUE ); | 169 | QDialog *description = new QDialog ( this, "description", TRUE ); |
170 | description->setCaption ( "Notes" ); | 170 | description->setCaption ( "Notes" ); |
171 | QMultiLineEdit *enter = new QMultiLineEdit ( description ); | 171 | QMultiLineEdit *enter = new QMultiLineEdit ( description ); |
172 | enter->setFixedSize ( ( int ) (this->width() * 0.75 ), ( int ) ( this->height() * 0.5 ) ); | 172 | enter->setFixedSize ( ( int ) (this->width() * 0.75 ), ( int ) ( this->height() * 0.5 ) ); |
173 | enter->setWrapColumnOrWidth ( ( int ) (this->width() * 0.75 ) ); | 173 | enter->setWrapColumnOrWidth ( ( int ) (this->width() * 0.75 ) ); |
174 | enter->setWordWrap ( QMultiLineEdit::WidgetWidth ); | 174 | enter->setWordWrap ( QMultiLineEdit::WidgetWidth ); |
175 | if ( transactiondescription != "(NULL)" ) | 175 | if ( transactiondescription != "(NULL)" ) |
176 | enter->setText ( transactiondescription ); | 176 | enter->setText ( transactiondescription ); |
177 | if ( description->exec () == QDialog::Accepted ) | 177 | if ( description->exec () == QDialog::Accepted ) |
178 | transactiondescription = enter->text (); | 178 | transactiondescription = enter->text (); |
179 | } | 179 | } |
180 | 180 | ||
181 | int NewTransaction::getNameIndex ( QString name ) | 181 | int NewTransaction::getNameIndex ( QString name ) |
182 | { | 182 | { |
183 | int counter; | 183 | int counter; |
184 | int items = transactionname->count(); | 184 | int items = transactionname->count(); |
diff --git a/noncore/apps/qashmoney/preferencedialogs.cpp b/noncore/apps/qashmoney/preferencedialogs.cpp index 5408a5b..b83c957 100755 --- a/noncore/apps/qashmoney/preferencedialogs.cpp +++ b/noncore/apps/qashmoney/preferencedialogs.cpp | |||
@@ -1,216 +1,216 @@ | |||
1 | #include "preferencedialogs.h" | 1 | #include "preferencedialogs.h" |
2 | #include "preferences.h" | 2 | #include "preferences.h" |
3 | 3 | ||
4 | extern Preferences *preferences; | 4 | extern Preferences *preferences; |
5 | 5 | ||
6 | DatePreferences::DatePreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) | 6 | DatePreferences::DatePreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) |
7 | { | 7 | { |
8 | setCaption( tr( "Date" ) ); | 8 | setCaption( tr( "Date" ) ); |
9 | 9 | ||
10 | QLabel *datelabel = new QLabel ( "Format", this ); | 10 | QLabel *datelabel = new QLabel ( "Format", this ); |
11 | dateformat = new QComboBox ( this ); | 11 | dateformat = new QComboBox ( this ); |
12 | dateformat->setEditable ( FALSE ); | 12 | dateformat->setEditable ( FALSE ); |
13 | dateformat->insertItem ( "yyyymmdd" ); | 13 | dateformat->insertItem ( "yyyymmdd" ); |
14 | dateformat->insertItem ( "yymmdd" ); | 14 | dateformat->insertItem ( "yymmdd" ); |
15 | dateformat->insertItem ( "mmddyyyy" ); | 15 | dateformat->insertItem ( "mmddyyyy" ); |
16 | dateformat->insertItem ( "mmddyy" ); | 16 | dateformat->insertItem ( "mmddyy" ); |
17 | dateformat->insertItem ( "yyyyddmm" ); | 17 | dateformat->insertItem ( "yyyyddmm" ); |
18 | dateformat->insertItem ( "yyddmm" ); | 18 | dateformat->insertItem ( "yyddmm" ); |
19 | dateformat->insertItem ( "ddmmyyyy" ); | 19 | dateformat->insertItem ( "ddmmyyyy" ); |
20 | dateformat->insertItem ( "ddmmyy" ); | 20 | dateformat->insertItem ( "ddmmyy" ); |
21 | connect ( dateformat, SIGNAL ( activated ( int ) ), this, SLOT ( changeDateFormat ( int ) ) ); | 21 | connect ( dateformat, SIGNAL ( activated(int) ), this, SLOT ( changeDateFormat(int) ) ); |
22 | 22 | ||
23 | QLabel *dateseparatorlabel = new QLabel ( "Separator", this ); | 23 | QLabel *dateseparatorlabel = new QLabel ( "Separator", this ); |
24 | dateseparator = new QComboBox ( this ); | 24 | dateseparator = new QComboBox ( this ); |
25 | dateseparator->insertItem ( "/" ); | 25 | dateseparator->insertItem ( "/" ); |
26 | dateseparator->insertItem ( "-" ); | 26 | dateseparator->insertItem ( "-" ); |
27 | dateseparator->insertItem ( "." ); | 27 | dateseparator->insertItem ( "." ); |
28 | connect ( dateseparator, SIGNAL ( activated ( int ) ), this, SLOT ( changeDateSeparator ( int ) ) ); | 28 | connect ( dateseparator, SIGNAL ( activated(int) ), this, SLOT ( changeDateSeparator(int) ) ); |
29 | 29 | ||
30 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); | 30 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); |
31 | connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultDatePreferences () ) ); | 31 | connect ( defaults, SIGNAL ( released() ), this, SLOT ( setDefaultDatePreferences() ) ); |
32 | 32 | ||
33 | dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); | 33 | dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); |
34 | dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); | 34 | dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); |
35 | 35 | ||
36 | layout = new QVBoxLayout ( this, 2, 2 ); | 36 | layout = new QVBoxLayout ( this, 2, 2 ); |
37 | layout->addWidget ( datelabel ); | 37 | layout->addWidget ( datelabel ); |
38 | layout->addWidget ( dateformat ); | 38 | layout->addWidget ( dateformat ); |
39 | layout->addWidget ( dateseparatorlabel ); | 39 | layout->addWidget ( dateseparatorlabel ); |
40 | layout->addWidget ( dateseparator ); | 40 | layout->addWidget ( dateseparator ); |
41 | layout->insertSpacing ( 4, 5 ); | 41 | layout->insertSpacing ( 4, 5 ); |
42 | layout->addWidget ( defaults ); | 42 | layout->addWidget ( defaults ); |
43 | 43 | ||
44 | } | 44 | } |
45 | 45 | ||
46 | DatePreferences::~DatePreferences () | 46 | DatePreferences::~DatePreferences () |
47 | { | 47 | { |
48 | } | 48 | } |
49 | 49 | ||
50 | void DatePreferences::changeDateFormat ( int index ) | 50 | void DatePreferences::changeDateFormat ( int index ) |
51 | { | 51 | { |
52 | index ++; | 52 | index ++; |
53 | preferences->changePreference ( 1, index ); | 53 | preferences->changePreference ( 1, index ); |
54 | } | 54 | } |
55 | 55 | ||
56 | void DatePreferences::changeDateSeparator ( int index ) | 56 | void DatePreferences::changeDateSeparator ( int index ) |
57 | { | 57 | { |
58 | index ++; | 58 | index ++; |
59 | preferences->changePreference ( 2, index ); | 59 | preferences->changePreference ( 2, index ); |
60 | } | 60 | } |
61 | 61 | ||
62 | void DatePreferences::setDefaultDatePreferences () | 62 | void DatePreferences::setDefaultDatePreferences () |
63 | { | 63 | { |
64 | preferences->setDefaultDatePreferences (); | 64 | preferences->setDefaultDatePreferences (); |
65 | dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); | 65 | dateformat->setCurrentItem ( ( preferences->getPreference ( 1 ) ) - 1 ); |
66 | dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); | 66 | dateseparator->setCurrentItem ( ( preferences->getPreference ( 2 ) ) - 1 ); |
67 | } | 67 | } |
68 | 68 | ||
69 | // START TRANSACTION PREFERENCES | 69 | // START TRANSACTION PREFERENCES |
70 | 70 | ||
71 | TransactionPreferences::TransactionPreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) | 71 | TransactionPreferences::TransactionPreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) |
72 | { | 72 | { |
73 | setCaption( tr ( "Transaction" ) ); | 73 | setCaption( tr ( "Transaction" ) ); |
74 | 74 | ||
75 | showclearedtransactions = new QCheckBox ( this ); | 75 | showclearedtransactions = new QCheckBox ( this ); |
76 | showclearedtransactions->setText ( "Show Cleared Transactions" ); | 76 | showclearedtransactions->setText ( "Show Cleared Transactions" ); |
77 | 77 | ||
78 | limittransactionsbox = new QHBox ( this ); | 78 | limittransactionsbox = new QHBox ( this ); |
79 | limittransactionsbox->setSpacing ( 2 ); | 79 | limittransactionsbox->setSpacing ( 2 ); |
80 | limittransactionslabel = new QLabel ( "Show ", limittransactionsbox ); | 80 | limittransactionslabel = new QLabel ( "Show ", limittransactionsbox ); |
81 | limittransactions = new QComboBox ( limittransactionsbox ); | 81 | limittransactions = new QComboBox ( limittransactionsbox ); |
82 | QLabel *limittransactionslabel2 = new QLabel ( "of cleared transactions. ", limittransactionsbox ); | 82 | QLabel *limittransactionslabel2 = new QLabel ( "of cleared transactions. ", limittransactionsbox ); |
83 | limittransactions->insertItem ( "14 days" ); | 83 | limittransactions->insertItem ( "14 days" ); |
84 | limittransactions->insertItem ( "30 days" ); | 84 | limittransactions->insertItem ( "30 days" ); |
85 | limittransactions->insertItem ( "90 days" ); | 85 | limittransactions->insertItem ( "90 days" ); |
86 | limittransactions->insertItem ( "180 days" ); | 86 | limittransactions->insertItem ( "180 days" ); |
87 | limittransactions->insertItem ( "365 days" ); | 87 | limittransactions->insertItem ( "365 days" ); |
88 | limittransactions->insertItem ( "All" ); | 88 | limittransactions->insertItem ( "All" ); |
89 | limittransactions->setCurrentItem ( preferences->getPreference ( 7 ) ); | 89 | limittransactions->setCurrentItem ( preferences->getPreference ( 7 ) ); |
90 | 90 | ||
91 | excludetransfers = new QCheckBox ( this ); | 91 | excludetransfers = new QCheckBox ( this ); |
92 | excludetransfers->setText ( "Include Transfers In Limit View" ); | 92 | excludetransfers->setText ( "Include Transfers In Limit View" ); |
93 | 93 | ||
94 | if ( preferences->getPreference ( 3 ) == 1 ) | 94 | if ( preferences->getPreference ( 3 ) == 1 ) |
95 | showclearedtransactions->setChecked ( TRUE ); | 95 | showclearedtransactions->setChecked ( TRUE ); |
96 | else | 96 | else |
97 | showclearedtransactions->setChecked ( FALSE ); | 97 | showclearedtransactions->setChecked ( FALSE ); |
98 | 98 | ||
99 | if ( preferences->getPreference ( 6 ) == 1 ) | 99 | if ( preferences->getPreference ( 6 ) == 1 ) |
100 | excludetransfers->setChecked ( TRUE ); | 100 | excludetransfers->setChecked ( TRUE ); |
101 | else | 101 | else |
102 | excludetransfers->setChecked ( FALSE ); | 102 | excludetransfers->setChecked ( FALSE ); |
103 | 103 | ||
104 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); | 104 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); |
105 | connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultTransactionPreferences () ) ); | 105 | connect ( defaults, SIGNAL ( released() ), this, SLOT ( setDefaultTransactionPreferences() ) ); |
106 | 106 | ||
107 | layout = new QVBoxLayout ( this, 2, 2 ); | 107 | layout = new QVBoxLayout ( this, 2, 2 ); |
108 | layout->addWidget ( showclearedtransactions ); | 108 | layout->addWidget ( showclearedtransactions ); |
109 | layout->addWidget ( limittransactionsbox ); | 109 | layout->addWidget ( limittransactionsbox ); |
110 | layout->addWidget ( excludetransfers ); | 110 | layout->addWidget ( excludetransfers ); |
111 | layout->insertSpacing ( 3, 5 ); | 111 | layout->insertSpacing ( 3, 5 ); |
112 | layout->addWidget ( defaults ); | 112 | layout->addWidget ( defaults ); |
113 | 113 | ||
114 | connect ( showclearedtransactions, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeShowClearedPreference ( bool ) ) ); | 114 | connect ( showclearedtransactions, SIGNAL ( toggled(bool) ), this, SLOT ( changeShowClearedPreference(bool) ) ); |
115 | connect ( excludetransfers, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeExcludeTranfersPreference ( bool ) ) ); | 115 | connect ( excludetransfers, SIGNAL ( toggled(bool) ), this, SLOT ( changeExcludeTranfersPreference(bool) ) ); |
116 | connect ( limittransactions, SIGNAL ( activated ( int ) ), this, SLOT ( changeLimitTransactionsPreference ( int ) ) ); | 116 | connect ( limittransactions, SIGNAL ( activated(int) ), this, SLOT ( changeLimitTransactionsPreference(int) ) ); |
117 | } | 117 | } |
118 | 118 | ||
119 | TransactionPreferences::~TransactionPreferences () | 119 | TransactionPreferences::~TransactionPreferences () |
120 | { | 120 | { |
121 | } | 121 | } |
122 | 122 | ||
123 | void TransactionPreferences::changeLimitTransactionsPreference ( int pref ) | 123 | void TransactionPreferences::changeLimitTransactionsPreference ( int pref ) |
124 | { | 124 | { |
125 | preferences->changePreference ( 7, pref ); | 125 | preferences->changePreference ( 7, pref ); |
126 | } | 126 | } |
127 | 127 | ||
128 | void TransactionPreferences::changeShowClearedPreference ( bool state ) | 128 | void TransactionPreferences::changeShowClearedPreference ( bool state ) |
129 | { | 129 | { |
130 | if ( state == TRUE ) | 130 | if ( state == TRUE ) |
131 | preferences->changePreference ( 3, 1 ); | 131 | preferences->changePreference ( 3, 1 ); |
132 | else | 132 | else |
133 | preferences->changePreference ( 3, 0 ); | 133 | preferences->changePreference ( 3, 0 ); |
134 | } | 134 | } |
135 | 135 | ||
136 | void TransactionPreferences::changeExcludeTranfersPreference ( bool state ) | 136 | void TransactionPreferences::changeExcludeTranfersPreference ( bool state ) |
137 | { | 137 | { |
138 | if ( state == TRUE ) | 138 | if ( state == TRUE ) |
139 | preferences->changePreference ( 6, 1 ); | 139 | preferences->changePreference ( 6, 1 ); |
140 | else | 140 | else |
141 | preferences->changePreference ( 6, 0 ); | 141 | preferences->changePreference ( 6, 0 ); |
142 | } | 142 | } |
143 | 143 | ||
144 | void TransactionPreferences::setDefaultTransactionPreferences () | 144 | void TransactionPreferences::setDefaultTransactionPreferences () |
145 | { | 145 | { |
146 | preferences->changePreference ( 3, 0 ); | 146 | preferences->changePreference ( 3, 0 ); |
147 | preferences->changePreference ( 6, 0 ); | 147 | preferences->changePreference ( 6, 0 ); |
148 | preferences->changePreference ( 7, 0 ); | 148 | preferences->changePreference ( 7, 0 ); |
149 | showclearedtransactions->setChecked ( FALSE ); | 149 | showclearedtransactions->setChecked ( FALSE ); |
150 | limittransactions->setCurrentItem ( 0 ); | 150 | limittransactions->setCurrentItem ( 0 ); |
151 | } | 151 | } |
152 | 152 | ||
153 | // START ACCOUNT PREFERNCES | 153 | // START ACCOUNT PREFERNCES |
154 | 154 | ||
155 | AccountPreferences::AccountPreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) | 155 | AccountPreferences::AccountPreferences ( QWidget* parent ) : QDialog ( parent, 0, TRUE ) |
156 | { | 156 | { |
157 | 157 | ||
158 | setCaption( tr ( "Account" ) ); | 158 | setCaption( tr ( "Account" ) ); |
159 | 159 | ||
160 | currencysupport = new QCheckBox ( this ); | 160 | currencysupport = new QCheckBox ( this ); |
161 | currencysupport->setText ( "Enable Currency Support" ); | 161 | currencysupport->setText ( "Enable Currency Support" ); |
162 | 162 | ||
163 | onetouch = new QCheckBox ( this ); | 163 | onetouch = new QCheckBox ( this ); |
164 | onetouch->setText ( "One Touch Account Viewing" ); | 164 | onetouch->setText ( "One Touch Account Viewing" ); |
165 | 165 | ||
166 | if ( preferences->getPreference ( 4 ) == 1 ) | 166 | if ( preferences->getPreference ( 4 ) == 1 ) |
167 | currencysupport->setChecked ( TRUE ); | 167 | currencysupport->setChecked ( TRUE ); |
168 | else | 168 | else |
169 | currencysupport->setChecked ( FALSE ); | 169 | currencysupport->setChecked ( FALSE ); |
170 | 170 | ||
171 | if ( preferences->getPreference ( 5 ) == 1 ) | 171 | if ( preferences->getPreference ( 5 ) == 1 ) |
172 | onetouch->setChecked ( TRUE ); | 172 | onetouch->setChecked ( TRUE ); |
173 | else | 173 | else |
174 | onetouch->setChecked ( FALSE ); | 174 | onetouch->setChecked ( FALSE ); |
175 | 175 | ||
176 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); | 176 | defaults = new QPushButton ( QPixmap ( "/opt/QtPalmtop/pics/defaults.png" ), "Defaults", this ); |
177 | connect ( defaults, SIGNAL ( released () ), this, SLOT ( setDefaultAccountPreferences () ) ); | 177 | connect ( defaults, SIGNAL ( released() ), this, SLOT ( setDefaultAccountPreferences() ) ); |
178 | 178 | ||
179 | layout = new QVBoxLayout ( this, 2, 2 ); | 179 | layout = new QVBoxLayout ( this, 2, 2 ); |
180 | layout->addWidget ( currencysupport ); | 180 | layout->addWidget ( currencysupport ); |
181 | layout->addWidget ( onetouch ); | 181 | layout->addWidget ( onetouch ); |
182 | layout->insertSpacing ( 2, 5 ); | 182 | layout->insertSpacing ( 2, 5 ); |
183 | layout->addWidget ( defaults ); | 183 | layout->addWidget ( defaults ); |
184 | 184 | ||
185 | connect ( currencysupport, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeCurrencySupport ( bool ) ) ); | 185 | connect ( currencysupport, SIGNAL ( toggled(bool) ), this, SLOT ( changeCurrencySupport(bool) ) ); |
186 | connect ( onetouch, SIGNAL ( toggled ( bool ) ), this, SLOT ( changeOneTouchViewing ( bool ) ) ); | 186 | connect ( onetouch, SIGNAL ( toggled(bool) ), this, SLOT ( changeOneTouchViewing(bool) ) ); |
187 | } | 187 | } |
188 | 188 | ||
189 | AccountPreferences::~AccountPreferences () | 189 | AccountPreferences::~AccountPreferences () |
190 | { | 190 | { |
191 | } | 191 | } |
192 | 192 | ||
193 | void AccountPreferences::changeCurrencySupport ( bool state ) | 193 | void AccountPreferences::changeCurrencySupport ( bool state ) |
194 | { | 194 | { |
195 | if ( state == TRUE ) | 195 | if ( state == TRUE ) |
196 | preferences->changePreference ( 4, 1 ); | 196 | preferences->changePreference ( 4, 1 ); |
197 | else | 197 | else |
198 | preferences->changePreference ( 4, 0 ); | 198 | preferences->changePreference ( 4, 0 ); |
199 | } | 199 | } |
200 | 200 | ||
201 | void AccountPreferences::changeOneTouchViewing ( bool state ) | 201 | void AccountPreferences::changeOneTouchViewing ( bool state ) |
202 | { | 202 | { |
203 | if ( state == TRUE ) | 203 | if ( state == TRUE ) |
204 | preferences->changePreference ( 5, 1 ); | 204 | preferences->changePreference ( 5, 1 ); |
205 | else | 205 | else |
206 | preferences->changePreference ( 5, 0 ); | 206 | preferences->changePreference ( 5, 0 ); |
207 | } | 207 | } |
208 | 208 | ||
209 | void AccountPreferences::setDefaultAccountPreferences () | 209 | void AccountPreferences::setDefaultAccountPreferences () |
210 | { | 210 | { |
211 | preferences->changePreference ( 4, 0 ); | 211 | preferences->changePreference ( 4, 0 ); |
212 | preferences->changePreference ( 5, 0 ); | 212 | preferences->changePreference ( 5, 0 ); |
213 | currencysupport->setChecked ( FALSE ); | 213 | currencysupport->setChecked ( FALSE ); |
214 | onetouch->setChecked ( FALSE ); | 214 | onetouch->setChecked ( FALSE ); |
215 | } | 215 | } |
216 | 216 | ||
diff --git a/noncore/apps/qashmoney/qashmoney.cpp b/noncore/apps/qashmoney/qashmoney.cpp index d4cbc14..1455eb0 100755 --- a/noncore/apps/qashmoney/qashmoney.cpp +++ b/noncore/apps/qashmoney/qashmoney.cpp | |||
@@ -1,166 +1,166 @@ | |||
1 | #include "qashmoney.h" | 1 | #include "qashmoney.h" |
2 | #include "preferencedialogs.h" | 2 | #include "preferencedialogs.h" |
3 | #include "memorydialog.h" | 3 | #include "memorydialog.h" |
4 | 4 | ||
5 | #include <qheader.h> | 5 | #include <qheader.h> |
6 | 6 | ||
7 | Budget *budget = new Budget (); | 7 | Budget *budget = new Budget (); |
8 | Preferences *preferences = new Preferences (); | 8 | Preferences *preferences = new Preferences (); |
9 | Account *account = new Account (); | 9 | Account *account = new Account (); |
10 | Transaction *transaction = new Transaction (); | 10 | Transaction *transaction = new Transaction (); |
11 | Transfer *transfer = new Transfer (); | 11 | Transfer *transfer = new Transfer (); |
12 | Memory *memory = new Memory (); | 12 | Memory *memory = new Memory (); |
13 | 13 | ||
14 | QashMoney::QashMoney () : QWidget () | 14 | QashMoney::QashMoney () : QWidget () |
15 | { | 15 | { |
16 | preferences->addPreferences (); | 16 | preferences->addPreferences (); |
17 | preferences->initializeColumnPreferences (); | 17 | preferences->initializeColumnPreferences (); |
18 | preferences->initializeSortingPreferences (); | 18 | preferences->initializeSortingPreferences (); |
19 | 19 | ||
20 | // set the text in the upper part of the frame | 20 | // set the text in the upper part of the frame |
21 | setCaption ( tr ( "QashMoney" ) ); | 21 | setCaption ( tr ( "QashMoney" ) ); |
22 | 22 | ||
23 | // Create new menubar for our mainwindow | 23 | // Create new menubar for our mainwindow |
24 | // and add menu items | 24 | // and add menu items |
25 | mainmenu = new QMenuBar ( this ); | 25 | mainmenu = new QMenuBar ( this ); |
26 | mainmenu->setFrameStyle ( QFrame::PopupPanel | QFrame::Raised ); | 26 | mainmenu->setFrameStyle ( QFrame::PopupPanel | QFrame::Raised ); |
27 | preferencesmenu = new QPopupMenu ( this ); | 27 | preferencesmenu = new QPopupMenu ( this ); |
28 | utilitiesmenu = new QPopupMenu ( this ); | 28 | utilitiesmenu = new QPopupMenu ( this ); |
29 | mainmenu->insertItem ( "Preferences", preferencesmenu ); | 29 | mainmenu->insertItem ( "Preferences", preferencesmenu ); |
30 | mainmenu->insertItem ( "Utilities", utilitiesmenu ); | 30 | mainmenu->insertItem ( "Utilities", utilitiesmenu ); |
31 | preferencesmenu->insertItem ( "Date", this, SLOT ( displayDatePreferencesDialog () ) ); | 31 | preferencesmenu->insertItem ( "Date", this, SLOT ( displayDatePreferencesDialog() ) ); |
32 | preferencesmenu->insertItem ( "Account", this, SLOT ( displayAccountPreferencesDialog () ) ); | 32 | preferencesmenu->insertItem ( "Account", this, SLOT ( displayAccountPreferencesDialog() ) ); |
33 | preferencesmenu->insertItem ( "Transaction", this, SLOT ( displayTransactionPreferencesDialog () ) ); | 33 | preferencesmenu->insertItem ( "Transaction", this, SLOT ( displayTransactionPreferencesDialog() ) ); |
34 | utilitiesmenu->insertItem ( "Memory", this, SLOT ( displayMemoryDialog () ) ); | 34 | utilitiesmenu->insertItem ( "Memory", this, SLOT ( displayMemoryDialog() ) ); |
35 | 35 | ||
36 | // create the main tabwidget for displaying accounts and transactions | 36 | // create the main tabwidget for displaying accounts and transactions |
37 | maintabs = new QTabWidget ( this ); | 37 | maintabs = new QTabWidget ( this ); |
38 | tab = new QWidget ( this ); | 38 | tab = new QWidget ( this ); |
39 | tab_2 = new QWidget ( this ); | 39 | tab_2 = new QWidget ( this ); |
40 | tab_3 = new QWidget ( this ); | 40 | tab_3 = new QWidget ( this ); |
41 | maintabs->addTab ( tab, "Accounts" ); | 41 | maintabs->addTab ( tab, "Accounts" ); |
42 | maintabs->addTab ( tab_2, "Transactions" ); | 42 | maintabs->addTab ( tab_2, "Transactions" ); |
43 | maintabs->addTab ( tab_3, "Budgets" ); | 43 | maintabs->addTab ( tab_3, "Budgets" ); |
44 | tabheight = tab->height(); | 44 | tabheight = tab->height(); |
45 | maintabs->setTabEnabled ( tab_2, FALSE ); | 45 | maintabs->setTabEnabled ( tab_2, FALSE ); |
46 | 46 | ||
47 | // create a new account display object | 47 | // create a new account display object |
48 | accountdisplay = new AccountDisplay ( maintabs ); | 48 | accountdisplay = new AccountDisplay ( maintabs ); |
49 | accountdisplay->setTabs ( tab_2, maintabs ); | 49 | accountdisplay->setTabs ( tab_2, maintabs ); |
50 | connect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( setTransactionTab () ) ); | 50 | connect ( accountdisplay->listview, SIGNAL ( selectionChanged() ), this, SLOT ( setTransactionTab() ) ); |
51 | 51 | ||
52 | // set the connection to disable the one touch account viewing if we are transfering money | 52 | // set the connection to disable the one touch account viewing if we are transfering money |
53 | connect ( accountdisplay->transferbutton, SIGNAL ( toggled ( bool ) ), this, SLOT ( toggleOneTouchViewing ( bool ) ) ); | 53 | connect ( accountdisplay->transferbutton, SIGNAL ( toggled(bool) ), this, SLOT ( toggleOneTouchViewing(bool) ) ); |
54 | 54 | ||
55 | // create a new transactiondisplay object | 55 | // create a new transactiondisplay object |
56 | transactiondisplay = new TransactionDisplay ( maintabs ); | 56 | transactiondisplay = new TransactionDisplay ( maintabs ); |
57 | transactiondisplay->hide(); | 57 | transactiondisplay->hide(); |
58 | 58 | ||
59 | // create new budgetdisplay object | 59 | // create new budgetdisplay object |
60 | budgetdisplay = new BudgetDisplay ( maintabs ); | 60 | budgetdisplay = new BudgetDisplay ( maintabs ); |
61 | budgetdisplay->hide(); | 61 | budgetdisplay->hide(); |
62 | 62 | ||
63 | tabslayout = new QVBoxLayout ( maintabs, 4, 2 ); | 63 | tabslayout = new QVBoxLayout ( maintabs, 4, 2 ); |
64 | tabslayout->addSpacing ( tabheight ); | 64 | tabslayout->addSpacing ( tabheight ); |
65 | tabslayout->addWidget ( accountdisplay ); | 65 | tabslayout->addWidget ( accountdisplay ); |
66 | tabslayout->addWidget ( transactiondisplay ); | 66 | tabslayout->addWidget ( transactiondisplay ); |
67 | tabslayout->addWidget ( budgetdisplay ); | 67 | tabslayout->addWidget ( budgetdisplay ); |
68 | 68 | ||
69 | // connect a change in the maintabs with changing the tab display | 69 | // connect a change in the maintabs with changing the tab display |
70 | connect ( maintabs, SIGNAL ( currentChanged ( QWidget * ) ), this, SLOT ( changeTabDisplay () ) ); | 70 | connect ( maintabs, SIGNAL ( currentChanged(QWidget*) ), this, SLOT ( changeTabDisplay() ) ); |
71 | 71 | ||
72 | // create layout that will contain the menubar and the maintabs | 72 | // create layout that will contain the menubar and the maintabs |
73 | layout = new QVBoxLayout ( this, 2, 2 ); | 73 | layout = new QVBoxLayout ( this, 2, 2 ); |
74 | layout->setMenuBar ( mainmenu ); | 74 | layout->setMenuBar ( mainmenu ); |
75 | layout->addWidget ( maintabs ); | 75 | layout->addWidget ( maintabs ); |
76 | } | 76 | } |
77 | 77 | ||
78 | QashMoney::~QashMoney () | 78 | QashMoney::~QashMoney () |
79 | { | 79 | { |
80 | delete budget; | 80 | delete budget; |
81 | delete preferences; | 81 | delete preferences; |
82 | delete account; | 82 | delete account; |
83 | delete transaction; | 83 | delete transaction; |
84 | delete transfer; | 84 | delete transfer; |
85 | delete memory; | 85 | delete memory; |
86 | } | 86 | } |
87 | 87 | ||
88 | void QashMoney::changeTabDisplay () | 88 | void QashMoney::changeTabDisplay () |
89 | { | 89 | { |
90 | // if the user pressed the transactions tab, hide the account display | 90 | // if the user pressed the transactions tab, hide the account display |
91 | // object and create a new transaction display | 91 | // object and create a new transaction display |
92 | if ( maintabs->currentPageIndex() == 1 ) | 92 | if ( maintabs->currentPageIndex() == 1 ) |
93 | { | 93 | { |
94 | // initialize variables | 94 | // initialize variables |
95 | bool children = FALSE; | 95 | bool children = FALSE; |
96 | 96 | ||
97 | // hide the account display and define accountid | 97 | // hide the account display and define accountid |
98 | int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt(); | 98 | int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt(); |
99 | 99 | ||
100 | //remove all the columns from the transactiondisplay | 100 | //remove all the columns from the transactiondisplay |
101 | int columns = transactiondisplay->listview->columns(); | 101 | int columns = transactiondisplay->listview->columns(); |
102 | int counter; | 102 | int counter; |
103 | for ( counter = 0; counter <= columns; counter++ ) | 103 | for ( counter = 0; counter <= columns; counter++ ) |
104 | transactiondisplay->listview->removeColumn ( 0 ); | 104 | transactiondisplay->listview->removeColumn ( 0 ); |
105 | 105 | ||
106 | // set the account name and account balance | 106 | // set the account name and account balance |
107 | QString name = account->getAccountName ( accountid ); | 107 | QString name = account->getAccountName ( accountid ); |
108 | QString balance = account->getAccountBalance ( accountid ); | 108 | QString balance = account->getAccountBalance ( accountid ); |
109 | transactiondisplay->name->setText ( name ); | 109 | transactiondisplay->name->setText ( name ); |
110 | transactiondisplay->balance->setText ( balance ); | 110 | transactiondisplay->balance->setText ( balance ); |
111 | 111 | ||
112 | // clear the limitbox | 112 | // clear the limitbox |
113 | transactiondisplay->limitbox->clear(); | 113 | transactiondisplay->limitbox->clear(); |
114 | 114 | ||
115 | // get parent account id | 115 | // get parent account id |
116 | int parentaccountid = account->getParentAccountID ( accountid ); | 116 | int parentaccountid = account->getParentAccountID ( accountid ); |
117 | 117 | ||
118 | // add columns based on which account is selected | 118 | // add columns based on which account is selected |
119 | // this first if determines if we selected a parent with no children or a child | 119 | // this first if determines if we selected a parent with no children or a child |
120 | // in these cases, we add standard three columns for date, transaction, amount | 120 | // in these cases, we add standard three columns for date, transaction, amount |
121 | transactiondisplay->listview->addColumn ( "Date", 0 ); | 121 | transactiondisplay->listview->addColumn ( "Date", 0 ); |
122 | transactiondisplay->listview->addColumn ( "Transaction", 0 ); | 122 | transactiondisplay->listview->addColumn ( "Transaction", 0 ); |
123 | transactiondisplay->listview->addColumn ( "Amt", 0); | 123 | transactiondisplay->listview->addColumn ( "Amt", 0); |
124 | transactiondisplay->listview->setColumnAlignment ( 2, Qt::AlignRight ); | 124 | transactiondisplay->listview->setColumnAlignment ( 2, Qt::AlignRight ); |
125 | transactiondisplay->listview->addColumn ( "", 0 ); | 125 | transactiondisplay->listview->addColumn ( "", 0 ); |
126 | 126 | ||
127 | if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) // we selected a parent with children | 127 | if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) // we selected a parent with children |
128 | { | 128 | { |
129 | // add an extra column for the account name for eac child transaction | 129 | // add an extra column for the account name for eac child transaction |
130 | transactiondisplay->listview->addColumn ( "Acct", 0 ); | 130 | transactiondisplay->listview->addColumn ( "Acct", 0 ); |
131 | children = TRUE; | 131 | children = TRUE; |
132 | 132 | ||
133 | // hide the new transaction button | 133 | // hide the new transaction button |
134 | transactiondisplay->newtransaction->setEnabled ( FALSE ); | 134 | transactiondisplay->newtransaction->setEnabled ( FALSE ); |
135 | } | 135 | } |
136 | else //we selected a parent without children or a child | 136 | else //we selected a parent without children or a child |
137 | transactiondisplay->newtransaction->setEnabled ( TRUE ); | 137 | transactiondisplay->newtransaction->setEnabled ( TRUE ); |
138 | 138 | ||
139 | // disable the transactionid column so it can't be red | 139 | // disable the transactionid column so it can't be red |
140 | transactiondisplay->listview->header()->setResizeEnabled ( FALSE, 3 ); | 140 | transactiondisplay->listview->header()->setResizeEnabled ( FALSE, 3 ); |
141 | 141 | ||
142 | // set the accountid and children variables | 142 | // set the accountid and children variables |
143 | transactiondisplay->setChildren ( children ); | 143 | transactiondisplay->setChildren ( children ); |
144 | transactiondisplay->setAccountID ( accountid ); | 144 | transactiondisplay->setAccountID ( accountid ); |
145 | 145 | ||
146 | setTransactionDisplayDate (); | 146 | setTransactionDisplayDate (); |
147 | 147 | ||
148 | // display transactions | 148 | // display transactions |
149 | transactiondisplay->listview->clear(); | 149 | transactiondisplay->listview->clear(); |
150 | QString displaytext = "%"; | 150 | QString displaytext = "%"; |
151 | displaytext.prepend ( transactiondisplay->limitbox->text() ); | 151 | displaytext.prepend ( transactiondisplay->limitbox->text() ); |
152 | if ( transaction->getNumberOfTransactions() > 0 ) | 152 | if ( transaction->getNumberOfTransactions() > 0 ) |
153 | transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate ); | 153 | transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate ); |
154 | 154 | ||
155 | // display transfers | 155 | // display transfers |
156 | transfer->displayTransfers ( transactiondisplay->listview, accountid, children, newdate ); | 156 | transfer->displayTransfers ( transactiondisplay->listview, accountid, children, newdate ); |
157 | 157 | ||
158 | // open a new preferences object and resize the transaction display columns | 158 | // open a new preferences object and resize the transaction display columns |
159 | // each column will have a different size based on whether we are looking at a child | 159 | // each column will have a different size based on whether we are looking at a child |
160 | // account or children through a parent | 160 | // account or children through a parent |
161 | if ( parentaccountid != -1 || accountdisplay->listview->selectedItem()->childCount() == 0 ) // a parent with no children or a child - three columns | 161 | if ( parentaccountid != -1 || accountdisplay->listview->selectedItem()->childCount() == 0 ) // a parent with no children or a child - three columns |
162 | { | 162 | { |
163 | transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 3 ) ); // normal transaction date width | 163 | transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 3 ) ); // normal transaction date width |
164 | transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual ); | 164 | transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual ); |
165 | transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 4 ) ); // normal transaction name width | 165 | transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 4 ) ); // normal transaction name width |
166 | transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual ); | 166 | transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual ); |
@@ -259,144 +259,144 @@ void QashMoney::displayDatePreferencesDialog () | |||
259 | // set children so we can let displayTransfers know if there are children for the selected account | 259 | // set children so we can let displayTransfers know if there are children for the selected account |
260 | bool children; | 260 | bool children; |
261 | if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) | 261 | if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) |
262 | children = TRUE; | 262 | children = TRUE; |
263 | else | 263 | else |
264 | children = FALSE; | 264 | children = FALSE; |
265 | 265 | ||
266 | // redisplay transactions if they are visible incorporating | 266 | // redisplay transactions if they are visible incorporating |
267 | // any changes to the date format | 267 | // any changes to the date format |
268 | transactiondisplay->listview->clear(); | 268 | transactiondisplay->listview->clear(); |
269 | QString displaytext = "%"; | 269 | QString displaytext = "%"; |
270 | displaytext.prepend ( transactiondisplay->limitbox->text() ); | 270 | displaytext.prepend ( transactiondisplay->limitbox->text() ); |
271 | 271 | ||
272 | setTransactionDisplayDate(); | 272 | setTransactionDisplayDate(); |
273 | if ( transaction->getNumberOfTransactions() > 0 ) | 273 | if ( transaction->getNumberOfTransactions() > 0 ) |
274 | transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate ); | 274 | transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate ); |
275 | 275 | ||
276 | if ( transfer->getNumberOfTransfers() != 0 ) | 276 | if ( transfer->getNumberOfTransfers() != 0 ) |
277 | transfer->displayTransfers ( transactiondisplay->listview, accountid, children, newdate ); | 277 | transfer->displayTransfers ( transactiondisplay->listview, accountid, children, newdate ); |
278 | } | 278 | } |
279 | else if ( accountdisplay->isVisible() ) | 279 | else if ( accountdisplay->isVisible() ) |
280 | { | 280 | { |
281 | accountdisplay->listview->clearSelection(); | 281 | accountdisplay->listview->clearSelection(); |
282 | maintabs->setTabEnabled ( tab_2, FALSE ); | 282 | maintabs->setTabEnabled ( tab_2, FALSE ); |
283 | } | 283 | } |
284 | else | 284 | else |
285 | budgetdisplay->updateBudgetInformation(); | 285 | budgetdisplay->updateBudgetInformation(); |
286 | } | 286 | } |
287 | 287 | ||
288 | void QashMoney::displayTransactionPreferencesDialog () | 288 | void QashMoney::displayTransactionPreferencesDialog () |
289 | { | 289 | { |
290 | // display a dialog for setting preferences for transactions | 290 | // display a dialog for setting preferences for transactions |
291 | TransactionPreferences *td = new TransactionPreferences ( this ); | 291 | TransactionPreferences *td = new TransactionPreferences ( this ); |
292 | td->exec (); | 292 | td->exec (); |
293 | if ( transactiondisplay->isVisible() ) | 293 | if ( transactiondisplay->isVisible() ) |
294 | { | 294 | { |
295 | // set the account id | 295 | // set the account id |
296 | int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt(); | 296 | int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt(); |
297 | 297 | ||
298 | // set children so we can let displayTransfers know if there are children for the selected account | 298 | // set children so we can let displayTransfers know if there are children for the selected account |
299 | bool children; | 299 | bool children; |
300 | if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) | 300 | if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) |
301 | children = TRUE; | 301 | children = TRUE; |
302 | else | 302 | else |
303 | children = FALSE; | 303 | children = FALSE; |
304 | 304 | ||
305 | // redisplay transactions incorporating any transaction preference changes | 305 | // redisplay transactions incorporating any transaction preference changes |
306 | transactiondisplay->listview->clear(); | 306 | transactiondisplay->listview->clear(); |
307 | QString displaytext = "%"; | 307 | QString displaytext = "%"; |
308 | displaytext.prepend ( transactiondisplay->limitbox->text() ); | 308 | displaytext.prepend ( transactiondisplay->limitbox->text() ); |
309 | 309 | ||
310 | setTransactionDisplayDate(); | 310 | setTransactionDisplayDate(); |
311 | if ( transaction->getNumberOfTransactions() > 0 ) | 311 | if ( transaction->getNumberOfTransactions() > 0 ) |
312 | transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate ); | 312 | transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate ); |
313 | 313 | ||
314 | if ( transfer->getNumberOfTransfers() != 0 ) | 314 | if ( transfer->getNumberOfTransfers() != 0 ) |
315 | transfer->displayTransfers ( transactiondisplay->listview, accountid, children, newdate ); | 315 | transfer->displayTransfers ( transactiondisplay->listview, accountid, children, newdate ); |
316 | } | 316 | } |
317 | else | 317 | else |
318 | { | 318 | { |
319 | accountdisplay->listview->clearSelection(); | 319 | accountdisplay->listview->clearSelection(); |
320 | maintabs->setTabEnabled ( tab_2, FALSE ); | 320 | maintabs->setTabEnabled ( tab_2, FALSE ); |
321 | } | 321 | } |
322 | } | 322 | } |
323 | 323 | ||
324 | void QashMoney::displayAccountPreferencesDialog () | 324 | void QashMoney::displayAccountPreferencesDialog () |
325 | { | 325 | { |
326 | // display a dialog for setting preferences for accounts | 326 | // display a dialog for setting preferences for accounts |
327 | AccountPreferences *ap = new AccountPreferences ( this ); | 327 | AccountPreferences *ap = new AccountPreferences ( this ); |
328 | ap->exec (); | 328 | ap->exec (); |
329 | 329 | ||
330 | if ( accountdisplay->isVisible() && account->getNumberOfAccounts() != 0 ) | 330 | if ( accountdisplay->isVisible() && account->getNumberOfAccounts() != 0 ) |
331 | { | 331 | { |
332 | accountdisplay->listview->clear(); | 332 | accountdisplay->listview->clear(); |
333 | account->displayAccounts ( accountdisplay->listview ); | 333 | account->displayAccounts ( accountdisplay->listview ); |
334 | accountdisplay->listview->clearSelection(); | 334 | accountdisplay->listview->clearSelection(); |
335 | maintabs->setTabEnabled ( tab_2, FALSE ); | 335 | maintabs->setTabEnabled ( tab_2, FALSE ); |
336 | } | 336 | } |
337 | changeTabDisplay(); | 337 | changeTabDisplay(); |
338 | } | 338 | } |
339 | 339 | ||
340 | void QashMoney::displayMemoryDialog () | 340 | void QashMoney::displayMemoryDialog () |
341 | { | 341 | { |
342 | // opens a dialog to add, edit and delete memory items | 342 | // opens a dialog to add, edit and delete memory items |
343 | MemoryDialog *md = new MemoryDialog (); | 343 | MemoryDialog *md = new MemoryDialog (); |
344 | md->exec(); | 344 | md->exec(); |
345 | } | 345 | } |
346 | 346 | ||
347 | void QashMoney::showTransactions () | 347 | void QashMoney::showTransactions () |
348 | { | 348 | { |
349 | maintabs->setCurrentPage ( 1 ); | 349 | maintabs->setCurrentPage ( 1 ); |
350 | } | 350 | } |
351 | 351 | ||
352 | void QashMoney::enableOneTouchViewing () | 352 | void QashMoney::enableOneTouchViewing () |
353 | { | 353 | { |
354 | if ( preferences->getPreference ( 5 ) == 1 ) | 354 | if ( preferences->getPreference ( 5 ) == 1 ) |
355 | connect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) ); | 355 | connect ( accountdisplay->listview, SIGNAL ( selectionChanged() ), this, SLOT ( showTransactions() ) ); |
356 | else | 356 | else |
357 | disconnect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) ); | 357 | disconnect ( accountdisplay->listview, SIGNAL ( selectionChanged() ), this, SLOT ( showTransactions() ) ); |
358 | } | 358 | } |
359 | 359 | ||
360 | void QashMoney::disableOneTouchViewing () | 360 | void QashMoney::disableOneTouchViewing () |
361 | { | 361 | { |
362 | disconnect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( showTransactions () ) ); | 362 | disconnect ( accountdisplay->listview, SIGNAL ( selectionChanged() ), this, SLOT ( showTransactions() ) ); |
363 | } | 363 | } |
364 | 364 | ||
365 | void QashMoney::toggleOneTouchViewing ( bool state ) | 365 | void QashMoney::toggleOneTouchViewing ( bool state ) |
366 | { | 366 | { |
367 | if ( state == TRUE ) | 367 | if ( state == TRUE ) |
368 | disableOneTouchViewing(); | 368 | disableOneTouchViewing(); |
369 | else | 369 | else |
370 | enableOneTouchViewing(); | 370 | enableOneTouchViewing(); |
371 | } | 371 | } |
372 | 372 | ||
373 | void QashMoney::setTransactionDisplayDate () | 373 | void QashMoney::setTransactionDisplayDate () |
374 | { | 374 | { |
375 | // determine how many days of transactions to show | 375 | // determine how many days of transactions to show |
376 | int limittype = preferences->getPreference ( 7 ); | 376 | int limittype = preferences->getPreference ( 7 ); |
377 | if ( limittype != 5 ) // set today's date if we are not showing all transactions | 377 | if ( limittype != 5 ) // set today's date if we are not showing all transactions |
378 | { | 378 | { |
379 | QDate today = QDate::currentDate (); | 379 | QDate today = QDate::currentDate (); |
380 | switch ( limittype ) // if we are not showing all transactions | 380 | switch ( limittype ) // if we are not showing all transactions |
381 | { | 381 | { |
382 | case 0: // viewing two weeks | 382 | case 0: // viewing two weeks |
383 | newdate = today.addDays ( -14 ); | 383 | newdate = today.addDays ( -14 ); |
384 | break; | 384 | break; |
385 | case 1: // viewing one month | 385 | case 1: // viewing one month |
386 | newdate = today.addDays ( -30 ); | 386 | newdate = today.addDays ( -30 ); |
387 | break; | 387 | break; |
388 | case 2: // three months | 388 | case 2: // three months |
389 | newdate = today.addDays ( -90 ); | 389 | newdate = today.addDays ( -90 ); |
390 | break; | 390 | break; |
391 | case 3: // six months | 391 | case 3: // six months |
392 | newdate = today.addDays ( -180 ); | 392 | newdate = today.addDays ( -180 ); |
393 | break; | 393 | break; |
394 | case 4: // one year | 394 | case 4: // one year |
395 | newdate = today.addDays ( -365 ); | 395 | newdate = today.addDays ( -365 ); |
396 | break; | 396 | break; |
397 | } | 397 | } |
398 | } | 398 | } |
399 | else | 399 | else |
400 | newdate = QDate ( 1900, 1, 1 ); | 400 | newdate = QDate ( 1900, 1, 1 ); |
401 | } | 401 | } |
402 | 402 | ||
diff --git a/noncore/apps/qashmoney/transactiondisplay.cpp b/noncore/apps/qashmoney/transactiondisplay.cpp index 474f11e..0b94d62 100755 --- a/noncore/apps/qashmoney/transactiondisplay.cpp +++ b/noncore/apps/qashmoney/transactiondisplay.cpp | |||
@@ -1,312 +1,312 @@ | |||
1 | #include "transactiondisplay.h" | 1 | #include "transactiondisplay.h" |
2 | #include "newtransaction.h" | 2 | #include "newtransaction.h" |
3 | #include "account.h" | 3 | #include "account.h" |
4 | #include "budget.h" | 4 | #include "budget.h" |
5 | #include "memory.h" | 5 | #include "memory.h" |
6 | #include "transfer.h" | 6 | #include "transfer.h" |
7 | #include "calculator.h" | 7 | #include "calculator.h" |
8 | #include "datepicker.h" | 8 | #include "datepicker.h" |
9 | 9 | ||
10 | #include <qmessagebox.h> | 10 | #include <qmessagebox.h> |
11 | #include <qheader.h> | 11 | #include <qheader.h> |
12 | #include <qmultilineedit.h> | 12 | #include <qmultilineedit.h> |
13 | 13 | ||
14 | extern Transaction *transaction; | 14 | extern Transaction *transaction; |
15 | extern Budget *budget; | 15 | extern Budget *budget; |
16 | extern Account *account; | 16 | extern Account *account; |
17 | extern Preferences *preferences; | 17 | extern Preferences *preferences; |
18 | extern Memory *memory; | 18 | extern Memory *memory; |
19 | extern Transfer *transfer; | 19 | extern Transfer *transfer; |
20 | 20 | ||
21 | TransactionDisplay::TransactionDisplay ( QWidget* parent ) : QWidget ( parent ) | 21 | TransactionDisplay::TransactionDisplay ( QWidget* parent ) : QWidget ( parent ) |
22 | { | 22 | { |
23 | // set transactiondisplay variables; | 23 | // set transactiondisplay variables; |
24 | accountid = 0; | 24 | accountid = 0; |
25 | children = TRUE; | 25 | children = TRUE; |
26 | 26 | ||
27 | firstline = new QHBox ( this ); | 27 | firstline = new QHBox ( this ); |
28 | firstline->setSpacing ( 2 ); | 28 | firstline->setSpacing ( 2 ); |
29 | 29 | ||
30 | newtransaction = new QPushButton ( firstline ); | 30 | newtransaction = new QPushButton ( firstline ); |
31 | newtransaction->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); | 31 | newtransaction->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); |
32 | connect ( newtransaction, SIGNAL ( released () ), this, SLOT ( addTransaction () ) ); | 32 | connect ( newtransaction, SIGNAL ( released() ), this, SLOT ( addTransaction() ) ); |
33 | 33 | ||
34 | edittransaction = new QPushButton ( firstline ); | 34 | edittransaction = new QPushButton ( firstline ); |
35 | edittransaction->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); | 35 | edittransaction->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); |
36 | connect ( edittransaction, SIGNAL ( released () ), this, SLOT ( checkListViewEdit () ) ); | 36 | connect ( edittransaction, SIGNAL ( released() ), this, SLOT ( checkListViewEdit() ) ); |
37 | 37 | ||
38 | deletetransaction = new QPushButton ( firstline ); | 38 | deletetransaction = new QPushButton ( firstline ); |
39 | deletetransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); | 39 | deletetransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); |
40 | connect ( deletetransaction, SIGNAL ( released () ), this, SLOT ( checkListViewDelete () ) ); | 40 | connect ( deletetransaction, SIGNAL ( released() ), this, SLOT ( checkListViewDelete() ) ); |
41 | 41 | ||
42 | toggletransaction = new QPushButton ( firstline ); | 42 | toggletransaction = new QPushButton ( firstline ); |
43 | toggletransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/redo.png") ); | 43 | toggletransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/redo.png") ); |
44 | connect ( toggletransaction, SIGNAL ( released () ), this, SLOT ( checkListViewToggle () ) ); | 44 | connect ( toggletransaction, SIGNAL ( released() ), this, SLOT ( checkListViewToggle() ) ); |
45 | 45 | ||
46 | viewtransactionnotes = new QPushButton ( firstline ); | 46 | viewtransactionnotes = new QPushButton ( firstline ); |
47 | viewtransactionnotes->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/info.png") ); | 47 | viewtransactionnotes->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/info.png") ); |
48 | connect ( viewtransactionnotes, SIGNAL ( released () ), this, SLOT ( showTransactionNotes () ) ); | 48 | connect ( viewtransactionnotes, SIGNAL ( released() ), this, SLOT ( showTransactionNotes() ) ); |
49 | 49 | ||
50 | secondline = new QHBox ( this ); | 50 | secondline = new QHBox ( this ); |
51 | secondline->setSpacing ( 5 ); | 51 | secondline->setSpacing ( 5 ); |
52 | 52 | ||
53 | name = new QLabel ( secondline ); | 53 | name = new QLabel ( secondline ); |
54 | balance = new QLabel ( secondline ); | 54 | balance = new QLabel ( secondline ); |
55 | 55 | ||
56 | QLabel *limit = new QLabel ( "Limit", secondline ); | 56 | QLabel *limit = new QLabel ( "Limit", secondline ); |
57 | limitbox = new QLineEdit ( secondline ); | 57 | limitbox = new QLineEdit ( secondline ); |
58 | limitbox->setMinimumWidth ( ( int ) ( this->width() / 6 ) ); | 58 | limitbox->setMinimumWidth ( ( int ) ( this->width() / 6 ) ); |
59 | connect ( limitbox, SIGNAL ( textChanged ( const QString & ) ), this, SLOT ( limitDisplay ( const QString & ) ) ); | 59 | connect ( limitbox, SIGNAL ( textChanged(const QString&) ), this, SLOT ( limitDisplay(const QString&) ) ); |
60 | 60 | ||
61 | listview = new QListView ( this ); | 61 | listview = new QListView ( this ); |
62 | listview->setAllColumnsShowFocus ( TRUE ); | 62 | listview->setAllColumnsShowFocus ( TRUE ); |
63 | listview->setShowSortIndicator ( TRUE ); | 63 | listview->setShowSortIndicator ( TRUE ); |
64 | listview->header()->setTracking ( FALSE ); | 64 | listview->header()->setTracking ( FALSE ); |
65 | connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); | 65 | connect ( listview->header(), SIGNAL ( sizeChange(int,int,int) ), this, SLOT ( saveColumnSize(int,int,int) ) ); |
66 | connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); | 66 | connect ( listview->header(), SIGNAL ( clicked(int) ), this, SLOT ( saveSortingPreference(int) ) ); |
67 | 67 | ||
68 | layout = new QVBoxLayout ( this, 2, 2 ); | 68 | layout = new QVBoxLayout ( this, 2, 2 ); |
69 | layout->addWidget ( firstline ); | 69 | layout->addWidget ( firstline ); |
70 | layout->addWidget ( secondline ); | 70 | layout->addWidget ( secondline ); |
71 | layout->addWidget ( listview ); | 71 | layout->addWidget ( listview ); |
72 | } | 72 | } |
73 | 73 | ||
74 | void TransactionDisplay::addTransaction () | 74 | void TransactionDisplay::addTransaction () |
75 | { | 75 | { |
76 | // create local variables | 76 | // create local variables |
77 | int cleared = -1; | 77 | int cleared = -1; |
78 | 78 | ||
79 | // create new transaction window | 79 | // create new transaction window |
80 | NewTransaction *newtransaction = new NewTransaction ( this ); | 80 | NewTransaction *newtransaction = new NewTransaction ( this ); |
81 | int width = this->size().width(); | 81 | int width = this->size().width(); |
82 | newtransaction->transactionname->setMaximumWidth ( ( int ) ( width * 0.45 ) ); | 82 | newtransaction->transactionname->setMaximumWidth ( ( int ) ( width * 0.45 ) ); |
83 | newtransaction->transactionname->setMinimumWidth ( ( int ) ( width * 0.35 ) ); | 83 | newtransaction->transactionname->setMinimumWidth ( ( int ) ( width * 0.35 ) ); |
84 | newtransaction->lineitembox->setMaximumWidth ( ( int ) ( width * 0.45 ) ); | 84 | newtransaction->lineitembox->setMaximumWidth ( ( int ) ( width * 0.45 ) ); |
85 | newtransaction->transactiondatebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 85 | newtransaction->transactiondatebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
86 | newtransaction->transactionamountbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 86 | newtransaction->transactionamountbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
87 | newtransaction->transactionnumber->setMaximumWidth ( ( int ) ( width * 0.25 ) ); | 87 | newtransaction->transactionnumber->setMaximumWidth ( ( int ) ( width * 0.25 ) ); |
88 | 88 | ||
89 | // enter today's date in the date box as defaul | 89 | // enter today's date in the date box as defaul |
90 | QDate today = QDate::currentDate (); | 90 | QDate today = QDate::currentDate (); |
91 | int defaultday = today.day(); | 91 | int defaultday = today.day(); |
92 | int defaultmonth = today.month(); | 92 | int defaultmonth = today.month(); |
93 | int defaultyear = today.year(); | 93 | int defaultyear = today.year(); |
94 | newtransaction->transactiondate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); | 94 | newtransaction->transactiondate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); |
95 | 95 | ||
96 | // add memory items to the transactionname combobox | 96 | // add memory items to the transactionname combobox |
97 | memory->displayMemoryItems ( newtransaction->transactionname ); | 97 | memory->displayMemoryItems ( newtransaction->transactionname ); |
98 | newtransaction->transactionname->insertItem ( "", 0 ); | 98 | newtransaction->transactionname->insertItem ( "", 0 ); |
99 | 99 | ||
100 | if ( newtransaction->exec () == QDialog::Accepted ) | 100 | if ( newtransaction->exec () == QDialog::Accepted ) |
101 | { | 101 | { |
102 | if ( newtransaction->clearedcheckbox->isChecked () == TRUE ) // set a parent id and type for a child transaction | 102 | if ( newtransaction->clearedcheckbox->isChecked () == TRUE ) // set a parent id and type for a child transaction |
103 | cleared = 1; | 103 | cleared = 1; |
104 | else | 104 | else |
105 | cleared = 0; | 105 | cleared = 0; |
106 | 106 | ||
107 | float amount = newtransaction->transactionamount->text().toFloat(); | 107 | float amount = newtransaction->transactionamount->text().toFloat(); |
108 | if ( newtransaction->depositbox->isChecked() == FALSE ) | 108 | if ( newtransaction->depositbox->isChecked() == FALSE ) |
109 | amount = amount * -1; | 109 | amount = amount * -1; |
110 | 110 | ||
111 | // add the transaction name to the memory items | 111 | // add the transaction name to the memory items |
112 | memory->addMemoryItem ( newtransaction->transactionname->currentText() ); | 112 | memory->addMemoryItem ( newtransaction->transactionname->currentText() ); |
113 | 113 | ||
114 | // add the transaction | 114 | // add the transaction |
115 | if ( newtransaction->getDateEdited () == TRUE ) | 115 | if ( newtransaction->getDateEdited () == TRUE ) |
116 | transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), | 116 | transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), |
117 | newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(), | 117 | newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(), |
118 | newtransaction->getCurrentLineItem() ); | 118 | newtransaction->getCurrentLineItem() ); |
119 | else | 119 | else |
120 | transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), | 120 | transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), |
121 | newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() ); | 121 | newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() ); |
122 | 122 | ||
123 | // redisplay transactions | 123 | // redisplay transactions |
124 | listview->clear(); | 124 | listview->clear(); |
125 | QString displaytext = "%"; | 125 | QString displaytext = "%"; |
126 | displaytext.prepend ( limitbox->text() ); | 126 | displaytext.prepend ( limitbox->text() ); |
127 | setTransactionDisplayDate (); | 127 | setTransactionDisplayDate (); |
128 | if ( transaction->getNumberOfTransactions() > 0 ) | 128 | if ( transaction->getNumberOfTransactions() > 0 ) |
129 | transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate ); | 129 | transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate ); |
130 | 130 | ||
131 | // redisplay transfers | 131 | // redisplay transfers |
132 | if ( transfer->getNumberOfTransfers() > 0 ) | 132 | if ( transfer->getNumberOfTransfers() > 0 ) |
133 | transfer->displayTransfers ( listview, accountid, children, displaydate ); | 133 | transfer->displayTransfers ( listview, accountid, children, displaydate ); |
134 | 134 | ||
135 | // add the transaction amount to the account it's associated with | 135 | // add the transaction amount to the account it's associated with |
136 | // and update its parent account balance if necessary | 136 | // and update its parent account balance if necessary |
137 | account->updateAccountBalance ( accountid ); | 137 | account->updateAccountBalance ( accountid ); |
138 | if ( account->getParentAccountID ( accountid ) != -1 ) | 138 | if ( account->getParentAccountID ( accountid ) != -1 ) |
139 | account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) ); | 139 | account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) ); |
140 | 140 | ||
141 | // format then reset the account balance | 141 | // format then reset the account balance |
142 | redisplayAccountBalance (); | 142 | redisplayAccountBalance (); |
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | void TransactionDisplay::checkListViewEdit () | 146 | void TransactionDisplay::checkListViewEdit () |
147 | { | 147 | { |
148 | if ( listview->selectedItem() == 0 ) | 148 | if ( listview->selectedItem() == 0 ) |
149 | QMessageBox::warning ( this, "QashMoney", "Please select a transaction\nto edit."); | 149 | QMessageBox::warning ( this, "QashMoney", "Please select a transaction\nto edit."); |
150 | else if ( listview->currentItem()->text ( getIDColumn() ).toInt() < 0 ) | 150 | else if ( listview->currentItem()->text ( getIDColumn() ).toInt() < 0 ) |
151 | editTransfer (); | 151 | editTransfer (); |
152 | else | 152 | else |
153 | editTransaction(); | 153 | editTransaction(); |
154 | } | 154 | } |
155 | 155 | ||
156 | void TransactionDisplay::showCalculator () | 156 | void TransactionDisplay::showCalculator () |
157 | { | 157 | { |
158 | Calculator *calculator = new Calculator ( this ); | 158 | Calculator *calculator = new Calculator ( this ); |
159 | if ( calculator->exec () == QDialog::Accepted ) | 159 | if ( calculator->exec () == QDialog::Accepted ) |
160 | amount->setText ( calculator->display->text() ); | 160 | amount->setText ( calculator->display->text() ); |
161 | } | 161 | } |
162 | 162 | ||
163 | void TransactionDisplay::showCalendar () | 163 | void TransactionDisplay::showCalendar () |
164 | { | 164 | { |
165 | QDate newDate = QDate::currentDate (); | 165 | QDate newDate = QDate::currentDate (); |
166 | DatePicker *dp = new DatePicker ( newDate ); | 166 | DatePicker *dp = new DatePicker ( newDate ); |
167 | if ( dp->exec () == QDialog::Accepted ) | 167 | if ( dp->exec () == QDialog::Accepted ) |
168 | { | 168 | { |
169 | year = dp->getYear(); | 169 | year = dp->getYear(); |
170 | month = dp->getMonth(); | 170 | month = dp->getMonth(); |
171 | day = dp->getDay(); | 171 | day = dp->getDay(); |
172 | date->setText ( preferences->getDate ( year, month, day ) ); | 172 | date->setText ( preferences->getDate ( year, month, day ) ); |
173 | } | 173 | } |
174 | } | 174 | } |
175 | 175 | ||
176 | void TransactionDisplay::editTransfer () | 176 | void TransactionDisplay::editTransfer () |
177 | { | 177 | { |
178 | transferid = listview->currentItem()->text ( getIDColumn() ).toInt(); | 178 | transferid = listview->currentItem()->text ( getIDColumn() ).toInt(); |
179 | fromaccount = transfer->getFromAccountID ( transferid ); | 179 | fromaccount = transfer->getFromAccountID ( transferid ); |
180 | toaccount = transfer->getToAccountID ( transferid ); | 180 | toaccount = transfer->getToAccountID ( transferid ); |
181 | year = transfer->getYear ( transferid ); | 181 | year = transfer->getYear ( transferid ); |
182 | month = transfer->getMonth ( transferid ); | 182 | month = transfer->getMonth ( transferid ); |
183 | day = transfer->getDay ( transferid ); | 183 | day = transfer->getDay ( transferid ); |
184 | 184 | ||
185 | QDialog *editransfer = new QDialog ( this, "edittransfer", TRUE ); | 185 | QDialog *editransfer = new QDialog ( this, "edittransfer", TRUE ); |
186 | editransfer->setCaption ( "Transfer" ); | 186 | editransfer->setCaption ( "Transfer" ); |
187 | 187 | ||
188 | QStringList accountnames = account->getAccountNames(); | 188 | QStringList accountnames = account->getAccountNames(); |
189 | QStringList accountids = account->getAccountIDs(); | 189 | QStringList accountids = account->getAccountIDs(); |
190 | 190 | ||
191 | QLabel *fromaccountlabel = new QLabel ( "From Account:", editransfer ); | 191 | QLabel *fromaccountlabel = new QLabel ( "From Account:", editransfer ); |
192 | QFont f = this->font(); | 192 | QFont f = this->font(); |
193 | f.setWeight ( QFont::Bold ); | 193 | f.setWeight ( QFont::Bold ); |
194 | fromaccountlabel->setFont ( f ); | 194 | fromaccountlabel->setFont ( f ); |
195 | 195 | ||
196 | QComboBox *fromaccountbox = new QComboBox ( editransfer ); | 196 | QComboBox *fromaccountbox = new QComboBox ( editransfer ); |
197 | fromaccountbox->insertStringList ( accountnames ); | 197 | fromaccountbox->insertStringList ( accountnames ); |
198 | fromaccountbox->setCurrentItem ( accountids.findIndex ( QString::number ( fromaccount ) ) ); | 198 | fromaccountbox->setCurrentItem ( accountids.findIndex ( QString::number ( fromaccount ) ) ); |
199 | 199 | ||
200 | QLabel *toaccountlabel = new QLabel ( "To Account:", editransfer ); | 200 | QLabel *toaccountlabel = new QLabel ( "To Account:", editransfer ); |
201 | toaccountlabel->setFont ( f ); | 201 | toaccountlabel->setFont ( f ); |
202 | 202 | ||
203 | QComboBox *toaccountbox = new QComboBox ( editransfer ); | 203 | QComboBox *toaccountbox = new QComboBox ( editransfer ); |
204 | toaccountbox->insertStringList ( accountnames ); | 204 | toaccountbox->insertStringList ( accountnames ); |
205 | toaccountbox->setCurrentItem ( accountids.findIndex ( QString::number ( toaccount ) ) ); | 205 | toaccountbox->setCurrentItem ( accountids.findIndex ( QString::number ( toaccount ) ) ); |
206 | 206 | ||
207 | QLabel *datelabel = new QLabel ( "Date", editransfer ); | 207 | QLabel *datelabel = new QLabel ( "Date", editransfer ); |
208 | QHBox *datebox = new QHBox ( editransfer ); | 208 | QHBox *datebox = new QHBox ( editransfer ); |
209 | datebox->setSpacing ( 2 ); | 209 | datebox->setSpacing ( 2 ); |
210 | date = new QLineEdit ( datebox ); | 210 | date = new QLineEdit ( datebox ); |
211 | date->setAlignment ( Qt::AlignRight ); | 211 | date->setAlignment ( Qt::AlignRight ); |
212 | date->setDisabled ( TRUE ); | 212 | date->setDisabled ( TRUE ); |
213 | date->setText ( preferences->getDate ( year, month, day ) ); | 213 | date->setText ( preferences->getDate ( year, month, day ) ); |
214 | QPushButton *datebutton = new QPushButton ( datebox ); | 214 | QPushButton *datebutton = new QPushButton ( datebox ); |
215 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); | 215 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); |
216 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); | 216 | connect ( datebutton, SIGNAL ( released() ), this, SLOT ( showCalendar() ) ); |
217 | 217 | ||
218 | QLabel *amounttlabel = new QLabel ( "Amount", editransfer ); | 218 | QLabel *amounttlabel = new QLabel ( "Amount", editransfer ); |
219 | 219 | ||
220 | QHBox *amountbox = new QHBox ( editransfer ); | 220 | QHBox *amountbox = new QHBox ( editransfer ); |
221 | amountbox->setSpacing ( 2 ); | 221 | amountbox->setSpacing ( 2 ); |
222 | amount = new QLineEdit ( amountbox ); | 222 | amount = new QLineEdit ( amountbox ); |
223 | amount->setAlignment ( Qt::AlignRight ); | 223 | amount->setAlignment ( Qt::AlignRight ); |
224 | amount->setText ( transfer->getAmount ( transferid ) ); | 224 | amount->setText ( transfer->getAmount ( transferid ) ); |
225 | QPushButton *calculatorbutton = new QPushButton( amountbox ); | 225 | QPushButton *calculatorbutton = new QPushButton( amountbox ); |
226 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 226 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
227 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); | 227 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); |
228 | 228 | ||
229 | QCheckBox *clearedcheckbox = new QCheckBox ( "Cleared", editransfer ); | 229 | QCheckBox *clearedcheckbox = new QCheckBox ( "Cleared", editransfer ); |
230 | 230 | ||
231 | QBoxLayout *layout = new QVBoxLayout ( editransfer, 4, 2 ); | 231 | QBoxLayout *layout = new QVBoxLayout ( editransfer, 4, 2 ); |
232 | layout->addWidget ( fromaccountlabel, Qt::AlignLeft ); | 232 | layout->addWidget ( fromaccountlabel, Qt::AlignLeft ); |
233 | layout->addWidget ( fromaccountbox, Qt::AlignLeft ); | 233 | layout->addWidget ( fromaccountbox, Qt::AlignLeft ); |
234 | layout->addWidget ( toaccountlabel, Qt::AlignLeft ); | 234 | layout->addWidget ( toaccountlabel, Qt::AlignLeft ); |
235 | layout->addWidget ( toaccountbox, Qt::AlignLeft ); | 235 | layout->addWidget ( toaccountbox, Qt::AlignLeft ); |
236 | layout->addSpacing ( 5 ); | 236 | layout->addSpacing ( 5 ); |
237 | layout->addWidget ( datelabel, Qt::AlignLeft ); | 237 | layout->addWidget ( datelabel, Qt::AlignLeft ); |
238 | layout->addWidget ( datebox, Qt::AlignLeft ); | 238 | layout->addWidget ( datebox, Qt::AlignLeft ); |
239 | layout->addWidget ( amounttlabel, Qt::AlignLeft ); | 239 | layout->addWidget ( amounttlabel, Qt::AlignLeft ); |
240 | layout->addWidget ( amountbox, Qt::AlignLeft ); | 240 | layout->addWidget ( amountbox, Qt::AlignLeft ); |
241 | layout->addWidget ( clearedcheckbox, Qt::AlignLeft ); | 241 | layout->addWidget ( clearedcheckbox, Qt::AlignLeft ); |
242 | 242 | ||
243 | if ( editransfer->exec() == QDialog::Accepted ) | 243 | if ( editransfer->exec() == QDialog::Accepted ) |
244 | { | 244 | { |
245 | //get fromaccount | 245 | //get fromaccount |
246 | fromaccount = ( accountids.operator[] ( fromaccountbox->currentItem() ) ).toInt(); | 246 | fromaccount = ( accountids.operator[] ( fromaccountbox->currentItem() ) ).toInt(); |
247 | 247 | ||
248 | //get to account | 248 | //get to account |
249 | toaccount = ( accountids.operator[] ( toaccountbox->currentItem() ) ).toInt(); | 249 | toaccount = ( accountids.operator[] ( toaccountbox->currentItem() ) ).toInt(); |
250 | 250 | ||
251 | //set cleared flag | 251 | //set cleared flag |
252 | int cleared = 0; | 252 | int cleared = 0; |
253 | if ( clearedcheckbox->isChecked() == TRUE ) | 253 | if ( clearedcheckbox->isChecked() == TRUE ) |
254 | cleared = 1; | 254 | cleared = 1; |
255 | 255 | ||
256 | //update transfer | 256 | //update transfer |
257 | transfer->updateTransfer ( fromaccount, account->getParentAccountID ( fromaccount ), toaccount, account->getParentAccountID ( toaccount ), | 257 | transfer->updateTransfer ( fromaccount, account->getParentAccountID ( fromaccount ), toaccount, account->getParentAccountID ( toaccount ), |
258 | day, month, year, amount->text().toFloat(), cleared, transferid ); | 258 | day, month, year, amount->text().toFloat(), cleared, transferid ); |
259 | 259 | ||
260 | account->updateAccountBalance ( fromaccount ); | 260 | account->updateAccountBalance ( fromaccount ); |
261 | if ( account->getParentAccountID ( fromaccount ) != -1 ) | 261 | if ( account->getParentAccountID ( fromaccount ) != -1 ) |
262 | account->changeParentAccountBalance ( account->getParentAccountID ( fromaccount ) ); | 262 | account->changeParentAccountBalance ( account->getParentAccountID ( fromaccount ) ); |
263 | 263 | ||
264 | updateAndDisplay ( toaccount ); | 264 | updateAndDisplay ( toaccount ); |
265 | } | 265 | } |
266 | } | 266 | } |
267 | 267 | ||
268 | void TransactionDisplay::editTransaction () | 268 | void TransactionDisplay::editTransaction () |
269 | { | 269 | { |
270 | int cleared; | 270 | int cleared; |
271 | 271 | ||
272 | // set the transaction id and budgetid | 272 | // set the transaction id and budgetid |
273 | int transactionid = listview->currentItem()->text ( getIDColumn() ).toInt(); | 273 | int transactionid = listview->currentItem()->text ( getIDColumn() ).toInt(); |
274 | int budgetid = transaction->getBudgetID ( transactionid ); | 274 | int budgetid = transaction->getBudgetID ( transactionid ); |
275 | int lineitemid = transaction->getLineItemID ( transactionid ); | 275 | int lineitemid = transaction->getLineItemID ( transactionid ); |
276 | 276 | ||
277 | // create edit transaction window | 277 | // create edit transaction window |
278 | NewTransaction *newtransaction = new NewTransaction ( this ); | 278 | NewTransaction *newtransaction = new NewTransaction ( this ); |
279 | int width = this->width(); | 279 | int width = this->width(); |
280 | newtransaction->transactionname->setMaximumWidth ( ( int ) ( width * 0.45 ) ); | 280 | newtransaction->transactionname->setMaximumWidth ( ( int ) ( width * 0.45 ) ); |
281 | newtransaction->transactionname->setMinimumWidth ( ( int ) ( width * 0.35 ) ); | 281 | newtransaction->transactionname->setMinimumWidth ( ( int ) ( width * 0.35 ) ); |
282 | newtransaction->lineitembox->setMaximumWidth ( ( int ) ( width * 0.45 ) ); | 282 | newtransaction->lineitembox->setMaximumWidth ( ( int ) ( width * 0.45 ) ); |
283 | newtransaction->transactiondatebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 283 | newtransaction->transactiondatebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
284 | newtransaction->transactionamountbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); | 284 | newtransaction->transactionamountbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); |
285 | newtransaction->transactionnumber->setMaximumWidth ( ( int ) ( width * 0.25 ) ); | 285 | newtransaction->transactionnumber->setMaximumWidth ( ( int ) ( width * 0.25 ) ); |
286 | 286 | ||
287 | // enter the date in the date box | 287 | // enter the date in the date box |
288 | newtransaction->year = transaction->getYear ( transactionid ); | 288 | newtransaction->year = transaction->getYear ( transactionid ); |
289 | newtransaction->month = transaction->getMonth ( transactionid ); | 289 | newtransaction->month = transaction->getMonth ( transactionid ); |
290 | newtransaction->day = transaction->getDay ( transactionid ); | 290 | newtransaction->day = transaction->getDay ( transactionid ); |
291 | newtransaction->transactiondate->setText ( preferences->getDate ( newtransaction->year, newtransaction->month, newtransaction->day ) ); | 291 | newtransaction->transactiondate->setText ( preferences->getDate ( newtransaction->year, newtransaction->month, newtransaction->day ) ); |
292 | 292 | ||
293 | // set the description | 293 | // set the description |
294 | newtransaction->setDescription ( transaction->getTransactionDescription ( transactionid ) ); | 294 | newtransaction->setDescription ( transaction->getTransactionDescription ( transactionid ) ); |
295 | 295 | ||
296 | // add memory items to the transactionname combobox | 296 | // add memory items to the transactionname combobox |
297 | memory->displayMemoryItems ( newtransaction->transactionname ); | 297 | memory->displayMemoryItems ( newtransaction->transactionname ); |
298 | 298 | ||
299 | // add correct transaction name | 299 | // add correct transaction name |
300 | newtransaction->transactionname->setEditText ( transaction->getPayee ( transactionid ) ); | 300 | newtransaction->transactionname->setEditText ( transaction->getPayee ( transactionid ) ); |
301 | 301 | ||
302 | // add transaction number | 302 | // add transaction number |
303 | newtransaction->transactionnumber->setText ( transaction->getNumber ( transactionid ) ); | 303 | newtransaction->transactionnumber->setText ( transaction->getNumber ( transactionid ) ); |
304 | 304 | ||
305 | // add transaction amount | 305 | // add transaction amount |
306 | newtransaction->transactionamount->setText ( transaction->getAbsoluteAmount ( transactionid ) ); | 306 | newtransaction->transactionamount->setText ( transaction->getAbsoluteAmount ( transactionid ) ); |
307 | 307 | ||
308 | // check for and set the correct budget | 308 | // check for and set the correct budget |
309 | if ( budgetid >= 1 ) // only do it if this transaction has a budget and line item | 309 | if ( budgetid >= 1 ) // only do it if this transaction has a budget and line item |
310 | { | 310 | { |
311 | newtransaction->budgetbox->setCurrentItem ( newtransaction->getBudgetIndex ( budgetid ) + 1 ); | 311 | newtransaction->budgetbox->setCurrentItem ( newtransaction->getBudgetIndex ( budgetid ) + 1 ); |
312 | if ( lineitemid >= 1 ) | 312 | if ( lineitemid >= 1 ) |
diff --git a/noncore/apps/qashmoney/transferdialog.cpp b/noncore/apps/qashmoney/transferdialog.cpp index 558abec..7a12fbf 100755 --- a/noncore/apps/qashmoney/transferdialog.cpp +++ b/noncore/apps/qashmoney/transferdialog.cpp | |||
@@ -1,112 +1,112 @@ | |||
1 | #include "transferdialog.h" | 1 | #include "transferdialog.h" |
2 | #include "datepicker.h" | 2 | #include "datepicker.h" |
3 | #include "calculator.h" | 3 | #include "calculator.h" |
4 | 4 | ||
5 | 5 | ||
6 | extern Preferences *preferences; | 6 | extern Preferences *preferences; |
7 | extern Account *account; | 7 | extern Account *account; |
8 | 8 | ||
9 | TransferDialog::TransferDialog ( QWidget *parent, int fromaccountid, int toaccountid ) : QDialog ( parent, 0, TRUE ) | 9 | TransferDialog::TransferDialog ( QWidget *parent, int fromaccountid, int toaccountid ) : QDialog ( parent, 0, TRUE ) |
10 | { | 10 | { |
11 | dateedited = FALSE; | 11 | dateedited = FALSE; |
12 | setCaption ( "Transfer" ); | 12 | setCaption ( "Transfer" ); |
13 | 13 | ||
14 | fromaccountlabel = new QLabel ( "From account:", this ); | 14 | fromaccountlabel = new QLabel ( "From account:", this ); |
15 | QFont f = this->font(); | 15 | QFont f = this->font(); |
16 | f.setWeight ( QFont::Bold ); | 16 | f.setWeight ( QFont::Bold ); |
17 | fromaccountlabel->setFont ( f ); | 17 | fromaccountlabel->setFont ( f ); |
18 | fromaccount = new QLabel ( account->getAccountName ( fromaccountid ), this ); | 18 | fromaccount = new QLabel ( account->getAccountName ( fromaccountid ), this ); |
19 | 19 | ||
20 | toaccountlabel = new QLabel ( "To Account:", this ); | 20 | toaccountlabel = new QLabel ( "To Account:", this ); |
21 | toaccountlabel->setFont ( f ); | 21 | toaccountlabel->setFont ( f ); |
22 | toaccount = new QLabel ( account->getAccountName ( toaccountid ), this ); | 22 | toaccount = new QLabel ( account->getAccountName ( toaccountid ), this ); |
23 | 23 | ||
24 | datelabel = new QLabel ( "Date", this ); | 24 | datelabel = new QLabel ( "Date", this ); |
25 | 25 | ||
26 | datebox = new QHBox ( this ); | 26 | datebox = new QHBox ( this ); |
27 | datebox->setSpacing ( 2 ); | 27 | datebox->setSpacing ( 2 ); |
28 | date = new QLineEdit ( datebox ); | 28 | date = new QLineEdit ( datebox ); |
29 | date->setAlignment ( Qt::AlignRight ); | 29 | date->setAlignment ( Qt::AlignRight ); |
30 | date->setDisabled ( TRUE ); | 30 | date->setDisabled ( TRUE ); |
31 | datebutton = new QPushButton ( datebox ); | 31 | datebutton = new QPushButton ( datebox ); |
32 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); | 32 | datebutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/date.png" ) ); |
33 | connect ( datebutton, SIGNAL ( released () ), this, SLOT ( showCalendar () ) ); | 33 | connect ( datebutton, SIGNAL ( released() ), this, SLOT ( showCalendar() ) ); |
34 | 34 | ||
35 | amounttlabel = new QLabel ( "Amount", this ); | 35 | amounttlabel = new QLabel ( "Amount", this ); |
36 | 36 | ||
37 | amountbox = new QHBox ( this ); | 37 | amountbox = new QHBox ( this ); |
38 | amountbox->setSpacing ( 2 ); | 38 | amountbox->setSpacing ( 2 ); |
39 | amount = new QLineEdit ( amountbox ); | 39 | amount = new QLineEdit ( amountbox ); |
40 | amount->setAlignment ( Qt::AlignRight ); | 40 | amount->setAlignment ( Qt::AlignRight ); |
41 | calculatorbutton = new QPushButton( amountbox ); | 41 | calculatorbutton = new QPushButton( amountbox ); |
42 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); | 42 | calculatorbutton->setPixmap ( QPixmap ( "/opt/QtPalmtop/pics/kcalc.png" ) ); |
43 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); | 43 | connect ( calculatorbutton, SIGNAL ( released() ), this, SLOT ( showCalculator() ) ); |
44 | 44 | ||
45 | clearedcheckbox = new QCheckBox ( "Cleared", this ); | 45 | clearedcheckbox = new QCheckBox ( "Cleared", this ); |
46 | 46 | ||
47 | layout = new QVBoxLayout ( this, 4, 2 ); | 47 | layout = new QVBoxLayout ( this, 4, 2 ); |
48 | layout->addWidget ( fromaccountlabel, Qt::AlignLeft ); | 48 | layout->addWidget ( fromaccountlabel, Qt::AlignLeft ); |
49 | layout->addWidget ( fromaccount, Qt::AlignLeft ); | 49 | layout->addWidget ( fromaccount, Qt::AlignLeft ); |
50 | layout->addWidget ( toaccountlabel, Qt::AlignLeft ); | 50 | layout->addWidget ( toaccountlabel, Qt::AlignLeft ); |
51 | layout->addWidget ( toaccount, Qt::AlignLeft ); | 51 | layout->addWidget ( toaccount, Qt::AlignLeft ); |
52 | layout->addSpacing ( 5 ); | 52 | layout->addSpacing ( 5 ); |
53 | layout->addWidget ( datelabel, Qt::AlignLeft ); | 53 | layout->addWidget ( datelabel, Qt::AlignLeft ); |
54 | layout->addWidget ( datebox, Qt::AlignLeft ); | 54 | layout->addWidget ( datebox, Qt::AlignLeft ); |
55 | layout->addWidget ( amounttlabel, Qt::AlignLeft ); | 55 | layout->addWidget ( amounttlabel, Qt::AlignLeft ); |
56 | layout->addWidget ( amountbox, Qt::AlignLeft ); | 56 | layout->addWidget ( amountbox, Qt::AlignLeft ); |
57 | layout->addWidget ( clearedcheckbox, Qt::AlignLeft ); | 57 | layout->addWidget ( clearedcheckbox, Qt::AlignLeft ); |
58 | } | 58 | } |
59 | 59 | ||
60 | bool TransferDialog::getDateEdited () | 60 | bool TransferDialog::getDateEdited () |
61 | { | 61 | { |
62 | return dateedited; | 62 | return dateedited; |
63 | } | 63 | } |
64 | 64 | ||
65 | void TransferDialog::showCalendar () | 65 | void TransferDialog::showCalendar () |
66 | { | 66 | { |
67 | QDate newDate = QDate::currentDate (); | 67 | QDate newDate = QDate::currentDate (); |
68 | DatePicker *dp = new DatePicker ( newDate ); | 68 | DatePicker *dp = new DatePicker ( newDate ); |
69 | if ( dp->exec () == QDialog::Accepted ) | 69 | if ( dp->exec () == QDialog::Accepted ) |
70 | { | 70 | { |
71 | // Set date integers | 71 | // Set date integers |
72 | year = dp->getYear(); | 72 | year = dp->getYear(); |
73 | month = dp->getMonth(); | 73 | month = dp->getMonth(); |
74 | day = dp->getDay(); | 74 | day = dp->getDay(); |
75 | 75 | ||
76 | // Set dateedited to TRUE | 76 | // Set dateedited to TRUE |
77 | // This tells the accountdisplay object that the user edited an account | 77 | // This tells the accountdisplay object that the user edited an account |
78 | // and did change the date | 78 | // and did change the date |
79 | dateedited = TRUE; | 79 | dateedited = TRUE; |
80 | 80 | ||
81 | // Display date with our selected format | 81 | // Display date with our selected format |
82 | date->setText ( preferences->getDate ( year, month, day ) ); | 82 | date->setText ( preferences->getDate ( year, month, day ) ); |
83 | } | 83 | } |
84 | } | 84 | } |
85 | 85 | ||
86 | int TransferDialog::getDay () | 86 | int TransferDialog::getDay () |
87 | { | 87 | { |
88 | return day; | 88 | return day; |
89 | } | 89 | } |
90 | 90 | ||
91 | int TransferDialog::getMonth () | 91 | int TransferDialog::getMonth () |
92 | { | 92 | { |
93 | return month; | 93 | return month; |
94 | } | 94 | } |
95 | 95 | ||
96 | int TransferDialog::getYear () | 96 | int TransferDialog::getYear () |
97 | { | 97 | { |
98 | return year; | 98 | return year; |
99 | } | 99 | } |
100 | 100 | ||
101 | void TransferDialog::showCalculator () | 101 | void TransferDialog::showCalculator () |
102 | { | 102 | { |
103 | Calculator *calculator = new Calculator ( this ); | 103 | Calculator *calculator = new Calculator ( this ); |
104 | if ( calculator->exec () == QDialog::Accepted ) | 104 | if ( calculator->exec () == QDialog::Accepted ) |
105 | amount->setText ( calculator->display->text() ); | 105 | amount->setText ( calculator->display->text() ); |
106 | } | 106 | } |
107 | 107 | ||
108 | 108 | ||
109 | 109 | ||
110 | 110 | ||
111 | 111 | ||
112 | 112 | ||
diff --git a/noncore/apps/tableviewer/tableviewer.cpp b/noncore/apps/tableviewer/tableviewer.cpp index f35dfcd..4c6d809 100644 --- a/noncore/apps/tableviewer/tableviewer.cpp +++ b/noncore/apps/tableviewer/tableviewer.cpp | |||
@@ -62,200 +62,200 @@ TableViewerWindow::TableViewerWindow(QWidget *parent, const char *name, WFlags f | |||
62 | 62 | ||
63 | dirty = FALSE; | 63 | dirty = FALSE; |
64 | ts.current_column = 0; | 64 | ts.current_column = 0; |
65 | ts.kRep = ds->getKeys(); | 65 | ts.kRep = ds->getKeys(); |
66 | 66 | ||
67 | /* build menus */ | 67 | /* build menus */ |
68 | menu = new QMenuBar(this, 0); | 68 | menu = new QMenuBar(this, 0); |
69 | 69 | ||
70 | QPopupMenu *file_menu = new QPopupMenu; | 70 | QPopupMenu *file_menu = new QPopupMenu; |
71 | file_menu->insertItem("New", this, SLOT(newDocument())); | 71 | file_menu->insertItem("New", this, SLOT(newDocument())); |
72 | 72 | ||
73 | file_menu->insertItem("Open", this, SLOT(selectDocument())); | 73 | file_menu->insertItem("Open", this, SLOT(selectDocument())); |
74 | file_menu->insertSeparator(); | 74 | file_menu->insertSeparator(); |
75 | file_menu->insertItem("Properties"); | 75 | file_menu->insertItem("Properties"); |
76 | 76 | ||
77 | /* later will want to set this up to clean up first via this, SLOT(quit) */ | 77 | /* later will want to set this up to clean up first via this, SLOT(quit) */ |
78 | menu->insertItem("Document", file_menu); | 78 | menu->insertItem("Document", file_menu); |
79 | 79 | ||
80 | QPopupMenu *edit_menu = new QPopupMenu; | 80 | QPopupMenu *edit_menu = new QPopupMenu; |
81 | edit_menu->insertItem("Edit Item", this, SLOT(editItemSlot())); | 81 | edit_menu->insertItem("Edit Item", this, SLOT(editItemSlot())); |
82 | edit_menu->insertItem("Edit Keys", this, SLOT(editKeysSlot())); | 82 | edit_menu->insertItem("Edit Keys", this, SLOT(editKeysSlot())); |
83 | edit_menu->insertItem("Edit filters", this, SLOT(filterViewSlot())); | 83 | edit_menu->insertItem("Edit filters", this, SLOT(filterViewSlot())); |
84 | menu->insertItem("Edit", edit_menu); | 84 | menu->insertItem("Edit", edit_menu); |
85 | 85 | ||
86 | QPopupMenu *view_menu = new QPopupMenu; | 86 | QPopupMenu *view_menu = new QPopupMenu; |
87 | view_menu->insertItem("Browse View", this, SLOT(browseViewSlot())); | 87 | view_menu->insertItem("Browse View", this, SLOT(browseViewSlot())); |
88 | view_menu->insertItem("List View", this, SLOT(listViewSlot())); | 88 | view_menu->insertItem("List View", this, SLOT(listViewSlot())); |
89 | menu->insertItem("View", view_menu); | 89 | menu->insertItem("View", view_menu); |
90 | 90 | ||
91 | QVBoxLayout *main_layout = new QVBoxLayout; | 91 | QVBoxLayout *main_layout = new QVBoxLayout; |
92 | 92 | ||
93 | /* Build tool bar */ | 93 | /* Build tool bar */ |
94 | navigation = new QToolBar(this, "navigation"); | 94 | navigation = new QToolBar(this, "navigation"); |
95 | QToolButton *newItemButton = new QToolButton( | 95 | QToolButton *newItemButton = new QToolButton( |
96 | QIconSet(Resource::loadPixmap("new")), "New Item", QString::null, | 96 | QIconSet(Resource::loadPixmap("new")), "New Item", QString::null, |
97 | this, SLOT(newItemSlot()), navigation, "New Item"); | 97 | this, SLOT(newItemSlot()), navigation, "New Item"); |
98 | QToolButton *editItemButton = new QToolButton( | 98 | QToolButton *editItemButton = new QToolButton( |
99 | QIconSet(Resource::loadPixmap("edit")), "Edit Item", QString::null, | 99 | QIconSet(Resource::loadPixmap("edit")), "Edit Item", QString::null, |
100 | this, SLOT(editItemSlot()), navigation, "Edit Item"); | 100 | this, SLOT(editItemSlot()), navigation, "Edit Item"); |
101 | QToolButton *deleteItemButton = new QToolButton( | 101 | QToolButton *deleteItemButton = new QToolButton( |
102 | QIconSet(Resource::loadPixmap("trash")), "Delete Item", | 102 | QIconSet(Resource::loadPixmap("trash")), "Delete Item", |
103 | QString::null, this, | 103 | QString::null, this, |
104 | SLOT(deleteItemSlot()), navigation, "Delete Item"); | 104 | SLOT(deleteItemSlot()), navigation, "Delete Item"); |
105 | 105 | ||
106 | navigation->addSeparator(); | 106 | navigation->addSeparator(); |
107 | 107 | ||
108 | QToolButton *firstItemButton = new QToolButton( | 108 | QToolButton *firstItemButton = new QToolButton( |
109 | QIconSet(Resource::loadPixmap("fastback")), "First Item", | 109 | QIconSet(Resource::loadPixmap("fastback")), "First Item", |
110 | QString::null, this, | 110 | QString::null, this, |
111 | SLOT(firstItem()), navigation, "First Item"); | 111 | SLOT(firstItem()), navigation, "First Item"); |
112 | QToolButton *previousItemButton = new QToolButton( | 112 | QToolButton *previousItemButton = new QToolButton( |
113 | QIconSet(Resource::loadPixmap("back")), "Previous Item", | 113 | QIconSet(Resource::loadPixmap("back")), "Previous Item", |
114 | QString::null, this, | 114 | QString::null, this, |
115 | SLOT(previousItem()), navigation, "Previous Item"); | 115 | SLOT(previousItem()), navigation, "Previous Item"); |
116 | QToolButton *nextItemButton = new QToolButton( | 116 | QToolButton *nextItemButton = new QToolButton( |
117 | QIconSet(Resource::loadPixmap("forward")), "Next Item", | 117 | QIconSet(Resource::loadPixmap("forward")), "Next Item", |
118 | QString::null, this, | 118 | QString::null, this, |
119 | SLOT(nextItem()), navigation, "Next Item"); | 119 | SLOT(nextItem()), navigation, "Next Item"); |
120 | QToolButton *lastItemButton = new QToolButton( | 120 | QToolButton *lastItemButton = new QToolButton( |
121 | QIconSet(Resource::loadPixmap("fastforward")), "Last Item", | 121 | QIconSet(Resource::loadPixmap("fastforward")), "Last Item", |
122 | QString::null, this, | 122 | QString::null, this, |
123 | SLOT(lastItem()), navigation, "Last Item"); | 123 | SLOT(lastItem()), navigation, "Last Item"); |
124 | 124 | ||
125 | navigation->addSeparator(); | 125 | navigation->addSeparator(); |
126 | QToolButton *browseButton = new QToolButton( | 126 | QToolButton *browseButton = new QToolButton( |
127 | QIconSet(Resource::loadPixmap("day")), "View Single Item", | 127 | QIconSet(Resource::loadPixmap("day")), "View Single Item", |
128 | QString::null, this, | 128 | QString::null, this, |
129 | SLOT(browseViewSlot()), navigation, "View Single Item"); | 129 | SLOT(browseViewSlot()), navigation, "View Single Item"); |
130 | QToolButton *listButton = new QToolButton( | 130 | QToolButton *listButton = new QToolButton( |
131 | QIconSet(Resource::loadPixmap("month")), "View Multiple Items", | 131 | QIconSet(Resource::loadPixmap("month")), "View Multiple Items", |
132 | QString::null, this, | 132 | QString::null, this, |
133 | SLOT(listViewSlot()), navigation, "View Multiple Items"); | 133 | SLOT(listViewSlot()), navigation, "View Multiple Items"); |
134 | 134 | ||
135 | setToolBarsMovable(FALSE); | 135 | setToolBarsMovable(FALSE); |
136 | setToolBarsMovable(FALSE); | 136 | setToolBarsMovable(FALSE); |
137 | setToolBarsMovable(FALSE); | 137 | setToolBarsMovable(FALSE); |
138 | 138 | ||
139 | /* Build widgets */ | 139 | /* Build widgets */ |
140 | browseView = new TVBrowseView(&ts, this, 0); | 140 | browseView = new TVBrowseView(&ts, this, 0); |
141 | listView = new TVListView(&ts, this, 0); | 141 | listView = new TVListView(&ts, this, 0); |
142 | filterView = new TVFilterView(&ts, this, 0); | 142 | filterView = new TVFilterView(&ts, this, 0); |
143 | fileSelector = new FileSelector("text/csv;text/x-xml-tableviewer", | 143 | fileSelector = new FileSelector("text/csv;text/x-xml-tableviewer", |
144 | this, "fileselector"); | 144 | this, "fileselector"); |
145 | fileSelector->setNewVisible(FALSE); | 145 | fileSelector->setNewVisible(FALSE); |
146 | fileSelector->setCloseVisible(FALSE); | 146 | fileSelector->setCloseVisible(FALSE); |
147 | 147 | ||
148 | cw = new QWidgetStack(this, 0); | 148 | cw = new QWidgetStack(this, 0); |
149 | cw->addWidget(listView, ListState); | 149 | cw->addWidget(listView, ListState); |
150 | cw->addWidget(browseView, BrowseState); | 150 | cw->addWidget(browseView, BrowseState); |
151 | cw->addWidget(filterView, FilterState); | 151 | cw->addWidget(filterView, FilterState); |
152 | cw->addWidget(fileSelector, FileState); | 152 | cw->addWidget(fileSelector, FileState); |
153 | 153 | ||
154 | current_view = FileState; | 154 | current_view = FileState; |
155 | cw->raiseWidget(current_view); | 155 | cw->raiseWidget(current_view); |
156 | fileSelector->reread(); | 156 | fileSelector->reread(); |
157 | 157 | ||
158 | connect(browseView, SIGNAL(searchOnKey(int, TVVariant)), | 158 | connect(browseView, SIGNAL(searchOnKey(int,TVVariant)), |
159 | this, SLOT(searchOnKey(int, TVVariant))); | 159 | this, SLOT(searchOnKey(int,TVVariant))); |
160 | connect(browseView, SIGNAL(sortChanged(int)), | 160 | connect(browseView, SIGNAL(sortChanged(int)), |
161 | this, SLOT(setPrimaryKey(int))); | 161 | this, SLOT(setPrimaryKey(int))); |
162 | 162 | ||
163 | connect(fileSelector, SIGNAL(closeMe()), this, SLOT(browseViewSlot())); | 163 | connect(fileSelector, SIGNAL(closeMe()), this, SLOT(browseViewSlot())); |
164 | connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), | 164 | connect(fileSelector, SIGNAL(fileSelected(const DocLnk&)), |
165 | this, SLOT(openDocument(const DocLnk &))); | 165 | this, SLOT(openDocument(const DocLnk&))); |
166 | 166 | ||
167 | main_layout->addWidget(menu); | 167 | main_layout->addWidget(menu); |
168 | main_layout->addWidget(cw); | 168 | main_layout->addWidget(cw); |
169 | 169 | ||
170 | setCentralWidget(cw); | 170 | setCentralWidget(cw); |
171 | 171 | ||
172 | } | 172 | } |
173 | 173 | ||
174 | /*! | 174 | /*! |
175 | Destroys the TableViewerWindow | 175 | Destroys the TableViewerWindow |
176 | */ | 176 | */ |
177 | TableViewerWindow::~TableViewerWindow() | 177 | TableViewerWindow::~TableViewerWindow() |
178 | { | 178 | { |
179 | if(dirty) | 179 | if(dirty) |
180 | saveDocument(); | 180 | saveDocument(); |
181 | } | 181 | } |
182 | 182 | ||
183 | /*! | 183 | /*! |
184 | Opens a file dialog and loads the file specified by the dialog | 184 | Opens a file dialog and loads the file specified by the dialog |
185 | */ | 185 | */ |
186 | void TableViewerWindow::selectDocument() | 186 | void TableViewerWindow::selectDocument() |
187 | { | 187 | { |
188 | if(dirty) | 188 | if(dirty) |
189 | saveDocument(); | 189 | saveDocument(); |
190 | current_view = FileState; | 190 | current_view = FileState; |
191 | cw->raiseWidget(current_view); | 191 | cw->raiseWidget(current_view); |
192 | fileSelector->reread(); | 192 | fileSelector->reread(); |
193 | } | 193 | } |
194 | 194 | ||
195 | void TableViewerWindow::saveDocument() | 195 | void TableViewerWindow::saveDocument() |
196 | { | 196 | { |
197 | if(!dirty) | 197 | if(!dirty) |
198 | return; | 198 | return; |
199 | 199 | ||
200 | FileManager fm; | 200 | FileManager fm; |
201 | QIODevice *dev = fm.saveFile(doc); | 201 | QIODevice *dev = fm.saveFile(doc); |
202 | 202 | ||
203 | if(!ds->saveSource(dev, doc.type())){ | 203 | if(!ds->saveSource(dev, doc.type())){ |
204 | qWarning("Save unsuccessful"); | 204 | qWarning("Save unsuccessful"); |
205 | return; | 205 | return; |
206 | } | 206 | } |
207 | dev->close(); | 207 | dev->close(); |
208 | dirty = FALSE; | 208 | dirty = FALSE; |
209 | } | 209 | } |
210 | 210 | ||
211 | void TableViewerWindow::newDocument() | 211 | void TableViewerWindow::newDocument() |
212 | { | 212 | { |
213 | DocLnk nf; | 213 | DocLnk nf; |
214 | nf.setType("text/x-xml-tableviewer"); | 214 | nf.setType("text/x-xml-tableviewer"); |
215 | nf.setName("table"); | 215 | nf.setName("table"); |
216 | 216 | ||
217 | delete ds; | 217 | delete ds; |
218 | ds = new DBStore(); | 218 | ds = new DBStore(); |
219 | 219 | ||
220 | ts.current_column = 0; | 220 | ts.current_column = 0; |
221 | ts.kRep = ds->getKeys(); | 221 | ts.kRep = ds->getKeys(); |
222 | browseView->reset(); | 222 | browseView->reset(); |
223 | listView->reset(); | 223 | listView->reset(); |
224 | filterView->reset(); | 224 | filterView->reset(); |
225 | 225 | ||
226 | doc = nf; | 226 | doc = nf; |
227 | dirty = FALSE; | 227 | dirty = FALSE; |
228 | 228 | ||
229 | current_view = BrowseState; | 229 | current_view = BrowseState; |
230 | cw->raiseWidget(current_view); | 230 | cw->raiseWidget(current_view); |
231 | 231 | ||
232 | /* now set up for editing the keys */ | 232 | /* now set up for editing the keys */ |
233 | ts.kRep->addKey("key", TVVariant::String); | 233 | ts.kRep->addKey("key", TVVariant::String); |
234 | editKeysSlot(); | 234 | editKeysSlot(); |
235 | } | 235 | } |
236 | 236 | ||
237 | void TableViewerWindow::setDocument(const QString &f) | 237 | void TableViewerWindow::setDocument(const QString &f) |
238 | { | 238 | { |
239 | openDocument(DocLnk(f, TRUE)); | 239 | openDocument(DocLnk(f, TRUE)); |
240 | } | 240 | } |
241 | 241 | ||
242 | void TableViewerWindow::openDocument(const DocLnk &f) | 242 | void TableViewerWindow::openDocument(const DocLnk &f) |
243 | { | 243 | { |
244 | 244 | ||
245 | if (!f.isValid()) | 245 | if (!f.isValid()) |
246 | return; | 246 | return; |
247 | 247 | ||
248 | FileManager fm; | 248 | FileManager fm; |
249 | QIODevice *dev = fm.openFile(f); | 249 | QIODevice *dev = fm.openFile(f); |
250 | doc = f; | 250 | doc = f; |
251 | 251 | ||
252 | if(ds->openSource(dev, doc.type())) { | 252 | if(ds->openSource(dev, doc.type())) { |
253 | DataElem *d; | 253 | DataElem *d; |
254 | 254 | ||
255 | browseView->reset(); | 255 | browseView->reset(); |
256 | listView->reset(); | 256 | listView->reset(); |
257 | filterView->reset(); | 257 | filterView->reset(); |
258 | 258 | ||
259 | current_view = BrowseState; | 259 | current_view = BrowseState; |
260 | cw->raiseWidget(current_view); | 260 | cw->raiseWidget(current_view); |
261 | 261 | ||
diff --git a/noncore/apps/tableviewer/ui/commonwidgets.cpp b/noncore/apps/tableviewer/ui/commonwidgets.cpp index 4c47951..e82018c 100644 --- a/noncore/apps/tableviewer/ui/commonwidgets.cpp +++ b/noncore/apps/tableviewer/ui/commonwidgets.cpp | |||
@@ -1,136 +1,136 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include <qlineedit.h> | 21 | #include <qlineedit.h> |
22 | #include <qlayout.h> | 22 | #include <qlayout.h> |
23 | #include <qlabel.h> | 23 | #include <qlabel.h> |
24 | #include <qcombobox.h> | 24 | #include <qcombobox.h> |
25 | 25 | ||
26 | #include <qpe/datebookmonth.h> | 26 | #include <qpe/datebookmonth.h> |
27 | #include <qpopupmenu.h> | 27 | #include <qpopupmenu.h> |
28 | #include <qspinbox.h> | 28 | #include <qspinbox.h> |
29 | #include "commonwidgets.h" | 29 | #include "commonwidgets.h" |
30 | 30 | ||
31 | DateEdit::DateEdit( QWidget *parent, const char *name, WFlags f ) | 31 | DateEdit::DateEdit( QWidget *parent, const char *name, WFlags f ) |
32 | : QToolButton(parent, name) | 32 | : QToolButton(parent, name) |
33 | { | 33 | { |
34 | QPopupMenu *m1 = new QPopupMenu(this); | 34 | QPopupMenu *m1 = new QPopupMenu(this); |
35 | dateSelector = new DateBookMonth(m1, 0, TRUE); | 35 | dateSelector = new DateBookMonth(m1, 0, TRUE); |
36 | m1->insertItem(dateSelector); | 36 | m1->insertItem(dateSelector); |
37 | setPopup(m1); | 37 | setPopup(m1); |
38 | setPopupDelay(0); | 38 | setPopupDelay(0); |
39 | 39 | ||
40 | connect(dateSelector, SIGNAL(dateClicked(int, int, int)), | 40 | connect(dateSelector, SIGNAL(dateClicked(int,int,int)), |
41 | this, SLOT(subValueChanged())); | 41 | this, SLOT(subValueChanged())); |
42 | 42 | ||
43 | setText(dateSelector->selectedDate().toString()); | 43 | setText(dateSelector->selectedDate().toString()); |
44 | } | 44 | } |
45 | 45 | ||
46 | 46 | ||
47 | DateEdit::~DateEdit() {} | 47 | DateEdit::~DateEdit() {} |
48 | 48 | ||
49 | QDate DateEdit::date() const | 49 | QDate DateEdit::date() const |
50 | { | 50 | { |
51 | return dateSelector->selectedDate(); | 51 | return dateSelector->selectedDate(); |
52 | } | 52 | } |
53 | 53 | ||
54 | void DateEdit::setDate(QDate d) | 54 | void DateEdit::setDate(QDate d) |
55 | { | 55 | { |
56 | dateSelector->setDate(d.year(), d.month(), d.day()); | 56 | dateSelector->setDate(d.year(), d.month(), d.day()); |
57 | setText(d.toString()); | 57 | setText(d.toString()); |
58 | } | 58 | } |
59 | 59 | ||
60 | QSizePolicy DateEdit::sizePolicy() const | 60 | QSizePolicy DateEdit::sizePolicy() const |
61 | { | 61 | { |
62 | QSizePolicy sp; | 62 | QSizePolicy sp; |
63 | sp.setHorData(QToolButton::sizePolicy().horData()); | 63 | sp.setHorData(QToolButton::sizePolicy().horData()); |
64 | sp.setVerData(QSizePolicy::Fixed); | 64 | sp.setVerData(QSizePolicy::Fixed); |
65 | 65 | ||
66 | return sp; | 66 | return sp; |
67 | } | 67 | } |
68 | 68 | ||
69 | void DateEdit::clear() | 69 | void DateEdit::clear() |
70 | { | 70 | { |
71 | QDate today = QDate::currentDate(); | 71 | QDate today = QDate::currentDate(); |
72 | 72 | ||
73 | dateSelector->setDate(today.year(), today.month(), today.day()); | 73 | dateSelector->setDate(today.year(), today.month(), today.day()); |
74 | setText(today.toString()); | 74 | setText(today.toString()); |
75 | } | 75 | } |
76 | 76 | ||
77 | void DateEdit::subValueChanged() | 77 | void DateEdit::subValueChanged() |
78 | { | 78 | { |
79 | QDate current = dateSelector->selectedDate(); | 79 | QDate current = dateSelector->selectedDate(); |
80 | 80 | ||
81 | setText(current.toString()); | 81 | setText(current.toString()); |
82 | emit valueChanged(current); | 82 | emit valueChanged(current); |
83 | } | 83 | } |
84 | 84 | ||
85 | TimeEdit::TimeEdit( QWidget *parent, const char *name, WFlags f ) | 85 | TimeEdit::TimeEdit( QWidget *parent, const char *name, WFlags f ) |
86 | : QWidget(parent, name, f) | 86 | : QWidget(parent, name, f) |
87 | { | 87 | { |
88 | QHBoxLayout *layout = new QHBoxLayout(this, 0); | 88 | QHBoxLayout *layout = new QHBoxLayout(this, 0); |
89 | 89 | ||
90 | layout->addWidget(hourKey = new QSpinBox(1, 12, 1, this)); | 90 | layout->addWidget(hourKey = new QSpinBox(1, 12, 1, this)); |
91 | hourKey->setWrapping(true); | 91 | hourKey->setWrapping(true); |
92 | hourKey->setMinimumWidth(30); | 92 | hourKey->setMinimumWidth(30); |
93 | hourKey->setMaximumWidth(35); | 93 | hourKey->setMaximumWidth(35); |
94 | 94 | ||
95 | layout->addWidget(new QLabel(" : ", this)); | 95 | layout->addWidget(new QLabel(" : ", this)); |
96 | layout->addWidget(minuteKey = new QSpinBox(0, 59, 1, this)); | 96 | layout->addWidget(minuteKey = new QSpinBox(0, 59, 1, this)); |
97 | minuteKey->setWrapping(true); | 97 | minuteKey->setWrapping(true); |
98 | minuteKey->setMinimumWidth(30); | 98 | minuteKey->setMinimumWidth(30); |
99 | minuteKey->setMaximumWidth(35); | 99 | minuteKey->setMaximumWidth(35); |
100 | 100 | ||
101 | layout->addWidget(new QLabel(" : ", this)); | 101 | layout->addWidget(new QLabel(" : ", this)); |
102 | layout->addWidget(secondKey = new QSpinBox(0, 59, 1, this, 0)); | 102 | layout->addWidget(secondKey = new QSpinBox(0, 59, 1, this, 0)); |
103 | secondKey->setWrapping(true); | 103 | secondKey->setWrapping(true); |
104 | secondKey->setMinimumWidth(30); | 104 | secondKey->setMinimumWidth(30); |
105 | secondKey->setMaximumWidth(35); | 105 | secondKey->setMaximumWidth(35); |
106 | 106 | ||
107 | layout->addWidget(ampm = new QComboBox(this)); | 107 | layout->addWidget(ampm = new QComboBox(this)); |
108 | ampm->insertItem("AM"); | 108 | ampm->insertItem("AM"); |
109 | ampm->insertItem("PM"); | 109 | ampm->insertItem("PM"); |
110 | 110 | ||
111 | layout->addStretch(-1); | 111 | layout->addStretch(-1); |
112 | 112 | ||
113 | clear(); | 113 | clear(); |
114 | 114 | ||
115 | connect(secondKey, SIGNAL(valueChanged(const QString&)), | 115 | connect(secondKey, SIGNAL(valueChanged(const QString&)), |
116 | this, SLOT(subValueChanged())); | 116 | this, SLOT(subValueChanged())); |
117 | connect(minuteKey, SIGNAL(valueChanged(const QString&)), | 117 | connect(minuteKey, SIGNAL(valueChanged(const QString&)), |
118 | this, SLOT(subValueChanged())); | 118 | this, SLOT(subValueChanged())); |
119 | connect(hourKey, SIGNAL(valueChanged(const QString&)), | 119 | connect(hourKey, SIGNAL(valueChanged(const QString&)), |
120 | this, SLOT(subValueChanged())); | 120 | this, SLOT(subValueChanged())); |
121 | connect(ampm, SIGNAL(activated(int)), | 121 | connect(ampm, SIGNAL(activated(int)), |
122 | this, SLOT(subValueChanged())); | 122 | this, SLOT(subValueChanged())); |
123 | } | 123 | } |
124 | 124 | ||
125 | 125 | ||
126 | TimeEdit::~TimeEdit() {} | 126 | TimeEdit::~TimeEdit() {} |
127 | 127 | ||
128 | QTime TimeEdit::time() const | 128 | QTime TimeEdit::time() const |
129 | { | 129 | { |
130 | int s,m,h; | 130 | int s,m,h; |
131 | 131 | ||
132 | s = secondKey->text().toInt(); | 132 | s = secondKey->text().toInt(); |
133 | m = minuteKey->text().toInt(); | 133 | m = minuteKey->text().toInt(); |
134 | h = hourKey->text().toInt(); | 134 | h = hourKey->text().toInt(); |
135 | 135 | ||
136 | if(ampm->currentItem() == 1) { | 136 | if(ampm->currentItem() == 1) { |
diff --git a/noncore/apps/tableviewer/ui/tvbrowseview.cpp b/noncore/apps/tableviewer/ui/tvbrowseview.cpp index 22bac55..8a65ed1 100644 --- a/noncore/apps/tableviewer/ui/tvbrowseview.cpp +++ b/noncore/apps/tableviewer/ui/tvbrowseview.cpp | |||
@@ -1,123 +1,123 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #include "tvbrowseview.h" | 20 | #include "tvbrowseview.h" |
21 | #include "browsekeyentry.h" | 21 | #include "browsekeyentry.h" |
22 | #include <qtoolbutton.h> | 22 | #include <qtoolbutton.h> |
23 | #include <qtextview.h> | 23 | #include <qtextview.h> |
24 | #include <qtextbrowser.h> | 24 | #include <qtextbrowser.h> |
25 | #include <qlayout.h> | 25 | #include <qlayout.h> |
26 | #include "../xmlencodeattr.h" | 26 | #include "../xmlencodeattr.h" |
27 | 27 | ||
28 | /*! | 28 | /*! |
29 | \class TVBrowseView | 29 | \class TVBrowseView |
30 | \brief The widget describing how to draw the browse view user interface | 30 | \brief The widget describing how to draw the browse view user interface |
31 | 31 | ||
32 | This widget allows for the user to browse through the table, one element | 32 | This widget allows for the user to browse through the table, one element |
33 | at a time, or search on a single key. Its main goal is to show a | 33 | at a time, or search on a single key. Its main goal is to show a |
34 | single element in a readable format and make it easy for the user to | 34 | single element in a readable format and make it easy for the user to |
35 | rapidly find specific elements in the table. | 35 | rapidly find specific elements in the table. |
36 | */ | 36 | */ |
37 | 37 | ||
38 | /*! | 38 | /*! |
39 | Constructs a new TVBrowseView widget | 39 | Constructs a new TVBrowseView widget |
40 | */ | 40 | */ |
41 | TVBrowseView::TVBrowseView(TableState *t, QWidget* parent, const char *name, | 41 | TVBrowseView::TVBrowseView(TableState *t, QWidget* parent, const char *name, |
42 | WFlags fl ) | 42 | WFlags fl ) |
43 | { | 43 | { |
44 | if (!name) | 44 | if (!name) |
45 | setName("BrowseView"); | 45 | setName("BrowseView"); |
46 | 46 | ||
47 | // setSizePolicy(QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding, 0, 0, sizePolicy().hasHeightForWidth() ) ); | 47 | // setSizePolicy(QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding, 0, 0, sizePolicy().hasHeightForWidth() ) ); |
48 | QVBoxLayout *vlayout = new QVBoxLayout(this); | 48 | QVBoxLayout *vlayout = new QVBoxLayout(this); |
49 | textViewDisplay = new QTextBrowser(this, "textViewDisplay"); | 49 | textViewDisplay = new QTextBrowser(this, "textViewDisplay"); |
50 | vlayout->addWidget( textViewDisplay ); | 50 | vlayout->addWidget( textViewDisplay ); |
51 | 51 | ||
52 | keyEntry = new TVBrowseKeyEntry(this, "keyEntry"); | 52 | keyEntry = new TVBrowseKeyEntry(this, "keyEntry"); |
53 | vlayout->addWidget( keyEntry ); | 53 | vlayout->addWidget( keyEntry ); |
54 | 54 | ||
55 | /* connect the signals down */ | 55 | /* connect the signals down */ |
56 | 56 | ||
57 | connect(keyEntry, SIGNAL(searchOnKey(int, TVVariant)), | 57 | connect(keyEntry, SIGNAL(searchOnKey(int,TVVariant)), |
58 | this, SIGNAL(searchOnKey(int, TVVariant))); | 58 | this, SIGNAL(searchOnKey(int,TVVariant))); |
59 | connect(keyEntry, SIGNAL(sortChanged(int)), | 59 | connect(keyEntry, SIGNAL(sortChanged(int)), |
60 | this, SIGNAL(sortChanged(int))); | 60 | this, SIGNAL(sortChanged(int))); |
61 | 61 | ||
62 | ts = t; | 62 | ts = t; |
63 | keyEntry->setTableState(t); | 63 | keyEntry->setTableState(t); |
64 | } | 64 | } |
65 | 65 | ||
66 | /*! | 66 | /*! |
67 | Destroys the TVBrowseView widget | 67 | Destroys the TVBrowseView widget |
68 | */ | 68 | */ |
69 | TVBrowseView::~TVBrowseView() | 69 | TVBrowseView::~TVBrowseView() |
70 | { | 70 | { |
71 | } | 71 | } |
72 | 72 | ||
73 | void TVBrowseView::rebuildData() | 73 | void TVBrowseView::rebuildData() |
74 | { | 74 | { |
75 | if(!ts) | 75 | if(!ts) |
76 | return; | 76 | return; |
77 | if(!ts->current_elem) { | 77 | if(!ts->current_elem) { |
78 | /* also disable buttons */ | 78 | /* also disable buttons */ |
79 | textViewDisplay->setText(""); | 79 | textViewDisplay->setText(""); |
80 | return; | 80 | return; |
81 | } | 81 | } |
82 | 82 | ||
83 | setDisplayText(ts->current_elem); | 83 | setDisplayText(ts->current_elem); |
84 | } | 84 | } |
85 | 85 | ||
86 | /* Reset to initial state */ | 86 | /* Reset to initial state */ |
87 | void TVBrowseView::reset() | 87 | void TVBrowseView::reset() |
88 | { | 88 | { |
89 | textViewDisplay->setText(""); | 89 | textViewDisplay->setText(""); |
90 | keyEntry->reset(); | 90 | keyEntry->reset(); |
91 | } | 91 | } |
92 | 92 | ||
93 | /*! | 93 | /*! |
94 | sets the data element to be displayed to element | 94 | sets the data element to be displayed to element |
95 | */ | 95 | */ |
96 | void TVBrowseView::setDisplayText(const DataElem *element) | 96 | void TVBrowseView::setDisplayText(const DataElem *element) |
97 | { | 97 | { |
98 | QString rep = ""; | 98 | QString rep = ""; |
99 | 99 | ||
100 | KeyListIterator it(*ts->kRep); | 100 | KeyListIterator it(*ts->kRep); |
101 | 101 | ||
102 | while (it.current()) { | 102 | while (it.current()) { |
103 | if (element->hasValidValue(it.currentKey())) { | 103 | if (element->hasValidValue(it.currentKey())) { |
104 | if(it.currentKey() == ts->current_column) { | 104 | if(it.currentKey() == ts->current_column) { |
105 | rep += "<A name=\"ckey\"></A><B><FONT COLOR=#FF0000>" | 105 | rep += "<A name=\"ckey\"></A><B><FONT COLOR=#FF0000>" |
106 | + encodeAttr(it.current()->name()) | 106 | + encodeAttr(it.current()->name()) |
107 | + ":</FONT></B> "; | 107 | + ":</FONT></B> "; |
108 | } else { | 108 | } else { |
109 | rep += "<B>" + encodeAttr(it.current()->name()) + ":</B> "; | 109 | rep += "<B>" + encodeAttr(it.current()->name()) + ":</B> "; |
110 | } | 110 | } |
111 | rep += encodeAttr(element->toQString(it.currentKey())) + "<BR>"; | 111 | rep += encodeAttr(element->toQString(it.currentKey())) + "<BR>"; |
112 | } | 112 | } |
113 | ++it; | 113 | ++it; |
114 | } | 114 | } |
115 | 115 | ||
116 | textViewDisplay->setText(rep); | 116 | textViewDisplay->setText(rep); |
117 | textViewDisplay->scrollToAnchor("ckey"); | 117 | textViewDisplay->scrollToAnchor("ckey"); |
118 | } | 118 | } |
119 | 119 | ||
120 | void TVBrowseView::rebuildKeys() | 120 | void TVBrowseView::rebuildKeys() |
121 | { | 121 | { |
122 | keyEntry->rebuildKeys(); | 122 | keyEntry->rebuildKeys(); |
123 | } | 123 | } |
diff --git a/noncore/apps/tableviewer/ui/tvfilterview.cpp b/noncore/apps/tableviewer/ui/tvfilterview.cpp index b03e846..22f1fb7 100644 --- a/noncore/apps/tableviewer/ui/tvfilterview.cpp +++ b/noncore/apps/tableviewer/ui/tvfilterview.cpp | |||
@@ -1,188 +1,188 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #include "tvfilterview.h" | 20 | #include "tvfilterview.h" |
21 | #include <qtoolbutton.h> | 21 | #include <qtoolbutton.h> |
22 | #include <qcombobox.h> | 22 | #include <qcombobox.h> |
23 | #include <qlistview.h> | 23 | #include <qlistview.h> |
24 | #include <qlayout.h> | 24 | #include <qlayout.h> |
25 | #include <qheader.h> | 25 | #include <qheader.h> |
26 | #include <qpushbutton.h> | 26 | #include <qpushbutton.h> |
27 | #include <qlabel.h> | 27 | #include <qlabel.h> |
28 | 28 | ||
29 | #include <qpe/qpeapplication.h> | 29 | #include <qpe/qpeapplication.h> |
30 | 30 | ||
31 | TVFilterView::TVFilterView(TableState *t, QWidget* parent, | 31 | TVFilterView::TVFilterView(TableState *t, QWidget* parent, |
32 | const char *name, WFlags fl ) : QDialog(parent, name, TRUE, fl) | 32 | const char *name, WFlags fl ) : QDialog(parent, name, TRUE, fl) |
33 | { | 33 | { |
34 | if ( !name ) | 34 | if ( !name ) |
35 | setName( "Filter View" ); | 35 | setName( "Filter View" ); |
36 | 36 | ||
37 | QVBoxLayout *vlayout = new QVBoxLayout(this); | 37 | QVBoxLayout *vlayout = new QVBoxLayout(this); |
38 | 38 | ||
39 | display = new QListView(this, "display"); | 39 | display = new QListView(this, "display"); |
40 | display->addColumn("Key"); | 40 | display->addColumn("Key"); |
41 | display->addColumn("Constraint"); | 41 | display->addColumn("Constraint"); |
42 | display->addColumn("Value"); | 42 | display->addColumn("Value"); |
43 | display->header()->setClickEnabled(FALSE); | 43 | display->header()->setClickEnabled(FALSE); |
44 | display->header()->setResizeEnabled(FALSE); | 44 | display->header()->setResizeEnabled(FALSE); |
45 | 45 | ||
46 | vlayout->addWidget(display); | 46 | vlayout->addWidget(display); |
47 | 47 | ||
48 | QHBoxLayout *hlayout = new QHBoxLayout; | 48 | QHBoxLayout *hlayout = new QHBoxLayout; |
49 | hlayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum)); | 49 | hlayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum)); |
50 | 50 | ||
51 | newFilterButton = new QPushButton(this, "new Filter"); | 51 | newFilterButton = new QPushButton(this, "new Filter"); |
52 | newFilterButton->setMaximumSize(QSize(50, 32767)); | 52 | newFilterButton->setMaximumSize(QSize(50, 32767)); |
53 | newFilterButton->setText("New"); | 53 | newFilterButton->setText("New"); |
54 | hlayout->addWidget(newFilterButton); | 54 | hlayout->addWidget(newFilterButton); |
55 | 55 | ||
56 | deleteFilterButton = new QPushButton(this, "delete Filter"); | 56 | deleteFilterButton = new QPushButton(this, "delete Filter"); |
57 | deleteFilterButton->setMaximumSize(QSize(50, 32767)); | 57 | deleteFilterButton->setMaximumSize(QSize(50, 32767)); |
58 | deleteFilterButton->setText("Delete"); | 58 | deleteFilterButton->setText("Delete"); |
59 | hlayout->addWidget(deleteFilterButton); | 59 | hlayout->addWidget(deleteFilterButton); |
60 | 60 | ||
61 | clearFilterButton = new QPushButton(this, "delete Filter"); | 61 | clearFilterButton = new QPushButton(this, "delete Filter"); |
62 | clearFilterButton->setMaximumSize(QSize(60, 32767)); | 62 | clearFilterButton->setMaximumSize(QSize(60, 32767)); |
63 | clearFilterButton->setText("Clear All"); | 63 | clearFilterButton->setText("Clear All"); |
64 | hlayout->addWidget(clearFilterButton); | 64 | hlayout->addWidget(clearFilterButton); |
65 | 65 | ||
66 | vlayout->addLayout(hlayout); | 66 | vlayout->addLayout(hlayout); |
67 | 67 | ||
68 | QHBoxLayout *hlayout2 = new QHBoxLayout; | 68 | QHBoxLayout *hlayout2 = new QHBoxLayout; |
69 | 69 | ||
70 | keyNameCombo = new QComboBox(FALSE, this, "key name"); | 70 | keyNameCombo = new QComboBox(FALSE, this, "key name"); |
71 | keyNameCombo->setEnabled(FALSE); | 71 | keyNameCombo->setEnabled(FALSE); |
72 | hlayout2->addWidget(keyNameCombo); | 72 | hlayout2->addWidget(keyNameCombo); |
73 | 73 | ||
74 | QLabel *label = new QLabel(this); | 74 | QLabel *label = new QLabel(this); |
75 | label->setText("has value"); | 75 | label->setText("has value"); |
76 | hlayout2->addWidget(label); | 76 | hlayout2->addWidget(label); |
77 | 77 | ||
78 | keyEntry = new TVFilterKeyEntry(this, "key entry"); | 78 | keyEntry = new TVFilterKeyEntry(this, "key entry"); |
79 | keyEntry->setEnabled(FALSE); | 79 | keyEntry->setEnabled(FALSE); |
80 | 80 | ||
81 | vlayout->addLayout(hlayout2); | 81 | vlayout->addLayout(hlayout2); |
82 | vlayout->addWidget(keyEntry); | 82 | vlayout->addWidget(keyEntry); |
83 | 83 | ||
84 | connect(newFilterButton, SIGNAL( clicked() ), this, SLOT( newTerm() )); | 84 | connect(newFilterButton, SIGNAL( clicked() ), this, SLOT( newTerm() )); |
85 | connect(deleteFilterButton, SIGNAL( clicked() ), this, SLOT( deleteTerm())); | 85 | connect(deleteFilterButton, SIGNAL( clicked() ), this, SLOT( deleteTerm())); |
86 | connect(clearFilterButton, SIGNAL( clicked() ), this, SLOT( clearTerms())); | 86 | connect(clearFilterButton, SIGNAL( clicked() ), this, SLOT( clearTerms())); |
87 | 87 | ||
88 | connect(keyEntry, SIGNAL(valueChanged()), this, SLOT( updateTerm() )); | 88 | connect(keyEntry, SIGNAL(valueChanged()), this, SLOT( updateTerm() )); |
89 | connect(keyNameCombo, SIGNAL(activated(int)), this, SLOT( updateTerm() )); | 89 | connect(keyNameCombo, SIGNAL(activated(int)), this, SLOT( updateTerm() )); |
90 | 90 | ||
91 | connect(display, SIGNAL(selectionChanged(QListViewItem*)), this, | 91 | connect(display, SIGNAL(selectionChanged(QListViewItem*)), this, |
92 | SLOT(setTerm(QListViewItem *))); | 92 | SLOT(setTerm(QListViewItem*))); |
93 | 93 | ||
94 | ts = t; | 94 | ts = t; |
95 | current = 0; | 95 | current = 0; |
96 | terms.setAutoDelete(true); | 96 | terms.setAutoDelete(true); |
97 | do_filter = false; | 97 | do_filter = false; |
98 | 98 | ||
99 | #ifdef Q_WS_QWS | 99 | #ifdef Q_WS_QWS |
100 | QPEApplication::showDialog( this ); | 100 | QPEApplication::showDialog( this ); |
101 | #endif | 101 | #endif |
102 | } | 102 | } |
103 | 103 | ||
104 | /*! | 104 | /*! |
105 | Destroys the TVFilterView widget | 105 | Destroys the TVFilterView widget |
106 | */ | 106 | */ |
107 | TVFilterView::~TVFilterView() | 107 | TVFilterView::~TVFilterView() |
108 | { | 108 | { |
109 | } | 109 | } |
110 | 110 | ||
111 | void TVFilterView::rebuildData() | 111 | void TVFilterView::rebuildData() |
112 | { | 112 | { |
113 | } | 113 | } |
114 | 114 | ||
115 | void TVFilterView::reset() | 115 | void TVFilterView::reset() |
116 | { | 116 | { |
117 | keyNameCombo->clear(); | 117 | keyNameCombo->clear(); |
118 | keyIds.clear(); | 118 | keyIds.clear(); |
119 | } | 119 | } |
120 | 120 | ||
121 | void TVFilterView::rebuildKeys() | 121 | void TVFilterView::rebuildKeys() |
122 | { | 122 | { |
123 | int i; | 123 | int i; |
124 | 124 | ||
125 | if (!ts) return; | 125 | if (!ts) return; |
126 | if(!ts->kRep) return; | 126 | if(!ts->kRep) return; |
127 | keyEntry->setTableState(ts); | 127 | keyEntry->setTableState(ts); |
128 | 128 | ||
129 | /* set up the list of keys that can be compared on */ | 129 | /* set up the list of keys that can be compared on */ |
130 | keyNameCombo->clear(); | 130 | keyNameCombo->clear(); |
131 | KeyListIterator it(*ts->kRep); | 131 | KeyListIterator it(*ts->kRep); |
132 | 132 | ||
133 | i = 0; | 133 | i = 0; |
134 | while(it.current()) { | 134 | while(it.current()) { |
135 | if(ts->kRep->validIndex(it.currentKey())) { | 135 | if(ts->kRep->validIndex(it.currentKey())) { |
136 | keyNameCombo->insertItem(it.current()->name()); | 136 | keyNameCombo->insertItem(it.current()->name()); |
137 | keyIds.insert(i, it.currentKey()); | 137 | keyIds.insert(i, it.currentKey()); |
138 | ++i; | 138 | ++i; |
139 | } | 139 | } |
140 | ++it; | 140 | ++it; |
141 | } | 141 | } |
142 | } | 142 | } |
143 | 143 | ||
144 | bool TVFilterView::passesFilter(DataElem *d) { | 144 | bool TVFilterView::passesFilter(DataElem *d) { |
145 | if (!filterActive()) return true; | 145 | if (!filterActive()) return true; |
146 | 146 | ||
147 | 147 | ||
148 | FilterTerm *t; | 148 | FilterTerm *t; |
149 | 149 | ||
150 | for (t = terms.first(); t != 0; t = terms.next() ) { | 150 | for (t = terms.first(); t != 0; t = terms.next() ) { |
151 | /* check against filter */ | 151 | /* check against filter */ |
152 | switch(t->ct) { | 152 | switch(t->ct) { |
153 | case ct_less: | 153 | case ct_less: |
154 | if (!d->lessThan(t->keyIndex, t->value)) | 154 | if (!d->lessThan(t->keyIndex, t->value)) |
155 | return false; | 155 | return false; |
156 | break; | 156 | break; |
157 | case ct_more: | 157 | case ct_more: |
158 | if (!d->moreThan(t->keyIndex, t->value)) | 158 | if (!d->moreThan(t->keyIndex, t->value)) |
159 | return false; | 159 | return false; |
160 | break; | 160 | break; |
161 | case ct_equal: | 161 | case ct_equal: |
162 | if (!d->equalTo(t->keyIndex, t->value)) | 162 | if (!d->equalTo(t->keyIndex, t->value)) |
163 | return false; | 163 | return false; |
164 | break; | 164 | break; |
165 | case ct_contains: | 165 | case ct_contains: |
166 | if (!d->contains(t->keyIndex, t->value)) | 166 | if (!d->contains(t->keyIndex, t->value)) |
167 | return false; | 167 | return false; |
168 | break; | 168 | break; |
169 | case ct_startswith: | 169 | case ct_startswith: |
170 | if (!d->startsWith(t->keyIndex, t->value)) | 170 | if (!d->startsWith(t->keyIndex, t->value)) |
171 | return false; | 171 | return false; |
172 | break; | 172 | break; |
173 | case ct_endswith: | 173 | case ct_endswith: |
174 | if (!d->endsWith(t->keyIndex, t->value)) | 174 | if (!d->endsWith(t->keyIndex, t->value)) |
175 | return false; | 175 | return false; |
176 | break; | 176 | break; |
177 | default: | 177 | default: |
178 | qWarning("TVFilterView::passesFilter() " | 178 | qWarning("TVFilterView::passesFilter() " |
179 | "unrecognized filter type"); | 179 | "unrecognized filter type"); |
180 | return false; | 180 | return false; |
181 | } | 181 | } |
182 | } | 182 | } |
183 | return true; | 183 | return true; |
184 | } | 184 | } |
185 | 185 | ||
186 | bool TVFilterView::filterActive() const | 186 | bool TVFilterView::filterActive() const |
187 | { | 187 | { |
188 | /* when button operated, also check the do_filter value | 188 | /* when button operated, also check the do_filter value |
diff --git a/noncore/apps/tableviewer/ui/tvlistview.cpp b/noncore/apps/tableviewer/ui/tvlistview.cpp index b25e813..b10ff1d 100644 --- a/noncore/apps/tableviewer/ui/tvlistview.cpp +++ b/noncore/apps/tableviewer/ui/tvlistview.cpp | |||
@@ -11,194 +11,194 @@ | |||
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 | #include "tvlistview.h" | 20 | #include "tvlistview.h" |
21 | #include "../db/common.h" | 21 | #include "../db/common.h" |
22 | #include <qtoolbutton.h> | 22 | #include <qtoolbutton.h> |
23 | #include <qlistview.h> | 23 | #include <qlistview.h> |
24 | #include <qlayout.h> | 24 | #include <qlayout.h> |
25 | 25 | ||
26 | void TVListViewPrivate::setColumnWidth(int column, int width) | 26 | void TVListViewPrivate::setColumnWidth(int column, int width) |
27 | { | 27 | { |
28 | if(width > 70) width = 70; | 28 | if(width > 70) width = 70; |
29 | QListView::setColumnWidth(column, width); | 29 | QListView::setColumnWidth(column, width); |
30 | } | 30 | } |
31 | 31 | ||
32 | void TVListViewPrivate::setSorting(int column, bool increasing) | 32 | void TVListViewPrivate::setSorting(int column, bool increasing) |
33 | { | 33 | { |
34 | emit sortChanged(column); | 34 | emit sortChanged(column); |
35 | QListView::setSorting(column, increasing); | 35 | QListView::setSorting(column, increasing); |
36 | } | 36 | } |
37 | 37 | ||
38 | TVListViewPrivate::TVListViewPrivate(QWidget *parent, const char* name, | 38 | TVListViewPrivate::TVListViewPrivate(QWidget *parent, const char* name, |
39 | WFlags fl) : QListView(parent, name, fl) { | 39 | WFlags fl) : QListView(parent, name, fl) { |
40 | ; | 40 | ; |
41 | } | 41 | } |
42 | 42 | ||
43 | class TVListViewItem : public QListViewItem | 43 | class TVListViewItem : public QListViewItem |
44 | { | 44 | { |
45 | public: | 45 | public: |
46 | 46 | ||
47 | TVListViewItem(QListView *parent, DataElem *d); | 47 | TVListViewItem(QListView *parent, DataElem *d); |
48 | ~TVListViewItem(); | 48 | ~TVListViewItem(); |
49 | 49 | ||
50 | QString text(int i) const | 50 | QString text(int i) const |
51 | { | 51 | { |
52 | return data_reference->toQString(i); | 52 | return data_reference->toQString(i); |
53 | } | 53 | } |
54 | 54 | ||
55 | /* Do nothing... all data for this item should be generated */ | 55 | /* Do nothing... all data for this item should be generated */ |
56 | void setText(int i, const QString &) | 56 | void setText(int i, const QString &) |
57 | { | 57 | { |
58 | ; | 58 | ; |
59 | } | 59 | } |
60 | QString key(int i, bool a) const | 60 | QString key(int i, bool a) const |
61 | { | 61 | { |
62 | return data_reference->toSortableQString(i); | 62 | return data_reference->toSortableQString(i); |
63 | } | 63 | } |
64 | 64 | ||
65 | void setDataElem(DataElem *d) | 65 | void setDataElem(DataElem *d) |
66 | { | 66 | { |
67 | data_reference = d; | 67 | data_reference = d; |
68 | } | 68 | } |
69 | 69 | ||
70 | DataElem *getDataElem() { | 70 | DataElem *getDataElem() { |
71 | return data_reference; | 71 | return data_reference; |
72 | } | 72 | } |
73 | private: | 73 | private: |
74 | DataElem *data_reference; | 74 | DataElem *data_reference; |
75 | }; | 75 | }; |
76 | 76 | ||
77 | TVListViewItem::TVListViewItem(QListView *parent, DataElem *d) | 77 | TVListViewItem::TVListViewItem(QListView *parent, DataElem *d) |
78 | : QListViewItem(parent) | 78 | : QListViewItem(parent) |
79 | { | 79 | { |
80 | data_reference = d; | 80 | data_reference = d; |
81 | } | 81 | } |
82 | 82 | ||
83 | TVListViewItem::~TVListViewItem() | 83 | TVListViewItem::~TVListViewItem() |
84 | { | 84 | { |
85 | data_reference = 0; | 85 | data_reference = 0; |
86 | } | 86 | } |
87 | 87 | ||
88 | TVListView::TVListView(TableState *t, QWidget* parent, | 88 | TVListView::TVListView(TableState *t, QWidget* parent, |
89 | const char *name, WFlags fl ) : QWidget(parent, name, fl) | 89 | const char *name, WFlags fl ) : QWidget(parent, name, fl) |
90 | { | 90 | { |
91 | if (!name) | 91 | if (!name) |
92 | setName("TVListView"); | 92 | setName("TVListView"); |
93 | 93 | ||
94 | // the next two lines need to be rationalized. | 94 | // the next two lines need to be rationalized. |
95 | resize(318,457); | 95 | resize(318,457); |
96 | setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7, | 96 | setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7, |
97 | (QSizePolicy::SizeType)7, sizePolicy().hasHeightForWidth())); | 97 | (QSizePolicy::SizeType)7, sizePolicy().hasHeightForWidth())); |
98 | setCaption(tr("List View")); | 98 | setCaption(tr("List View")); |
99 | 99 | ||
100 | QVBoxLayout *layout = new QVBoxLayout(this); | 100 | QVBoxLayout *layout = new QVBoxLayout(this); |
101 | layout->setSpacing(0); | 101 | layout->setSpacing(0); |
102 | layout->setMargin(0); | 102 | layout->setMargin(0); |
103 | 103 | ||
104 | listViewDisplay = new TVListViewPrivate(this, "listViewDisplay"); | 104 | listViewDisplay = new TVListViewPrivate(this, "listViewDisplay"); |
105 | layout->addWidget(listViewDisplay); | 105 | layout->addWidget(listViewDisplay); |
106 | 106 | ||
107 | connect(listViewDisplay, SIGNAL(currentChanged(QListViewItem *)), this, | 107 | connect(listViewDisplay, SIGNAL(currentChanged(QListViewItem*)), this, |
108 | SLOT(setCurrent(QListViewItem *))); | 108 | SLOT(setCurrent(QListViewItem*))); |
109 | connect(listViewDisplay, SIGNAL(sortChanged(int)), this, | 109 | connect(listViewDisplay, SIGNAL(sortChanged(int)), this, |
110 | SLOT(setSorting(int))); | 110 | SLOT(setSorting(int))); |
111 | 111 | ||
112 | listViewDisplay->setShowSortIndicator(true); | 112 | listViewDisplay->setShowSortIndicator(true); |
113 | 113 | ||
114 | it = new QListViewItemIterator(listViewDisplay); | 114 | it = new QListViewItemIterator(listViewDisplay); |
115 | ts = t; | 115 | ts = t; |
116 | } | 116 | } |
117 | 117 | ||
118 | TVListView::~TVListView() | 118 | TVListView::~TVListView() |
119 | { | 119 | { |
120 | } | 120 | } |
121 | 121 | ||
122 | void TVListView::addItem(DataElem *d) | 122 | void TVListView::addItem(DataElem *d) |
123 | { | 123 | { |
124 | TVListViewItem *i = new TVListViewItem(listViewDisplay, d); | 124 | TVListViewItem *i = new TVListViewItem(listViewDisplay, d); |
125 | 125 | ||
126 | delete it; | 126 | delete it; |
127 | it = new QListViewItemIterator(i); | 127 | it = new QListViewItemIterator(i); |
128 | } | 128 | } |
129 | 129 | ||
130 | /* remove current (it) item */ | 130 | /* remove current (it) item */ |
131 | void TVListView::removeItem() | 131 | void TVListView::removeItem() |
132 | { | 132 | { |
133 | QListViewItemIterator other(*it); | 133 | QListViewItemIterator other(*it); |
134 | 134 | ||
135 | QListViewItemIterator tmp = *it; | 135 | QListViewItemIterator tmp = *it; |
136 | (*it)++; | 136 | (*it)++; |
137 | if (!it->current()) { | 137 | if (!it->current()) { |
138 | *it = tmp; | 138 | *it = tmp; |
139 | (*it)--; | 139 | (*it)--; |
140 | if (!it->current()) { | 140 | if (!it->current()) { |
141 | delete it; | 141 | delete it; |
142 | it = 0; | 142 | it = 0; |
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | delete other.current(); | 146 | delete other.current(); |
147 | } | 147 | } |
148 | 148 | ||
149 | void TVListView::clearItems() | 149 | void TVListView::clearItems() |
150 | { | 150 | { |
151 | /* This is ok since the destructor for TVListItem does not know about | 151 | /* This is ok since the destructor for TVListItem does not know about |
152 | the data_reference pointer.. and hence will leave it alone */ | 152 | the data_reference pointer.. and hence will leave it alone */ |
153 | listViewDisplay->clear(); | 153 | listViewDisplay->clear(); |
154 | delete it; | 154 | delete it; |
155 | it = new QListViewItemIterator(listViewDisplay); | 155 | it = new QListViewItemIterator(listViewDisplay); |
156 | } | 156 | } |
157 | 157 | ||
158 | void TVListView::first() | 158 | void TVListView::first() |
159 | { | 159 | { |
160 | delete it; | 160 | delete it; |
161 | it = new QListViewItemIterator(listViewDisplay); | 161 | it = new QListViewItemIterator(listViewDisplay); |
162 | } | 162 | } |
163 | 163 | ||
164 | void TVListView::last() | 164 | void TVListView::last() |
165 | { | 165 | { |
166 | qWarning("TVListView::last not yet implemented"); | 166 | qWarning("TVListView::last not yet implemented"); |
167 | } | 167 | } |
168 | 168 | ||
169 | void TVListView::next() | 169 | void TVListView::next() |
170 | { | 170 | { |
171 | QListViewItemIterator tmp = *it; | 171 | QListViewItemIterator tmp = *it; |
172 | (*it)++; | 172 | (*it)++; |
173 | if (!it->current()) { | 173 | if (!it->current()) { |
174 | *it = tmp; | 174 | *it = tmp; |
175 | } | 175 | } |
176 | } | 176 | } |
177 | 177 | ||
178 | void TVListView::previous() | 178 | void TVListView::previous() |
179 | { | 179 | { |
180 | QListViewItemIterator tmp = *it; | 180 | QListViewItemIterator tmp = *it; |
181 | (*it)--; | 181 | (*it)--; |
182 | if (!it->current()) { | 182 | if (!it->current()) { |
183 | *it = tmp; | 183 | *it = tmp; |
184 | } | 184 | } |
185 | } | 185 | } |
186 | 186 | ||
187 | DataElem *TVListView::getCurrentData() { | 187 | DataElem *TVListView::getCurrentData() { |
188 | if (it->current()) { | 188 | if (it->current()) { |
189 | return ((TVListViewItem *)it->current())->getDataElem(); | 189 | return ((TVListViewItem *)it->current())->getDataElem(); |
190 | } | 190 | } |
191 | return NULL; | 191 | return NULL; |
192 | } | 192 | } |
193 | 193 | ||
194 | /*! Now to implement the closest match function */ | 194 | /*! Now to implement the closest match function */ |
195 | void TVListView::findItem(int keyId, TVVariant value) | 195 | void TVListView::findItem(int keyId, TVVariant value) |
196 | { | 196 | { |
197 | QListViewItem *i; | 197 | QListViewItem *i; |
198 | TVListViewItem *best_so_far = NULL; | 198 | TVListViewItem *best_so_far = NULL; |
199 | /* start at the beginning... go through till find the closest elem */ | 199 | /* start at the beginning... go through till find the closest elem */ |
200 | i = listViewDisplay->firstChild(); | 200 | i = listViewDisplay->firstChild(); |
201 | while (i) { | 201 | while (i) { |
202 | /* search stuff */ | 202 | /* search stuff */ |
203 | if(best_so_far) { | 203 | if(best_so_far) { |
204 | if (DataElem::closer( | 204 | if (DataElem::closer( |
diff --git a/noncore/apps/tinykate/libkate/document/katedialogs.cpp b/noncore/apps/tinykate/libkate/document/katedialogs.cpp index 2f0ed7b..f4edd7e 100644 --- a/noncore/apps/tinykate/libkate/document/katedialogs.cpp +++ b/noncore/apps/tinykate/libkate/document/katedialogs.cpp | |||
@@ -1,162 +1,162 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | katedialogs.cpp - description | 2 | katedialogs.cpp - description |
3 | ------------------- | 3 | ------------------- |
4 | copyright : (C) 2001 by The Kate Team | 4 | copyright : (C) 2001 by The Kate Team |
5 | (C) 2002 by Joseph Wenninger | 5 | (C) 2002 by Joseph Wenninger |
6 | email : kwrite-devel@kde.org | 6 | email : kwrite-devel@kde.org |
7 | jowenn@kde.org | 7 | jowenn@kde.org |
8 | 8 | ||
9 | ***************************************************************************/ | 9 | ***************************************************************************/ |
10 | 10 | ||
11 | /*************************************************************************** | 11 | /*************************************************************************** |
12 | * * | 12 | * * |
13 | * This program is free software; you can redistribute it and/or modify * | 13 | * This program is free software; you can redistribute it and/or modify * |
14 | * it under the terms of the GNU General Public License as published by * | 14 | * it under the terms of the GNU General Public License as published by * |
15 | * the Free Software Foundation; either version 2 of the License, or * | 15 | * the Free Software Foundation; either version 2 of the License, or * |
16 | * (at your option) any later version. * | 16 | * (at your option) any later version. * |
17 | * * | 17 | * * |
18 | ***************************************************************************/ | 18 | ***************************************************************************/ |
19 | #include "katedialogs.h" | 19 | #include "katedialogs.h" |
20 | #include <klocale.h> | 20 | #include <klocale.h> |
21 | #include <kdebug.h> | 21 | #include <kdebug.h> |
22 | #include <qgroupbox.h> | 22 | #include <qgroupbox.h> |
23 | #include <qvgroupbox.h> | 23 | #include <qvgroupbox.h> |
24 | #include <qhgroupbox.h> | 24 | #include <qhgroupbox.h> |
25 | #include <qhbox.h> | 25 | #include <qhbox.h> |
26 | #include <qvbox.h> | 26 | #include <qvbox.h> |
27 | #include <qlayout.h> | 27 | #include <qlayout.h> |
28 | #include <qpushbutton.h> | 28 | #include <qpushbutton.h> |
29 | #include <qwidgetstack.h> | 29 | #include <qwidgetstack.h> |
30 | #include <qlabel.h> | 30 | #include <qlabel.h> |
31 | #include <qlistview.h> | 31 | #include <qlistview.h> |
32 | #include <qlineedit.h> | 32 | #include <qlineedit.h> |
33 | #include <qcombobox.h> | 33 | #include <qcombobox.h> |
34 | #include <qcheckbox.h> | 34 | #include <qcheckbox.h> |
35 | //FIXME #include <kcharsets.h> | 35 | //FIXME #include <kcharsets.h> |
36 | #include <kglobal.h> | 36 | #include <kglobal.h> |
37 | #include <qmap.h> | 37 | #include <qmap.h> |
38 | #include <kmessagebox.h> | 38 | #include <kmessagebox.h> |
39 | #include <kstddirs.h> | 39 | #include <kstddirs.h> |
40 | 40 | ||
41 | 41 | ||
42 | /******************************************************************************************************************* | 42 | /******************************************************************************************************************* |
43 | * Context Editor * | 43 | * Context Editor * |
44 | *******************************************************************************************************************/ | 44 | *******************************************************************************************************************/ |
45 | 45 | ||
46 | StyleChanger::StyleChanger( QWidget *parent ) | 46 | StyleChanger::StyleChanger( QWidget *parent ) |
47 | : QWidget(parent) | 47 | : QWidget(parent) |
48 | { | 48 | { |
49 | QLabel *label; | 49 | QLabel *label; |
50 | 50 | ||
51 | QGridLayout *glay = new QGridLayout( this, 4, 3, 0, KDialog::spacingHint() ); | 51 | QGridLayout *glay = new QGridLayout( this, 4, 3, 0, KDialog::spacingHint() ); |
52 | CHECK_PTR(glay); | 52 | CHECK_PTR(glay); |
53 | glay->addColSpacing( 1, KDialog::spacingHint() ); // Looks better | 53 | glay->addColSpacing( 1, KDialog::spacingHint() ); // Looks better |
54 | glay->setColStretch( 2, 10 ); | 54 | glay->setColStretch( 2, 10 ); |
55 | 55 | ||
56 | col = new KColorButton(this); | 56 | col = new KColorButton(this); |
57 | CHECK_PTR(col); | 57 | CHECK_PTR(col); |
58 | connect(col,SIGNAL(changed(const QColor &)),this,SLOT(changed())); | 58 | connect(col,SIGNAL(changed(const QColor&)),this,SLOT(changed())); |
59 | label = new QLabel(col,i18n("Normal:"),this); | 59 | label = new QLabel(col,i18n("Normal:"),this); |
60 | CHECK_PTR(label); | 60 | CHECK_PTR(label); |
61 | glay->addWidget(label,0,0); | 61 | glay->addWidget(label,0,0); |
62 | glay->addWidget(col,1,0); | 62 | glay->addWidget(col,1,0); |
63 | 63 | ||
64 | selCol = new KColorButton(this); | 64 | selCol = new KColorButton(this); |
65 | CHECK_PTR(selCol); | 65 | CHECK_PTR(selCol); |
66 | connect(selCol,SIGNAL(changed(const QColor &)),this,SLOT(changed())); | 66 | connect(selCol,SIGNAL(changed(const QColor&)),this,SLOT(changed())); |
67 | label = new QLabel(selCol,i18n("Selected:"),this); | 67 | label = new QLabel(selCol,i18n("Selected:"),this); |
68 | CHECK_PTR(label); | 68 | CHECK_PTR(label); |
69 | glay->addWidget(label,2,0); | 69 | glay->addWidget(label,2,0); |
70 | glay->addWidget(selCol,3,0); | 70 | glay->addWidget(selCol,3,0); |
71 | 71 | ||
72 | bold = new QCheckBox(i18n("Bold"),this); | 72 | bold = new QCheckBox(i18n("Bold"),this); |
73 | CHECK_PTR(bold); | 73 | CHECK_PTR(bold); |
74 | connect(bold,SIGNAL(clicked()),SLOT(changed())); | 74 | connect(bold,SIGNAL(clicked()),SLOT(changed())); |
75 | glay->addWidget(bold,1,2); | 75 | glay->addWidget(bold,1,2); |
76 | 76 | ||
77 | italic = new QCheckBox(i18n("Italic"),this); | 77 | italic = new QCheckBox(i18n("Italic"),this); |
78 | CHECK_PTR(italic); | 78 | CHECK_PTR(italic); |
79 | connect(italic,SIGNAL(clicked()),SLOT(changed())); | 79 | connect(italic,SIGNAL(clicked()),SLOT(changed())); |
80 | glay->addWidget(italic,2,2); | 80 | glay->addWidget(italic,2,2); |
81 | } | 81 | } |
82 | 82 | ||
83 | void StyleChanger::setRef(ItemStyle *s) { | 83 | void StyleChanger::setRef(ItemStyle *s) { |
84 | 84 | ||
85 | style = s; | 85 | style = s; |
86 | col->setColor(style->col); | 86 | col->setColor(style->col); |
87 | selCol->setColor(style->selCol); | 87 | selCol->setColor(style->selCol); |
88 | bold->setChecked(style->bold); | 88 | bold->setChecked(style->bold); |
89 | italic->setChecked(style->italic); | 89 | italic->setChecked(style->italic); |
90 | 90 | ||
91 | } | 91 | } |
92 | 92 | ||
93 | void StyleChanger::setEnabled(bool enable) { | 93 | void StyleChanger::setEnabled(bool enable) { |
94 | 94 | ||
95 | col->setEnabled(enable); | 95 | col->setEnabled(enable); |
96 | selCol->setEnabled(enable); | 96 | selCol->setEnabled(enable); |
97 | bold->setEnabled(enable); | 97 | bold->setEnabled(enable); |
98 | italic->setEnabled(enable); | 98 | italic->setEnabled(enable); |
99 | } | 99 | } |
100 | 100 | ||
101 | void StyleChanger::changed() { | 101 | void StyleChanger::changed() { |
102 | 102 | ||
103 | if (style) { | 103 | if (style) { |
104 | style->col = col->color(); | 104 | style->col = col->color(); |
105 | style->selCol = selCol->color(); | 105 | style->selCol = selCol->color(); |
106 | style->bold = bold->isChecked(); | 106 | style->bold = bold->isChecked(); |
107 | style->italic = italic->isChecked(); | 107 | style->italic = italic->isChecked(); |
108 | } | 108 | } |
109 | } | 109 | } |
110 | 110 | ||
111 | HighlightDialog::HighlightDialog( HlManager *hlManager, ItemStyleList *styleList, | 111 | HighlightDialog::HighlightDialog( HlManager *hlManager, ItemStyleList *styleList, |
112 | HlDataList *highlightDataList, | 112 | HlDataList *highlightDataList, |
113 | int hlNumber, QWidget *parent, | 113 | int hlNumber, QWidget *parent, |
114 | const char *name, bool modal ) | 114 | const char *name, bool modal ) |
115 | :KDialogBase(parent,name,modal,i18n("Highlight Settings"), Ok|Cancel, Ok) | 115 | :KDialogBase(parent,name,modal,i18n("Highlight Settings"), Ok|Cancel, Ok) |
116 | { | 116 | { |
117 | // QVBox *page = makeVBoxMainWidget(); | 117 | // QVBox *page = makeVBoxMainWidget(); |
118 | QFrame *page=addPage("FIXME"); | 118 | QFrame *page=addPage("FIXME"); |
119 | (new QVBoxLayout(page))->setAutoAdd(true); | 119 | (new QVBoxLayout(page))->setAutoAdd(true); |
120 | content=new HighlightDialogPage(hlManager,styleList,highlightDataList,hlNumber,page); | 120 | content=new HighlightDialogPage(hlManager,styleList,highlightDataList,hlNumber,page); |
121 | } | 121 | } |
122 | 122 | ||
123 | void HighlightDialog::done(int r) | 123 | void HighlightDialog::done(int r) |
124 | { | 124 | { |
125 | kdDebug(13010)<<"HighlightDialod done"<<endl; | 125 | kdDebug(13010)<<"HighlightDialod done"<<endl; |
126 | content->saveData(); | 126 | content->saveData(); |
127 | KDialogBase::done(r); | 127 | KDialogBase::done(r); |
128 | } | 128 | } |
129 | 129 | ||
130 | HighlightDialogPage::HighlightDialogPage(HlManager *hlManager, ItemStyleList *styleList, | 130 | HighlightDialogPage::HighlightDialogPage(HlManager *hlManager, ItemStyleList *styleList, |
131 | HlDataList* highlightDataList, | 131 | HlDataList* highlightDataList, |
132 | int hlNumber,QWidget *parent, const char *name) | 132 | int hlNumber,QWidget *parent, const char *name) |
133 | :QTabWidget(parent,name),defaultItemStyleList(styleList),hlData(0L) | 133 | :QTabWidget(parent,name),defaultItemStyleList(styleList),hlData(0L) |
134 | 134 | ||
135 | { | 135 | { |
136 | 136 | ||
137 | // defaults ========================================================= | 137 | // defaults ========================================================= |
138 | 138 | ||
139 | QFrame *page1 = new QFrame(this); | 139 | QFrame *page1 = new QFrame(this); |
140 | addTab(page1,i18n("&Defaults")); | 140 | addTab(page1,i18n("&Defaults")); |
141 | QGridLayout *grid = new QGridLayout(page1, 1, 1); | 141 | QGridLayout *grid = new QGridLayout(page1, 1, 1); |
142 | 142 | ||
143 | QVGroupBox *dvbox1 = new QVGroupBox( i18n("Default Item Styles"), page1 ); | 143 | QVGroupBox *dvbox1 = new QVGroupBox( i18n("Default Item Styles"), page1 ); |
144 | /*QLabel *label = */new QLabel( i18n("Item:"), dvbox1 ); | 144 | /*QLabel *label = */new QLabel( i18n("Item:"), dvbox1 ); |
145 | QComboBox *styleCombo = new QComboBox( false, dvbox1 ); | 145 | QComboBox *styleCombo = new QComboBox( false, dvbox1 ); |
146 | defaultStyleChanger = new StyleChanger( dvbox1 ); | 146 | defaultStyleChanger = new StyleChanger( dvbox1 ); |
147 | for( int i = 0; i < hlManager->defaultStyles(); i++ ) { | 147 | for( int i = 0; i < hlManager->defaultStyles(); i++ ) { |
148 | styleCombo->insertItem(hlManager->defaultStyleName(i)); | 148 | styleCombo->insertItem(hlManager->defaultStyleName(i)); |
149 | } | 149 | } |
150 | connect(styleCombo, SIGNAL(activated(int)), this, SLOT(defaultChanged(int))); | 150 | connect(styleCombo, SIGNAL(activated(int)), this, SLOT(defaultChanged(int))); |
151 | grid->addWidget(dvbox1, 0,0); | 151 | grid->addWidget(dvbox1, 0,0); |
152 | 152 | ||
153 | defaultChanged(0); | 153 | defaultChanged(0); |
154 | 154 | ||
155 | // highlight modes ===================================================== | 155 | // highlight modes ===================================================== |
156 | 156 | ||
157 | QFrame *page2 = new QFrame(this); | 157 | QFrame *page2 = new QFrame(this); |
158 | addTab(page2,i18n("&Highlight Modes")); | 158 | addTab(page2,i18n("&Highlight Modes")); |
159 | //grid = new QGridLayout(page2,2,2); | 159 | //grid = new QGridLayout(page2,2,2); |
160 | QVBoxLayout *bl=new QVBoxLayout(page2); | 160 | QVBoxLayout *bl=new QVBoxLayout(page2); |
161 | bl->setAutoAdd(true); | 161 | bl->setAutoAdd(true); |
162 | QHGroupBox *hbox1 = new QHGroupBox( i18n("Config Select"), page2 ); | 162 | QHGroupBox *hbox1 = new QHGroupBox( i18n("Config Select"), page2 ); |
@@ -193,193 +193,193 @@ HighlightDialogPage::HighlightDialogPage(HlManager *hlManager, ItemStyleList *st | |||
193 | 193 | ||
194 | styleDefault = new QCheckBox(i18n("Default"), vbox2 ); | 194 | styleDefault = new QCheckBox(i18n("Default"), vbox2 ); |
195 | connect(styleDefault,SIGNAL(clicked()),SLOT(changed())); | 195 | connect(styleDefault,SIGNAL(clicked()),SLOT(changed())); |
196 | styleChanger = new StyleChanger( vbox2 ); | 196 | styleChanger = new StyleChanger( vbox2 ); |
197 | 197 | ||
198 | hlDataList = highlightDataList; | 198 | hlDataList = highlightDataList; |
199 | hlChanged(hlNumber); | 199 | hlChanged(hlNumber); |
200 | } | 200 | } |
201 | 201 | ||
202 | 202 | ||
203 | void HighlightDialogPage::defaultChanged(int z) | 203 | void HighlightDialogPage::defaultChanged(int z) |
204 | { | 204 | { |
205 | defaultStyleChanger->setRef(defaultItemStyleList->at(z)); | 205 | defaultStyleChanger->setRef(defaultItemStyleList->at(z)); |
206 | } | 206 | } |
207 | 207 | ||
208 | 208 | ||
209 | void HighlightDialogPage::hlChanged(int z) | 209 | void HighlightDialogPage::hlChanged(int z) |
210 | { | 210 | { |
211 | writeback(); | 211 | writeback(); |
212 | 212 | ||
213 | hlData = hlDataList->at(z); | 213 | hlData = hlDataList->at(z); |
214 | 214 | ||
215 | wildcards->setText(hlData->wildcards); | 215 | wildcards->setText(hlData->wildcards); |
216 | mimetypes->setText(hlData->mimetypes); | 216 | mimetypes->setText(hlData->mimetypes); |
217 | 217 | ||
218 | itemCombo->clear(); | 218 | itemCombo->clear(); |
219 | for (ItemData *itemData = hlData->itemDataList.first(); itemData != 0L; | 219 | for (ItemData *itemData = hlData->itemDataList.first(); itemData != 0L; |
220 | itemData = hlData->itemDataList.next()) { | 220 | itemData = hlData->itemDataList.next()) { |
221 | kdDebug(13010) << itemData->name << endl; | 221 | kdDebug(13010) << itemData->name << endl; |
222 | itemCombo->insertItem(i18n(itemData->name.latin1())); | 222 | itemCombo->insertItem(i18n(itemData->name.latin1())); |
223 | } | 223 | } |
224 | 224 | ||
225 | itemChanged(0); | 225 | itemChanged(0); |
226 | } | 226 | } |
227 | 227 | ||
228 | void HighlightDialogPage::itemChanged(int z) | 228 | void HighlightDialogPage::itemChanged(int z) |
229 | { | 229 | { |
230 | itemData = hlData->itemDataList.at(z); | 230 | itemData = hlData->itemDataList.at(z); |
231 | 231 | ||
232 | styleDefault->setChecked(itemData->defStyle); | 232 | styleDefault->setChecked(itemData->defStyle); |
233 | styleChanger->setRef(itemData); | 233 | styleChanger->setRef(itemData); |
234 | } | 234 | } |
235 | 235 | ||
236 | void HighlightDialogPage::changed() | 236 | void HighlightDialogPage::changed() |
237 | { | 237 | { |
238 | itemData->defStyle = styleDefault->isChecked(); | 238 | itemData->defStyle = styleDefault->isChecked(); |
239 | } | 239 | } |
240 | 240 | ||
241 | void HighlightDialogPage::writeback() { | 241 | void HighlightDialogPage::writeback() { |
242 | if (hlData) { | 242 | if (hlData) { |
243 | hlData->wildcards = wildcards->text(); | 243 | hlData->wildcards = wildcards->text(); |
244 | hlData->mimetypes = mimetypes->text(); | 244 | hlData->mimetypes = mimetypes->text(); |
245 | } | 245 | } |
246 | } | 246 | } |
247 | 247 | ||
248 | void HighlightDialogPage::saveData() { | 248 | void HighlightDialogPage::saveData() { |
249 | kdDebug(13010)<<"HighlightDialogPage::saveData()"<<endl; | 249 | kdDebug(13010)<<"HighlightDialogPage::saveData()"<<endl; |
250 | writeback(); | 250 | writeback(); |
251 | } | 251 | } |
252 | 252 | ||
253 | 253 | ||
254 | void HighlightDialogPage::hlEdit() { | 254 | void HighlightDialogPage::hlEdit() { |
255 | HlEditDialog diag(0,0,"hlEdit", true,hlData); | 255 | HlEditDialog diag(0,0,"hlEdit", true,hlData); |
256 | diag.show(); | 256 | diag.show(); |
257 | } | 257 | } |
258 | 258 | ||
259 | void HighlightDialogPage::hlNew() { | 259 | void HighlightDialogPage::hlNew() { |
260 | HlEditDialog diag(0,0,"hlEdit",true,0); | 260 | HlEditDialog diag(0,0,"hlEdit",true,0); |
261 | diag.show(); | 261 | diag.show(); |
262 | } | 262 | } |
263 | 263 | ||
264 | 264 | ||
265 | HlEditDialog::HlEditDialog(HlManager *,QWidget *parent, const char *name, bool modal,HlData *data) | 265 | HlEditDialog::HlEditDialog(HlManager *,QWidget *parent, const char *name, bool modal,HlData *data) |
266 | :KDialogBase(KDialogBase::Swallow, i18n("Highlight Conditions"), Ok|Cancel, Ok, parent, name, modal) | 266 | :KDialogBase(KDialogBase::Swallow, i18n("Highlight Conditions"), Ok|Cancel, Ok, parent, name, modal) |
267 | { | 267 | { |
268 | currentItem=0; | 268 | currentItem=0; |
269 | transTableCnt=0; | 269 | transTableCnt=0; |
270 | QHBox *wid=new QHBox(this); | 270 | QHBox *wid=new QHBox(this); |
271 | QVBox *lbox=new QVBox(wid); | 271 | QVBox *lbox=new QVBox(wid); |
272 | contextList=new KListView(lbox); | 272 | contextList=new KListView(lbox); |
273 | contextList->setRootIsDecorated(true); | 273 | contextList->setRootIsDecorated(true); |
274 | contextList->addColumn(i18n("Syntax structure")); | 274 | contextList->addColumn(i18n("Syntax structure")); |
275 | contextList->setSorting(-1); | 275 | contextList->setSorting(-1); |
276 | QHBox *bbox=new QHBox(lbox); | 276 | QHBox *bbox=new QHBox(lbox); |
277 | QPushButton *addContext=new QPushButton(i18n("New Context"),bbox); | 277 | QPushButton *addContext=new QPushButton(i18n("New Context"),bbox); |
278 | QPushButton *addItem=new QPushButton(i18n("New Item"),bbox); | 278 | QPushButton *addItem=new QPushButton(i18n("New Item"),bbox); |
279 | QVGroupBox *opt = new QVGroupBox( i18n("Options"), wid); | 279 | QVGroupBox *opt = new QVGroupBox( i18n("Options"), wid); |
280 | stack=new QWidgetStack(opt); | 280 | stack=new QWidgetStack(opt); |
281 | initContextOptions(contextOptions=new QVBox(stack)); | 281 | initContextOptions(contextOptions=new QVBox(stack)); |
282 | stack->addWidget(contextOptions,HlEContext); | 282 | stack->addWidget(contextOptions,HlEContext); |
283 | initItemOptions(itemOptions=new QVBox(stack)); | 283 | initItemOptions(itemOptions=new QVBox(stack)); |
284 | stack->addWidget(itemOptions,HlEItem); | 284 | stack->addWidget(itemOptions,HlEItem); |
285 | stack->raiseWidget(HlEContext); | 285 | stack->raiseWidget(HlEContext); |
286 | setMainWidget(wid); | 286 | setMainWidget(wid); |
287 | if (data!=0) loadFromDocument(data); | 287 | if (data!=0) loadFromDocument(data); |
288 | else newDocument(); | 288 | else newDocument(); |
289 | connect(contextList,SIGNAL(currentChanged( QListViewItem*)),this,SLOT(currentSelectionChanged ( QListViewItem * ))); | 289 | connect(contextList,SIGNAL(currentChanged(QListViewItem*)),this,SLOT(currentSelectionChanged(QListViewItem*))); |
290 | connect(addContext,SIGNAL(clicked()),this,SLOT(contextAddNew())); | 290 | connect(addContext,SIGNAL(clicked()),this,SLOT(contextAddNew())); |
291 | connect(addItem,SIGNAL(clicked()),this,SLOT(ItemAddNew())); | 291 | connect(addItem,SIGNAL(clicked()),this,SLOT(ItemAddNew())); |
292 | } | 292 | } |
293 | 293 | ||
294 | void HlEditDialog::newDocument() | 294 | void HlEditDialog::newDocument() |
295 | { | 295 | { |
296 | KStandardDirs *dirs = KGlobal::dirs(); | 296 | KStandardDirs *dirs = KGlobal::dirs(); |
297 | QStringList list=dirs->findAllResources("data","kate/syntax/syntax.template",false,true); | 297 | QStringList list=dirs->findAllResources("data","kate/syntax/syntax.template",false,true); |
298 | for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) | 298 | for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) |
299 | { | 299 | { |
300 | HlData data("","",*it); | 300 | HlData data("","",*it); |
301 | loadFromDocument(&data); | 301 | loadFromDocument(&data); |
302 | return; | 302 | return; |
303 | } | 303 | } |
304 | KMessageBox::error(this,i18n("Can't find template file")); | 304 | KMessageBox::error(this,i18n("Can't find template file")); |
305 | } | 305 | } |
306 | 306 | ||
307 | 307 | ||
308 | void HlEditDialog::initContextOptions(QVBox *co) | 308 | void HlEditDialog::initContextOptions(QVBox *co) |
309 | { | 309 | { |
310 | if( co!=0) | 310 | if( co!=0) |
311 | { | 311 | { |
312 | QHBox *tmp = new QHBox(co); | 312 | QHBox *tmp = new QHBox(co); |
313 | (void) new QLabel(i18n("Description:"),tmp); | 313 | (void) new QLabel(i18n("Description:"),tmp); |
314 | ContextDescr=new QLineEdit(tmp); | 314 | ContextDescr=new QLineEdit(tmp); |
315 | tmp= new QHBox(co); | 315 | tmp= new QHBox(co); |
316 | (void) new QLabel(i18n("Attribute:"),tmp); | 316 | (void) new QLabel(i18n("Attribute:"),tmp); |
317 | ContextAttribute=new QComboBox(tmp); | 317 | ContextAttribute=new QComboBox(tmp); |
318 | tmp= new QHBox(co); | 318 | tmp= new QHBox(co); |
319 | (void) new QLabel(i18n("LineEnd:"),tmp); | 319 | (void) new QLabel(i18n("LineEnd:"),tmp); |
320 | ContextLineEnd = new QComboBox(tmp); | 320 | ContextLineEnd = new QComboBox(tmp); |
321 | connect(ContextDescr,SIGNAL(textChanged(const QString&)),this,SLOT(contextDescrChanged(const QString&))); | 321 | connect(ContextDescr,SIGNAL(textChanged(const QString&)),this,SLOT(contextDescrChanged(const QString&))); |
322 | connect(ContextLineEnd,SIGNAL(activated(int)),this,SLOT(contextLineEndChanged(int))); | 322 | connect(ContextLineEnd,SIGNAL(activated(int)),this,SLOT(contextLineEndChanged(int))); |
323 | connect(ContextAttribute,SIGNAL(activated(int)),this,SLOT(contextAttributeChanged(int))); | 323 | connect(ContextAttribute,SIGNAL(activated(int)),this,SLOT(contextAttributeChanged(int))); |
324 | } | 324 | } |
325 | else | 325 | else |
326 | kdDebug(13010)<<"initContextOptions: Widget is 0"<<endl; | 326 | kdDebug(13010)<<"initContextOptions: Widget is 0"<<endl; |
327 | } | 327 | } |
328 | 328 | ||
329 | 329 | ||
330 | void HlEditDialog::insertTranslationList(QString tag, QString trans,int length) | 330 | void HlEditDialog::insertTranslationList(QString tag, QString trans,int length) |
331 | { | 331 | { |
332 | ItemInfo data(trans,length); | 332 | ItemInfo data(trans,length); |
333 | id2tag.insert(transTableCnt,tag); | 333 | id2tag.insert(transTableCnt,tag); |
334 | id2info.insert(transTableCnt,data); | 334 | id2info.insert(transTableCnt,data); |
335 | tag2id.insert(tag,transTableCnt); | 335 | tag2id.insert(tag,transTableCnt); |
336 | transTableCnt++; | 336 | transTableCnt++; |
337 | } | 337 | } |
338 | 338 | ||
339 | 339 | ||
340 | void HlEditDialog::initItemOptions(QVBox *co) | 340 | void HlEditDialog::initItemOptions(QVBox *co) |
341 | { | 341 | { |
342 | if (co!=0) | 342 | if (co!=0) |
343 | { | 343 | { |
344 | QHBox *tmp = new QHBox(co); | 344 | QHBox *tmp = new QHBox(co); |
345 | (void) new QLabel(i18n("Type:"),tmp); | 345 | (void) new QLabel(i18n("Type:"),tmp); |
346 | ItemType = new QComboBox(tmp); | 346 | ItemType = new QComboBox(tmp); |
347 | tmp= new QHBox(co); | 347 | tmp= new QHBox(co); |
348 | (void) new QLabel(i18n("Parameter:"),tmp); | 348 | (void) new QLabel(i18n("Parameter:"),tmp); |
349 | ItemParameter= new QLineEdit(tmp); | 349 | ItemParameter= new QLineEdit(tmp); |
350 | tmp= new QHBox(co); | 350 | tmp= new QHBox(co); |
351 | (void) new QLabel(i18n("Attribute:"),tmp); | 351 | (void) new QLabel(i18n("Attribute:"),tmp); |
352 | ItemAttribute= new QComboBox(tmp); | 352 | ItemAttribute= new QComboBox(tmp); |
353 | (void) new QLabel(i18n("Context switch:"),tmp); | 353 | (void) new QLabel(i18n("Context switch:"),tmp); |
354 | ItemContext = new QComboBox(tmp); | 354 | ItemContext = new QComboBox(tmp); |
355 | co->setSpacing(15); | 355 | co->setSpacing(15); |
356 | QPushButton *delItem=new QPushButton(i18n("Delete this item"),co); | 356 | QPushButton *delItem=new QPushButton(i18n("Delete this item"),co); |
357 | 357 | ||
358 | /* init translation lists */ | 358 | /* init translation lists */ |
359 | insertTranslationList("CharDetect","CharDetect",1); | 359 | insertTranslationList("CharDetect","CharDetect",1); |
360 | insertTranslationList("2CharDetect","2CharDetect",2); | 360 | insertTranslationList("2CharDetect","2CharDetect",2); |
361 | insertTranslationList("RangeDetect","RangeDetect",2); | 361 | insertTranslationList("RangeDetect","RangeDetect",2); |
362 | insertTranslationList("StringDetect","StringDetect",-1); | 362 | insertTranslationList("StringDetect","StringDetect",-1); |
363 | insertTranslationList("AnyChar","AnyChar",-1); | 363 | insertTranslationList("AnyChar","AnyChar",-1); |
364 | insertTranslationList("RegExpr","RegExpr",-1); | 364 | insertTranslationList("RegExpr","RegExpr",-1); |
365 | insertTranslationList("Int","Int",0); | 365 | insertTranslationList("Int","Int",0); |
366 | insertTranslationList("Float","Float",0); | 366 | insertTranslationList("Float","Float",0); |
367 | insertTranslationList("keyword","keyword",0); | 367 | insertTranslationList("keyword","keyword",0); |
368 | insertTranslationList("dataType","dataType",0); | 368 | insertTranslationList("dataType","dataType",0); |
369 | ItemType->clear(); | 369 | ItemType->clear(); |
370 | for (int i=0; i<transTableCnt; i++) ItemType->insertItem(id2info[i].trans_i18n); | 370 | for (int i=0; i<transTableCnt; i++) ItemType->insertItem(id2info[i].trans_i18n); |
371 | connect(ItemType,SIGNAL(activated(int)),this,SLOT(ItemTypeChanged(int))); | 371 | connect(ItemType,SIGNAL(activated(int)),this,SLOT(ItemTypeChanged(int))); |
372 | connect(ItemParameter,SIGNAL(textChanged(const QString&)),this,SLOT(ItemParameterChanged(const QString&))); | 372 | connect(ItemParameter,SIGNAL(textChanged(const QString&)),this,SLOT(ItemParameterChanged(const QString&))); |
373 | connect(ItemAttribute,SIGNAL(activated(int)),this,SLOT(ItemAttributeChanged(int))); | 373 | connect(ItemAttribute,SIGNAL(activated(int)),this,SLOT(ItemAttributeChanged(int))); |
374 | connect(ItemContext,SIGNAL(activated(int)),this,SLOT(ItemContextChanged(int))); | 374 | connect(ItemContext,SIGNAL(activated(int)),this,SLOT(ItemContextChanged(int))); |
375 | } | 375 | } |
376 | else | 376 | else |
377 | kdDebug(13010)<<"initItemOptions: Widget is 0"<<endl; | 377 | kdDebug(13010)<<"initItemOptions: Widget is 0"<<endl; |
378 | } | 378 | } |
379 | 379 | ||
380 | void HlEditDialog::loadFromDocument(HlData *hl) | 380 | void HlEditDialog::loadFromDocument(HlData *hl) |
381 | { | 381 | { |
382 | struct syntaxContextData *data; | 382 | struct syntaxContextData *data; |
383 | QListViewItem *last=0,*lastsub=0; | 383 | QListViewItem *last=0,*lastsub=0; |
384 | 384 | ||
385 | HlManager::self()->syntax->setIdentifier(hl->identifier); | 385 | HlManager::self()->syntax->setIdentifier(hl->identifier); |
diff --git a/noncore/apps/tinykate/libkate/document/katedocument.cpp b/noncore/apps/tinykate/libkate/document/katedocument.cpp index f05e21a..0c742d7 100644 --- a/noncore/apps/tinykate/libkate/document/katedocument.cpp +++ b/noncore/apps/tinykate/libkate/document/katedocument.cpp | |||
@@ -75,193 +75,193 @@ | |||
75 | #include "../view/kateview.h" | 75 | #include "../view/kateview.h" |
76 | #include "katebuffer.h" | 76 | #include "katebuffer.h" |
77 | #include "katetextline.h" | 77 | #include "katetextline.h" |
78 | 78 | ||
79 | #include "katecmd.h" | 79 | #include "katecmd.h" |
80 | 80 | ||
81 | KateAction::KateAction(Action a, PointStruc &cursor, int len, const QString &text) | 81 | KateAction::KateAction(Action a, PointStruc &cursor, int len, const QString &text) |
82 | : action(a), cursor(cursor), len(len), text(text) { | 82 | : action(a), cursor(cursor), len(len), text(text) { |
83 | } | 83 | } |
84 | 84 | ||
85 | KateActionGroup::KateActionGroup(PointStruc &aStart, int type) | 85 | KateActionGroup::KateActionGroup(PointStruc &aStart, int type) |
86 | : start(aStart), action(0L), undoType(type) { | 86 | : start(aStart), action(0L), undoType(type) { |
87 | } | 87 | } |
88 | 88 | ||
89 | KateActionGroup::~KateActionGroup() { | 89 | KateActionGroup::~KateActionGroup() { |
90 | KateAction *current, *next; | 90 | KateAction *current, *next; |
91 | 91 | ||
92 | current = action; | 92 | current = action; |
93 | while (current) { | 93 | while (current) { |
94 | next = current->next; | 94 | next = current->next; |
95 | delete current; | 95 | delete current; |
96 | current = next; | 96 | current = next; |
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
100 | void KateActionGroup::insertAction(KateAction *a) { | 100 | void KateActionGroup::insertAction(KateAction *a) { |
101 | a->next = action; | 101 | a->next = action; |
102 | action = a; | 102 | action = a; |
103 | } | 103 | } |
104 | 104 | ||
105 | const char * KateActionGroup::typeName(int type) | 105 | const char * KateActionGroup::typeName(int type) |
106 | { | 106 | { |
107 | // return a short text description of the given undo group type suitable for a menu | 107 | // return a short text description of the given undo group type suitable for a menu |
108 | // not the lack of i18n's, the caller is expected to handle translation | 108 | // not the lack of i18n's, the caller is expected to handle translation |
109 | switch (type) { | 109 | switch (type) { |
110 | case ugPaste : return "Paste Text"; | 110 | case ugPaste : return "Paste Text"; |
111 | case ugDelBlock : return "Selection Overwrite"; | 111 | case ugDelBlock : return "Selection Overwrite"; |
112 | case ugIndent : return "Indent"; | 112 | case ugIndent : return "Indent"; |
113 | case ugUnindent : return "Unindent"; | 113 | case ugUnindent : return "Unindent"; |
114 | case ugComment : return "Comment"; | 114 | case ugComment : return "Comment"; |
115 | case ugUncomment : return "Uncomment"; | 115 | case ugUncomment : return "Uncomment"; |
116 | case ugReplace : return "Text Replace"; | 116 | case ugReplace : return "Text Replace"; |
117 | case ugSpell : return "Spell Check"; | 117 | case ugSpell : return "Spell Check"; |
118 | case ugInsChar : return "Typing"; | 118 | case ugInsChar : return "Typing"; |
119 | case ugDelChar : return "Delete Text"; | 119 | case ugDelChar : return "Delete Text"; |
120 | case ugInsLine : return "New Line"; | 120 | case ugInsLine : return "New Line"; |
121 | case ugDelLine : return "Delete Line"; | 121 | case ugDelLine : return "Delete Line"; |
122 | } | 122 | } |
123 | return ""; | 123 | return ""; |
124 | } | 124 | } |
125 | 125 | ||
126 | const int KateDocument::maxAttribs = 32; | 126 | const int KateDocument::maxAttribs = 32; |
127 | 127 | ||
128 | QStringList KateDocument::searchForList = QStringList(); | 128 | QStringList KateDocument::searchForList = QStringList(); |
129 | QStringList KateDocument::replaceWithList = QStringList(); | 129 | QStringList KateDocument::replaceWithList = QStringList(); |
130 | 130 | ||
131 | uint KateDocument::uniqueID = 0; | 131 | uint KateDocument::uniqueID = 0; |
132 | 132 | ||
133 | QPtrDict<KateDocument::KateDocPrivate>* KateDocument::d_ptr = 0; | 133 | QPtrDict<KateDocument::KateDocPrivate>* KateDocument::d_ptr = 0; |
134 | 134 | ||
135 | 135 | ||
136 | KateDocument::KateDocument(bool bSingleViewMode, bool bBrowserView, | 136 | KateDocument::KateDocument(bool bSingleViewMode, bool bBrowserView, |
137 | QWidget *parentWidget, const char *widgetName, | 137 | QWidget *parentWidget, const char *widgetName, |
138 | QObject *, const char *) | 138 | QObject *, const char *) |
139 | : Kate::Document (), | 139 | : Kate::Document (), |
140 | myFont(KGlobalSettings::generalFont()), myFontBold(KGlobalSettings::generalFont()), myFontItalic(KGlobalSettings::generalFont()), myFontBI(KGlobalSettings::generalFont()), | 140 | myFont(KGlobalSettings::generalFont()), myFontBold(KGlobalSettings::generalFont()), myFontItalic(KGlobalSettings::generalFont()), myFontBI(KGlobalSettings::generalFont()), |
141 | myFontMetrics (myFont), myFontMetricsBold (myFontBold), myFontMetricsItalic (myFontItalic), myFontMetricsBI (myFontBI), | 141 | myFontMetrics (myFont), myFontMetricsBold (myFontBold), myFontMetricsItalic (myFontItalic), myFontMetricsBI (myFontBI), |
142 | hlManager(HlManager::self ()) | 142 | hlManager(HlManager::self ()) |
143 | { | 143 | { |
144 | 144 | ||
145 | d(this)->hlSetByUser = false; | 145 | d(this)->hlSetByUser = false; |
146 | PreHighlightedTill=0; | 146 | PreHighlightedTill=0; |
147 | RequestPreHighlightTill=0; | 147 | RequestPreHighlightTill=0; |
148 | 148 | ||
149 | m_bSingleViewMode=bSingleViewMode; | 149 | m_bSingleViewMode=bSingleViewMode; |
150 | m_bBrowserView = bBrowserView; | 150 | m_bBrowserView = bBrowserView; |
151 | 151 | ||
152 | m_url = QString::null; | 152 | m_url = QString::null; |
153 | 153 | ||
154 | // NOTE: QFont::CharSet doesn't provide all the charsets KDE supports | 154 | // NOTE: QFont::CharSet doesn't provide all the charsets KDE supports |
155 | // (esp. it doesn't distinguish between UTF-8 and iso10646-1) | 155 | // (esp. it doesn't distinguish between UTF-8 and iso10646-1) |
156 | 156 | ||
157 | myEncoding = QString::fromLatin1(QTextCodec::codecForLocale()->name()); | 157 | myEncoding = QString::fromLatin1(QTextCodec::codecForLocale()->name()); |
158 | 158 | ||
159 | maxLength = -1; | 159 | maxLength = -1; |
160 | 160 | ||
161 | setFont (KGlobalSettings::generalFont()); | 161 | setFont (KGlobalSettings::generalFont()); |
162 | 162 | ||
163 | myDocID = uniqueID; | 163 | myDocID = uniqueID; |
164 | uniqueID++; | 164 | uniqueID++; |
165 | 165 | ||
166 | myDocName = QString (""); | 166 | myDocName = QString (""); |
167 | fileInfo = new QFileInfo (); | 167 | fileInfo = new QFileInfo (); |
168 | 168 | ||
169 | myCmd = new KateCmd (this); | 169 | myCmd = new KateCmd (this); |
170 | 170 | ||
171 | connect(this,SIGNAL(modifiedChanged ()),this,SLOT(slotModChanged ())); | 171 | connect(this,SIGNAL(modifiedChanged()),this,SLOT(slotModChanged())); |
172 | 172 | ||
173 | buffer = new KWBuffer; | 173 | buffer = new KWBuffer; |
174 | connect(buffer, SIGNAL(linesChanged(int)), this, SLOT(slotBufferChanged())); | 174 | connect(buffer, SIGNAL(linesChanged(int)), this, SLOT(slotBufferChanged())); |
175 | // connect(buffer, SIGNAL(textChanged()), this, SIGNAL(textChanged())); | 175 | // connect(buffer, SIGNAL(textChanged()), this, SIGNAL(textChanged())); |
176 | connect(buffer, SIGNAL(needHighlight(long,long)),this,SLOT(slotBufferHighlight(long,long))); | 176 | connect(buffer, SIGNAL(needHighlight(long,long)),this,SLOT(slotBufferHighlight(long,long))); |
177 | 177 | ||
178 | colors[0] = KGlobalSettings::baseColor(); | 178 | colors[0] = KGlobalSettings::baseColor(); |
179 | colors[1] = KGlobalSettings::highlightColor(); | 179 | colors[1] = KGlobalSettings::highlightColor(); |
180 | 180 | ||
181 | m_attribs = new Attribute[maxAttribs]; | 181 | m_attribs = new Attribute[maxAttribs]; |
182 | 182 | ||
183 | m_highlight = 0L; | 183 | m_highlight = 0L; |
184 | tabChars = 8; | 184 | tabChars = 8; |
185 | 185 | ||
186 | m_singleSelection = false; | 186 | m_singleSelection = false; |
187 | 187 | ||
188 | newDocGeometry = false; | 188 | newDocGeometry = false; |
189 | readOnly = false; | 189 | readOnly = false; |
190 | newDoc = false; | 190 | newDoc = false; |
191 | 191 | ||
192 | modified = false; | 192 | modified = false; |
193 | 193 | ||
194 | undoList.setAutoDelete(true); | 194 | undoList.setAutoDelete(true); |
195 | undoState = 0; | 195 | undoState = 0; |
196 | undoSteps = 50; | 196 | undoSteps = 50; |
197 | 197 | ||
198 | pseudoModal = 0L; | 198 | pseudoModal = 0L; |
199 | clear(); | 199 | clear(); |
200 | 200 | ||
201 | setHighlight(0); //calls updateFontData() | 201 | setHighlight(0); //calls updateFontData() |
202 | // if the user changes the highlight with the dialog, notify the doc | 202 | // if the user changes the highlight with the dialog, notify the doc |
203 | connect(hlManager,SIGNAL(changed()),SLOT(hlChanged())); | 203 | connect(hlManager,SIGNAL(changed()),SLOT(hlChanged())); |
204 | 204 | ||
205 | newDocGeometry = false; | 205 | newDocGeometry = false; |
206 | 206 | ||
207 | readConfig(); | 207 | readConfig(); |
208 | 208 | ||
209 | setReadOnly(false); | 209 | setReadOnly(false); |
210 | } | 210 | } |
211 | 211 | ||
212 | void KateDocument::setDontChangeHlOnSave() | 212 | void KateDocument::setDontChangeHlOnSave() |
213 | { | 213 | { |
214 | d(this)->hlSetByUser = true; | 214 | d(this)->hlSetByUser = true; |
215 | } | 215 | } |
216 | 216 | ||
217 | void KateDocument::setFont (QFont font) | 217 | void KateDocument::setFont (QFont font) |
218 | { | 218 | { |
219 | kdDebug()<<"Kate:: setFont"<<endl; | 219 | kdDebug()<<"Kate:: setFont"<<endl; |
220 | int oldwidth=myFontMetrics.width('W'); //Quick & Dirty Hack (by JoWenn) //Remove in KDE 3.0 | 220 | int oldwidth=myFontMetrics.width('W'); //Quick & Dirty Hack (by JoWenn) //Remove in KDE 3.0 |
221 | myFont = font; | 221 | myFont = font; |
222 | myFontBold = QFont (font); | 222 | myFontBold = QFont (font); |
223 | myFontBold.setBold (true); | 223 | myFontBold.setBold (true); |
224 | 224 | ||
225 | myFontItalic = QFont (font); | 225 | myFontItalic = QFont (font); |
226 | myFontItalic.setItalic (true); | 226 | myFontItalic.setItalic (true); |
227 | 227 | ||
228 | myFontBI = QFont (font); | 228 | myFontBI = QFont (font); |
229 | myFontBI.setBold (true); | 229 | myFontBI.setBold (true); |
230 | myFontBI.setItalic (true); | 230 | myFontBI.setItalic (true); |
231 | 231 | ||
232 | myFontMetrics = CachedFontMetrics (myFont); | 232 | myFontMetrics = CachedFontMetrics (myFont); |
233 | myFontMetricsBold = CachedFontMetrics (myFontBold); | 233 | myFontMetricsBold = CachedFontMetrics (myFontBold); |
234 | myFontMetricsItalic = CachedFontMetrics (myFontItalic); | 234 | myFontMetricsItalic = CachedFontMetrics (myFontItalic); |
235 | myFontMetricsBI = CachedFontMetrics (myFontBI); | 235 | myFontMetricsBI = CachedFontMetrics (myFontBI); |
236 | int newwidth=myFontMetrics.width('W'); //Quick & Dirty Hack (by JoWenn) //Remove in KDE 3.0 | 236 | int newwidth=myFontMetrics.width('W'); //Quick & Dirty Hack (by JoWenn) //Remove in KDE 3.0 |
237 | maxLength=maxLength*(float)newwidth/(float)oldwidth; //Quick & Dirty Hack (by JoWenn) //Remove in KDE 3.0 | 237 | maxLength=maxLength*(float)newwidth/(float)oldwidth; //Quick & Dirty Hack (by JoWenn) //Remove in KDE 3.0 |
238 | 238 | ||
239 | updateFontData(); | 239 | updateFontData(); |
240 | updateViews(); //Quick & Dirty Hack (by JoWenn) //Remove in KDE 3.0 | 240 | updateViews(); //Quick & Dirty Hack (by JoWenn) //Remove in KDE 3.0 |
241 | 241 | ||
242 | } | 242 | } |
243 | 243 | ||
244 | long KateDocument::needPreHighlight(long till) | 244 | long KateDocument::needPreHighlight(long till) |
245 | { | 245 | { |
246 | int max=numLines()-1; | 246 | int max=numLines()-1; |
247 | if (till>max) | 247 | if (till>max) |
248 | { | 248 | { |
249 | till=max; | 249 | till=max; |
250 | } | 250 | } |
251 | if (PreHighlightedTill>=till) return -1; | 251 | if (PreHighlightedTill>=till) return -1; |
252 | 252 | ||
253 | long tmp=RequestPreHighlightTill; | 253 | long tmp=RequestPreHighlightTill; |
254 | if (RequestPreHighlightTill<till) | 254 | if (RequestPreHighlightTill<till) |
255 | { | 255 | { |
256 | RequestPreHighlightTill=till; | 256 | RequestPreHighlightTill=till; |
257 | if (tmp<=PreHighlightedTill) QTimer::singleShot(10,this,SLOT(doPreHighlight())); | 257 | if (tmp<=PreHighlightedTill) QTimer::singleShot(10,this,SLOT(doPreHighlight())); |
258 | } | 258 | } |
259 | return RequestPreHighlightTill; | 259 | return RequestPreHighlightTill; |
260 | } | 260 | } |
261 | 261 | ||
262 | void KateDocument::doPreHighlight() | 262 | void KateDocument::doPreHighlight() |
263 | { | 263 | { |
264 | int from = PreHighlightedTill; | 264 | int from = PreHighlightedTill; |
265 | int till = PreHighlightedTill+200; | 265 | int till = PreHighlightedTill+200; |
266 | int max = numLines()-1; | 266 | int max = numLines()-1; |
267 | if (till > max) | 267 | if (till > max) |
diff --git a/noncore/apps/tinykate/libkate/view/kateviewdialog.cpp b/noncore/apps/tinykate/libkate/view/kateviewdialog.cpp index a85fb87..8e68262 100644 --- a/noncore/apps/tinykate/libkate/view/kateviewdialog.cpp +++ b/noncore/apps/tinykate/libkate/view/kateviewdialog.cpp | |||
@@ -442,130 +442,130 @@ EditConfigTab::EditConfigTab(QWidget *parent, KateView *view) | |||
442 | encoding->insertStringList (KGlobal::charsets()->availableEncodingNames()); | 442 | encoding->insertStringList (KGlobal::charsets()->availableEncodingNames()); |
443 | encoding->setCurrentItem (KGlobal::charsets()->availableEncodingNames().findIndex(view->doc()->encoding())); | 443 | encoding->setCurrentItem (KGlobal::charsets()->availableEncodingNames().findIndex(view->doc()->encoding())); |
444 | #endif | 444 | #endif |
445 | leLayout->addStretch(); | 445 | leLayout->addStretch(); |
446 | 446 | ||
447 | // What is this? help | 447 | // What is this? help |
448 | QWhatsThis::add(opt[0], i18n("Word wrap is a feature that causes the editor to automatically start a new line of text and move (wrap) the cursor to the beginning of that new line. KateView will automatically start a new line of text when the current line reaches the length specified by the Wrap Words At: option.<p><b>NOTE:<b> Word Wrap will not change existing lines or wrap them for easy reading as in some applications.")); | 448 | QWhatsThis::add(opt[0], i18n("Word wrap is a feature that causes the editor to automatically start a new line of text and move (wrap) the cursor to the beginning of that new line. KateView will automatically start a new line of text when the current line reaches the length specified by the Wrap Words At: option.<p><b>NOTE:<b> Word Wrap will not change existing lines or wrap them for easy reading as in some applications.")); |
449 | QWhatsThis::add(e1, i18n("If the Word Wrap option is selected this entry determines the length (in characters) at which the editor will automatically start a new line.")); | 449 | QWhatsThis::add(e1, i18n("If the Word Wrap option is selected this entry determines the length (in characters) at which the editor will automatically start a new line.")); |
450 | QWhatsThis::add(opt[1], i18n("KateView will replace any tabs with the number of spaces indicated in the Tab Width: entry.")); | 450 | QWhatsThis::add(opt[1], i18n("KateView will replace any tabs with the number of spaces indicated in the Tab Width: entry.")); |
451 | QWhatsThis::add(e2, i18n("If the Replace Tabs By Spaces option is selected this entry determines the number of spaces with which the editor will automatically replace tabs.")); | 451 | QWhatsThis::add(e2, i18n("If the Replace Tabs By Spaces option is selected this entry determines the number of spaces with which the editor will automatically replace tabs.")); |
452 | QWhatsThis::add(opt[2], i18n("KateView will automatically eliminate extra spaces at the ends of lines of text.")); | 452 | QWhatsThis::add(opt[2], i18n("KateView will automatically eliminate extra spaces at the ends of lines of text.")); |
453 | QWhatsThis::add(opt[3], i18n("When the user types a left bracket ([,(, or {) KateView automatically enters the right bracket (}, ), or ]) to the right of the cursor.")); | 453 | QWhatsThis::add(opt[3], i18n("When the user types a left bracket ([,(, or {) KateView automatically enters the right bracket (}, ), or ]) to the right of the cursor.")); |
454 | QWhatsThis::add(opt[4], i18n("Checking this will cause sequences of similar actions to be undone at once.")); | 454 | QWhatsThis::add(opt[4], i18n("Checking this will cause sequences of similar actions to be undone at once.")); |
455 | QWhatsThis::add(opt[5], i18n("The editor will display a symbol to indicate the presence of a tab in the text.")); | 455 | QWhatsThis::add(opt[5], i18n("The editor will display a symbol to indicate the presence of a tab in the text.")); |
456 | QWhatsThis::add(opt[6], i18n("Not yet implemented.")); | 456 | QWhatsThis::add(opt[6], i18n("Not yet implemented.")); |
457 | QWhatsThis::add(opt[7], i18n("If this is selected, the insertion cursor will be moved to the first/last line when pressing the page up/down buttons.<p>If not selected, it will remain at it's relative position in the visible text.")); | 457 | QWhatsThis::add(opt[7], i18n("If this is selected, the insertion cursor will be moved to the first/last line when pressing the page up/down buttons.<p>If not selected, it will remain at it's relative position in the visible text.")); |
458 | QWhatsThis::add(e3, i18n("Sets the number of undo/redo steps to record. More steps uses more memory.")); | 458 | QWhatsThis::add(e3, i18n("Sets the number of undo/redo steps to record. More steps uses more memory.")); |
459 | QWhatsThis::add(opt[8], i18n("When on, moving the insertion cursor using the <b>Left</b> and <b>Right</b> keys will go on to previous/next line at beginning/end of the line, similar to most editors.<p>When off, the insertion cursor cannot be moved left of the line start, but it can be moved off the line end, which can be very handy for programmers.")); | 459 | QWhatsThis::add(opt[8], i18n("When on, moving the insertion cursor using the <b>Left</b> and <b>Right</b> keys will go on to previous/next line at beginning/end of the line, similar to most editors.<p>When off, the insertion cursor cannot be moved left of the line start, but it can be moved off the line end, which can be very handy for programmers.")); |
460 | } | 460 | } |
461 | 461 | ||
462 | void EditConfigTab::getData(KateView *view) | 462 | void EditConfigTab::getData(KateView *view) |
463 | { | 463 | { |
464 | int configFlags, z; | 464 | int configFlags, z; |
465 | 465 | ||
466 | configFlags = view->config(); | 466 | configFlags = view->config(); |
467 | for (z = 1; z < numFlags; z++) { | 467 | for (z = 1; z < numFlags; z++) { |
468 | configFlags &= ~flags[z]; | 468 | configFlags &= ~flags[z]; |
469 | if (opt[z]->isChecked()) configFlags |= flags[z]; | 469 | if (opt[z]->isChecked()) configFlags |= flags[z]; |
470 | } | 470 | } |
471 | view->setConfig(configFlags); | 471 | view->setConfig(configFlags); |
472 | 472 | ||
473 | view->setEncoding (encoding->currentText()); | 473 | view->setEncoding (encoding->currentText()); |
474 | view->doc()->setWordWrapAt(e1->value()); | 474 | view->doc()->setWordWrapAt(e1->value()); |
475 | view->doc()->setWordWrap (opt[0]->isChecked()); | 475 | view->doc()->setWordWrap (opt[0]->isChecked()); |
476 | view->setTabWidth(e2->value()); | 476 | view->setTabWidth(e2->value()); |
477 | view->setUndoSteps(e3->value()); | 477 | view->setUndoSteps(e3->value()); |
478 | } | 478 | } |
479 | 479 | ||
480 | ColorConfig::ColorConfig( QWidget *parent, char *name ) | 480 | ColorConfig::ColorConfig( QWidget *parent, char *name ) |
481 | : QWidget( parent, name ) | 481 | : QWidget( parent, name ) |
482 | { | 482 | { |
483 | QGridLayout *glay = new QGridLayout( this, 6, 2, 0, KDialog::spacingHint()); | 483 | QGridLayout *glay = new QGridLayout( this, 6, 2, 0, KDialog::spacingHint()); |
484 | glay->setColStretch(1,1); | 484 | glay->setColStretch(1,1); |
485 | glay->setRowStretch(5,1); | 485 | glay->setRowStretch(5,1); |
486 | 486 | ||
487 | QLabel *label; | 487 | QLabel *label; |
488 | 488 | ||
489 | label = new QLabel( i18n("Background:"), this); | 489 | label = new QLabel( i18n("Background:"), this); |
490 | label->setAlignment( AlignRight|AlignVCenter ); | 490 | label->setAlignment( AlignRight|AlignVCenter ); |
491 | m_back = new KColorButton( this ); | 491 | m_back = new KColorButton( this ); |
492 | glay->addWidget( label, 0, 0 ); | 492 | glay->addWidget( label, 0, 0 ); |
493 | glay->addWidget( m_back, 0, 1 ); | 493 | glay->addWidget( m_back, 0, 1 ); |
494 | 494 | ||
495 | label = new QLabel( i18n("Selected:"), this); | 495 | label = new QLabel( i18n("Selected:"), this); |
496 | label->setAlignment( AlignRight|AlignVCenter ); | 496 | label->setAlignment( AlignRight|AlignVCenter ); |
497 | m_selected = new KColorButton( this ); | 497 | m_selected = new KColorButton( this ); |
498 | glay->addWidget( label, 2, 0 ); | 498 | glay->addWidget( label, 2, 0 ); |
499 | glay->addWidget( m_selected, 2, 1 ); | 499 | glay->addWidget( m_selected, 2, 1 ); |
500 | 500 | ||
501 | // QWhatsThis help | 501 | // QWhatsThis help |
502 | QWhatsThis::add(m_back, i18n("Sets the background color of the editing area")); | 502 | QWhatsThis::add(m_back, i18n("Sets the background color of the editing area")); |
503 | QWhatsThis::add(m_selected, i18n("Sets the background color of the selection. To set the text color for selected text, use the "<b>Configure Highlighting</b>" dialog.")); | 503 | QWhatsThis::add(m_selected, i18n("Sets the background color of the selection. To set the text color for selected text, use the "<b>Configure Highlighting</b>" dialog.")); |
504 | } | 504 | } |
505 | 505 | ||
506 | 506 | ||
507 | ColorConfig::~ColorConfig() | 507 | ColorConfig::~ColorConfig() |
508 | { | 508 | { |
509 | } | 509 | } |
510 | 510 | ||
511 | void ColorConfig::setColors(QColor *colors) | 511 | void ColorConfig::setColors(QColor *colors) |
512 | { | 512 | { |
513 | m_back->setColor( colors[0] ); | 513 | m_back->setColor( colors[0] ); |
514 | m_selected->setColor( colors[1] ); | 514 | m_selected->setColor( colors[1] ); |
515 | } | 515 | } |
516 | 516 | ||
517 | void ColorConfig::getColors(QColor *colors) | 517 | void ColorConfig::getColors(QColor *colors) |
518 | { | 518 | { |
519 | colors[0] = m_back->color(); | 519 | colors[0] = m_back->color(); |
520 | colors[1] = m_selected->color(); | 520 | colors[1] = m_selected->color(); |
521 | } | 521 | } |
522 | 522 | ||
523 | FontConfig::FontConfig( QWidget *parent, char *name ) | 523 | FontConfig::FontConfig( QWidget *parent, char *name ) |
524 | : QWidget( parent, name ) | 524 | : QWidget( parent, name ) |
525 | { | 525 | { |
526 | // sizemanagment | 526 | // sizemanagment |
527 | QGridLayout *grid = new QGridLayout( this, 1, 1 ); | 527 | QGridLayout *grid = new QGridLayout( this, 1, 1 ); |
528 | // QString familyStr = cfg. readEntry ( "FontFamily", "Helvetica" ); | 528 | // QString familyStr = cfg. readEntry ( "FontFamily", "Helvetica" ); |
529 | // QString styleStr = cfg. readEntry ( "FontStyle", "Regular" ); | 529 | // QString styleStr = cfg. readEntry ( "FontStyle", "Regular" ); |
530 | // int size = cfg. readNumEntry ( "FontSize", 10 ); | 530 | // int size = cfg. readNumEntry ( "FontSize", 10 ); |
531 | // OFontSelector *m_fontselect; | 531 | // OFontSelector *m_fontselect; |
532 | 532 | ||
533 | m_fontselect = new Opie::OFontSelector ( false, this, "FontTab" ); | 533 | m_fontselect = new Opie::OFontSelector ( false, this, "FontTab" ); |
534 | // m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); | 534 | // m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); |
535 | // QWhatsThis::add( m_fontselect, | 535 | // QWhatsThis::add( m_fontselect, |
536 | // tr( "Select the desired name, style and size of the default font applications will use." ) ); | 536 | // tr( "Select the desired name, style and size of the default font applications will use." ) ); |
537 | 537 | ||
538 | connect( m_fontselect, SIGNAL( fontSelected ( const QFont & )), | 538 | connect( m_fontselect, SIGNAL( fontSelected(const QFont&)), |
539 | this, SLOT( slotFontSelected( const QFont & ))); | 539 | this, SLOT( slotFontSelected(const QFont&))); |
540 | grid->addWidget( m_fontselect, 0, 0); | 540 | grid->addWidget( m_fontselect, 0, 0); |
541 | 541 | ||
542 | 542 | ||
543 | // #if 0 | 543 | // #if 0 |
544 | // m_fontchooser = new KFontChooser ( this ); | 544 | // m_fontchooser = new KFontChooser ( this ); |
545 | // m_fontchooser->enableColumn(KFontChooser::StyleList, false); | 545 | // m_fontchooser->enableColumn(KFontChooser::StyleList, false); |
546 | // grid->addWidget( m_fontchooser, 0, 0); | 546 | // grid->addWidget( m_fontchooser, 0, 0); |
547 | 547 | ||
548 | // connect (m_fontchooser, SIGNAL (fontSelected( const QFont & )), this, SLOT (slotFontSelected( const QFont & ))); | 548 | // connect (m_fontchooser, SIGNAL (fontSelected(const QFont&)), this, SLOT (slotFontSelected(const QFont&))); |
549 | // #endif | 549 | // #endif |
550 | } | 550 | } |
551 | 551 | ||
552 | FontConfig::~FontConfig() | 552 | FontConfig::~FontConfig() |
553 | { | 553 | { |
554 | } | 554 | } |
555 | 555 | ||
556 | void FontConfig::setFont ( const QFont &font ) | 556 | void FontConfig::setFont ( const QFont &font ) |
557 | { | 557 | { |
558 | //#if 0 | 558 | //#if 0 |
559 | m_fontselect->setFont (font); | 559 | m_fontselect->setFont (font); |
560 | myFont = font; | 560 | myFont = font; |
561 | //#endif | 561 | //#endif |
562 | } | 562 | } |
563 | 563 | ||
564 | void FontConfig::slotFontSelected( const QFont &font ) | 564 | void FontConfig::slotFontSelected( const QFont &font ) |
565 | { | 565 | { |
566 | myFont = font; | 566 | myFont = font; |
567 | } | 567 | } |
568 | 568 | ||
569 | 569 | ||
570 | 570 | ||
571 | 571 | ||
diff --git a/noncore/apps/tinykate/tinykate.cpp b/noncore/apps/tinykate/tinykate.cpp index 19a0127..32c1eab 100644 --- a/noncore/apps/tinykate/tinykate.cpp +++ b/noncore/apps/tinykate/tinykate.cpp | |||
@@ -1,141 +1,141 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | tinykate.cpp | 2 | tinykate.cpp |
3 | Tiny KATE mainwindow | 3 | Tiny KATE mainwindow |
4 | ------------------- | 4 | ------------------- |
5 | begin : November 2002 | 5 | begin : November 2002 |
6 | copyright : (C) 2002 by Joseph Wenninger <jowenn@kde.org> | 6 | copyright : (C) 2002 by Joseph Wenninger <jowenn@kde.org> |
7 | ***************************************************************************/ | 7 | ***************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free softwaSre; you can redistribute it and/or modify * | 11 | * This program is free softwaSre; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation. * | 13 | * the Free Software Foundation. * |
14 | * ONLY VERSION 2 OF THE LICENSE IS APPLICABLE * | 14 | * ONLY VERSION 2 OF THE LICENSE IS APPLICABLE * |
15 | * * | 15 | * * |
16 | ***************************************************************************/ | 16 | ***************************************************************************/ |
17 | #include <qaction.h> | 17 | #include <qaction.h> |
18 | #include <qtoolbutton.h> | 18 | #include <qtoolbutton.h> |
19 | #include <qmenubar.h> | 19 | #include <qmenubar.h> |
20 | #include <qpe/resource.h> | 20 | #include <qpe/resource.h> |
21 | #include <qpe/qpeapplication.h> | 21 | #include <qpe/qpeapplication.h> |
22 | 22 | ||
23 | #include <opie2/ofiledialog.h> | 23 | #include <opie2/ofiledialog.h> |
24 | 24 | ||
25 | #include "tinykate.h" | 25 | #include "tinykate.h" |
26 | 26 | ||
27 | #include <katedocument.h> | 27 | #include <katedocument.h> |
28 | #include <kglobal.h> | 28 | #include <kglobal.h> |
29 | 29 | ||
30 | TinyKate::TinyKate( QWidget *parent, const char *name, WFlags f) : | 30 | TinyKate::TinyKate( QWidget *parent, const char *name, WFlags f) : |
31 | QMainWindow( parent, name, f ) | 31 | QMainWindow( parent, name, f ) |
32 | { | 32 | { |
33 | shutDown=false; | 33 | shutDown=false; |
34 | nextUnnamed=0; | 34 | nextUnnamed=0; |
35 | currentView=0; | 35 | currentView=0; |
36 | viewCount=0; | 36 | viewCount=0; |
37 | setCaption(tr("TinyKATE")); | 37 | setCaption(tr("TinyKATE")); |
38 | KGlobal::setAppName("TinyKATE"); | 38 | KGlobal::setAppName("TinyKATE"); |
39 | 39 | ||
40 | QMenuBar *mb = new QMenuBar( this ); | 40 | QMenuBar *mb = new QMenuBar( this ); |
41 | mb->setMargin( 0 ); | 41 | mb->setMargin( 0 ); |
42 | 42 | ||
43 | tabwidget=new OTabWidget(this); | 43 | tabwidget=new OTabWidget(this); |
44 | setCentralWidget(tabwidget); | 44 | setCentralWidget(tabwidget); |
45 | connect(tabwidget,SIGNAL(currentChanged( QWidget *)),this,SLOT(slotCurrentChanged(QWidget *))); | 45 | connect(tabwidget,SIGNAL(currentChanged(QWidget*)),this,SLOT(slotCurrentChanged(QWidget*))); |
46 | 46 | ||
47 | //FILE ACTIONS | 47 | //FILE ACTIONS |
48 | QPopupMenu *popup = new QPopupMenu( this ); | 48 | QPopupMenu *popup = new QPopupMenu( this ); |
49 | 49 | ||
50 | // Action for creating a new document | 50 | // Action for creating a new document |
51 | QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); | 51 | QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); |
52 | a->addTo( popup ); | 52 | a->addTo( popup ); |
53 | connect(a, SIGNAL(activated()), this, SLOT(slotNew())); | 53 | connect(a, SIGNAL(activated()), this, SLOT(slotNew())); |
54 | 54 | ||
55 | // Action for opening an exisiting document | 55 | // Action for opening an exisiting document |
56 | a = new QAction( tr( "Open" ),Resource::loadPixmap( "fileopen" ) , QString::null, 0, this, 0 ); | 56 | a = new QAction( tr( "Open" ),Resource::loadPixmap( "fileopen" ) , QString::null, 0, this, 0 ); |
57 | a->addTo(popup); | 57 | a->addTo(popup); |
58 | connect(a, SIGNAL(activated()), this, SLOT(slotOpen())); | 58 | connect(a, SIGNAL(activated()), this, SLOT(slotOpen())); |
59 | 59 | ||
60 | 60 | ||
61 | // Action for saving document | 61 | // Action for saving document |
62 | a = new QAction( tr( "Save" ), Resource::loadPixmap( "save" ) , QString::null, 0, this, 0 ); | 62 | a = new QAction( tr( "Save" ), Resource::loadPixmap( "save" ) , QString::null, 0, this, 0 ); |
63 | a->addTo(popup); | 63 | a->addTo(popup); |
64 | connect(a, SIGNAL(activated()), this, SLOT(slotSave())); | 64 | connect(a, SIGNAL(activated()), this, SLOT(slotSave())); |
65 | 65 | ||
66 | // Action for saving document to a new name | 66 | // Action for saving document to a new name |
67 | a = new QAction( tr( "Save As" ),Resource::loadPixmap( "save" ) , QString::null, 0, this, 0 ); | 67 | a = new QAction( tr( "Save As" ),Resource::loadPixmap( "save" ) , QString::null, 0, this, 0 ); |
68 | a->addTo(popup); | 68 | a->addTo(popup); |
69 | connect(a, SIGNAL(activated()), this, SLOT(slotSaveAs())); | 69 | connect(a, SIGNAL(activated()), this, SLOT(slotSaveAs())); |
70 | 70 | ||
71 | // Action for closing the currently active document | 71 | // Action for closing the currently active document |
72 | a = new QAction( tr( "Close" ), Resource::loadPixmap( "quit_icon" ) , QString::null, 0, this, 0 ); | 72 | a = new QAction( tr( "Close" ), Resource::loadPixmap( "quit_icon" ) , QString::null, 0, this, 0 ); |
73 | a->addTo(popup); | 73 | a->addTo(popup); |
74 | connect(a, SIGNAL(activated()), this, SLOT(slotClose())); | 74 | connect(a, SIGNAL(activated()), this, SLOT(slotClose())); |
75 | 75 | ||
76 | 76 | ||
77 | mb->insertItem(tr("File"),popup); | 77 | mb->insertItem(tr("File"),popup); |
78 | 78 | ||
79 | //EDIT ACTIONS | 79 | //EDIT ACTIONS |
80 | 80 | ||
81 | // Action for cutting text | 81 | // Action for cutting text |
82 | editCut = new QToolButton( 0 ); | 82 | editCut = new QToolButton( 0 ); |
83 | editCut->setAutoRaise( true ); | 83 | editCut->setAutoRaise( true ); |
84 | editCut->setIconSet( Resource::loadPixmap( "cut" ) ); | 84 | editCut->setIconSet( Resource::loadPixmap( "cut" ) ); |
85 | 85 | ||
86 | // Action for Copying text | 86 | // Action for Copying text |
87 | editCopy = new QToolButton( 0 ); | 87 | editCopy = new QToolButton( 0 ); |
88 | editCopy->setAutoRaise( true ); | 88 | editCopy->setAutoRaise( true ); |
89 | editCopy->setIconSet( Resource::loadPixmap( "copy" ) ); | 89 | editCopy->setIconSet( Resource::loadPixmap( "copy" ) ); |
90 | 90 | ||
91 | // Action for pasting text | 91 | // Action for pasting text |
92 | editPaste = new QToolButton( 0 ); | 92 | editPaste = new QToolButton( 0 ); |
93 | editPaste->setAutoRaise( true ); | 93 | editPaste->setAutoRaise( true ); |
94 | editPaste->setIconSet( Resource::loadPixmap( "paste" ) ); | 94 | editPaste->setIconSet( Resource::loadPixmap( "paste" ) ); |
95 | 95 | ||
96 | // Action for finding / replacing text | 96 | // Action for finding / replacing text |
97 | editFindReplace = new QToolButton( 0 ); | 97 | editFindReplace = new QToolButton( 0 ); |
98 | editFindReplace->setAutoRaise( true ); | 98 | editFindReplace->setAutoRaise( true ); |
99 | editFindReplace->setIconSet( Resource::loadPixmap("find") ); | 99 | editFindReplace->setIconSet( Resource::loadPixmap("find") ); |
100 | 100 | ||
101 | // Action for undo | 101 | // Action for undo |
102 | editUndo = new QToolButton( 0 ); | 102 | editUndo = new QToolButton( 0 ); |
103 | editUndo->setAutoRaise( true ); | 103 | editUndo->setAutoRaise( true ); |
104 | editUndo->setIconSet( Resource::loadPixmap( "undo" ) ); | 104 | editUndo->setIconSet( Resource::loadPixmap( "undo" ) ); |
105 | 105 | ||
106 | // Action for redo | 106 | // Action for redo |
107 | editRedo = new QToolButton( 0 ); | 107 | editRedo = new QToolButton( 0 ); |
108 | editRedo->setAutoRaise( true ); | 108 | editRedo->setAutoRaise( true ); |
109 | editRedo->setIconSet( Resource::loadPixmap( "redo" ) ); | 109 | editRedo->setIconSet( Resource::loadPixmap( "redo" ) ); |
110 | 110 | ||
111 | //VIEW ACITONS | 111 | //VIEW ACITONS |
112 | popup = new QPopupMenu( this ); | 112 | popup = new QPopupMenu( this ); |
113 | 113 | ||
114 | viewIncFontSizes = new QAction( tr( "Font +" ), QString::null, 0, this, 0 ); | 114 | viewIncFontSizes = new QAction( tr( "Font +" ), QString::null, 0, this, 0 ); |
115 | viewIncFontSizes->addTo( popup ); | 115 | viewIncFontSizes->addTo( popup ); |
116 | 116 | ||
117 | viewDecFontSizes = new QAction( tr( "Font -" ), QString::null, 0, this, 0 ); | 117 | viewDecFontSizes = new QAction( tr( "Font -" ), QString::null, 0, this, 0 ); |
118 | viewDecFontSizes->addTo( popup ); | 118 | viewDecFontSizes->addTo( popup ); |
119 | 119 | ||
120 | mb->insertItem(tr("View"),popup); | 120 | mb->insertItem(tr("View"),popup); |
121 | 121 | ||
122 | popup = new QPopupMenu( this ); | 122 | popup = new QPopupMenu( this ); |
123 | mb->insertItem(tr("Utils"),popup); | 123 | mb->insertItem(tr("Utils"),popup); |
124 | 124 | ||
125 | 125 | ||
126 | mb->insertItem( editCut ); | 126 | mb->insertItem( editCut ); |
127 | mb->insertItem( editCopy ); | 127 | mb->insertItem( editCopy ); |
128 | mb->insertItem( editPaste ); | 128 | mb->insertItem( editPaste ); |
129 | mb->insertItem( editFindReplace ); | 129 | mb->insertItem( editFindReplace ); |
130 | mb->insertItem( editUndo ); | 130 | mb->insertItem( editUndo ); |
131 | mb->insertItem( editRedo ); | 131 | mb->insertItem( editRedo ); |
132 | 132 | ||
133 | 133 | ||
134 | //Highlight management | 134 | //Highlight management |
135 | hlmenu=new QPopupMenu(this); | 135 | hlmenu=new QPopupMenu(this); |
136 | HlManager *hlm=HlManager::self(); | 136 | HlManager *hlm=HlManager::self(); |
137 | for (int i=0;i<hlm->highlights();i++) | 137 | for (int i=0;i<hlm->highlights();i++) |
138 | { | 138 | { |
139 | hlmenu->insertItem(hlm->hlName(i),i); | 139 | hlmenu->insertItem(hlm->hlName(i),i); |
140 | } | 140 | } |
141 | popup->insertItem(tr("Highlighting"),hlmenu); | 141 | popup->insertItem(tr("Highlighting"),hlmenu); |
diff --git a/noncore/apps/zsafe/scqtfiledlg.cpp b/noncore/apps/zsafe/scqtfiledlg.cpp index dd72fdf..52b8d0d 100644 --- a/noncore/apps/zsafe/scqtfiledlg.cpp +++ b/noncore/apps/zsafe/scqtfiledlg.cpp | |||
@@ -102,155 +102,155 @@ ScQtFileDlg::ScQtFileDlg( QWidget* parent, const char* name, bool modal, WFlags | |||
102 | resize( 196, 279 ); | 102 | resize( 196, 279 ); |
103 | if (!name) | 103 | if (!name) |
104 | setCaption( tr( "FileDlg" ) ); | 104 | setCaption( tr( "FileDlg" ) ); |
105 | else | 105 | else |
106 | setCaption(name); | 106 | setCaption(name); |
107 | ScQtFileDlgLayout = new QVBoxLayout( this ); | 107 | ScQtFileDlgLayout = new QVBoxLayout( this ); |
108 | ScQtFileDlgLayout->setSpacing( 6 ); | 108 | ScQtFileDlgLayout->setSpacing( 6 ); |
109 | ScQtFileDlgLayout->setMargin( 11 ); | 109 | ScQtFileDlgLayout->setMargin( 11 ); |
110 | 110 | ||
111 | Layout5 = new QVBoxLayout; | 111 | Layout5 = new QVBoxLayout; |
112 | Layout5->setSpacing( 6 ); | 112 | Layout5->setSpacing( 6 ); |
113 | Layout5->setMargin( 0 ); | 113 | Layout5->setMargin( 0 ); |
114 | 114 | ||
115 | Layout4 = new QVBoxLayout; | 115 | Layout4 = new QVBoxLayout; |
116 | Layout4->setSpacing( 6 ); | 116 | Layout4->setSpacing( 6 ); |
117 | Layout4->setMargin( 0 ); | 117 | Layout4->setMargin( 0 ); |
118 | 118 | ||
119 | Layout3 = new QHBoxLayout; | 119 | Layout3 = new QHBoxLayout; |
120 | Layout3->setSpacing( 6 ); | 120 | Layout3->setSpacing( 6 ); |
121 | Layout3->setMargin( 0 ); | 121 | Layout3->setMargin( 0 ); |
122 | 122 | ||
123 | TypeComboBox = new QComboBox( FALSE, this, "TypeComboBox" ); | 123 | TypeComboBox = new QComboBox( FALSE, this, "TypeComboBox" ); |
124 | TypeComboBox->setEditable( TRUE ); | 124 | TypeComboBox->setEditable( TRUE ); |
125 | TypeComboBox->setInsertionPolicy( QComboBox::AtBottom ); | 125 | TypeComboBox->setInsertionPolicy( QComboBox::AtBottom ); |
126 | TypeComboBox->setAutoCompletion( FALSE ); | 126 | TypeComboBox->setAutoCompletion( FALSE ); |
127 | TypeComboBox->setDuplicatesEnabled( FALSE ); | 127 | TypeComboBox->setDuplicatesEnabled( FALSE ); |
128 | QToolTip::add( TypeComboBox, tr( "file type filter" ) ); | 128 | QToolTip::add( TypeComboBox, tr( "file type filter" ) ); |
129 | QWhatsThis::add( TypeComboBox, tr( "ComboBox FileTypeFilter\n" | 129 | QWhatsThis::add( TypeComboBox, tr( "ComboBox FileTypeFilter\n" |
130 | "\n" | 130 | "\n" |
131 | "edit or select the filter" ) ); | 131 | "edit or select the filter" ) ); |
132 | Layout3->addWidget( TypeComboBox ); | 132 | Layout3->addWidget( TypeComboBox ); |
133 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); | 133 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); |
134 | Layout3->addItem( spacer ); | 134 | Layout3->addItem( spacer ); |
135 | 135 | ||
136 | OkButton = new QToolButton( this, "OkButton" ); | 136 | OkButton = new QToolButton( this, "OkButton" ); |
137 | OkButton->setText( tr( "" ) ); | 137 | OkButton->setText( tr( "" ) ); |
138 | OkButton->setPixmap( image0 ); | 138 | OkButton->setPixmap( image0 ); |
139 | OkButton->setUsesBigPixmap( FALSE ); | 139 | OkButton->setUsesBigPixmap( FALSE ); |
140 | QToolTip::add( OkButton, tr( "confirms the selection and closes the form" ) ); | 140 | QToolTip::add( OkButton, tr( "confirms the selection and closes the form" ) ); |
141 | QWhatsThis::add( OkButton, tr( "OKButton" ) ); | 141 | QWhatsThis::add( OkButton, tr( "OKButton" ) ); |
142 | Layout3->addWidget( OkButton ); | 142 | Layout3->addWidget( OkButton ); |
143 | 143 | ||
144 | CancelButton = new QToolButton( this, "CancelButton" ); | 144 | CancelButton = new QToolButton( this, "CancelButton" ); |
145 | CancelButton->setText( tr( "" ) ); | 145 | CancelButton->setText( tr( "" ) ); |
146 | CancelButton->setPixmap( image1 ); | 146 | CancelButton->setPixmap( image1 ); |
147 | CancelButton->setUsesBigPixmap( FALSE ); | 147 | CancelButton->setUsesBigPixmap( FALSE ); |
148 | QToolTip::add( CancelButton, tr( "cancels the selection and closes the form" ) ); | 148 | QToolTip::add( CancelButton, tr( "cancels the selection and closes the form" ) ); |
149 | QWhatsThis::add( CancelButton, tr( "CancelButton" ) ); | 149 | QWhatsThis::add( CancelButton, tr( "CancelButton" ) ); |
150 | Layout3->addWidget( CancelButton ); | 150 | Layout3->addWidget( CancelButton ); |
151 | Layout4->addLayout( Layout3 ); | 151 | Layout4->addLayout( Layout3 ); |
152 | 152 | ||
153 | Layout3_2 = new QHBoxLayout; | 153 | Layout3_2 = new QHBoxLayout; |
154 | Layout3_2->setSpacing( 6 ); | 154 | Layout3_2->setSpacing( 6 ); |
155 | Layout3_2->setMargin( 0 ); | 155 | Layout3_2->setMargin( 0 ); |
156 | 156 | ||
157 | FNameLineEdit = new QLineEdit( this, "FNameLineEdit" ); | 157 | FNameLineEdit = new QLineEdit( this, "FNameLineEdit" ); |
158 | QToolTip::add( FNameLineEdit, tr( "shows the selected filename" ) ); | 158 | QToolTip::add( FNameLineEdit, tr( "shows the selected filename" ) ); |
159 | QWhatsThis::add( FNameLineEdit, tr( "Filename LineEdit\n" | 159 | QWhatsThis::add( FNameLineEdit, tr( "Filename LineEdit\n" |
160 | "\n" | 160 | "\n" |
161 | "shows the selected file\n" | 161 | "shows the selected file\n" |
162 | "and allows the direct filename\n" | 162 | "and allows the direct filename\n" |
163 | "edit" ) ); | 163 | "edit" ) ); |
164 | Layout3_2->addWidget( FNameLineEdit ); | 164 | Layout3_2->addWidget( FNameLineEdit ); |
165 | 165 | ||
166 | MkDirButton = new QToolButton( this, "MkDirButton" ); | 166 | MkDirButton = new QToolButton( this, "MkDirButton" ); |
167 | MkDirButton->setText( tr( "" ) ); | 167 | MkDirButton->setText( tr( "" ) ); |
168 | MkDirButton->setPixmap( image2 ); | 168 | MkDirButton->setPixmap( image2 ); |
169 | MkDirButton->setUsesBigPixmap( FALSE ); | 169 | MkDirButton->setUsesBigPixmap( FALSE ); |
170 | QToolTip::add( MkDirButton, tr( "confirms the selection and closes the form" ) ); | 170 | QToolTip::add( MkDirButton, tr( "confirms the selection and closes the form" ) ); |
171 | QWhatsThis::add( MkDirButton, tr( "OKButton" ) ); | 171 | QWhatsThis::add( MkDirButton, tr( "OKButton" ) ); |
172 | Layout3_2->addWidget( MkDirButton ); | 172 | Layout3_2->addWidget( MkDirButton ); |
173 | Layout4->addLayout( Layout3_2 ); | 173 | Layout4->addLayout( Layout3_2 ); |
174 | 174 | ||
175 | DirComboBox = new QComboBox( FALSE, this, "DirComboBox" ); | 175 | DirComboBox = new QComboBox( FALSE, this, "DirComboBox" ); |
176 | DirComboBox->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, DirComboBox->sizePolicy().hasHeightForWidth() ) ); | 176 | DirComboBox->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, DirComboBox->sizePolicy().hasHeightForWidth() ) ); |
177 | DirComboBox->setEditable( TRUE ); | 177 | DirComboBox->setEditable( TRUE ); |
178 | DirComboBox->setDuplicatesEnabled( FALSE ); | 178 | DirComboBox->setDuplicatesEnabled( FALSE ); |
179 | QWhatsThis::add( DirComboBox, tr( "ComboBox Directory \n" | 179 | QWhatsThis::add( DirComboBox, tr( "ComboBox Directory \n" |
180 | "edit or select the directories name" ) ); | 180 | "edit or select the directories name" ) ); |
181 | Layout4->addWidget( DirComboBox ); | 181 | Layout4->addWidget( DirComboBox ); |
182 | Layout5->addLayout( Layout4 ); | 182 | Layout5->addLayout( Layout4 ); |
183 | 183 | ||
184 | ListView = new QListView( this, "ListView" ); | 184 | ListView = new QListView( this, "ListView" ); |
185 | ListView->addColumn( tr( "Name" ) ); | 185 | ListView->addColumn( tr( "Name" ) ); |
186 | ListView->addColumn( tr( "size" ) ); | 186 | ListView->addColumn( tr( "size" ) ); |
187 | ListView->addColumn( tr( "type" ) ); | 187 | ListView->addColumn( tr( "type" ) ); |
188 | ListView->setRootIsDecorated( TRUE ); | 188 | ListView->setRootIsDecorated( TRUE ); |
189 | QToolTip::add( ListView, tr( "directory listview" ) ); | 189 | QToolTip::add( ListView, tr( "directory listview" ) ); |
190 | QWhatsThis::add( ListView, tr( "Directory ListView\n" | 190 | QWhatsThis::add( ListView, tr( "Directory ListView\n" |
191 | "\n" | 191 | "\n" |
192 | "shows the list of dirs and files" ) ); | 192 | "shows the list of dirs and files" ) ); |
193 | Layout5->addWidget( ListView ); | 193 | Layout5->addWidget( ListView ); |
194 | ScQtFileDlgLayout->addLayout( Layout5 ); | 194 | ScQtFileDlgLayout->addLayout( Layout5 ); |
195 | 195 | ||
196 | // signals and slots connections | 196 | // signals and slots connections |
197 | connect( OkButton, SIGNAL( clicked() ), this, SLOT( slotOK() ) ); | 197 | connect( OkButton, SIGNAL( clicked() ), this, SLOT( slotOK() ) ); |
198 | connect( DirComboBox, SIGNAL( activated(int) ), this, SLOT( slotDirComboBoxChanged( int ) ) ); | 198 | connect( DirComboBox, SIGNAL( activated(int) ), this, SLOT( slotDirComboBoxChanged(int) ) ); |
199 | connect( TypeComboBox, SIGNAL( activated(int) ), this, SLOT( slotTypeComboBoxChanged( int ) ) ); | 199 | connect( TypeComboBox, SIGNAL( activated(int) ), this, SLOT( slotTypeComboBoxChanged(int) ) ); |
200 | connect( CancelButton, SIGNAL( clicked() ), this, SLOT( slotCancel() ) ); | 200 | connect( CancelButton, SIGNAL( clicked() ), this, SLOT( slotCancel() ) ); |
201 | connect( ListView, SIGNAL( returnPressed(QListViewItem*) ), this, SLOT( slotSelectionChanged(QListViewItem *) ) ); | 201 | connect( ListView, SIGNAL( returnPressed(QListViewItem*) ), this, SLOT( slotSelectionChanged(QListViewItem*) ) ); |
202 | connect( ListView, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotSelectionChanged(QListViewItem *) ) ); | 202 | connect( ListView, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotSelectionChanged(QListViewItem*) ) ); |
203 | connect( ListView, SIGNAL( doubleClicked(QListViewItem*) ), this, SLOT( slotDoubleClicked(QListViewItem *) ) ); | 203 | connect( ListView, SIGNAL( doubleClicked(QListViewItem*) ), this, SLOT( slotDoubleClicked(QListViewItem*) ) ); |
204 | connect( FNameLineEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( slotFileTextChanged( const QString & ) ) ); | 204 | connect( FNameLineEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( slotFileTextChanged(const QString&) ) ); |
205 | connect( FNameLineEdit, SIGNAL( returnPressed() ), this, SLOT( slotOK() ) ); | 205 | connect( FNameLineEdit, SIGNAL( returnPressed() ), this, SLOT( slotOK() ) ); |
206 | connect( MkDirButton, SIGNAL( clicked() ), this, SLOT( slotMkDir() ) ); | 206 | connect( MkDirButton, SIGNAL( clicked() ), this, SLOT( slotMkDir() ) ); |
207 | } | 207 | } |
208 | 208 | ||
209 | /* | 209 | /* |
210 | * Destroys the object and frees any allocated resources | 210 | * Destroys the object and frees any allocated resources |
211 | */ | 211 | */ |
212 | ScQtFileDlg::~ScQtFileDlg() | 212 | ScQtFileDlg::~ScQtFileDlg() |
213 | { | 213 | { |
214 | // no need to delete child widgets, Qt does it all for us | 214 | // no need to delete child widgets, Qt does it all for us |
215 | } | 215 | } |
216 | 216 | ||
217 | void ScQtFileDlg::slotCancel() | 217 | void ScQtFileDlg::slotCancel() |
218 | { | 218 | { |
219 | qWarning( "ScQtFileDlg::slotCancel(): Not implemented yet!" ); | 219 | qWarning( "ScQtFileDlg::slotCancel(): Not implemented yet!" ); |
220 | } | 220 | } |
221 | 221 | ||
222 | void ScQtFileDlg::slotDirComboBoxChanged( int ) | 222 | void ScQtFileDlg::slotDirComboBoxChanged( int ) |
223 | { | 223 | { |
224 | qWarning( "ScQtFileDlg::slotDirComboBoxChanged( int ): Not implemented yet!" ); | 224 | qWarning( "ScQtFileDlg::slotDirComboBoxChanged( int ): Not implemented yet!" ); |
225 | } | 225 | } |
226 | 226 | ||
227 | void ScQtFileDlg::slotDoubleClicked(QListViewItem *) | 227 | void ScQtFileDlg::slotDoubleClicked(QListViewItem *) |
228 | { | 228 | { |
229 | qWarning( "ScQtFileDlg::slotDoubleClicked(QListViewItem *): Not implemented yet!" ); | 229 | qWarning( "ScQtFileDlg::slotDoubleClicked(QListViewItem *): Not implemented yet!" ); |
230 | } | 230 | } |
231 | 231 | ||
232 | void ScQtFileDlg::slotFileTextChanged( const QString & ) | 232 | void ScQtFileDlg::slotFileTextChanged( const QString & ) |
233 | { | 233 | { |
234 | qWarning( "ScQtFileDlg::slotFileTextChanged( const QString & ): Not implemented yet!" ); | 234 | qWarning( "ScQtFileDlg::slotFileTextChanged( const QString & ): Not implemented yet!" ); |
235 | } | 235 | } |
236 | 236 | ||
237 | void ScQtFileDlg::slotMkDir() | 237 | void ScQtFileDlg::slotMkDir() |
238 | { | 238 | { |
239 | qWarning( "ScQtFileDlg::slotMkDir(): Not implemented yet!" ); | 239 | qWarning( "ScQtFileDlg::slotMkDir(): Not implemented yet!" ); |
240 | } | 240 | } |
241 | 241 | ||
242 | void ScQtFileDlg::slotOK() | 242 | void ScQtFileDlg::slotOK() |
243 | { | 243 | { |
244 | qWarning( "ScQtFileDlg::slotOK(): Not implemented yet!" ); | 244 | qWarning( "ScQtFileDlg::slotOK(): Not implemented yet!" ); |
245 | } | 245 | } |
246 | 246 | ||
247 | void ScQtFileDlg::slotSelectionChanged(QListViewItem *) | 247 | void ScQtFileDlg::slotSelectionChanged(QListViewItem *) |
248 | { | 248 | { |
249 | qWarning( "ScQtFileDlg::slotSelectionChanged(QListViewItem *): Not implemented yet!" ); | 249 | qWarning( "ScQtFileDlg::slotSelectionChanged(QListViewItem *): Not implemented yet!" ); |
250 | } | 250 | } |
251 | 251 | ||
252 | void ScQtFileDlg::slotTypeComboBoxChanged( int ) | 252 | void ScQtFileDlg::slotTypeComboBoxChanged( int ) |
253 | { | 253 | { |
254 | qWarning( "ScQtFileDlg::slotTypeComboBoxChanged( int ): Not implemented yet!" ); | 254 | qWarning( "ScQtFileDlg::slotTypeComboBoxChanged( int ): Not implemented yet!" ); |
255 | } | 255 | } |
256 | 256 | ||
diff --git a/noncore/apps/zsafe/zsafe.cpp b/noncore/apps/zsafe/zsafe.cpp index a3e805e..a3467e5 100644 --- a/noncore/apps/zsafe/zsafe.cpp +++ b/noncore/apps/zsafe/zsafe.cpp | |||
@@ -597,198 +597,198 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl ) | |||
597 | cat->insertItem( edit_img, tr("&Edit"), this, SLOT(editCategory()) ); | 597 | cat->insertItem( edit_img, tr("&Edit"), this, SLOT(editCategory()) ); |
598 | cat->insertItem( trash_img, tr("&Delete"), this, SLOT(delCategory()) ); | 598 | cat->insertItem( trash_img, tr("&Delete"), this, SLOT(delCategory()) ); |
599 | menu->insertItem( tr("&Category"), cat ); | 599 | menu->insertItem( tr("&Category"), cat ); |
600 | 600 | ||
601 | QPopupMenu *it = new QPopupMenu( this ); | 601 | QPopupMenu *it = new QPopupMenu( this ); |
602 | it->insertItem( cut_img, tr("&Cut"), this, SLOT(cutItem()) ); | 602 | it->insertItem( cut_img, tr("&Cut"), this, SLOT(cutItem()) ); |
603 | it->insertItem( copy_img, tr("C&opy"), this, SLOT(copyItem()) ); | 603 | it->insertItem( copy_img, tr("C&opy"), this, SLOT(copyItem()) ); |
604 | it->insertItem( paste_img, tr("&Paste"), this, SLOT(pasteItem()) ); | 604 | it->insertItem( paste_img, tr("&Paste"), this, SLOT(pasteItem()) ); |
605 | it->insertSeparator(); | 605 | it->insertSeparator(); |
606 | it->insertItem( new_img, tr("&New"), this, SLOT(newPwd()) ); | 606 | it->insertItem( new_img, tr("&New"), this, SLOT(newPwd()) ); |
607 | it->insertItem( edit_img, tr("&Edit"), this, SLOT(editPwd()) ); | 607 | it->insertItem( edit_img, tr("&Edit"), this, SLOT(editPwd()) ); |
608 | it->insertItem( trash_img, tr("&Delete"), this, SLOT(deletePwd()) ); | 608 | it->insertItem( trash_img, tr("&Delete"), this, SLOT(deletePwd()) ); |
609 | it->insertItem( find_img, tr("&Search"), this, SLOT(findPwd()) ); | 609 | it->insertItem( find_img, tr("&Search"), this, SLOT(findPwd()) ); |
610 | menu->insertItem( tr("&Entry"), it ); | 610 | menu->insertItem( tr("&Entry"), it ); |
611 | 611 | ||
612 | QPopupMenu *help = new QPopupMenu( this ); | 612 | QPopupMenu *help = new QPopupMenu( this ); |
613 | help->insertItem( help_icon_img, tr("&About"), this, SLOT(about()) ); | 613 | help->insertItem( help_icon_img, tr("&About"), this, SLOT(about()) ); |
614 | menu->insertItem( tr("&Help"), help ); | 614 | menu->insertItem( tr("&Help"), help ); |
615 | 615 | ||
616 | // toolbar icons | 616 | // toolbar icons |
617 | 617 | ||
618 | New = new QToolButton( menu, "New" ); | 618 | New = new QToolButton( menu, "New" ); |
619 | New->setGeometry( QRect( DeskW-84, 2, 20, 20 ) ); | 619 | New->setGeometry( QRect( DeskW-84, 2, 20, 20 ) ); |
620 | New->setMouseTracking( TRUE ); | 620 | New->setMouseTracking( TRUE ); |
621 | New->setText( tr( "" ) ); | 621 | New->setText( tr( "" ) ); |
622 | New->setPixmap( new_img ); | 622 | New->setPixmap( new_img ); |
623 | QToolTip::add( New, tr( "New entry" ) ); | 623 | QToolTip::add( New, tr( "New entry" ) ); |
624 | 624 | ||
625 | Edit = new QToolButton( menu, "Edit" ); | 625 | Edit = new QToolButton( menu, "Edit" ); |
626 | Edit->setGeometry( QRect( DeskW-64, 2, 20, 20 ) ); | 626 | Edit->setGeometry( QRect( DeskW-64, 2, 20, 20 ) ); |
627 | Edit->setText( tr( "" ) ); | 627 | Edit->setText( tr( "" ) ); |
628 | Edit->setPixmap( edit_img ); | 628 | Edit->setPixmap( edit_img ); |
629 | QToolTip::add( Edit, tr( "Edit category or entry" ) ); | 629 | QToolTip::add( Edit, tr( "Edit category or entry" ) ); |
630 | 630 | ||
631 | Delete = new QToolButton( menu, "Delete" ); | 631 | Delete = new QToolButton( menu, "Delete" ); |
632 | Delete->setGeometry( QRect( DeskW-44, 2, 20, 20 ) ); | 632 | Delete->setGeometry( QRect( DeskW-44, 2, 20, 20 ) ); |
633 | Delete->setText( tr( "" ) ); | 633 | Delete->setText( tr( "" ) ); |
634 | Delete->setPixmap( trash_img ); | 634 | Delete->setPixmap( trash_img ); |
635 | QToolTip::add( Delete, tr( "Delete category or entry" ) ); | 635 | QToolTip::add( Delete, tr( "Delete category or entry" ) ); |
636 | 636 | ||
637 | Find = new QToolButton( menu, "Find" ); | 637 | Find = new QToolButton( menu, "Find" ); |
638 | Find->setGeometry( QRect( DeskW-24, 2, 20, 20 ) ); | 638 | Find->setGeometry( QRect( DeskW-24, 2, 20, 20 ) ); |
639 | Find->setText( tr( "" ) ); | 639 | Find->setText( tr( "" ) ); |
640 | Find->setPixmap( find_img ); | 640 | Find->setPixmap( find_img ); |
641 | QToolTip::add( Find, tr( "Find entry" ) ); | 641 | QToolTip::add( Find, tr( "Find entry" ) ); |
642 | 642 | ||
643 | /* | 643 | /* |
644 | QBoxLayout * h = new QHBoxLayout( this ); | 644 | QBoxLayout * h = new QHBoxLayout( this ); |
645 | h->addWidget (menu); | 645 | h->addWidget (menu); |
646 | h->addWidget (New); | 646 | h->addWidget (New); |
647 | h->addWidget (Edit); | 647 | h->addWidget (Edit); |
648 | h->addWidget (Delete); | 648 | h->addWidget (Delete); |
649 | h->addWidget (Find); | 649 | h->addWidget (Find); |
650 | */ | 650 | */ |
651 | 651 | ||
652 | ListView = new ZListView( this, "ListView" ); | 652 | ListView = new ZListView( this, "ListView" ); |
653 | ListView->addColumn( tr( "Name" ) ); | 653 | ListView->addColumn( tr( "Name" ) ); |
654 | ListView->addColumn( tr( "Field 2" ) ); | 654 | ListView->addColumn( tr( "Field 2" ) ); |
655 | ListView->addColumn( tr( "Field 3" ) ); | 655 | ListView->addColumn( tr( "Field 3" ) ); |
656 | ListView->addColumn( tr( "Comment" ) ); | 656 | ListView->addColumn( tr( "Comment" ) ); |
657 | ListView->addColumn( tr( "Field 4" ) ); | 657 | ListView->addColumn( tr( "Field 4" ) ); |
658 | ListView->addColumn( tr( "Field 5" ) ); | 658 | ListView->addColumn( tr( "Field 5" ) ); |
659 | ListView->setAllColumnsShowFocus(TRUE); | 659 | ListView->setAllColumnsShowFocus(TRUE); |
660 | 660 | ||
661 | #ifdef DESKTOP | 661 | #ifdef DESKTOP |
662 | ListView->setResizePolicy(QScrollView::AutoOneFit); | 662 | ListView->setResizePolicy(QScrollView::AutoOneFit); |
663 | // ListView->setGeometry( QRect( 0, 22, this->width(), this->height() - 30 ) ); | 663 | // ListView->setGeometry( QRect( 0, 22, this->width(), this->height() - 30 ) ); |
664 | #else | 664 | #else |
665 | ListView->setResizePolicy(QScrollView::AutoOneFit); | 665 | ListView->setResizePolicy(QScrollView::AutoOneFit); |
666 | // ListView->setGeometry( QRect( 0, 22, | 666 | // ListView->setGeometry( QRect( 0, 22, |
667 | // this->width(), this->height() - 30 ) ); | 667 | // this->width(), this->height() - 30 ) ); |
668 | // ListView->setMaximumSize( QSize( 440, 290 ) ); | 668 | // ListView->setMaximumSize( QSize( 440, 290 ) ); |
669 | #endif | 669 | #endif |
670 | ListView->setVScrollBarMode( QListView::Auto ); | 670 | ListView->setVScrollBarMode( QListView::Auto ); |
671 | 671 | ||
672 | QBoxLayout * l = new QVBoxLayout( this ); | 672 | QBoxLayout * l = new QVBoxLayout( this ); |
673 | l->addWidget (menu); | 673 | l->addWidget (menu); |
674 | l->addWidget (ListView); | 674 | l->addWidget (ListView); |
675 | 675 | ||
676 | #ifndef DESKTOP | 676 | #ifndef DESKTOP |
677 | // start a timer (100 ms) to load the default document | 677 | // start a timer (100 ms) to load the default document |
678 | docuTimer.start( 100, true ); | 678 | docuTimer.start( 100, true ); |
679 | connect( &docuTimer, SIGNAL(timeout()), SLOT( slotLoadDocu() ) ); | 679 | connect( &docuTimer, SIGNAL(timeout()), SLOT( slotLoadDocu() ) ); |
680 | raiseFlag = true; | 680 | raiseFlag = true; |
681 | connect( &raiseTimer, SIGNAL(timeout()), SLOT( slotRaiseTimer() ) ); | 681 | connect( &raiseTimer, SIGNAL(timeout()), SLOT( slotRaiseTimer() ) ); |
682 | #else | 682 | #else |
683 | // open the default document | 683 | // open the default document |
684 | openDocument(filename); | 684 | openDocument(filename); |
685 | #endif | 685 | #endif |
686 | 686 | ||
687 | // signals and slots connections for QTollButton | 687 | // signals and slots connections for QTollButton |
688 | connect( New, SIGNAL( clicked() ), this, SLOT( newPwd() ) ); | 688 | connect( New, SIGNAL( clicked() ), this, SLOT( newPwd() ) ); |
689 | connect( Edit, SIGNAL( clicked() ), this, SLOT( editPwd() ) ); | 689 | connect( Edit, SIGNAL( clicked() ), this, SLOT( editPwd() ) ); |
690 | connect( Delete, SIGNAL( clicked() ), this, SLOT( deletePwd() ) ); | 690 | connect( Delete, SIGNAL( clicked() ), this, SLOT( deletePwd() ) ); |
691 | connect( Find, SIGNAL( clicked() ), this, SLOT( findPwd() ) ); | 691 | connect( Find, SIGNAL( clicked() ), this, SLOT( findPwd() ) ); |
692 | // signals and slots connections for QListView | 692 | // signals and slots connections for QListView |
693 | connect( ListView, SIGNAL( selectionChanged( QListViewItem* ) ), | 693 | connect( ListView, SIGNAL( selectionChanged(QListViewItem*) ), |
694 | this, SLOT( listViewSelected( QListViewItem* ) ) ); | 694 | this, SLOT( listViewSelected(QListViewItem*) ) ); |
695 | connect( ListView, SIGNAL( doubleClicked( QListViewItem* ) ), | 695 | connect( ListView, SIGNAL( doubleClicked(QListViewItem*) ), |
696 | this, SLOT( showInfo( QListViewItem* ) ) ); | 696 | this, SLOT( showInfo(QListViewItem*) ) ); |
697 | connect( ListView, SIGNAL( returnPressed( QListViewItem* ) ), | 697 | connect( ListView, SIGNAL( returnPressed(QListViewItem*) ), |
698 | this, SLOT( showInfo( QListViewItem* ) ) ); | 698 | this, SLOT( showInfo(QListViewItem*) ) ); |
699 | 699 | ||
700 | } | 700 | } |
701 | 701 | ||
702 | const QColor *ZSafe::evenRowColor = &Qt::white; | 702 | const QColor *ZSafe::evenRowColor = &Qt::white; |
703 | // const QColor *ZSafe::oddRowColor = &Qt::lightGray; | 703 | // const QColor *ZSafe::oddRowColor = &Qt::lightGray; |
704 | const QColor *ZSafe::oddRowColor = new QColor(216,240,255); | 704 | const QColor *ZSafe::oddRowColor = new QColor(216,240,255); |
705 | 705 | ||
706 | /* | 706 | /* |
707 | * Destroys the object and frees any allocated resources | 707 | * Destroys the object and frees any allocated resources |
708 | */ | 708 | */ |
709 | ZSafe::~ZSafe() | 709 | ZSafe::~ZSafe() |
710 | { | 710 | { |
711 | // no need to delete child widgets, Qt does it all for us | 711 | // no need to delete child widgets, Qt does it all for us |
712 | quitMe(); | 712 | quitMe(); |
713 | } | 713 | } |
714 | 714 | ||
715 | // load the default document | 715 | // load the default document |
716 | void ZSafe::slotLoadDocu() | 716 | void ZSafe::slotLoadDocu() |
717 | { | 717 | { |
718 | openDocument (filename); | 718 | openDocument (filename); |
719 | } | 719 | } |
720 | 720 | ||
721 | void ZSafe::deletePwd() | 721 | void ZSafe::deletePwd() |
722 | { | 722 | { |
723 | 723 | ||
724 | if (!selectedItem) | 724 | if (!selectedItem) |
725 | return; | 725 | return; |
726 | if (!isCategory(selectedItem)) | 726 | if (!isCategory(selectedItem)) |
727 | { | 727 | { |
728 | switch( QMessageBox::information( this, tr("ZSafe"), | 728 | switch( QMessageBox::information( this, tr("ZSafe"), |
729 | tr("Do you want to delete?"), | 729 | tr("Do you want to delete?"), |
730 | tr("&Delete"), tr("D&on't Delete"), | 730 | tr("&Delete"), tr("D&on't Delete"), |
731 | 0 // Enter == button 0 | 731 | 0 // Enter == button 0 |
732 | ) ) { // Escape == button 2 | 732 | ) ) { // Escape == button 2 |
733 | case 0: // Delete clicked, Alt-S or Enter pressed. | 733 | case 0: // Delete clicked, Alt-S or Enter pressed. |
734 | // Delete | 734 | // Delete |
735 | modified = true; | 735 | modified = true; |
736 | selectedItem->parent()->takeItem(selectedItem); | 736 | selectedItem->parent()->takeItem(selectedItem); |
737 | selectedItem = NULL; | 737 | selectedItem = NULL; |
738 | break; | 738 | break; |
739 | case 1: // Don't delete | 739 | case 1: // Don't delete |
740 | break; | 740 | break; |
741 | } | 741 | } |
742 | } | 742 | } |
743 | else | 743 | else |
744 | { | 744 | { |
745 | delCategory(); | 745 | delCategory(); |
746 | } | 746 | } |
747 | } | 747 | } |
748 | 748 | ||
749 | void ZSafe::editPwd() | 749 | void ZSafe::editPwd() |
750 | { | 750 | { |
751 | if (!selectedItem) | 751 | if (!selectedItem) |
752 | return; | 752 | return; |
753 | if (!isCategory(selectedItem)) | 753 | if (!isCategory(selectedItem)) |
754 | { | 754 | { |
755 | // open the 'New Entry' dialog | 755 | // open the 'New Entry' dialog |
756 | NewDialog *dialog = new NewDialog(this, tr("Edit Entry"), TRUE); | 756 | NewDialog *dialog = new NewDialog(this, tr("Edit Entry"), TRUE); |
757 | #ifdef WIN32 | 757 | #ifdef WIN32 |
758 | dialog->setCaption ("Qt " + tr("Edit Entry")); | 758 | dialog->setCaption ("Qt " + tr("Edit Entry")); |
759 | dialog->setGeometry(200, 250, 220, 310 ); | 759 | dialog->setGeometry(200, 250, 220, 310 ); |
760 | #endif | 760 | #endif |
761 | 761 | ||
762 | // set the labels | 762 | // set the labels |
763 | dialog->Name->setText(getFieldLabel (selectedItem, "1", tr("Name"))); | 763 | dialog->Name->setText(getFieldLabel (selectedItem, "1", tr("Name"))); |
764 | dialog->Username->setText(getFieldLabel (selectedItem, "2", tr("Username"))); | 764 | dialog->Username->setText(getFieldLabel (selectedItem, "2", tr("Username"))); |
765 | dialog->Password->setText(getFieldLabel (selectedItem, "3", tr("Password"))); | 765 | dialog->Password->setText(getFieldLabel (selectedItem, "3", tr("Password"))); |
766 | dialog->Comment->setText(getFieldLabel (selectedItem, "4", tr("Comment"))); | 766 | dialog->Comment->setText(getFieldLabel (selectedItem, "4", tr("Comment"))); |
767 | dialog->Field5Label->setText(getFieldLabel (selectedItem,"5", tr("Field 4"))); | 767 | dialog->Field5Label->setText(getFieldLabel (selectedItem,"5", tr("Field 4"))); |
768 | dialog->Field6Label->setText(getFieldLabel (selectedItem,"6", tr("Field 5"))); | 768 | dialog->Field6Label->setText(getFieldLabel (selectedItem,"6", tr("Field 5"))); |
769 | 769 | ||
770 | // set the fields | 770 | // set the fields |
771 | dialog->NameField->setText(selectedItem->text (0)); | 771 | dialog->NameField->setText(selectedItem->text (0)); |
772 | dialog->UsernameField->setText(selectedItem->text (1)); | 772 | dialog->UsernameField->setText(selectedItem->text (1)); |
773 | dialog->PasswordField->setText(selectedItem->text (2)); | 773 | dialog->PasswordField->setText(selectedItem->text (2)); |
774 | QString comment = selectedItem->text (3); | 774 | QString comment = selectedItem->text (3); |
775 | comment.replace (QRegExp("<br>"), "\n"); | 775 | comment.replace (QRegExp("<br>"), "\n"); |
776 | dialog->Field5->setText(selectedItem->text (4)); | 776 | dialog->Field5->setText(selectedItem->text (4)); |
777 | dialog->Field6->setText(selectedItem->text (5)); | 777 | dialog->Field6->setText(selectedItem->text (5)); |
778 | dialog->CommentField->insertLine(comment); | 778 | dialog->CommentField->insertLine(comment); |
779 | dialog->CommentField->setCursorPosition(0,0); | 779 | dialog->CommentField->setCursorPosition(0,0); |
780 | 780 | ||
781 | DialogCode result = (DialogCode) QPEApplication::execDialog( dialog ); | 781 | DialogCode result = (DialogCode) QPEApplication::execDialog( dialog ); |
782 | 782 | ||
783 | #ifdef DESKTOP | 783 | #ifdef DESKTOP |
784 | result = Accepted; | 784 | result = Accepted; |
785 | #endif | 785 | #endif |
786 | if (result == Accepted) | 786 | if (result == Accepted) |
787 | { | 787 | { |
788 | modified = true; | 788 | modified = true; |
789 | // edit the selected item | 789 | // edit the selected item |
790 | QString name = dialog->NameField->text(); | 790 | QString name = dialog->NameField->text(); |
791 | selectedItem->setText (0, tr (name)); | 791 | selectedItem->setText (0, tr (name)); |
792 | QString user = dialog->UsernameField->text(); | 792 | QString user = dialog->UsernameField->text(); |
793 | selectedItem->setText (1, tr (user)); | 793 | selectedItem->setText (1, tr (user)); |
794 | QString pwd = dialog->PasswordField->text(); | 794 | QString pwd = dialog->PasswordField->text(); |
@@ -2486,194 +2486,194 @@ int ZSafe::saveFinalize(void) | |||
2486 | Krc2* krc2 = new Krc2(); | 2486 | Krc2* krc2 = new Krc2(); |
2487 | 2487 | ||
2488 | /* Tack on the PKCS 5 padding | 2488 | /* Tack on the PKCS 5 padding |
2489 | * How it works is we fill up the last n bytes with the value n | 2489 | * How it works is we fill up the last n bytes with the value n |
2490 | * | 2490 | * |
2491 | * So, if we have, say, 13 bytes, 8 of which are used, we have 5 left | 2491 | * So, if we have, say, 13 bytes, 8 of which are used, we have 5 left |
2492 | * over, leaving us 3 short, so we fill it in with 3's. | 2492 | * over, leaving us 3 short, so we fill it in with 3's. |
2493 | * | 2493 | * |
2494 | * If we come out even, we fill it with 8 8s | 2494 | * If we come out even, we fill it with 8 8s |
2495 | * | 2495 | * |
2496 | * um, except that in this instance we are using 4 shorts instead of 8 bytes. | 2496 | * um, except that in this instance we are using 4 shorts instead of 8 bytes. |
2497 | * so, half everything | 2497 | * so, half everything |
2498 | */ | 2498 | */ |
2499 | for (count1 = bufferIndex; count1 < 4; count1++) { | 2499 | for (count1 = bufferIndex; count1 < 4; count1++) { |
2500 | plaintext[count1] = (4 - bufferIndex); | 2500 | plaintext[count1] = (4 - bufferIndex); |
2501 | } | 2501 | } |
2502 | krc2->rc2_encrypt (plaintext); | 2502 | krc2->rc2_encrypt (plaintext); |
2503 | for (count1 = 0; count1 < 4; count1++) { | 2503 | for (count1 = 0; count1 < 4; count1++) { |
2504 | ciphertext[count1] = iv[count1] ^ plaintext[count1]; | 2504 | ciphertext[count1] = iv[count1] ^ plaintext[count1]; |
2505 | if (putc ((unsigned char) (ciphertext[count1] >> 8), fd) == EOF) retval = PWERR_DATA; | 2505 | if (putc ((unsigned char) (ciphertext[count1] >> 8), fd) == EOF) retval = PWERR_DATA; |
2506 | if (putc ((unsigned char) (ciphertext[count1] & 0xff), fd) == EOF) retval = PWERR_DATA; | 2506 | if (putc ((unsigned char) (ciphertext[count1] & 0xff), fd) == EOF) retval = PWERR_DATA; |
2507 | } | 2507 | } |
2508 | 2508 | ||
2509 | fclose (fd); | 2509 | fclose (fd); |
2510 | free(buffer); | 2510 | free(buffer); |
2511 | return retval; | 2511 | return retval; |
2512 | } | 2512 | } |
2513 | 2513 | ||
2514 | void ZSafe::quitMe () | 2514 | void ZSafe::quitMe () |
2515 | { | 2515 | { |
2516 | qWarning ("QUIT..."); | 2516 | qWarning ("QUIT..."); |
2517 | 2517 | ||
2518 | if (modified) | 2518 | if (modified) |
2519 | { | 2519 | { |
2520 | switch( QMessageBox::information( this, tr("ZSafe"), | 2520 | switch( QMessageBox::information( this, tr("ZSafe"), |
2521 | tr("Do you want to save\nbefore exiting?"), | 2521 | tr("Do you want to save\nbefore exiting?"), |
2522 | tr("&Save"), | 2522 | tr("&Save"), |
2523 | tr("S&ave with\nnew\npassword"), | 2523 | tr("S&ave with\nnew\npassword"), |
2524 | tr("&Don't Save"), | 2524 | tr("&Don't Save"), |
2525 | 0 // Enter == button 0 | 2525 | 0 // Enter == button 0 |
2526 | ) ) | 2526 | ) ) |
2527 | { // Escape == button 2 | 2527 | { // Escape == button 2 |
2528 | case 0: // Save clicked, Alt-S or Enter pressed. | 2528 | case 0: // Save clicked, Alt-S or Enter pressed. |
2529 | // save | 2529 | // save |
2530 | modified = false; | 2530 | modified = false; |
2531 | saveDocument(filename, FALSE); | 2531 | saveDocument(filename, FALSE); |
2532 | exitZs (1); | 2532 | exitZs (1); |
2533 | break; | 2533 | break; |
2534 | case 1: // | 2534 | case 1: // |
2535 | // Save with new password | 2535 | // Save with new password |
2536 | modified = false; | 2536 | modified = false; |
2537 | saveDocument(filename, TRUE); | 2537 | saveDocument(filename, TRUE); |
2538 | exitZs (1); | 2538 | exitZs (1); |
2539 | break; | 2539 | break; |
2540 | case 2: // Don't Save clicked or Alt-D pressed | 2540 | case 2: // Don't Save clicked or Alt-D pressed |
2541 | // don't save but exitZs | 2541 | // don't save but exitZs |
2542 | exitZs (1); | 2542 | exitZs (1); |
2543 | break; | 2543 | break; |
2544 | } | 2544 | } |
2545 | } | 2545 | } |
2546 | exitZs (1); | 2546 | exitZs (1); |
2547 | 2547 | ||
2548 | } | 2548 | } |
2549 | 2549 | ||
2550 | void ZSafe::categoryFieldActivated( const QString& category) | 2550 | void ZSafe::categoryFieldActivated( const QString& category) |
2551 | { | 2551 | { |
2552 | if (categoryDialog) | 2552 | if (categoryDialog) |
2553 | setCategoryDialogFields(categoryDialog, category); | 2553 | setCategoryDialogFields(categoryDialog, category); |
2554 | } | 2554 | } |
2555 | 2555 | ||
2556 | void ZSafe::addCategory() | 2556 | void ZSafe::addCategory() |
2557 | { | 2557 | { |
2558 | if (filename.isEmpty()) | 2558 | if (filename.isEmpty()) |
2559 | { | 2559 | { |
2560 | QMessageBox::critical( 0, tr("ZSafe"), | 2560 | QMessageBox::critical( 0, tr("ZSafe"), |
2561 | tr("No document defined.\nYou have to create a new document")); | 2561 | tr("No document defined.\nYou have to create a new document")); |
2562 | return; | 2562 | return; |
2563 | } | 2563 | } |
2564 | else | 2564 | else |
2565 | { | 2565 | { |
2566 | // open the 'Category' dialog | 2566 | // open the 'Category' dialog |
2567 | bool initIcons = false; | 2567 | bool initIcons = false; |
2568 | // open the 'Category' dialog | 2568 | // open the 'Category' dialog |
2569 | CategoryDialog *dialog; | 2569 | CategoryDialog *dialog; |
2570 | if (categoryDialog) | 2570 | if (categoryDialog) |
2571 | { | 2571 | { |
2572 | dialog = categoryDialog; | 2572 | dialog = categoryDialog; |
2573 | } | 2573 | } |
2574 | else | 2574 | else |
2575 | { | 2575 | { |
2576 | categoryDialog = new CategoryDialog(this, tr("Category"), TRUE); | 2576 | categoryDialog = new CategoryDialog(this, tr("Category"), TRUE); |
2577 | #ifdef WIN32 | 2577 | #ifdef WIN32 |
2578 | categoryDialog->setCaption ("Qt " + tr("Category")); | 2578 | categoryDialog->setCaption ("Qt " + tr("Category")); |
2579 | #endif | 2579 | #endif |
2580 | dialog = categoryDialog; | 2580 | dialog = categoryDialog; |
2581 | connect( dialog->CategoryField, | 2581 | connect( dialog->CategoryField, |
2582 | SIGNAL( activated ( const QString &)), | 2582 | SIGNAL( activated(const QString&)), |
2583 | this, SLOT( categoryFieldActivated( const QString & ) ) ); | 2583 | this, SLOT( categoryFieldActivated(const QString&) ) ); |
2584 | initIcons = true; | 2584 | initIcons = true; |
2585 | } | 2585 | } |
2586 | 2586 | ||
2587 | #ifdef DESKTOP | 2587 | #ifdef DESKTOP |
2588 | #ifndef WIN32 | 2588 | #ifndef WIN32 |
2589 | QStringList list = conf->entryList( APP_KEY+"/fieldDefs" ); | 2589 | QStringList list = conf->entryList( APP_KEY+"/fieldDefs" ); |
2590 | #else | 2590 | #else |
2591 | // read all categories from the config file and store | 2591 | // read all categories from the config file and store |
2592 | // into a list | 2592 | // into a list |
2593 | QFile f (cfgFile); | 2593 | QFile f (cfgFile); |
2594 | QStringList list; | 2594 | QStringList list; |
2595 | if ( f.open(IO_ReadOnly) ) { // file opened successfully | 2595 | if ( f.open(IO_ReadOnly) ) { // file opened successfully |
2596 | QTextStream t( &f ); // use a text stream | 2596 | QTextStream t( &f ); // use a text stream |
2597 | QString s; | 2597 | QString s; |
2598 | int n = 1; | 2598 | int n = 1; |
2599 | while ( !t.eof() ) { // until end of file... | 2599 | while ( !t.eof() ) { // until end of file... |
2600 | s = t.readLine(); // line of text excluding '\n' | 2600 | s = t.readLine(); // line of text excluding '\n' |
2601 | list.append(s); | 2601 | list.append(s); |
2602 | } | 2602 | } |
2603 | f.close(); | 2603 | f.close(); |
2604 | } | 2604 | } |
2605 | #endif | 2605 | #endif |
2606 | #else | 2606 | #else |
2607 | // read all categories from the config file and store | 2607 | // read all categories from the config file and store |
2608 | // into a list | 2608 | // into a list |
2609 | QFile f (cfgFile); | 2609 | QFile f (cfgFile); |
2610 | QStringList list; | 2610 | QStringList list; |
2611 | if ( f.open(IO_ReadOnly) ) { // file opened successfully | 2611 | if ( f.open(IO_ReadOnly) ) { // file opened successfully |
2612 | QTextStream t( &f ); // use a text stream | 2612 | QTextStream t( &f ); // use a text stream |
2613 | QString s; | 2613 | QString s; |
2614 | while ( !t.eof() ) { // until end of file... | 2614 | while ( !t.eof() ) { // until end of file... |
2615 | s = t.readLine(); // line of text excluding '\n' | 2615 | s = t.readLine(); // line of text excluding '\n' |
2616 | list.append(s); | 2616 | list.append(s); |
2617 | } | 2617 | } |
2618 | f.close(); | 2618 | f.close(); |
2619 | } | 2619 | } |
2620 | #endif | 2620 | #endif |
2621 | QStringList::Iterator it = list.begin(); | 2621 | QStringList::Iterator it = list.begin(); |
2622 | QString categ; | 2622 | QString categ; |
2623 | QString firstCategory; | 2623 | QString firstCategory; |
2624 | dialog->CategoryField->clear(); // remove all items | 2624 | dialog->CategoryField->clear(); // remove all items |
2625 | while( it != list.end() ) | 2625 | while( it != list.end() ) |
2626 | { | 2626 | { |
2627 | QString *cat = new QString (*it); | 2627 | QString *cat = new QString (*it); |
2628 | if (cat->contains("-field1", FALSE)) | 2628 | if (cat->contains("-field1", FALSE)) |
2629 | { | 2629 | { |
2630 | #ifdef DESKTOP | 2630 | #ifdef DESKTOP |
2631 | #ifndef WIN32 | 2631 | #ifndef WIN32 |
2632 | categ = cat->section ("-field1", 0, 0); | 2632 | categ = cat->section ("-field1", 0, 0); |
2633 | #else | 2633 | #else |
2634 | int pos = cat->find ("-field1"); | 2634 | int pos = cat->find ("-field1"); |
2635 | categ = cat->left (pos); | 2635 | categ = cat->left (pos); |
2636 | #endif | 2636 | #endif |
2637 | #else | 2637 | #else |
2638 | int pos = cat->find ("-field1"); | 2638 | int pos = cat->find ("-field1"); |
2639 | cat->truncate(pos); | 2639 | cat->truncate(pos); |
2640 | categ = *cat; | 2640 | categ = *cat; |
2641 | #endif | 2641 | #endif |
2642 | if (!categ.isEmpty()) | 2642 | if (!categ.isEmpty()) |
2643 | { | 2643 | { |
2644 | dialog->CategoryField->insertItem (categ, -1); | 2644 | dialog->CategoryField->insertItem (categ, -1); |
2645 | if (firstCategory.isEmpty()) | 2645 | if (firstCategory.isEmpty()) |
2646 | firstCategory = categ; | 2646 | firstCategory = categ; |
2647 | } | 2647 | } |
2648 | } | 2648 | } |
2649 | ++it; | 2649 | ++it; |
2650 | } | 2650 | } |
2651 | 2651 | ||
2652 | 2652 | ||
2653 | if (firstCategory.isEmpty()) | 2653 | if (firstCategory.isEmpty()) |
2654 | setCategoryDialogFields(dialog); | 2654 | setCategoryDialogFields(dialog); |
2655 | else | 2655 | else |
2656 | setCategoryDialogFields(dialog, firstCategory); | 2656 | setCategoryDialogFields(dialog, firstCategory); |
2657 | 2657 | ||
2658 | // CategoryDialog *dialog = new CategoryDialog(this, "Category", TRUE); | 2658 | // CategoryDialog *dialog = new CategoryDialog(this, "Category", TRUE); |
2659 | 2659 | ||
2660 | if (initIcons) | 2660 | if (initIcons) |
2661 | { | 2661 | { |
2662 | Wait waitDialog(this, tr("Wait dialog")); | 2662 | Wait waitDialog(this, tr("Wait dialog")); |
2663 | waitDialog.waitLabel->setText(tr("Gathering icons...")); | 2663 | waitDialog.waitLabel->setText(tr("Gathering icons...")); |
2664 | waitDialog.show(); | 2664 | waitDialog.show(); |
2665 | qApp->processEvents(); | 2665 | qApp->processEvents(); |
2666 | 2666 | ||
2667 | #ifdef DESKTOP | 2667 | #ifdef DESKTOP |
2668 | QDir d(iconPath); | 2668 | QDir d(iconPath); |
2669 | #else | 2669 | #else |
2670 | QDir d(QPEApplication::qpeDir() + "/pics/"); | 2670 | QDir d(QPEApplication::qpeDir() + "/pics/"); |
2671 | #endif | 2671 | #endif |
2672 | d.setFilter( QDir::Files); | 2672 | d.setFilter( QDir::Files); |
2673 | 2673 | ||
2674 | const QFileInfoList *list = d.entryInfoList(); | 2674 | const QFileInfoList *list = d.entryInfoList(); |
2675 | QFileInfoListIterator it( *list ); // create list iterator | 2675 | QFileInfoListIterator it( *list ); // create list iterator |
2676 | QFileInfo *fi; // pointer for traversing | 2676 | QFileInfo *fi; // pointer for traversing |
2677 | 2677 | ||
2678 | dialog->IconField->insertItem("predefined"); | 2678 | dialog->IconField->insertItem("predefined"); |
2679 | while ( (fi=it.current()) ) { // for each file... | 2679 | while ( (fi=it.current()) ) { // for each file... |
@@ -2893,194 +2893,194 @@ void ZSafe::setCategoryDialogFields(CategoryDialog *dialog, QString category) | |||
2893 | dialog->Field4->setText(getFieldLabel (category, "4", tr("Comment"))); | 2893 | dialog->Field4->setText(getFieldLabel (category, "4", tr("Comment"))); |
2894 | dialog->Field5->setText(getFieldLabel (category, "5", tr("Field 4"))); | 2894 | dialog->Field5->setText(getFieldLabel (category, "5", tr("Field 4"))); |
2895 | dialog->Field6->setText(getFieldLabel (category, "6", tr("Field 5"))); | 2895 | dialog->Field6->setText(getFieldLabel (category, "6", tr("Field 5"))); |
2896 | 2896 | ||
2897 | QString icon; | 2897 | QString icon; |
2898 | Category *cat= categories.find (category); | 2898 | Category *cat= categories.find (category); |
2899 | if (cat) | 2899 | if (cat) |
2900 | { | 2900 | { |
2901 | icon = cat->getIconName(); | 2901 | icon = cat->getIconName(); |
2902 | } | 2902 | } |
2903 | else | 2903 | else |
2904 | icon = conf->readEntry(APP_KEY+category); | 2904 | icon = conf->readEntry(APP_KEY+category); |
2905 | 2905 | ||
2906 | #ifdef DESKTOP | 2906 | #ifdef DESKTOP |
2907 | QDir d(iconPath); | 2907 | QDir d(iconPath); |
2908 | #else | 2908 | #else |
2909 | QDir d(QPEApplication::qpeDir() + "/pics/"); | 2909 | QDir d(QPEApplication::qpeDir() + "/pics/"); |
2910 | #endif | 2910 | #endif |
2911 | d.setFilter( QDir::Files); | 2911 | d.setFilter( QDir::Files); |
2912 | 2912 | ||
2913 | const QFileInfoList *list = d.entryInfoList(); | 2913 | const QFileInfoList *list = d.entryInfoList(); |
2914 | int i=0; | 2914 | int i=0; |
2915 | QFileInfoListIterator it( *list ); // create list iterator | 2915 | QFileInfoListIterator it( *list ); // create list iterator |
2916 | QFileInfo *fi; // pointer for traversing | 2916 | QFileInfo *fi; // pointer for traversing |
2917 | if (icon.isEmpty() || icon.isNull()) | 2917 | if (icon.isEmpty() || icon.isNull()) |
2918 | { | 2918 | { |
2919 | dialog->IconField->setCurrentItem(0); | 2919 | dialog->IconField->setCurrentItem(0); |
2920 | } | 2920 | } |
2921 | else | 2921 | else |
2922 | { | 2922 | { |
2923 | while ( (fi=it.current()) ) | 2923 | while ( (fi=it.current()) ) |
2924 | { // for each file... | 2924 | { // for each file... |
2925 | QString fileName = fi->fileName(); | 2925 | QString fileName = fi->fileName(); |
2926 | if(fileName.right(4) == ".png") | 2926 | if(fileName.right(4) == ".png") |
2927 | { | 2927 | { |
2928 | fileName = fileName.mid(0,fileName.length()-4); | 2928 | fileName = fileName.mid(0,fileName.length()-4); |
2929 | 2929 | ||
2930 | if(fileName+".png"==icon) | 2930 | if(fileName+".png"==icon) |
2931 | { | 2931 | { |
2932 | dialog->IconField->setCurrentItem(i+1); | 2932 | dialog->IconField->setCurrentItem(i+1); |
2933 | break; | 2933 | break; |
2934 | } | 2934 | } |
2935 | ++i; | 2935 | ++i; |
2936 | } | 2936 | } |
2937 | ++it; | 2937 | ++it; |
2938 | } | 2938 | } |
2939 | } | 2939 | } |
2940 | } | 2940 | } |
2941 | 2941 | ||
2942 | void ZSafe::saveCategoryDialogFields(CategoryDialog *dialog) | 2942 | void ZSafe::saveCategoryDialogFields(CategoryDialog *dialog) |
2943 | { | 2943 | { |
2944 | QString app_key = APP_KEY; | 2944 | QString app_key = APP_KEY; |
2945 | #ifndef DESKTOP | 2945 | #ifndef DESKTOP |
2946 | conf->setGroup ("fieldDefs"); | 2946 | conf->setGroup ("fieldDefs"); |
2947 | #else | 2947 | #else |
2948 | #ifndef WIN32 | 2948 | #ifndef WIN32 |
2949 | app_key += "/fieldDefs/"; | 2949 | app_key += "/fieldDefs/"; |
2950 | #endif | 2950 | #endif |
2951 | #endif | 2951 | #endif |
2952 | QString category = dialog->CategoryField->currentText(); | 2952 | QString category = dialog->CategoryField->currentText(); |
2953 | // #ifndef WIN32 | 2953 | // #ifndef WIN32 |
2954 | conf->writeEntry(app_key+category+"-field1", dialog->Field1->text()); | 2954 | conf->writeEntry(app_key+category+"-field1", dialog->Field1->text()); |
2955 | conf->writeEntry(app_key+category+"-field2", dialog->Field2->text()); | 2955 | conf->writeEntry(app_key+category+"-field2", dialog->Field2->text()); |
2956 | conf->writeEntry(app_key+category+"-field3", dialog->Field3->text()); | 2956 | conf->writeEntry(app_key+category+"-field3", dialog->Field3->text()); |
2957 | conf->writeEntry(app_key+category+"-field4", dialog->Field4->text()); | 2957 | conf->writeEntry(app_key+category+"-field4", dialog->Field4->text()); |
2958 | conf->writeEntry(app_key+category+"-field5", dialog->Field5->text()); | 2958 | conf->writeEntry(app_key+category+"-field5", dialog->Field5->text()); |
2959 | conf->writeEntry(app_key+category+"-field6", dialog->Field6->text()); | 2959 | conf->writeEntry(app_key+category+"-field6", dialog->Field6->text()); |
2960 | // #endif | 2960 | // #endif |
2961 | saveConf(); | 2961 | saveConf(); |
2962 | #ifndef DESKTOP | 2962 | #ifndef DESKTOP |
2963 | conf->setGroup ("zsafe"); | 2963 | conf->setGroup ("zsafe"); |
2964 | #endif | 2964 | #endif |
2965 | } | 2965 | } |
2966 | 2966 | ||
2967 | void ZSafe::editCategory() | 2967 | void ZSafe::editCategory() |
2968 | { | 2968 | { |
2969 | if (!selectedItem) | 2969 | if (!selectedItem) |
2970 | return; | 2970 | return; |
2971 | if (isCategory(selectedItem)) | 2971 | if (isCategory(selectedItem)) |
2972 | { | 2972 | { |
2973 | QString category = selectedItem->text(0); | 2973 | QString category = selectedItem->text(0); |
2974 | bool initIcons = false; | 2974 | bool initIcons = false; |
2975 | // open the 'Category' dialog | 2975 | // open the 'Category' dialog |
2976 | CategoryDialog *dialog; | 2976 | CategoryDialog *dialog; |
2977 | if (categoryDialog) | 2977 | if (categoryDialog) |
2978 | { | 2978 | { |
2979 | dialog = categoryDialog; | 2979 | dialog = categoryDialog; |
2980 | } | 2980 | } |
2981 | else | 2981 | else |
2982 | { | 2982 | { |
2983 | categoryDialog = new CategoryDialog(this, tr("Category"), TRUE); | 2983 | categoryDialog = new CategoryDialog(this, tr("Category"), TRUE); |
2984 | #ifdef WIN32 | 2984 | #ifdef WIN32 |
2985 | categoryDialog->setCaption ("Qt " + tr("Category")); | 2985 | categoryDialog->setCaption ("Qt " + tr("Category")); |
2986 | #endif | 2986 | #endif |
2987 | dialog = categoryDialog; | 2987 | dialog = categoryDialog; |
2988 | connect( dialog->CategoryField, | 2988 | connect( dialog->CategoryField, |
2989 | SIGNAL( activated ( const QString &)), | 2989 | SIGNAL( activated(const QString&)), |
2990 | this, SLOT( categoryFieldActivated( const QString & ) ) ); | 2990 | this, SLOT( categoryFieldActivated(const QString&) ) ); |
2991 | initIcons = true; | 2991 | initIcons = true; |
2992 | } | 2992 | } |
2993 | setCategoryDialogFields(dialog); | 2993 | setCategoryDialogFields(dialog); |
2994 | 2994 | ||
2995 | #ifdef DESKTOP | 2995 | #ifdef DESKTOP |
2996 | #ifndef WIN32 | 2996 | #ifndef WIN32 |
2997 | QStringList list = conf->entryList( APP_KEY+"/fieldDefs" ); | 2997 | QStringList list = conf->entryList( APP_KEY+"/fieldDefs" ); |
2998 | #else | 2998 | #else |
2999 | // read all categories from the config file and store | 2999 | // read all categories from the config file and store |
3000 | // into a list | 3000 | // into a list |
3001 | QFile f (cfgFile); | 3001 | QFile f (cfgFile); |
3002 | QStringList list; | 3002 | QStringList list; |
3003 | if ( f.open(IO_ReadOnly) ) { // file opened successfully | 3003 | if ( f.open(IO_ReadOnly) ) { // file opened successfully |
3004 | QTextStream t( &f ); // use a text stream | 3004 | QTextStream t( &f ); // use a text stream |
3005 | QString s; | 3005 | QString s; |
3006 | int n = 1; | 3006 | int n = 1; |
3007 | while ( !t.eof() ) { // until end of file... | 3007 | while ( !t.eof() ) { // until end of file... |
3008 | s = t.readLine(); // line of text excluding '\n' | 3008 | s = t.readLine(); // line of text excluding '\n' |
3009 | list.append(s); | 3009 | list.append(s); |
3010 | } | 3010 | } |
3011 | f.close(); | 3011 | f.close(); |
3012 | } | 3012 | } |
3013 | #endif | 3013 | #endif |
3014 | #else | 3014 | #else |
3015 | // read all categories from the config file and store | 3015 | // read all categories from the config file and store |
3016 | // into a list | 3016 | // into a list |
3017 | QFile f (cfgFile); | 3017 | QFile f (cfgFile); |
3018 | QStringList list; | 3018 | QStringList list; |
3019 | if ( f.open(IO_ReadOnly) ) { // file opened successfully | 3019 | if ( f.open(IO_ReadOnly) ) { // file opened successfully |
3020 | QTextStream t( &f ); // use a text stream | 3020 | QTextStream t( &f ); // use a text stream |
3021 | QString s; | 3021 | QString s; |
3022 | while ( !t.eof() ) { // until end of file... | 3022 | while ( !t.eof() ) { // until end of file... |
3023 | s = t.readLine(); // line of text excluding '\n' | 3023 | s = t.readLine(); // line of text excluding '\n' |
3024 | list.append(s); | 3024 | list.append(s); |
3025 | } | 3025 | } |
3026 | f.close(); | 3026 | f.close(); |
3027 | } | 3027 | } |
3028 | #endif | 3028 | #endif |
3029 | QStringList::Iterator it = list.begin(); | 3029 | QStringList::Iterator it = list.begin(); |
3030 | QString categ; | 3030 | QString categ; |
3031 | dialog->CategoryField->clear(); // remove all items | 3031 | dialog->CategoryField->clear(); // remove all items |
3032 | int i=0; | 3032 | int i=0; |
3033 | bool foundCategory = false; | 3033 | bool foundCategory = false; |
3034 | while( it != list.end() ) | 3034 | while( it != list.end() ) |
3035 | { | 3035 | { |
3036 | QString *cat = new QString (*it); | 3036 | QString *cat = new QString (*it); |
3037 | if (cat->contains("-field1", FALSE)) | 3037 | if (cat->contains("-field1", FALSE)) |
3038 | { | 3038 | { |
3039 | #ifdef DESKTOP | 3039 | #ifdef DESKTOP |
3040 | #ifndef WIN32 | 3040 | #ifndef WIN32 |
3041 | categ = cat->section ("-field1", 0, 0); | 3041 | categ = cat->section ("-field1", 0, 0); |
3042 | #else | 3042 | #else |
3043 | int pos = cat->find ("-field1"); | 3043 | int pos = cat->find ("-field1"); |
3044 | categ = cat->left (pos); | 3044 | categ = cat->left (pos); |
3045 | #endif | 3045 | #endif |
3046 | #else | 3046 | #else |
3047 | int pos = cat->find ("-field1"); | 3047 | int pos = cat->find ("-field1"); |
3048 | cat->truncate(pos); | 3048 | cat->truncate(pos); |
3049 | categ = *cat; | 3049 | categ = *cat; |
3050 | #endif | 3050 | #endif |
3051 | if (!categ.isEmpty()) | 3051 | if (!categ.isEmpty()) |
3052 | { | 3052 | { |
3053 | dialog->CategoryField->insertItem (categ, i); | 3053 | dialog->CategoryField->insertItem (categ, i); |
3054 | if (category.compare(categ) == 0) | 3054 | if (category.compare(categ) == 0) |
3055 | { | 3055 | { |
3056 | dialog->CategoryField->setCurrentItem(i); | 3056 | dialog->CategoryField->setCurrentItem(i); |
3057 | foundCategory = true; | 3057 | foundCategory = true; |
3058 | } | 3058 | } |
3059 | i++; | 3059 | i++; |
3060 | } | 3060 | } |
3061 | } | 3061 | } |
3062 | ++it; | 3062 | ++it; |
3063 | } | 3063 | } |
3064 | if (!foundCategory) | 3064 | if (!foundCategory) |
3065 | { | 3065 | { |
3066 | dialog->CategoryField->insertItem (category, i); | 3066 | dialog->CategoryField->insertItem (category, i); |
3067 | dialog->CategoryField->setCurrentItem(i); | 3067 | dialog->CategoryField->setCurrentItem(i); |
3068 | } | 3068 | } |
3069 | 3069 | ||
3070 | QString icon; | 3070 | QString icon; |
3071 | Category *cat= categories.find (selectedItem->text(0)); | 3071 | Category *cat= categories.find (selectedItem->text(0)); |
3072 | if (cat) | 3072 | if (cat) |
3073 | { | 3073 | { |
3074 | icon = cat->getIconName(); | 3074 | icon = cat->getIconName(); |
3075 | } | 3075 | } |
3076 | 3076 | ||
3077 | if (initIcons) | 3077 | if (initIcons) |
3078 | { | 3078 | { |
3079 | 3079 | ||
3080 | Wait waitDialog(this, tr("Wait dialog")); | 3080 | Wait waitDialog(this, tr("Wait dialog")); |
3081 | waitDialog.waitLabel->setText(tr("Gathering icons...")); | 3081 | waitDialog.waitLabel->setText(tr("Gathering icons...")); |
3082 | waitDialog.show(); | 3082 | waitDialog.show(); |
3083 | qApp->processEvents(); | 3083 | qApp->processEvents(); |
3084 | 3084 | ||
3085 | #ifdef DESKTOP | 3085 | #ifdef DESKTOP |
3086 | QDir d(iconPath); | 3086 | QDir d(iconPath); |
diff --git a/noncore/comm/keypebble/krfbcanvas.cpp b/noncore/comm/keypebble/krfbcanvas.cpp index 75cba68..cd1fda0 100644 --- a/noncore/comm/keypebble/krfbcanvas.cpp +++ b/noncore/comm/keypebble/krfbcanvas.cpp | |||
@@ -1,186 +1,186 @@ | |||
1 | #include "krfbconnection.h" | 1 | #include "krfbconnection.h" |
2 | #include "krfbcanvas.h" | 2 | #include "krfbcanvas.h" |
3 | #include "krfbbuffer.h" | 3 | #include "krfbbuffer.h" |
4 | 4 | ||
5 | #include <qpe/qpeapplication.h> | 5 | #include <qpe/qpeapplication.h> |
6 | 6 | ||
7 | #include <qclipboard.h> | 7 | #include <qclipboard.h> |
8 | 8 | ||
9 | KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) | 9 | KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) |
10 | : QScrollView( parent, name ) | 10 | : QScrollView( parent, name ) |
11 | { | 11 | { |
12 | connection_ = new KRFBConnection(); | 12 | connection_ = new KRFBConnection(); |
13 | connect( connection_, SIGNAL( loggedIn() ), | 13 | connect( connection_, SIGNAL( loggedIn() ), |
14 | this, SLOT( loggedIn() ) ); | 14 | this, SLOT( loggedIn() ) ); |
15 | 15 | ||
16 | loggedIn_ = false; | 16 | loggedIn_ = false; |
17 | 17 | ||
18 | //QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); | 18 | //QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); |
19 | 19 | ||
20 | viewport()->setFocusPolicy( QWidget::StrongFocus ); | 20 | viewport()->setFocusPolicy( QWidget::StrongFocus ); |
21 | viewport()->setFocus(); | 21 | viewport()->setFocus(); |
22 | 22 | ||
23 | nextRightClick=0; | 23 | nextRightClick=0; |
24 | nextDoubleClick=0; | 24 | nextDoubleClick=0; |
25 | } | 25 | } |
26 | 26 | ||
27 | KRFBCanvas::~KRFBCanvas() | 27 | KRFBCanvas::~KRFBCanvas() |
28 | { | 28 | { |
29 | } | 29 | } |
30 | 30 | ||
31 | 31 | ||
32 | void KRFBCanvas::openConnection(KRFBServer server) | 32 | void KRFBCanvas::openConnection(KRFBServer server) |
33 | { | 33 | { |
34 | 34 | ||
35 | 35 | ||
36 | QCString host = server.hostname.latin1(); | 36 | QCString host = server.hostname.latin1(); |
37 | password=server.password; | 37 | password=server.password; |
38 | connection_->connectTo( server); | 38 | connection_->connectTo( server); |
39 | } | 39 | } |
40 | 40 | ||
41 | 41 | ||
42 | void KRFBCanvas::openURL( const QUrl &url ) | 42 | void KRFBCanvas::openURL( const QUrl &url ) |
43 | { | 43 | { |
44 | if ( loggedIn_ ) { | 44 | if ( loggedIn_ ) { |
45 | qWarning( "openURL invoked when logged in\n" ); | 45 | qWarning( "openURL invoked when logged in\n" ); |
46 | return; | 46 | return; |
47 | } | 47 | } |
48 | 48 | ||
49 | QCString host = url.host().latin1(); | 49 | QCString host = url.host().latin1(); |
50 | int display = url.port(); | 50 | int display = url.port(); |
51 | 51 | ||
52 | // connection_->connectTo( host, display ); | 52 | // connection_->connectTo( host, display ); |
53 | } | 53 | } |
54 | 54 | ||
55 | void KRFBCanvas::closeConnection() | 55 | void KRFBCanvas::closeConnection() |
56 | { | 56 | { |
57 | loggedIn_ = false; | 57 | loggedIn_ = false; |
58 | connection_->disconnect(); | 58 | connection_->disconnect(); |
59 | 59 | ||
60 | viewport()->setMouseTracking( false ); | 60 | viewport()->setMouseTracking( false ); |
61 | viewport()->setBackgroundMode( PaletteDark ); | 61 | viewport()->setBackgroundMode( PaletteDark ); |
62 | setBackgroundMode( PaletteDark ); | 62 | setBackgroundMode( PaletteDark ); |
63 | update(); | 63 | update(); |
64 | } | 64 | } |
65 | 65 | ||
66 | 66 | ||
67 | void KRFBCanvas::bell() | 67 | void KRFBCanvas::bell() |
68 | { | 68 | { |
69 | if ( connection_->options()->deIconify ) { | 69 | if ( connection_->options()->deIconify ) { |
70 | topLevelWidget()->raise(); | 70 | topLevelWidget()->raise(); |
71 | topLevelWidget()->show(); | 71 | topLevelWidget()->show(); |
72 | } | 72 | } |
73 | } | 73 | } |
74 | 74 | ||
75 | void KRFBCanvas::loggedIn() | 75 | void KRFBCanvas::loggedIn() |
76 | { | 76 | { |
77 | qWarning( "Ok, we're logged in" ); | 77 | qWarning( "Ok, we're logged in" ); |
78 | 78 | ||
79 | // | 79 | // |
80 | // Get ready for action | 80 | // Get ready for action |
81 | // | 81 | // |
82 | loggedIn_ = true; | 82 | loggedIn_ = true; |
83 | viewport()->setMouseTracking( true ); | 83 | viewport()->setMouseTracking( true ); |
84 | viewport()->setBackgroundMode( NoBackground ); | 84 | viewport()->setBackgroundMode( NoBackground ); |
85 | setBackgroundMode( NoBackground ); | 85 | setBackgroundMode( NoBackground ); |
86 | 86 | ||
87 | // Start using the buffer | 87 | // Start using the buffer |
88 | connect( connection_->buffer(), SIGNAL( sizeChanged( int, int ) ), | 88 | connect( connection_->buffer(), SIGNAL( sizeChanged(int,int) ), |
89 | this, SLOT( resizeContents(int,int) ) ); | 89 | this, SLOT( resizeContents(int,int) ) ); |
90 | connect( connection_->buffer(), SIGNAL( updated( int, int, int, int ) ), | 90 | connect( connection_->buffer(), SIGNAL( updated(int,int,int,int) ), |
91 | this, SLOT( viewportUpdate(int,int,int,int) ) ); | 91 | this, SLOT( viewportUpdate(int,int,int,int) ) ); |
92 | connect( connection_->buffer(), SIGNAL( bell() ), | 92 | connect( connection_->buffer(), SIGNAL( bell() ), |
93 | this, SLOT( bell() ) ); | 93 | this, SLOT( bell() ) ); |
94 | connect( qApp->clipboard(), SIGNAL( dataChanged() ), | 94 | connect( qApp->clipboard(), SIGNAL( dataChanged() ), |
95 | this, SLOT( clipboardChanged() ) ); | 95 | this, SLOT( clipboardChanged() ) ); |
96 | } | 96 | } |
97 | 97 | ||
98 | void KRFBCanvas::viewportPaintEvent( QPaintEvent *e ) | 98 | void KRFBCanvas::viewportPaintEvent( QPaintEvent *e ) |
99 | { | 99 | { |
100 | QRect r = e->rect(); | 100 | QRect r = e->rect(); |
101 | 101 | ||
102 | if ( loggedIn_ ) { | 102 | if ( loggedIn_ ) { |
103 | QPixmap p; | 103 | QPixmap p; |
104 | 104 | ||
105 | bitBlt( viewport(), r.x(), r.y(), | 105 | bitBlt( viewport(), r.x(), r.y(), |
106 | connection_->buffer()->pixmap(), | 106 | connection_->buffer()->pixmap(), |
107 | r.x() + contentsX(), r.y() + contentsY(), | 107 | r.x() + contentsX(), r.y() + contentsY(), |
108 | r.width(), r.height() ); | 108 | r.width(), r.height() ); |
109 | } | 109 | } |
110 | else { | 110 | else { |
111 | QScrollView::viewportPaintEvent( e ); | 111 | QScrollView::viewportPaintEvent( e ); |
112 | } | 112 | } |
113 | } | 113 | } |
114 | 114 | ||
115 | void KRFBCanvas::viewportUpdate( int x, int y, int w, int h ) | 115 | void KRFBCanvas::viewportUpdate( int x, int y, int w, int h ) |
116 | { | 116 | { |
117 | updateContents( x, y, w, h ); | 117 | updateContents( x, y, w, h ); |
118 | } | 118 | } |
119 | 119 | ||
120 | void KRFBCanvas::contentsMousePressEvent( QMouseEvent *e ) | 120 | void KRFBCanvas::contentsMousePressEvent( QMouseEvent *e ) |
121 | { | 121 | { |
122 | 122 | ||
123 | if (nextDoubleClick) { | 123 | if (nextDoubleClick) { |
124 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),LeftButton,LeftButton)); | 124 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),LeftButton,LeftButton)); |
125 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),LeftButton,0)); | 125 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),LeftButton,0)); |
126 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),LeftButton,0)); | 126 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),LeftButton,0)); |
127 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),NoButton,NoButton)); | 127 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),NoButton,NoButton)); |
128 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),NoButton,0)); | 128 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),NoButton,0)); |
129 | } if (nextRightClick) { | 129 | } if (nextRightClick) { |
130 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),RightButton,RightButton)); | 130 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),RightButton,RightButton)); |
131 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),RightButton,0)); | 131 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),RightButton,0)); |
132 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),NoButton,NoButton)); | 132 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),NoButton,NoButton)); |
133 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),NoButton,0)); | 133 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),NoButton,0)); |
134 | } else if ( loggedIn_ ) | 134 | } else if ( loggedIn_ ) |
135 | connection_->buffer()->mouseEvent( e ); | 135 | connection_->buffer()->mouseEvent( e ); |
136 | 136 | ||
137 | } | 137 | } |
138 | 138 | ||
139 | void KRFBCanvas::contentsMouseReleaseEvent( QMouseEvent *e ) | 139 | void KRFBCanvas::contentsMouseReleaseEvent( QMouseEvent *e ) |
140 | { | 140 | { |
141 | if ( loggedIn_ && !nextRightClick && !nextDoubleClick) { | 141 | if ( loggedIn_ && !nextRightClick && !nextDoubleClick) { |
142 | connection_->buffer()->mouseEvent( e ); | 142 | connection_->buffer()->mouseEvent( e ); |
143 | } | 143 | } |
144 | 144 | ||
145 | nextRightClick=0; | 145 | nextRightClick=0; |
146 | nextDoubleClick=0; | 146 | nextDoubleClick=0; |
147 | } | 147 | } |
148 | 148 | ||
149 | void KRFBCanvas::contentsMouseMoveEvent( QMouseEvent *e ) | 149 | void KRFBCanvas::contentsMouseMoveEvent( QMouseEvent *e ) |
150 | { | 150 | { |
151 | if ( loggedIn_ ) | 151 | if ( loggedIn_ ) |
152 | connection_->buffer()->mouseEvent( e ); | 152 | connection_->buffer()->mouseEvent( e ); |
153 | } | 153 | } |
154 | 154 | ||
155 | void KRFBCanvas::keyPressEvent( QKeyEvent *e ) | 155 | void KRFBCanvas::keyPressEvent( QKeyEvent *e ) |
156 | { | 156 | { |
157 | if ( loggedIn_ ) | 157 | if ( loggedIn_ ) |
158 | connection_->buffer()->keyPressEvent( e ); | 158 | connection_->buffer()->keyPressEvent( e ); |
159 | } | 159 | } |
160 | 160 | ||
161 | void KRFBCanvas::keyReleaseEvent( QKeyEvent *e ) | 161 | void KRFBCanvas::keyReleaseEvent( QKeyEvent *e ) |
162 | { | 162 | { |
163 | if ( loggedIn_ ) | 163 | if ( loggedIn_ ) |
164 | connection_->buffer()->keyReleaseEvent( e ); | 164 | connection_->buffer()->keyReleaseEvent( e ); |
165 | } | 165 | } |
166 | 166 | ||
167 | void KRFBCanvas::refresh() | 167 | void KRFBCanvas::refresh() |
168 | { | 168 | { |
169 | if ( loggedIn_ ) | 169 | if ( loggedIn_ ) |
170 | connection_->refresh(); | 170 | connection_->refresh(); |
171 | } | 171 | } |
172 | 172 | ||
173 | void KRFBCanvas::clipboardChanged() | 173 | void KRFBCanvas::clipboardChanged() |
174 | { | 174 | { |
175 | if ( loggedIn_ ) { | 175 | if ( loggedIn_ ) { |
176 | connection_->sendCutText( qApp->clipboard()->text() ); | 176 | connection_->sendCutText( qApp->clipboard()->text() ); |
177 | } | 177 | } |
178 | } | 178 | } |
179 | void KRFBCanvas::sendCtlAltDel( void) | 179 | void KRFBCanvas::sendCtlAltDel( void) |
180 | { | 180 | { |
181 | 181 | ||
182 | if ( loggedIn_ ) { | 182 | if ( loggedIn_ ) { |
183 | connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Control, 0,0)); | 183 | connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Control, 0,0)); |
184 | connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Alt, 0,0)); | 184 | connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Alt, 0,0)); |
185 | connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Delete, 0,0)); | 185 | connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Delete, 0,0)); |
186 | connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyRelease,Qt::Key_Control, 0,0)); | 186 | connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyRelease,Qt::Key_Control, 0,0)); |
diff --git a/noncore/comm/keypebble/krfbconnection.cpp b/noncore/comm/keypebble/krfbconnection.cpp index e6c33c6..b447046 100644 --- a/noncore/comm/keypebble/krfbconnection.cpp +++ b/noncore/comm/keypebble/krfbconnection.cpp | |||
@@ -1,206 +1,206 @@ | |||
1 | #include <assert.h> | 1 | #include <assert.h> |
2 | #include <qsocket.h> | 2 | #include <qsocket.h> |
3 | #include <qtimer.h> | 3 | #include <qtimer.h> |
4 | #include <string.h> | 4 | #include <string.h> |
5 | 5 | ||
6 | #include "krfbconnection.h" | 6 | #include "krfbconnection.h" |
7 | #include "krfblogin.h" | 7 | #include "krfblogin.h" |
8 | #include "krfbdecoder.h" | 8 | #include "krfbdecoder.h" |
9 | #include "krfbbuffer.h" | 9 | #include "krfbbuffer.h" |
10 | 10 | ||
11 | KRFBConnection::KRFBConnection( QObject *parent ) | 11 | KRFBConnection::KRFBConnection( QObject *parent ) |
12 | : QObject( parent, "KRFBConnection" ) | 12 | : QObject( parent, "KRFBConnection" ) |
13 | { | 13 | { |
14 | portBase_ = 5900; | 14 | portBase_ = 5900; |
15 | currentState_ = Disconnected; | 15 | currentState_ = Disconnected; |
16 | sock = 0; | 16 | sock = 0; |
17 | minData_ = 0; | 17 | minData_ = 0; |
18 | options_ = new KRFBServer(); | 18 | options_ = new KRFBServer(); |
19 | updater = 0; | 19 | updater = 0; |
20 | decoder_ = 0; | 20 | decoder_ = 0; |
21 | buffer_ = 0; | 21 | buffer_ = 0; |
22 | } | 22 | } |
23 | 23 | ||
24 | KRFBConnection::~KRFBConnection() | 24 | KRFBConnection::~KRFBConnection() |
25 | { | 25 | { |
26 | if ( ( currentState_ != Disconnected ) && ( currentState_ != Disconnecting ) && sock ) { | 26 | if ( ( currentState_ != Disconnected ) && ( currentState_ != Disconnecting ) && sock ) { |
27 | disconnectDone(); | 27 | disconnectDone(); |
28 | } | 28 | } |
29 | delete options_; | 29 | delete options_; |
30 | } | 30 | } |
31 | 31 | ||
32 | void KRFBConnection::connectTo( KRFBServer server) | 32 | void KRFBConnection::connectTo( KRFBServer server) |
33 | { | 33 | { |
34 | if ( currentState_ != Disconnected ) | 34 | if ( currentState_ != Disconnected ) |
35 | disconnect(); | 35 | disconnect(); |
36 | 36 | ||
37 | (*options_)=server; | 37 | (*options_)=server; |
38 | 38 | ||
39 | sock = new QSocket( this, "rfbSocket" ); | 39 | sock = new QSocket( this, "rfbSocket" ); |
40 | CHECK_PTR( sock ); | 40 | CHECK_PTR( sock ); |
41 | 41 | ||
42 | // Connect to something to notice connection or error | 42 | // Connect to something to notice connection or error |
43 | connect( sock, SIGNAL( error( int ) ), SLOT( gotSocketError( int ) ) ); | 43 | connect( sock, SIGNAL( error(int) ), SLOT( gotSocketError(int) ) ); |
44 | connect( sock, SIGNAL( connected() ), SLOT( gotSocketConnection() ) ); | 44 | connect( sock, SIGNAL( connected() ), SLOT( gotSocketConnection() ) ); |
45 | 45 | ||
46 | qWarning( "Connecting..." ); | 46 | qWarning( "Connecting..." ); |
47 | 47 | ||
48 | currentState_ = Connecting; | 48 | currentState_ = Connecting; |
49 | sock->connectToHost( options_->hostname.latin1(), portBase_ + options_->display ); | 49 | sock->connectToHost( options_->hostname.latin1(), portBase_ + options_->display ); |
50 | } | 50 | } |
51 | 51 | ||
52 | void KRFBConnection::disconnect() | 52 | void KRFBConnection::disconnect() |
53 | { | 53 | { |
54 | qWarning( "Disconnecting from server" ); | 54 | qWarning( "Disconnecting from server" ); |
55 | 55 | ||
56 | if ( ( currentState_ != Disconnected ) | 56 | if ( ( currentState_ != Disconnected ) |
57 | && ( currentState_ != Disconnecting ) | 57 | && ( currentState_ != Disconnecting ) |
58 | && sock ) { | 58 | && sock ) { |
59 | currentState_ = Disconnecting; | 59 | currentState_ = Disconnecting; |
60 | 60 | ||
61 | connect( sock, SIGNAL( delayedCloseFinished() ), SLOT( disconnectDone() ) ); | 61 | connect( sock, SIGNAL( delayedCloseFinished() ), SLOT( disconnectDone() ) ); |
62 | sock->close(); | 62 | sock->close(); |
63 | 63 | ||
64 | if ( sock->state() != QSocket::Closing ) | 64 | if ( sock->state() != QSocket::Closing ) |
65 | disconnectDone(); | 65 | disconnectDone(); |
66 | } | 66 | } |
67 | } | 67 | } |
68 | 68 | ||
69 | void KRFBConnection::disconnectDone() | 69 | void KRFBConnection::disconnectDone() |
70 | { | 70 | { |
71 | currentState_ = Disconnected; | 71 | currentState_ = Disconnected; |
72 | delete sock; | 72 | delete sock; |
73 | sock = 0; | 73 | sock = 0; |
74 | minData_ = 0; | 74 | minData_ = 0; |
75 | delete updater; | 75 | delete updater; |
76 | delete decoder_; | 76 | delete decoder_; |
77 | delete buffer_; | 77 | delete buffer_; |
78 | emit disconnected(); | 78 | emit disconnected(); |
79 | } | 79 | } |
80 | 80 | ||
81 | void KRFBConnection::gotSocketConnection() | 81 | void KRFBConnection::gotSocketConnection() |
82 | { | 82 | { |
83 | currentState_ = LoggingIn; | 83 | currentState_ = LoggingIn; |
84 | 84 | ||
85 | qWarning( "Connected, logging in..." ); | 85 | qWarning( "Connected, logging in..." ); |
86 | 86 | ||
87 | static QString statusMsg = tr( "Connected" ); | 87 | static QString statusMsg = tr( "Connected" ); |
88 | emit statusChanged( statusMsg ); | 88 | emit statusChanged( statusMsg ); |
89 | 89 | ||
90 | // Do some login stuff | 90 | // Do some login stuff |
91 | login = new KRFBLogin( this ); | 91 | login = new KRFBLogin( this ); |
92 | } | 92 | } |
93 | 93 | ||
94 | void KRFBConnection::gotRFBConnection() | 94 | void KRFBConnection::gotRFBConnection() |
95 | { | 95 | { |
96 | qWarning( "Logged into server" ); | 96 | qWarning( "Logged into server" ); |
97 | 97 | ||
98 | currentState_ = Connected; | 98 | currentState_ = Connected; |
99 | emit connected(); | 99 | emit connected(); |
100 | 100 | ||
101 | // Create the decoder and start doing stuff | 101 | // Create the decoder and start doing stuff |
102 | decoder_ = new KRFBDecoder( this ); | 102 | decoder_ = new KRFBDecoder( this ); |
103 | CHECK_PTR( decoder_ ); | 103 | CHECK_PTR( decoder_ ); |
104 | 104 | ||
105 | buffer_ = new KRFBBuffer( decoder_, this, "RFB Buffer" ); | 105 | buffer_ = new KRFBBuffer( decoder_, this, "RFB Buffer" ); |
106 | CHECK_PTR( buffer_ ); | 106 | CHECK_PTR( buffer_ ); |
107 | decoder_->setBuffer( buffer_ ); | 107 | decoder_->setBuffer( buffer_ ); |
108 | 108 | ||
109 | connect( decoder_, SIGNAL( status( const QString & ) ), | 109 | connect( decoder_, SIGNAL( status(const QString&) ), |
110 | this, SIGNAL( statusChanged( const QString & ) ) ); | 110 | this, SIGNAL( statusChanged(const QString&) ) ); |
111 | emit loggedIn(); | 111 | emit loggedIn(); |
112 | 112 | ||
113 | decoder_->start(); | 113 | decoder_->start(); |
114 | 114 | ||
115 | updater = new QTimer; | 115 | updater = new QTimer; |
116 | connect( updater, SIGNAL( timeout() ), SLOT( updateTimer() ) ); | 116 | connect( updater, SIGNAL( timeout() ), SLOT( updateTimer() ) ); |
117 | updater->start( options_->updateRate ); | 117 | updater->start( options_->updateRate ); |
118 | } | 118 | } |
119 | 119 | ||
120 | void KRFBConnection::gotSocketError( int err ) | 120 | void KRFBConnection::gotSocketError( int err ) |
121 | { | 121 | { |
122 | currentState_ = Error; | 122 | currentState_ = Error; |
123 | 123 | ||
124 | // Do some error handling stuff | 124 | // Do some error handling stuff |
125 | qWarning( "KRFBConnection: Socket error %d", err ); | 125 | qWarning( "KRFBConnection: Socket error %d", err ); |
126 | 126 | ||
127 | static QString refused = tr( "Connection Refused" ); | 127 | static QString refused = tr( "Connection Refused" ); |
128 | static QString host = tr( "Host not found" ); | 128 | static QString host = tr( "Host not found" ); |
129 | static QString read = tr( "Read Error: QSocket reported an error reading\n" | 129 | static QString read = tr( "Read Error: QSocket reported an error reading\n" |
130 | "data, the remote host has probably dropped the\n" | 130 | "data, the remote host has probably dropped the\n" |
131 | "connection." ); | 131 | "connection." ); |
132 | static QString confused = tr( "QSocket reported an invalid error code" ); | 132 | static QString confused = tr( "QSocket reported an invalid error code" ); |
133 | 133 | ||
134 | QString msg; | 134 | QString msg; |
135 | switch ( err ) { | 135 | switch ( err ) { |
136 | case QSocket::ErrConnectionRefused: | 136 | case QSocket::ErrConnectionRefused: |
137 | msg = refused; | 137 | msg = refused; |
138 | break; | 138 | break; |
139 | case QSocket::ErrHostNotFound: | 139 | case QSocket::ErrHostNotFound: |
140 | msg = host; | 140 | msg = host; |
141 | break; | 141 | break; |
142 | case QSocket::ErrSocketRead: | 142 | case QSocket::ErrSocketRead: |
143 | msg = read; | 143 | msg = read; |
144 | break; | 144 | break; |
145 | default: | 145 | default: |
146 | msg = confused; | 146 | msg = confused; |
147 | }; | 147 | }; |
148 | 148 | ||
149 | QObject::disconnect( sock, SIGNAL( readyRead() ), this, SLOT( gotMoreData() ) ); | 149 | QObject::disconnect( sock, SIGNAL( readyRead() ), this, SLOT( gotMoreData() ) ); |
150 | delete sock; | 150 | delete sock; |
151 | sock = 0; | 151 | sock = 0; |
152 | currentState_ = Disconnected; | 152 | currentState_ = Disconnected; |
153 | 153 | ||
154 | emit error( msg ); | 154 | emit error( msg ); |
155 | } | 155 | } |
156 | 156 | ||
157 | void KRFBConnection::gotMoreData() | 157 | void KRFBConnection::gotMoreData() |
158 | { | 158 | { |
159 | assert( minData_ > 0 ); | 159 | assert( minData_ > 0 ); |
160 | 160 | ||
161 | if ( sock->size() >= minData_ ) { | 161 | if ( sock->size() >= minData_ ) { |
162 | minData_ = 0; | 162 | minData_ = 0; |
163 | QObject::disconnect( sock, SIGNAL( readyRead() ), this, SLOT( gotMoreData() ) ); | 163 | QObject::disconnect( sock, SIGNAL( readyRead() ), this, SLOT( gotMoreData() ) ); |
164 | emit gotEnoughData(); | 164 | emit gotEnoughData(); |
165 | } | 165 | } |
166 | } | 166 | } |
167 | 167 | ||
168 | void KRFBConnection::waitForData( unsigned int sz ) | 168 | void KRFBConnection::waitForData( unsigned int sz ) |
169 | { | 169 | { |
170 | assert( minData_ == 0 ); | 170 | assert( minData_ == 0 ); |
171 | assert( sz > 0 ); | 171 | assert( sz > 0 ); |
172 | assert( currentState_ != Error ); | 172 | assert( currentState_ != Error ); |
173 | 173 | ||
174 | if ( sock->size() >= sz ) { | 174 | if ( sock->size() >= sz ) { |
175 | // qWarning( "No need to wait for data" ); | 175 | // qWarning( "No need to wait for data" ); |
176 | emit gotEnoughData(); | 176 | emit gotEnoughData(); |
177 | } | 177 | } |
178 | else { | 178 | else { |
179 | // qWarning( "Waiting for %u bytes", sz ); | 179 | // qWarning( "Waiting for %u bytes", sz ); |
180 | minData_ = sz; | 180 | minData_ = sz; |
181 | connect( sock, SIGNAL( readyRead() ), SLOT( gotMoreData() ) ); | 181 | connect( sock, SIGNAL( readyRead() ), SLOT( gotMoreData() ) ); |
182 | } | 182 | } |
183 | } | 183 | } |
184 | 184 | ||
185 | int KRFBConnection::read( void *buf, int sz ) | 185 | int KRFBConnection::read( void *buf, int sz ) |
186 | { | 186 | { |
187 | return sock->readBlock( (char *) buf, sz ); | 187 | return sock->readBlock( (char *) buf, sz ); |
188 | } | 188 | } |
189 | 189 | ||
190 | int KRFBConnection::write( void *buf, int sz ) | 190 | int KRFBConnection::write( void *buf, int sz ) |
191 | { | 191 | { |
192 | return sock->writeBlock( (const char *) buf, sz ); | 192 | return sock->writeBlock( (const char *) buf, sz ); |
193 | } | 193 | } |
194 | 194 | ||
195 | KRFBConnection::State KRFBConnection::state() const | 195 | KRFBConnection::State KRFBConnection::state() const |
196 | { | 196 | { |
197 | return currentState_; | 197 | return currentState_; |
198 | } | 198 | } |
199 | 199 | ||
200 | void KRFBConnection::setPortBase( int base ) | 200 | void KRFBConnection::setPortBase( int base ) |
201 | { | 201 | { |
202 | portBase_ = base; | 202 | portBase_ = base; |
203 | } | 203 | } |
204 | 204 | ||
205 | int KRFBConnection::portBase() const | 205 | int KRFBConnection::portBase() const |
206 | { | 206 | { |
diff --git a/noncore/comm/keypebble/krfblogin.cpp b/noncore/comm/keypebble/krfblogin.cpp index 0b4a757..2bbd110 100644 --- a/noncore/comm/keypebble/krfblogin.cpp +++ b/noncore/comm/keypebble/krfblogin.cpp | |||
@@ -1,148 +1,148 @@ | |||
1 | #include <assert.h> | 1 | #include <assert.h> |
2 | 2 | ||
3 | 3 | ||
4 | extern "C" { | 4 | extern "C" { |
5 | #include "vncauth.h" | 5 | #include "vncauth.h" |
6 | } | 6 | } |
7 | 7 | ||
8 | #include "krfblogin.h" | 8 | #include "krfblogin.h" |
9 | #include "krfbconnection.h" | 9 | #include "krfbconnection.h" |
10 | #include <qtimer.h> | 10 | #include <qtimer.h> |
11 | 11 | ||
12 | // The length of the various messages (used to decide how many bytes to | 12 | // The length of the various messages (used to decide how many bytes to |
13 | // wait for). | 13 | // wait for). |
14 | const int ServerVersionLength = 12; | 14 | const int ServerVersionLength = 12; |
15 | const int ClientVersionLength = 12; | 15 | const int ClientVersionLength = 12; |
16 | const int AuthSchemeLength = 4; | 16 | const int AuthSchemeLength = 4; |
17 | const int FailureReasonSizeLength = 4; | 17 | const int FailureReasonSizeLength = 4; |
18 | const int ChallengeLength = 16; | 18 | const int ChallengeLength = 16; |
19 | const int AuthResultLength = 4; | 19 | const int AuthResultLength = 4; |
20 | 20 | ||
21 | // Authentication results | 21 | // Authentication results |
22 | enum AuthResult { | 22 | enum AuthResult { |
23 | AuthOk, | 23 | AuthOk, |
24 | AuthFailed, | 24 | AuthFailed, |
25 | AuthTooMany | 25 | AuthTooMany |
26 | }; | 26 | }; |
27 | 27 | ||
28 | typedef unsigned char CARD8; | 28 | typedef unsigned char CARD8; |
29 | typedef unsigned short CARD16; | 29 | typedef unsigned short CARD16; |
30 | typedef unsigned long CARD32; | 30 | typedef unsigned long CARD32; |
31 | 31 | ||
32 | const int endianTest = 1; | 32 | const int endianTest = 1; |
33 | 33 | ||
34 | // Endian stuff | 34 | // Endian stuff |
35 | #define Swap16IfLE(s) \ | 35 | #define Swap16IfLE(s) \ |
36 | (*(char *)&endianTest ? ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)) : (s)) | 36 | (*(char *)&endianTest ? ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)) : (s)) |
37 | 37 | ||
38 | #define Swap32IfLE(l) \ | 38 | #define Swap32IfLE(l) \ |
39 | (*(char *)&endianTest ? ((((l) & 0xff000000) >> 24) | \ | 39 | (*(char *)&endianTest ? ((((l) & 0xff000000) >> 24) | \ |
40 | (((l) & 0x00ff0000) >> 8) | \ | 40 | (((l) & 0x00ff0000) >> 8) | \ |
41 | (((l) & 0x0000ff00) << 8) | \ | 41 | (((l) & 0x0000ff00) << 8) | \ |
42 | (((l) & 0x000000ff) << 24)) : (l)) | 42 | (((l) & 0x000000ff) << 24)) : (l)) |
43 | 43 | ||
44 | KRFBLogin::KRFBLogin( KRFBConnection *con ) | 44 | KRFBLogin::KRFBLogin( KRFBConnection *con ) |
45 | : QObject( con, "RFB login manager" ) | 45 | : QObject( con, "RFB login manager" ) |
46 | { | 46 | { |
47 | assert( con ); | 47 | assert( con ); |
48 | this->con = con; | 48 | this->con = con; |
49 | currentState = AwaitingServerVersion; | 49 | currentState = AwaitingServerVersion; |
50 | 50 | ||
51 | connect( this, SIGNAL( error( const QString & ) ), | 51 | connect( this, SIGNAL( error(const QString&) ), |
52 | con, SIGNAL( error( const QString & ) ) ); | 52 | con, SIGNAL( error(const QString&) ) ); |
53 | 53 | ||
54 | 54 | ||
55 | qWarning( "Waiting for server version..." ); | 55 | qWarning( "Waiting for server version..." ); |
56 | 56 | ||
57 | static QString statusMsg = tr( "Waiting for server version..." ); | 57 | static QString statusMsg = tr( "Waiting for server version..." ); |
58 | emit status( statusMsg ); | 58 | emit status( statusMsg ); |
59 | 59 | ||
60 | // Kick off the state machine | 60 | // Kick off the state machine |
61 | connect( con, SIGNAL( gotEnoughData() ), SLOT( gotServerVersion() ) ); | 61 | connect( con, SIGNAL( gotEnoughData() ), SLOT( gotServerVersion() ) ); |
62 | con->waitForData( ServerVersionLength ); | 62 | con->waitForData( ServerVersionLength ); |
63 | } | 63 | } |
64 | 64 | ||
65 | KRFBLogin::~KRFBLogin() | 65 | KRFBLogin::~KRFBLogin() |
66 | { | 66 | { |
67 | 67 | ||
68 | } | 68 | } |
69 | 69 | ||
70 | KRFBLogin::State KRFBLogin::state() const | 70 | KRFBLogin::State KRFBLogin::state() const |
71 | { | 71 | { |
72 | return currentState; | 72 | return currentState; |
73 | } | 73 | } |
74 | 74 | ||
75 | void KRFBLogin::gotServerVersion() | 75 | void KRFBLogin::gotServerVersion() |
76 | { | 76 | { |
77 | qWarning( "Got server version" ); | 77 | qWarning( "Got server version" ); |
78 | 78 | ||
79 | disconnect( con, SIGNAL( gotEnoughData() ), | 79 | disconnect( con, SIGNAL( gotEnoughData() ), |
80 | this, SLOT( gotServerVersion() ) ); | 80 | this, SLOT( gotServerVersion() ) ); |
81 | 81 | ||
82 | // Read the server's version message | 82 | // Read the server's version message |
83 | char serverVersion[ ServerVersionLength + 1 ]; | 83 | char serverVersion[ ServerVersionLength + 1 ]; |
84 | con->read( serverVersion, ServerVersionLength ); | 84 | con->read( serverVersion, ServerVersionLength ); |
85 | serverVersion[ ServerVersionLength ] = '\0'; | 85 | serverVersion[ ServerVersionLength ] = '\0'; |
86 | 86 | ||
87 | QCString rfbString( serverVersion, ServerVersionLength + 1 ); | 87 | QCString rfbString( serverVersion, ServerVersionLength + 1 ); |
88 | versionString = rfbString; | 88 | versionString = rfbString; |
89 | 89 | ||
90 | QRegExp regexp( "RFB [0-9][0-9][0-9]\\.[0-9][0-9][0-9]\n" ); | 90 | QRegExp regexp( "RFB [0-9][0-9][0-9]\\.[0-9][0-9][0-9]\n" ); |
91 | 91 | ||
92 | if ( rfbString.find( regexp ) == -1 ) { | 92 | if ( rfbString.find( regexp ) == -1 ) { |
93 | static QString msg = tr( "Error: Invalid server version, %1" ).arg( rfbString ); | 93 | static QString msg = tr( "Error: Invalid server version, %1" ).arg( rfbString ); |
94 | 94 | ||
95 | qWarning( msg ); | 95 | qWarning( msg ); |
96 | emit error( msg ); | 96 | emit error( msg ); |
97 | currentState = Error; | 97 | currentState = Error; |
98 | return; | 98 | return; |
99 | } | 99 | } |
100 | 100 | ||
101 | // Calculate the actual version number | 101 | // Calculate the actual version number |
102 | serverMajor = (serverVersion[4] - '0') * 100 | 102 | serverMajor = (serverVersion[4] - '0') * 100 |
103 | + (serverVersion[5] - '0') * 10 | 103 | + (serverVersion[5] - '0') * 10 |
104 | + (serverVersion[6] - '0'); | 104 | + (serverVersion[6] - '0'); |
105 | serverMinor = (serverVersion[8] - '0') * 100 | 105 | serverMinor = (serverVersion[8] - '0') * 100 |
106 | + (serverVersion[9] - '0') * 10 | 106 | + (serverVersion[9] - '0') * 10 |
107 | + (serverVersion[10] - '0'); | 107 | + (serverVersion[10] - '0'); |
108 | 108 | ||
109 | qWarning("Server Version: %03d.%03d", serverMajor, serverMinor ); | 109 | qWarning("Server Version: %03d.%03d", serverMajor, serverMinor ); |
110 | 110 | ||
111 | if ( serverMajor != 3 ) { | 111 | if ( serverMajor != 3 ) { |
112 | QString msg = tr( "Error: Unsupported server version, %1" ) | 112 | QString msg = tr( "Error: Unsupported server version, %1" ) |
113 | .arg( rfbString ); | 113 | .arg( rfbString ); |
114 | 114 | ||
115 | qWarning( msg ); | 115 | qWarning( msg ); |
116 | emit error( msg ); | 116 | emit error( msg ); |
117 | currentState = Error; | 117 | currentState = Error; |
118 | return; | 118 | return; |
119 | } | 119 | } |
120 | 120 | ||
121 | if ( serverMinor != 3 ) { | 121 | if ( serverMinor != 3 ) { |
122 | qWarning( "Minor version mismatch: %d", serverMinor ); | 122 | qWarning( "Minor version mismatch: %d", serverMinor ); |
123 | } | 123 | } |
124 | 124 | ||
125 | // Setup for the next state | 125 | // Setup for the next state |
126 | sendClientVersion(); | 126 | sendClientVersion(); |
127 | 127 | ||
128 | connect( con, SIGNAL( gotEnoughData() ), SLOT( gotAuthScheme() ) ); | 128 | connect( con, SIGNAL( gotEnoughData() ), SLOT( gotAuthScheme() ) ); |
129 | con->waitForData( AuthSchemeLength ); | 129 | con->waitForData( AuthSchemeLength ); |
130 | } | 130 | } |
131 | 131 | ||
132 | void KRFBLogin::gotAuthScheme() | 132 | void KRFBLogin::gotAuthScheme() |
133 | { | 133 | { |
134 | disconnect( con, SIGNAL( gotEnoughData() ), | 134 | disconnect( con, SIGNAL( gotEnoughData() ), |
135 | this, SLOT( gotAuthScheme() ) ); | 135 | this, SLOT( gotAuthScheme() ) ); |
136 | 136 | ||
137 | // Got data | 137 | // Got data |
138 | CARD32 scheme; | 138 | CARD32 scheme; |
139 | con->read( &scheme, AuthSchemeLength ); | 139 | con->read( &scheme, AuthSchemeLength ); |
140 | scheme = Swap32IfLE( scheme ); | 140 | scheme = Swap32IfLE( scheme ); |
141 | 141 | ||
142 | static QString statusMsgOk = tr( "Logged in" ); | 142 | static QString statusMsgOk = tr( "Logged in" ); |
143 | 143 | ||
144 | switch ( scheme ) { | 144 | switch ( scheme ) { |
145 | case 0: | 145 | case 0: |
146 | qWarning( "Failed" ); | 146 | qWarning( "Failed" ); |
147 | // Handle failure | 147 | // Handle failure |
148 | connect( con, SIGNAL( gotEnoughData() ), SLOT( gotFailureReasonSize() ) ); | 148 | connect( con, SIGNAL( gotEnoughData() ), SLOT( gotFailureReasonSize() ) ); |
diff --git a/noncore/comm/keypebble/kvnc.cpp b/noncore/comm/keypebble/kvnc.cpp index c678edf..88cb50b 100644 --- a/noncore/comm/keypebble/kvnc.cpp +++ b/noncore/comm/keypebble/kvnc.cpp | |||
@@ -1,164 +1,164 @@ | |||
1 | #include <qaction.h> | 1 | #include <qaction.h> |
2 | #include <qpopupmenu.h> | 2 | #include <qpopupmenu.h> |
3 | #include <qpushbutton.h> | 3 | #include <qpushbutton.h> |
4 | #include <qmessagebox.h> | 4 | #include <qmessagebox.h> |
5 | #include <qlistbox.h> | 5 | #include <qlistbox.h> |
6 | #include <qpe/qpeapplication.h> | 6 | #include <qpe/qpeapplication.h> |
7 | #include <qpe/resource.h> | 7 | #include <qpe/resource.h> |
8 | 8 | ||
9 | #include <assert.h> | 9 | #include <assert.h> |
10 | 10 | ||
11 | #include "kvnc.h" | 11 | #include "kvnc.h" |
12 | #include "krfbcanvas.h" | 12 | #include "krfbcanvas.h" |
13 | #include "krfbconnection.h" | 13 | #include "krfbconnection.h" |
14 | #include "kvncconndlg.h" | 14 | #include "kvncconndlg.h" |
15 | 15 | ||
16 | static int u_id = 1; | 16 | static int u_id = 1; |
17 | static int get_unique_id() | 17 | static int get_unique_id() |
18 | { | 18 | { |
19 | return u_id++; | 19 | return u_id++; |
20 | } | 20 | } |
21 | 21 | ||
22 | 22 | ||
23 | /* XPM */ | 23 | /* XPM */ |
24 | static char * menu_xpm[] = { | 24 | static char * menu_xpm[] = { |
25 | "12 12 5 1", | 25 | "12 12 5 1", |
26 | " c None", | 26 | " c None", |
27 | ".c #000000", | 27 | ".c #000000", |
28 | "+c #FFFDAD", | 28 | "+c #FFFDAD", |
29 | "@c #FFFF00", | 29 | "@c #FFFF00", |
30 | "#c #E5E100", | 30 | "#c #E5E100", |
31 | " ", | 31 | " ", |
32 | " ", | 32 | " ", |
33 | " ......... ", | 33 | " ......... ", |
34 | " .+++++++. ", | 34 | " .+++++++. ", |
35 | " .+@@@@#. ", | 35 | " .+@@@@#. ", |
36 | " .+@@@#. ", | 36 | " .+@@@#. ", |
37 | " .+@@#. ", | 37 | " .+@@#. ", |
38 | " .+@#. ", | 38 | " .+@#. ", |
39 | " .+#. ", | 39 | " .+#. ", |
40 | " .+. ", | 40 | " .+. ", |
41 | " .. ", | 41 | " .. ", |
42 | " "}; | 42 | " "}; |
43 | 43 | ||
44 | const int StatusTextId = 0; | 44 | const int StatusTextId = 0; |
45 | 45 | ||
46 | KVNC::KVNC( QWidget *parent, const char *name, WFlags f) : QMainWindow( 0, name ,WStyle_ContextHelp) | 46 | KVNC::KVNC( QWidget *parent, const char *name, WFlags f) : QMainWindow( 0, name ,WStyle_ContextHelp) |
47 | { | 47 | { |
48 | setCaption( tr("VNC Viewer") ); | 48 | setCaption( tr("VNC Viewer") ); |
49 | fullscreen = false; | 49 | fullscreen = false; |
50 | 50 | ||
51 | stack = new QWidgetStack( this ); | 51 | stack = new QWidgetStack( this ); |
52 | setCentralWidget( stack ); | 52 | setCentralWidget( stack ); |
53 | 53 | ||
54 | bookmarkSelector=new KVNCBookmarkDlg(); | 54 | bookmarkSelector=new KVNCBookmarkDlg(); |
55 | stack->addWidget(bookmarkSelector,get_unique_id()); | 55 | stack->addWidget(bookmarkSelector,get_unique_id()); |
56 | stack->raiseWidget( bookmarkSelector ); | 56 | stack->raiseWidget( bookmarkSelector ); |
57 | 57 | ||
58 | canvas = new KRFBCanvas( stack, "canvas" ); | 58 | canvas = new KRFBCanvas( stack, "canvas" ); |
59 | stack->addWidget(canvas,get_unique_id()); | 59 | stack->addWidget(canvas,get_unique_id()); |
60 | setCentralWidget( stack ); | 60 | setCentralWidget( stack ); |
61 | 61 | ||
62 | 62 | ||
63 | connect( bookmarkSelector->bookmarkList, SIGNAL(clicked(QListBoxItem *)), | 63 | connect( bookmarkSelector->bookmarkList, SIGNAL(clicked(QListBoxItem*)), |
64 | this, SLOT(openConnection(QListBoxItem *)) ); | 64 | this, SLOT(openConnection(QListBoxItem*)) ); |
65 | connect( canvas->connection(), SIGNAL(statusChanged(const QString &)), | 65 | connect( canvas->connection(), SIGNAL(statusChanged(const QString&)), |
66 | this, SLOT(statusMessage(const QString &)) ); | 66 | this, SLOT(statusMessage(const QString&)) ); |
67 | connect( canvas->connection(), SIGNAL(error(const QString &)), | 67 | connect( canvas->connection(), SIGNAL(error(const QString&)), |
68 | this, SLOT(error(const QString &)) ); | 68 | this, SLOT(error(const QString&)) ); |
69 | connect( canvas->connection(), SIGNAL(connected()), this, SLOT(connected()) ); | 69 | connect( canvas->connection(), SIGNAL(connected()), this, SLOT(connected()) ); |
70 | connect( canvas->connection(), SIGNAL(loggedIn()), this, SLOT(loggedIn()) ); | 70 | connect( canvas->connection(), SIGNAL(loggedIn()), this, SLOT(loggedIn()) ); |
71 | connect( canvas->connection(), SIGNAL(disconnected()), this, SLOT(disconnected()) ); | 71 | connect( canvas->connection(), SIGNAL(disconnected()), this, SLOT(disconnected()) ); |
72 | 72 | ||
73 | setupActions(); | 73 | setupActions(); |
74 | 74 | ||
75 | cornerButton = new QPushButton( this ); | 75 | cornerButton = new QPushButton( this ); |
76 | cornerButton->setPixmap( QPixmap( (const char**)menu_xpm ) ); | 76 | cornerButton->setPixmap( QPixmap( (const char**)menu_xpm ) ); |
77 | connect( cornerButton, SIGNAL(pressed()), this, SLOT(showMenu()) ); | 77 | connect( cornerButton, SIGNAL(pressed()), this, SLOT(showMenu()) ); |
78 | canvas->setCornerWidget( cornerButton ); | 78 | canvas->setCornerWidget( cornerButton ); |
79 | 79 | ||
80 | stack->raiseWidget( bookmarkSelector ); | 80 | stack->raiseWidget( bookmarkSelector ); |
81 | 81 | ||
82 | 82 | ||
83 | bar= new QToolBar( this ); | 83 | bar= new QToolBar( this ); |
84 | setToolBarsMovable( false ); | 84 | setToolBarsMovable( false ); |
85 | setRightJustification(false); | 85 | setRightJustification(false); |
86 | 86 | ||
87 | 87 | ||
88 | QAction *n = new QAction( tr( "New Connection" ), Resource::loadPixmap( "new" ), | 88 | QAction *n = new QAction( tr( "New Connection" ), Resource::loadPixmap( "new" ), |
89 | QString::null, 0, this, 0 ); | 89 | QString::null, 0, this, 0 ); |
90 | connect( n, SIGNAL( activated() ), | 90 | connect( n, SIGNAL( activated() ), |
91 | this, SLOT( newConnection() ) ); | 91 | this, SLOT( newConnection() ) ); |
92 | n->addTo( bar ); | 92 | n->addTo( bar ); |
93 | 93 | ||
94 | QAction *o = new QAction( tr( "Open Bookmark" ), Resource::loadPixmap( "fileopen" ), | 94 | QAction *o = new QAction( tr( "Open Bookmark" ), Resource::loadPixmap( "fileopen" ), |
95 | QString::null, 0, this, 0 ); | 95 | QString::null, 0, this, 0 ); |
96 | connect( o, SIGNAL( activated() ), | 96 | connect( o, SIGNAL( activated() ), |
97 | this, SLOT( openConnection() ) ); | 97 | this, SLOT( openConnection() ) ); |
98 | o->addTo( bar ); | 98 | o->addTo( bar ); |
99 | 99 | ||
100 | QAction *d = new QAction( tr( "Delete Bookmark" ), Resource::loadPixmap( "trash" ), | 100 | QAction *d = new QAction( tr( "Delete Bookmark" ), Resource::loadPixmap( "trash" ), |
101 | QString::null, 0, this, 0 ); | 101 | QString::null, 0, this, 0 ); |
102 | connect( d, SIGNAL( activated() ), | 102 | connect( d, SIGNAL( activated() ), |
103 | this, SLOT( deleteBookmark() ) ); | 103 | this, SLOT( deleteBookmark() ) ); |
104 | d->addTo( bar ); | 104 | d->addTo( bar ); |
105 | } | 105 | } |
106 | 106 | ||
107 | KVNC::~KVNC() | 107 | KVNC::~KVNC() |
108 | { | 108 | { |
109 | 109 | ||
110 | } | 110 | } |
111 | 111 | ||
112 | void KVNC::newConnection() | 112 | void KVNC::newConnection() |
113 | { | 113 | { |
114 | curServer=new KRFBServer; | 114 | curServer=new KRFBServer; |
115 | 115 | ||
116 | KVNCConnDlg dlg( curServer,this); | 116 | KVNCConnDlg dlg( curServer,this); |
117 | if ( QPEApplication::execDialog( &dlg )) { | 117 | if ( QPEApplication::execDialog( &dlg )) { |
118 | if (!curServer->name.isEmpty()) | 118 | if (!curServer->name.isEmpty()) |
119 | bookmarkSelector->addBookmark(curServer); | 119 | bookmarkSelector->addBookmark(curServer); |
120 | canvas->openConnection(*curServer); | 120 | canvas->openConnection(*curServer); |
121 | } else | 121 | } else |
122 | curServer=0; | 122 | curServer=0; |
123 | } | 123 | } |
124 | 124 | ||
125 | void KVNC::openConnection( QString name) | 125 | void KVNC::openConnection( QString name) |
126 | { | 126 | { |
127 | curServer=bookmarkSelector->getServer(name); | 127 | curServer=bookmarkSelector->getServer(name); |
128 | 128 | ||
129 | if (curServer) { | 129 | if (curServer) { |
130 | KVNCConnDlg dlg( curServer,this); | 130 | KVNCConnDlg dlg( curServer,this); |
131 | if ( QPEApplication::execDialog( &dlg ) ) { | 131 | if ( QPEApplication::execDialog( &dlg ) ) { |
132 | canvas->openConnection(*curServer); | 132 | canvas->openConnection(*curServer); |
133 | bookmarkSelector->writeBookmarks(); | 133 | bookmarkSelector->writeBookmarks(); |
134 | } else | 134 | } else |
135 | curServer=0; | 135 | curServer=0; |
136 | } | 136 | } |
137 | } | 137 | } |
138 | 138 | ||
139 | void KVNC::openConnection( void ) | 139 | void KVNC::openConnection( void ) |
140 | { | 140 | { |
141 | openConnection( bookmarkSelector->selectedBookmark()); | 141 | openConnection( bookmarkSelector->selectedBookmark()); |
142 | } | 142 | } |
143 | 143 | ||
144 | void KVNC::openConnection( QListBoxItem * item) | 144 | void KVNC::openConnection( QListBoxItem * item) |
145 | { | 145 | { |
146 | if (item) | 146 | if (item) |
147 | openConnection(item->text()); | 147 | openConnection(item->text()); |
148 | } | 148 | } |
149 | 149 | ||
150 | void KVNC::setupActions() | 150 | void KVNC::setupActions() |
151 | { | 151 | { |
152 | cornerMenu = new QPopupMenu( this ); | 152 | cornerMenu = new QPopupMenu( this ); |
153 | 153 | ||
154 | fullScreenAction = new QAction( tr("Full Screen"), QString::null, 0, 0 ); | 154 | fullScreenAction = new QAction( tr("Full Screen"), QString::null, 0, 0 ); |
155 | connect( fullScreenAction, SIGNAL(activated()), | 155 | connect( fullScreenAction, SIGNAL(activated()), |
156 | this, SLOT( toggleFullScreen() ) ); | 156 | this, SLOT( toggleFullScreen() ) ); |
157 | fullScreenAction->addTo( cornerMenu ); | 157 | fullScreenAction->addTo( cornerMenu ); |
158 | fullScreenAction->setEnabled( false ); | 158 | fullScreenAction->setEnabled( false ); |
159 | 159 | ||
160 | ctlAltDelAction = new QAction( tr("Send Contrl-Alt-Delete"), QString::null, 0, 0 ); | 160 | ctlAltDelAction = new QAction( tr("Send Contrl-Alt-Delete"), QString::null, 0, 0 ); |
161 | connect( ctlAltDelAction, SIGNAL(activated()), | 161 | connect( ctlAltDelAction, SIGNAL(activated()), |
162 | canvas, SLOT( sendCtlAltDel() ) ); | 162 | canvas, SLOT( sendCtlAltDel() ) ); |
163 | ctlAltDelAction->addTo( cornerMenu ); | 163 | ctlAltDelAction->addTo( cornerMenu ); |
164 | ctlAltDelAction->setEnabled( false ); | 164 | ctlAltDelAction->setEnabled( false ); |
diff --git a/noncore/games/bounce/game.cpp b/noncore/games/bounce/game.cpp index c07f453..1f1f8cd 100644 --- a/noncore/games/bounce/game.cpp +++ b/noncore/games/bounce/game.cpp | |||
@@ -228,199 +228,199 @@ void Wall::fill( bool black ) | |||
228 | } | 228 | } |
229 | 229 | ||
230 | /*************************************************************************/ | 230 | /*************************************************************************/ |
231 | 231 | ||
232 | JezzField::JezzField( QPixmap tiles, QObject* parent, const char* name ) | 232 | JezzField::JezzField( QPixmap tiles, QObject* parent, const char* name ) |
233 | : QCanvas( parent, name ), m_tiles( tiles ) | 233 | : QCanvas( parent, name ), m_tiles( tiles ) |
234 | { | 234 | { |
235 | setPixmaps( tiles ); | 235 | setPixmaps( tiles ); |
236 | } | 236 | } |
237 | 237 | ||
238 | void JezzField::setGameTile( int x, int y, bool black ) | 238 | void JezzField::setGameTile( int x, int y, bool black ) |
239 | { | 239 | { |
240 | setTile( x, y, black ? TILE_BORDER : TILE_FREE ); | 240 | setTile( x, y, black ? TILE_BORDER : TILE_FREE ); |
241 | } | 241 | } |
242 | 242 | ||
243 | void JezzField::setPixmaps( QPixmap tiles ) | 243 | void JezzField::setPixmaps( QPixmap tiles ) |
244 | { | 244 | { |
245 | // create new tiles | 245 | // create new tiles |
246 | QPixmap allTiles( TILE_SIZE*(FIELD_WIDTH-2), TILE_SIZE*(FIELD_HEIGHT-1) ); | 246 | QPixmap allTiles( TILE_SIZE*(FIELD_WIDTH-2), TILE_SIZE*(FIELD_HEIGHT-1) ); |
247 | 247 | ||
248 | // handle default tiles | 248 | // handle default tiles |
249 | bitBlt( &allTiles, 0, TILE_SIZE*(FIELD_HEIGHT-2), | 249 | bitBlt( &allTiles, 0, TILE_SIZE*(FIELD_HEIGHT-2), |
250 | &tiles, 0, 0, tiles.width(), tiles.height() ); | 250 | &tiles, 0, 0, tiles.width(), tiles.height() ); |
251 | 251 | ||
252 | // load tiles into canvas | 252 | // load tiles into canvas |
253 | setTiles( allTiles, FIELD_WIDTH, FIELD_HEIGHT, TILE_SIZE, TILE_SIZE ); | 253 | setTiles( allTiles, FIELD_WIDTH, FIELD_HEIGHT, TILE_SIZE, TILE_SIZE ); |
254 | } | 254 | } |
255 | 255 | ||
256 | /*************************************************************************/ | 256 | /*************************************************************************/ |
257 | 257 | ||
258 | JezzView::JezzView(QCanvas* viewing, QWidget* parent, const char* name, WFlags f) | 258 | JezzView::JezzView(QCanvas* viewing, QWidget* parent, const char* name, WFlags f) |
259 | : QCanvasView( viewing, parent, name, f ), m_vertical( false ) | 259 | : QCanvasView( viewing, parent, name, f ), m_vertical( false ) |
260 | { | 260 | { |
261 | setResizePolicy( AutoOne ); | 261 | setResizePolicy( AutoOne ); |
262 | setHScrollBarMode( AlwaysOff ); | 262 | setHScrollBarMode( AlwaysOff ); |
263 | setVScrollBarMode( AlwaysOff ); | 263 | setVScrollBarMode( AlwaysOff ); |
264 | 264 | ||
265 | setCursor( sizeHorCursor ); | 265 | setCursor( sizeHorCursor ); |
266 | } | 266 | } |
267 | 267 | ||
268 | void JezzView::viewportMouseReleaseEvent( QMouseEvent *ev ) | 268 | void JezzView::viewportMouseReleaseEvent( QMouseEvent *ev ) |
269 | { | 269 | { |
270 | if ( ev->button() & LeftButton ) | 270 | if ( ev->button() & LeftButton ) |
271 | { | 271 | { |
272 | emit buildWall( ev->x()/TILE_SIZE, ev->y()/TILE_SIZE, m_vertical ); | 272 | emit buildWall( ev->x()/TILE_SIZE, ev->y()/TILE_SIZE, m_vertical ); |
273 | } | 273 | } |
274 | } | 274 | } |
275 | 275 | ||
276 | void JezzView::changeCursor() | 276 | void JezzView::changeCursor() |
277 | { | 277 | { |
278 | m_vertical = !m_vertical; | 278 | m_vertical = !m_vertical; |
279 | if ( m_vertical ) | 279 | if ( m_vertical ) |
280 | { | 280 | { |
281 | setCursor( sizeVerCursor ); | 281 | setCursor( sizeVerCursor ); |
282 | } | 282 | } |
283 | else | 283 | else |
284 | { | 284 | { |
285 | setCursor( sizeHorCursor ); | 285 | setCursor( sizeHorCursor ); |
286 | } | 286 | } |
287 | } | 287 | } |
288 | 288 | ||
289 | /*************************************************************************/ | 289 | /*************************************************************************/ |
290 | 290 | ||
291 | JezzGame::JezzGame( int ballNum, QWidget *parent, const char *name ) | 291 | JezzGame::JezzGame( int ballNum, QWidget *parent, const char *name ) |
292 | : QWidget( parent, name ), m_wall1( 0 ), m_wall2( 0 ), | 292 | : QWidget( parent, name ), m_wall1( 0 ), m_wall2( 0 ), |
293 | m_text( 0 ), m_running( false ), m_percent( 0 ), m_pictured( false ) | 293 | m_text( 0 ), m_running( false ), m_percent( 0 ), m_pictured( false ) |
294 | { | 294 | { |
295 | QString path = QPEApplication::qpeDir()+"pics/bounce/"; | 295 | QString path = QPEApplication::qpeDir()+"pics/bounce/"; |
296 | 296 | ||
297 | // load gfx | 297 | // load gfx |
298 | m_ballPixmaps = new QCanvasPixmapArray( path + "ball%1.png", 25 ); | 298 | m_ballPixmaps = new QCanvasPixmapArray( path + "ball%1.png", 25 ); |
299 | for ( unsigned n=0; n < m_ballPixmaps->count(); n++ ) | 299 | for ( unsigned n=0; n < m_ballPixmaps->count(); n++ ) |
300 | m_ballPixmaps->image(n)->setOffset( 0, 0 ); | 300 | m_ballPixmaps->image(n)->setOffset( 0, 0 ); |
301 | 301 | ||
302 | m_arrowPixmaps = new QCanvasPixmapArray( path + "arrow%1.png", 2 ); | 302 | m_arrowPixmaps = new QCanvasPixmapArray( path + "arrow%1.png", 2 ); |
303 | for ( unsigned n=0; n < m_arrowPixmaps->count(); n++ ) | 303 | for ( unsigned n=0; n < m_arrowPixmaps->count(); n++ ) |
304 | m_arrowPixmaps->image(n)->setOffset( 0, 0 ); | 304 | m_arrowPixmaps->image(n)->setOffset( 0, 0 ); |
305 | 305 | ||
306 | QPixmap tiles( path + "tiles.png" ); | 306 | QPixmap tiles( path + "tiles.png" ); |
307 | 307 | ||
308 | // create field | 308 | // create field |
309 | m_field = new JezzField( tiles, this, "m_field" ); | 309 | m_field = new JezzField( tiles, this, "m_field" ); |
310 | m_field->resize( TILE_SIZE*FIELD_WIDTH, TILE_SIZE*FIELD_HEIGHT ); | 310 | m_field->resize( TILE_SIZE*FIELD_WIDTH, TILE_SIZE*FIELD_HEIGHT ); |
311 | 311 | ||
312 | for ( int x=0; x<FIELD_WIDTH; x++ ) | 312 | for ( int x=0; x<FIELD_WIDTH; x++ ) |
313 | m_field->setTile( x, 0, TILE_BORDER ); | 313 | m_field->setTile( x, 0, TILE_BORDER ); |
314 | for ( int y=1; y<FIELD_HEIGHT-1; y++ ) | 314 | for ( int y=1; y<FIELD_HEIGHT-1; y++ ) |
315 | { | 315 | { |
316 | m_field->setTile( 0, y, TILE_BORDER ); | 316 | m_field->setTile( 0, y, TILE_BORDER ); |
317 | for ( int x=1; x<FIELD_WIDTH-1; x++ ) | 317 | for ( int x=1; x<FIELD_WIDTH-1; x++ ) |
318 | m_field->setTile( x, y, TILE_FREE ); | 318 | m_field->setTile( x, y, TILE_FREE ); |
319 | m_field->setTile( FIELD_WIDTH-1, y, TILE_BORDER ); | 319 | m_field->setTile( FIELD_WIDTH-1, y, TILE_BORDER ); |
320 | } | 320 | } |
321 | for ( int x=0; x<FIELD_WIDTH; x++ ) | 321 | for ( int x=0; x<FIELD_WIDTH; x++ ) |
322 | m_field->setTile( x, FIELD_HEIGHT-1, TILE_BORDER ); | 322 | m_field->setTile( x, FIELD_HEIGHT-1, TILE_BORDER ); |
323 | 323 | ||
324 | connect( m_field, SIGNAL(ballCollision(Ball *, int, int, int)), this, SLOT(ballCollision(Ball *, int, int, int)) ); | 324 | connect( m_field, SIGNAL(ballCollision(Ball*,int,int,int)), this, SLOT(ballCollision(Ball*,int,int,int)) ); |
325 | 325 | ||
326 | // create view | 326 | // create view |
327 | m_view = new JezzView( m_field, this, "m_view" ); | 327 | m_view = new JezzView( m_field, this, "m_view" ); |
328 | m_view->move( 0, 0 ); | 328 | m_view->move( 0, 0 ); |
329 | m_view->adjustSize(); | 329 | m_view->adjustSize(); |
330 | connect( m_view, SIGNAL(buildWall(int, int, bool)), this, SLOT(buildWall(int, int, bool)) ); | 330 | connect( m_view, SIGNAL(buildWall(int,int,bool)), this, SLOT(buildWall(int,int,bool)) ); |
331 | 331 | ||
332 | // create balls | 332 | // create balls |
333 | for ( int n=0; n<ballNum; n++ ) | 333 | for ( int n=0; n<ballNum; n++ ) |
334 | { | 334 | { |
335 | Ball *ball = new Ball( m_ballPixmaps, m_field ); | 335 | Ball *ball = new Ball( m_ballPixmaps, m_field ); |
336 | m_balls.append( ball ); | 336 | m_balls.append( ball ); |
337 | ball->setVelocity( ((rand() & 1)*2-1)*2, ((rand() & 1)*2-1)*2 ); | 337 | ball->setVelocity( ((rand() & 1)*2-1)*2, ((rand() & 1)*2-1)*2 ); |
338 | ball->setFrame( rand() % 25 ); | 338 | ball->setFrame( rand() % 25 ); |
339 | ball->move( 4*TILE_SIZE + ( rand() - 50 ) % ( (FIELD_WIDTH-8)*TILE_SIZE ), | 339 | ball->move( 4*TILE_SIZE + ( rand() - 50 ) % ( (FIELD_WIDTH-8)*TILE_SIZE ), |
340 | 4*TILE_SIZE + rand() % ( (FIELD_HEIGHT-8)*TILE_SIZE ) ); | 340 | 4*TILE_SIZE + rand() % ( (FIELD_HEIGHT-8)*TILE_SIZE ) ); |
341 | ball->show(); | 341 | ball->show(); |
342 | } | 342 | } |
343 | 343 | ||
344 | // create arrow | 344 | // create arrow |
345 | arrow = new Arrow( m_arrowPixmaps, m_field ); | 345 | arrow = new Arrow( m_arrowPixmaps, m_field ); |
346 | arrow->show(); | 346 | arrow->show(); |
347 | 347 | ||
348 | // create text label | 348 | // create text label |
349 | m_text = new QCanvasText( m_field ); | 349 | m_text = new QCanvasText( m_field ); |
350 | 350 | ||
351 | // create game clock | 351 | // create game clock |
352 | m_clock = new QTimer( this ); | 352 | m_clock = new QTimer( this ); |
353 | connect( m_clock, SIGNAL(timeout()), this, SLOT(tick()) ); | 353 | connect( m_clock, SIGNAL(timeout()), this, SLOT(tick()) ); |
354 | m_clock->start( GAME_DELAY ); | 354 | m_clock->start( GAME_DELAY ); |
355 | 355 | ||
356 | // setup geometry | 356 | // setup geometry |
357 | setFixedSize( m_view->size() ); | 357 | setFixedSize( m_view->size() ); |
358 | } | 358 | } |
359 | 359 | ||
360 | JezzGame::~JezzGame() | 360 | JezzGame::~JezzGame() |
361 | { | 361 | { |
362 | m_balls.clear(); | 362 | m_balls.clear(); |
363 | delete m_view; | 363 | delete m_view; |
364 | delete m_field; | 364 | delete m_field; |
365 | delete m_ballPixmaps; | 365 | delete m_ballPixmaps; |
366 | } | 366 | } |
367 | 367 | ||
368 | void JezzGame::display( QString text, int size ) | 368 | void JezzGame::display( QString text, int size ) |
369 | { | 369 | { |
370 | qDebug("This function \"display\" shouldn't be called!!!"); | 370 | qDebug("This function \"display\" shouldn't be called!!!"); |
371 | if ( !text.isEmpty() ) | 371 | if ( !text.isEmpty() ) |
372 | { | 372 | { |
373 | QFont font( "Helvetica", size, QFont::Bold ); | 373 | QFont font( "Helvetica", size, QFont::Bold ); |
374 | font.setStyleHint( QFont::Helvetica ); | 374 | font.setStyleHint( QFont::Helvetica ); |
375 | m_text->setFont( font ); | 375 | m_text->setFont( font ); |
376 | m_text->setText( text ); | 376 | m_text->setText( text ); |
377 | 377 | ||
378 | QRect size = m_text->boundingRect(); | 378 | QRect size = m_text->boundingRect(); |
379 | m_text->move( ( FIELD_WIDTH*TILE_SIZE - size.width() ) / 2, | 379 | m_text->move( ( FIELD_WIDTH*TILE_SIZE - size.width() ) / 2, |
380 | ( FIELD_HEIGHT*TILE_SIZE - size.height() ) / 2 ); | 380 | ( FIELD_HEIGHT*TILE_SIZE - size.height() ) / 2 ); |
381 | 381 | ||
382 | m_text->show(); | 382 | m_text->show(); |
383 | } else | 383 | } else |
384 | { | 384 | { |
385 | m_text->hide(); | 385 | m_text->hide(); |
386 | } | 386 | } |
387 | } | 387 | } |
388 | 388 | ||
389 | void JezzGame::start() | 389 | void JezzGame::start() |
390 | { | 390 | { |
391 | m_running = true; | 391 | m_running = true; |
392 | } | 392 | } |
393 | 393 | ||
394 | void JezzGame::stop() | 394 | void JezzGame::stop() |
395 | { | 395 | { |
396 | m_running = false; | 396 | m_running = false; |
397 | } | 397 | } |
398 | 398 | ||
399 | 399 | ||
400 | void JezzGame::makeBlack() | 400 | void JezzGame::makeBlack() |
401 | { | 401 | { |
402 | // copy current field into buffer | 402 | // copy current field into buffer |
403 | for ( int y=0; y<FIELD_HEIGHT; y++ ) | 403 | for ( int y=0; y<FIELD_HEIGHT; y++ ) |
404 | for ( int x=0; x<FIELD_WIDTH; x++ ) | 404 | for ( int x=0; x<FIELD_WIDTH; x++ ) |
405 | m_buf[x][y] = m_field->tile( x, y ); | 405 | m_buf[x][y] = m_field->tile( x, y ); |
406 | 406 | ||
407 | // fill areas that contains a ball | 407 | // fill areas that contains a ball |
408 | for ( Ball *ball=m_balls.first(); ball!=0; ball=m_balls.next() ) | 408 | for ( Ball *ball=m_balls.first(); ball!=0; ball=m_balls.next() ) |
409 | fill( ball->x()/TILE_SIZE, ball->y()/TILE_SIZE ); | 409 | fill( ball->x()/TILE_SIZE, ball->y()/TILE_SIZE ); |
410 | 410 | ||
411 | // areas still free can be blacked now | 411 | // areas still free can be blacked now |
412 | for ( int y=0; y<FIELD_HEIGHT; y++ ) | 412 | for ( int y=0; y<FIELD_HEIGHT; y++ ) |
413 | for ( int x=0; x<FIELD_WIDTH; x++ ) | 413 | for ( int x=0; x<FIELD_WIDTH; x++ ) |
414 | { | 414 | { |
415 | if ( m_buf[x][y]==TILE_FREE ) | 415 | if ( m_buf[x][y]==TILE_FREE ) |
416 | m_field->setGameTile( x, y, true ); | 416 | m_field->setGameTile( x, y, true ); |
417 | } | 417 | } |
418 | 418 | ||
419 | m_field->update(); | 419 | m_field->update(); |
420 | m_view->repaint(); | 420 | m_view->repaint(); |
421 | 421 | ||
422 | // count percent value of occupied area | 422 | // count percent value of occupied area |
423 | int p = percent(); | 423 | int p = percent(); |
424 | if ( p!=m_percent ) | 424 | if ( p!=m_percent ) |
425 | { | 425 | { |
426 | m_percent = p; | 426 | m_percent = p; |
@@ -432,174 +432,174 @@ int JezzGame::percent() | |||
432 | { | 432 | { |
433 | int notFree = 0; | 433 | int notFree = 0; |
434 | for ( int y=1; y<FIELD_HEIGHT-1; y++ ) | 434 | for ( int y=1; y<FIELD_HEIGHT-1; y++ ) |
435 | for ( int x=1; x<FIELD_WIDTH-1; x++ ) | 435 | for ( int x=1; x<FIELD_WIDTH-1; x++ ) |
436 | { | 436 | { |
437 | if ( m_field->tile(x,y)!=TILE_FREE ) | 437 | if ( m_field->tile(x,y)!=TILE_FREE ) |
438 | notFree++; | 438 | notFree++; |
439 | } | 439 | } |
440 | 440 | ||
441 | return 100 * notFree / ( (FIELD_WIDTH-1) * (FIELD_HEIGHT-1) ); | 441 | return 100 * notFree / ( (FIELD_WIDTH-1) * (FIELD_HEIGHT-1) ); |
442 | } | 442 | } |
443 | 443 | ||
444 | void JezzGame::fill( int x, int y ) | 444 | void JezzGame::fill( int x, int y ) |
445 | { | 445 | { |
446 | if ( m_buf[x][y]!=TILE_FREE) return; | 446 | if ( m_buf[x][y]!=TILE_FREE) return; |
447 | 447 | ||
448 | // go left | 448 | // go left |
449 | int _x=x; | 449 | int _x=x; |
450 | for ( ; m_buf[_x][y]==TILE_FREE; _x-- ) | 450 | for ( ; m_buf[_x][y]==TILE_FREE; _x-- ) |
451 | m_buf[_x][y] = TILE_BORDER; | 451 | m_buf[_x][y] = TILE_BORDER; |
452 | int stopx = _x; | 452 | int stopx = _x; |
453 | 453 | ||
454 | // fill above | 454 | // fill above |
455 | for ( _x=x; _x>stopx; _x-- ) | 455 | for ( _x=x; _x>stopx; _x-- ) |
456 | if ( m_buf[_x][y-1]==TILE_FREE ) fill( _x, y-1 ); | 456 | if ( m_buf[_x][y-1]==TILE_FREE ) fill( _x, y-1 ); |
457 | 457 | ||
458 | // fill below | 458 | // fill below |
459 | for ( _x=x; _x>stopx; _x-- ) | 459 | for ( _x=x; _x>stopx; _x-- ) |
460 | if ( m_buf[_x][y+1]==TILE_FREE ) fill( _x, y+1 ); | 460 | if ( m_buf[_x][y+1]==TILE_FREE ) fill( _x, y+1 ); |
461 | 461 | ||
462 | // go right | 462 | // go right |
463 | for ( _x=x+1; m_buf[_x][y]==TILE_FREE; _x++ ) | 463 | for ( _x=x+1; m_buf[_x][y]==TILE_FREE; _x++ ) |
464 | m_buf[_x][y] = TILE_BORDER; | 464 | m_buf[_x][y] = TILE_BORDER; |
465 | stopx = _x; | 465 | stopx = _x; |
466 | 466 | ||
467 | // fill above | 467 | // fill above |
468 | for ( _x=x+1; _x<stopx; _x++ ) | 468 | for ( _x=x+1; _x<stopx; _x++ ) |
469 | if ( m_buf[_x][y-1]==TILE_FREE ) fill( _x, y-1 ); | 469 | if ( m_buf[_x][y-1]==TILE_FREE ) fill( _x, y-1 ); |
470 | 470 | ||
471 | // fill below; | 471 | // fill below; |
472 | for ( _x=x+1; _x<stopx; _x++ ) | 472 | for ( _x=x+1; _x<stopx; _x++ ) |
473 | if ( m_buf[_x][y+1]==TILE_FREE ) fill( _x, y+1 ); | 473 | if ( m_buf[_x][y+1]==TILE_FREE ) fill( _x, y+1 ); |
474 | } | 474 | } |
475 | 475 | ||
476 | void JezzGame::ballCollision( Ball*, int, int, int tile ) | 476 | void JezzGame::ballCollision( Ball*, int, int, int tile ) |
477 | { | 477 | { |
478 | if ( tile!=TILE_BORDER && tile>TILE_FREE && tile!=TILE_WALLEND ) | 478 | if ( tile!=TILE_BORDER && tile>TILE_FREE && tile!=TILE_WALLEND ) |
479 | { | 479 | { |
480 | // stop walls | 480 | // stop walls |
481 | if ( (tile==TILE_WALLUP || tile==TILE_WALLLEFT) && m_wall1 ) | 481 | if ( (tile==TILE_WALLUP || tile==TILE_WALLLEFT) && m_wall1 ) |
482 | { | 482 | { |
483 | m_wall1->finish(); | 483 | m_wall1->finish(); |
484 | m_wall1->fill( false ); | 484 | m_wall1->fill( false ); |
485 | delete m_wall1; | 485 | delete m_wall1; |
486 | m_wall1 = 0; | 486 | m_wall1 = 0; |
487 | } | 487 | } |
488 | 488 | ||
489 | if ( (tile==TILE_WALLDOWN || tile==TILE_WALLRIGHT) && m_wall2 ) | 489 | if ( (tile==TILE_WALLDOWN || tile==TILE_WALLRIGHT) && m_wall2 ) |
490 | { | 490 | { |
491 | m_wall2->finish(); | 491 | m_wall2->finish(); |
492 | m_wall2->fill( false ); | 492 | m_wall2->fill( false ); |
493 | delete m_wall2; | 493 | delete m_wall2; |
494 | m_wall2 = 0; | 494 | m_wall2 = 0; |
495 | } | 495 | } |
496 | 496 | ||
497 | // update view | 497 | // update view |
498 | m_field->update(); | 498 | m_field->update(); |
499 | m_view->repaint(); | 499 | m_view->repaint(); |
500 | 500 | ||
501 | // send death msg | 501 | // send death msg |
502 | emit died(); | 502 | emit died(); |
503 | } | 503 | } |
504 | } | 504 | } |
505 | 505 | ||
506 | void JezzGame::buildWall( int x, int y, bool vertical ) | 506 | void JezzGame::buildWall( int x, int y, bool vertical ) |
507 | { | 507 | { |
508 | if ( !m_running ) return; | 508 | if ( !m_running ) return; |
509 | 509 | ||
510 | if ( m_field->tile(x, y)==TILE_FREE ) | 510 | if ( m_field->tile(x, y)==TILE_FREE ) |
511 | { | 511 | { |
512 | // check whether there is a ball at the moment | 512 | // check whether there is a ball at the moment |
513 | QCanvasItemList cols = m_field->collisions( QRect(x*TILE_SIZE, y*TILE_SIZE, TILE_SIZE, TILE_SIZE) ); | 513 | QCanvasItemList cols = m_field->collisions( QRect(x*TILE_SIZE, y*TILE_SIZE, TILE_SIZE, TILE_SIZE) ); |
514 | if ( cols.count()>0 ) | 514 | if ( cols.count()>0 ) |
515 | { | 515 | { |
516 | //kdDebug() << "Direct collision" << endl; | 516 | //kdDebug() << "Direct collision" << endl; |
517 | emit ballCollision( (Ball*)cols.first(), x, y, TILE_WALLUP ); | 517 | emit ballCollision( (Ball*)cols.first(), x, y, TILE_WALLUP ); |
518 | return; | 518 | return; |
519 | } | 519 | } |
520 | 520 | ||
521 | // start walls | 521 | // start walls |
522 | if ( !m_wall1 ) | 522 | if ( !m_wall1 ) |
523 | { | 523 | { |
524 | m_wall1 = new Wall( m_field, x, y, | 524 | m_wall1 = new Wall( m_field, x, y, |
525 | vertical? Wall::Up : Wall::Left, | 525 | vertical? Wall::Up : Wall::Left, |
526 | vertical? TILE_WALLUP : TILE_WALLLEFT, | 526 | vertical? TILE_WALLUP : TILE_WALLLEFT, |
527 | this, "m_wall1" ); | 527 | this, "m_wall1" ); |
528 | connect( m_wall1, SIGNAL(finished(Wall *, int)), | 528 | connect( m_wall1, SIGNAL(finished(Wall*,int)), |
529 | this, SLOT(wallFinished(Wall *, int)) ); } | 529 | this, SLOT(wallFinished(Wall*,int)) ); } |
530 | 530 | ||
531 | if ( !m_wall2 ) | 531 | if ( !m_wall2 ) |
532 | { | 532 | { |
533 | m_wall2 = new Wall( m_field, x, y, | 533 | m_wall2 = new Wall( m_field, x, y, |
534 | vertical? Wall::Down: Wall::Right, | 534 | vertical? Wall::Down: Wall::Right, |
535 | vertical? TILE_WALLDOWN : TILE_WALLRIGHT, | 535 | vertical? TILE_WALLDOWN : TILE_WALLRIGHT, |
536 | this, "m_wall2" ); | 536 | this, "m_wall2" ); |
537 | connect( m_wall2, SIGNAL(finished(Wall *, int)), | 537 | connect( m_wall2, SIGNAL(finished(Wall*,int)), |
538 | this, SLOT(wallFinished(Wall *, int)) ); | 538 | this, SLOT(wallFinished(Wall*,int)) ); |
539 | } | 539 | } |
540 | } | 540 | } |
541 | } | 541 | } |
542 | 542 | ||
543 | void JezzGame::wallFinished( Wall *wall, int tile ) | 543 | void JezzGame::wallFinished( Wall *wall, int tile ) |
544 | { | 544 | { |
545 | if ( tile==TILE_WALLEND ) | 545 | if ( tile==TILE_WALLEND ) |
546 | { | 546 | { |
547 | if ( m_wall1 ) | 547 | if ( m_wall1 ) |
548 | { | 548 | { |
549 | m_wall1->fill( false ); | 549 | m_wall1->fill( false ); |
550 | delete m_wall1; | 550 | delete m_wall1; |
551 | m_wall1 = 0; | 551 | m_wall1 = 0; |
552 | } | 552 | } |
553 | 553 | ||
554 | if ( m_wall2 ) | 554 | if ( m_wall2 ) |
555 | { | 555 | { |
556 | m_wall2->fill( false ); | 556 | m_wall2->fill( false ); |
557 | delete m_wall2; | 557 | delete m_wall2; |
558 | m_wall2 = 0; | 558 | m_wall2 = 0; |
559 | } | 559 | } |
560 | } else | 560 | } else |
561 | { | 561 | { |
562 | if ( m_wall1==wall && m_wall1 ) | 562 | if ( m_wall1==wall && m_wall1 ) |
563 | { | 563 | { |
564 | m_wall1->fill( true ); | 564 | m_wall1->fill( true ); |
565 | delete m_wall1; | 565 | delete m_wall1; |
566 | m_wall1 = 0; | 566 | m_wall1 = 0; |
567 | } | 567 | } |
568 | 568 | ||
569 | if ( m_wall2==wall && m_wall2 ) | 569 | if ( m_wall2==wall && m_wall2 ) |
570 | { | 570 | { |
571 | m_wall2->fill( true ); | 571 | m_wall2->fill( true ); |
572 | delete m_wall2; | 572 | delete m_wall2; |
573 | m_wall2 = 0; | 573 | m_wall2 = 0; |
574 | } | 574 | } |
575 | } | 575 | } |
576 | 576 | ||
577 | m_field->update(); | 577 | m_field->update(); |
578 | m_view->repaint(); | 578 | m_view->repaint(); |
579 | 579 | ||
580 | makeBlack(); | 580 | makeBlack(); |
581 | } | 581 | } |
582 | 582 | ||
583 | void JezzGame::tick() | 583 | void JezzGame::tick() |
584 | { | 584 | { |
585 | if ( m_running ) | 585 | if ( m_running ) |
586 | { | 586 | { |
587 | if ( m_field ) m_field->advance(); | 587 | if ( m_field ) m_field->advance(); |
588 | if ( m_wall1 ) m_wall1->advance(); | 588 | if ( m_wall1 ) m_wall1->advance(); |
589 | if ( m_wall2 ) m_wall2->advance(); | 589 | if ( m_wall2 ) m_wall2->advance(); |
590 | } else | 590 | } else |
591 | { | 591 | { |
592 | for ( Ball *ball=m_balls.first(); ball!=0; ball=m_balls.next() ) | 592 | for ( Ball *ball=m_balls.first(); ball!=0; ball=m_balls.next() ) |
593 | ball->update(); | 593 | ball->update(); |
594 | 594 | ||
595 | if ( m_field ) m_field->update(); | 595 | if ( m_field ) m_field->update(); |
596 | if ( m_wall1 ) m_wall1->update(); | 596 | if ( m_wall1 ) m_wall1->update(); |
597 | if ( m_wall2 ) m_wall2->update(); | 597 | if ( m_wall2 ) m_wall2->update(); |
598 | } | 598 | } |
599 | } | 599 | } |
600 | 600 | ||
601 | void JezzGame::changeCursor() | 601 | void JezzGame::changeCursor() |
602 | { | 602 | { |
603 | arrow->changeDirection(); | 603 | arrow->changeDirection(); |
604 | m_view->changeCursor(); | 604 | m_view->changeCursor(); |
605 | } | 605 | } |
diff --git a/noncore/games/buzzword/buzzword.cpp b/noncore/games/buzzword/buzzword.cpp index 13eb481..b7f2573 100644 --- a/noncore/games/buzzword/buzzword.cpp +++ b/noncore/games/buzzword/buzzword.cpp | |||
@@ -18,164 +18,164 @@ | |||
18 | 18 | ||
19 | #include <qlayout.h> | 19 | #include <qlayout.h> |
20 | #include <qmainwindow.h> | 20 | #include <qmainwindow.h> |
21 | #include <qlabel.h> | 21 | #include <qlabel.h> |
22 | #include <qgrid.h> | 22 | #include <qgrid.h> |
23 | #include <qcolor.h> | 23 | #include <qcolor.h> |
24 | #include <qbutton.h> | 24 | #include <qbutton.h> |
25 | #include <qfile.h> | 25 | #include <qfile.h> |
26 | #include <qtextstream.h> | 26 | #include <qtextstream.h> |
27 | #include <qstringlist.h> | 27 | #include <qstringlist.h> |
28 | #include <qmessagebox.h> | 28 | #include <qmessagebox.h> |
29 | #include <qdir.h> | 29 | #include <qdir.h> |
30 | 30 | ||
31 | #include <math.h> | 31 | #include <math.h> |
32 | #include <stdlib.h> | 32 | #include <stdlib.h> |
33 | 33 | ||
34 | #include <qpe/qpeapplication.h> | 34 | #include <qpe/qpeapplication.h> |
35 | 35 | ||
36 | #include "buzzword.h" | 36 | #include "buzzword.h" |
37 | 37 | ||
38 | BuzzLabel::BuzzLabel( QWidget *parent, const char *name ) | 38 | BuzzLabel::BuzzLabel( QWidget *parent, const char *name ) |
39 | : QLabel( parent, name ) | 39 | : QLabel( parent, name ) |
40 | { | 40 | { |
41 | } | 41 | } |
42 | 42 | ||
43 | void BuzzLabel::mousePressEvent(QMouseEvent *e) | 43 | void BuzzLabel::mousePressEvent(QMouseEvent *e) |
44 | { | 44 | { |
45 | if(e->button() == LeftButton) | 45 | if(e->button() == LeftButton) |
46 | { | 46 | { |
47 | emit clicked(); | 47 | emit clicked(); |
48 | } | 48 | } |
49 | } | 49 | } |
50 | 50 | ||
51 | BuzzItem::BuzzItem( int row, int column, QString text, QWidget *parent, const char *name ) | 51 | BuzzItem::BuzzItem( int row, int column, QString text, QWidget *parent, const char *name ) |
52 | : QVBox( parent, name ), _row(row), _column(column) | 52 | : QVBox( parent, name ), _row(row), _column(column) |
53 | { | 53 | { |
54 | setFrameStyle( QFrame::Panel | QFrame::Raised ); | 54 | setFrameStyle( QFrame::Panel | QFrame::Raised ); |
55 | setLineWidth( 1 ); | 55 | setLineWidth( 1 ); |
56 | label = new BuzzLabel(this, "label"); | 56 | label = new BuzzLabel(this, "label"); |
57 | label->setText(text); | 57 | label->setText(text); |
58 | label->setAlignment( int( QLabel::AlignCenter ) ); | 58 | label->setAlignment( int( QLabel::AlignCenter ) ); |
59 | 59 | ||
60 | connect( label, SIGNAL(clicked()), this, SLOT(flip()) ); | 60 | connect( label, SIGNAL(clicked()), this, SLOT(flip()) ); |
61 | } | 61 | } |
62 | 62 | ||
63 | void BuzzItem::flip() | 63 | void BuzzItem::flip() |
64 | { | 64 | { |
65 | setLineWidth( 1 ); | 65 | setLineWidth( 1 ); |
66 | label->setBackgroundColor(label->colorGroup().highlight()); | 66 | label->setBackgroundColor(label->colorGroup().highlight()); |
67 | emit clicked(_row, _column); | 67 | emit clicked(_row, _column); |
68 | } | 68 | } |
69 | 69 | ||
70 | BuzzWord::BuzzWord(QWidget* parent, const char* name, WFlags fl ) : QMainWindow( parent, name, fl ) | 70 | BuzzWord::BuzzWord(QWidget* parent, const char* name, WFlags fl ) : QMainWindow( parent, name, fl ) |
71 | { | 71 | { |
72 | setCaption(tr("buZzword")); | 72 | setCaption(tr("buZzword")); |
73 | 73 | ||
74 | menu = menuBar(); | 74 | menu = menuBar(); |
75 | game = new QPopupMenu; | 75 | game = new QPopupMenu; |
76 | game->insertItem(tr("&New game"), this, SLOT(newGame()), Key_N ); | 76 | game->insertItem(tr("&New game"), this, SLOT(newGame()), Key_N ); |
77 | menu->insertItem( tr("&Game"), game ); | 77 | menu->insertItem( tr("&Game"), game ); |
78 | 78 | ||
79 | gridVal = 4; | 79 | gridVal = 4; |
80 | grid = NULL; | 80 | grid = NULL; |
81 | gameOver = false; | 81 | gameOver = false; |
82 | newGame(); | 82 | newGame(); |
83 | } | 83 | } |
84 | 84 | ||
85 | void BuzzWord::drawGrid() | 85 | void BuzzWord::drawGrid() |
86 | { | 86 | { |
87 | QStringList l; | 87 | QStringList l; |
88 | 88 | ||
89 | QString path = QPEApplication::qpeDir()+"share/buzzword/"; | 89 | QString path = QPEApplication::qpeDir()+"share/buzzword/"; |
90 | QFile f( path + "buzzwords" ); | 90 | QFile f( path + "buzzwords" ); |
91 | if ( !f.open( IO_ReadOnly ) ) | 91 | if ( !f.open( IO_ReadOnly ) ) |
92 | return; | 92 | return; |
93 | 93 | ||
94 | QTextStream t( &f ); | 94 | QTextStream t( &f ); |
95 | 95 | ||
96 | while (!t.atEnd()) | 96 | while (!t.atEnd()) |
97 | { | 97 | { |
98 | l << t.readLine(); | 98 | l << t.readLine(); |
99 | } | 99 | } |
100 | 100 | ||
101 | f.close(); | 101 | f.close(); |
102 | 102 | ||
103 | grid = new QGrid(gridVal, this); | 103 | grid = new QGrid(gridVal, this); |
104 | //grid->setFixedSize( 480, 480 ); | 104 | //grid->setFixedSize( 480, 480 ); |
105 | 105 | ||
106 | for( int c = 0 ; c < gridVal ; c++ ) | 106 | for( int c = 0 ; c < gridVal ; c++ ) |
107 | { | 107 | { |
108 | for( int r = 0 ; r < gridVal ; r++ ) | 108 | for( int r = 0 ; r < gridVal ; r++ ) |
109 | { | 109 | { |
110 | uint pos = rand() % l. count(); | 110 | uint pos = rand() % l. count(); |
111 | 111 | ||
112 | QString word = QStringList::split(" ", l[pos]).join("\n"); | 112 | QString word = QStringList::split(" ", l[pos]).join("\n"); |
113 | BuzzItem* bi = new BuzzItem( c, r, word, grid ); | 113 | BuzzItem* bi = new BuzzItem( c, r, word, grid ); |
114 | connect( bi, SIGNAL(clicked(int, int)), this, SLOT(clicked(int,int)) ); | 114 | connect( bi, SIGNAL(clicked(int,int)), this, SLOT(clicked(int,int)) ); |
115 | map[c][r] = 0; | 115 | map[c][r] = 0; |
116 | 116 | ||
117 | l.remove( l.at( pos )); | 117 | l.remove( l.at( pos )); |
118 | } | 118 | } |
119 | } | 119 | } |
120 | } | 120 | } |
121 | 121 | ||
122 | void BuzzWord::clicked(int row, int column) | 122 | void BuzzWord::clicked(int row, int column) |
123 | { | 123 | { |
124 | if ( ! gameOver ) | 124 | if ( ! gameOver ) |
125 | { | 125 | { |
126 | int rowTotal = 0; | 126 | int rowTotal = 0; |
127 | int columnTotal = 0; | 127 | int columnTotal = 0; |
128 | 128 | ||
129 | map[column][row] = 1; | 129 | map[column][row] = 1; |
130 | 130 | ||
131 | for( int c = 0 ; c < gridVal ; c++ ) | 131 | for( int c = 0 ; c < gridVal ; c++ ) |
132 | { | 132 | { |
133 | for( int r = 0 ; r < gridVal ; r++ ) | 133 | for( int r = 0 ; r < gridVal ; r++ ) |
134 | { | 134 | { |
135 | if ( map[c][r] == 1 ) | 135 | if ( map[c][r] == 1 ) |
136 | rowTotal++; | 136 | rowTotal++; |
137 | 137 | ||
138 | if ( rowTotal == 4 ) | 138 | if ( rowTotal == 4 ) |
139 | { | 139 | { |
140 | bingo(); | 140 | bingo(); |
141 | } | 141 | } |
142 | } | 142 | } |
143 | rowTotal = 0; | 143 | rowTotal = 0; |
144 | } | 144 | } |
145 | 145 | ||
146 | for( int r = 0 ; r < gridVal ; r++ ) | 146 | for( int r = 0 ; r < gridVal ; r++ ) |
147 | { | 147 | { |
148 | for( int c = 0 ; c < gridVal ; c++ ) | 148 | for( int c = 0 ; c < gridVal ; c++ ) |
149 | { | 149 | { |
150 | if ( map[c][r] == 1 ) | 150 | if ( map[c][r] == 1 ) |
151 | columnTotal++; | 151 | columnTotal++; |
152 | 152 | ||
153 | if ( columnTotal == 4 ) | 153 | if ( columnTotal == 4 ) |
154 | { | 154 | { |
155 | bingo(); | 155 | bingo(); |
156 | } | 156 | } |
157 | } | 157 | } |
158 | columnTotal = 0; | 158 | columnTotal = 0; |
159 | } | 159 | } |
160 | 160 | ||
161 | if ( map[0][0] && map[1][1] && map[2][2] && map[3][3] ) | 161 | if ( map[0][0] && map[1][1] && map[2][2] && map[3][3] ) |
162 | bingo(); | 162 | bingo(); |
163 | 163 | ||
164 | if ( map[0][3] && map[1][2] && map[2][1] && map[3][0] ) | 164 | if ( map[0][3] && map[1][2] && map[2][1] && map[3][0] ) |
165 | bingo(); | 165 | bingo(); |
166 | } | 166 | } |
167 | } | 167 | } |
168 | 168 | ||
169 | void BuzzWord::bingo() | 169 | void BuzzWord::bingo() |
170 | { | 170 | { |
171 | gameOver = true; | 171 | gameOver = true; |
172 | QMessageBox::information( this, "BUZZWORD", tr("<h1><b>BINGO !</b></h1>")); | 172 | QMessageBox::information( this, "BUZZWORD", tr("<h1><b>BINGO !</b></h1>")); |
173 | } | 173 | } |
174 | 174 | ||
175 | void BuzzWord::newGame() | 175 | void BuzzWord::newGame() |
176 | { | 176 | { |
177 | gameOver = false; | 177 | gameOver = false; |
178 | delete grid; | 178 | delete grid; |
179 | drawGrid(); | 179 | drawGrid(); |
180 | setCentralWidget(grid); | 180 | setCentralWidget(grid); |
181 | } | 181 | } |
diff --git a/noncore/games/kpacman/kpacman.cpp b/noncore/games/kpacman/kpacman.cpp index be2e46d..9820e5a 100644 --- a/noncore/games/kpacman/kpacman.cpp +++ b/noncore/games/kpacman/kpacman.cpp | |||
@@ -1,133 +1,133 @@ | |||
1 | 1 | ||
2 | #include "portable.h" | 2 | #include "portable.h" |
3 | 3 | ||
4 | #if defined( KDE2_PORT ) | 4 | #if defined( KDE2_PORT ) |
5 | #include <kpacman.h> | 5 | #include <kpacman.h> |
6 | #include <kpacman.moc> | 6 | #include <kpacman.moc> |
7 | #include <kcolordlg.h> | 7 | #include <kcolordlg.h> |
8 | #elif defined( QPE_PORT ) | 8 | #elif defined( QPE_PORT ) |
9 | #include <qmenubar.h> | 9 | #include <qmenubar.h> |
10 | #include <qpe/config.h> | 10 | #include <qpe/config.h> |
11 | #include <qapplication.h> | 11 | #include <qapplication.h> |
12 | #include "kpacman.h" | 12 | #include "kpacman.h" |
13 | #endif | 13 | #endif |
14 | 14 | ||
15 | 15 | ||
16 | Kpacman::Kpacman(QWidget *parent, const char *name) | 16 | Kpacman::Kpacman(QWidget *parent, const char *name) |
17 | : KTMainWindow(parent, name) | 17 | : KTMainWindow(parent, name) |
18 | { | 18 | { |
19 | schemesPopup = new QList<QPopupMenu>; | 19 | schemesPopup = new QList<QPopupMenu>; |
20 | schemesPopup->setAutoDelete(TRUE); | 20 | schemesPopup->setAutoDelete(TRUE); |
21 | 21 | ||
22 | menu(); | 22 | menu(); |
23 | 23 | ||
24 | m_view = new QWidget( this, "m_view" ); | 24 | m_view = new QWidget( this, "m_view" ); |
25 | m_view->setBackgroundColor( black ); | 25 | m_view->setBackgroundColor( black ); |
26 | m_layout = new QGridLayout( m_view ); | 26 | m_layout = new QGridLayout( m_view ); |
27 | m_layout->setMargin( 7 ); | 27 | m_layout->setMargin( 7 ); |
28 | 28 | ||
29 | view = new KpacmanWidget( this, QString(name)+"widget"); | 29 | view = new KpacmanWidget( this, QString(name)+"widget"); |
30 | m_layout->addWidget( view, 0, 0 ); | 30 | m_layout->addWidget( view, 0, 0 ); |
31 | 31 | ||
32 | setCaption( tr("KPacman") ); | 32 | setCaption( tr("KPacman") ); |
33 | 33 | ||
34 | view->referee->setFocus(); | 34 | view->referee->setFocus(); |
35 | 35 | ||
36 | connect(view->referee, SIGNAL(setScore(int, int)), | 36 | connect(view->referee, SIGNAL(setScore(int,int)), |
37 | view->score, SLOT(setScore(int, int))); | 37 | view->score, SLOT(setScore(int,int))); |
38 | connect(view->referee, SIGNAL(setPoints(int)), | 38 | connect(view->referee, SIGNAL(setPoints(int)), |
39 | view->score, SLOT(set(int))); | 39 | view->score, SLOT(set(int))); |
40 | connect(view->referee, SIGNAL(setLifes(int)), | 40 | connect(view->referee, SIGNAL(setLifes(int)), |
41 | view->status, SLOT(setLifes(int))); | 41 | view->status, SLOT(setLifes(int))); |
42 | connect(view->referee, SIGNAL(setLevel(int)), | 42 | connect(view->referee, SIGNAL(setLevel(int)), |
43 | view->status, SLOT(setLevel(int))); | 43 | view->status, SLOT(setLevel(int))); |
44 | connect(view->referee, SIGNAL(forcedHallOfFame(bool)), | 44 | connect(view->referee, SIGNAL(forcedHallOfFame(bool)), |
45 | this, SLOT(forcedHallOfFame(bool))); | 45 | this, SLOT(forcedHallOfFame(bool))); |
46 | connect(view->referee, SIGNAL(togglePaused()), this, SLOT(togglePaused())); | 46 | connect(view->referee, SIGNAL(togglePaused()), this, SLOT(togglePaused())); |
47 | connect(view->referee, SIGNAL(toggleNew()), this, SLOT(toggleNew())); | 47 | connect(view->referee, SIGNAL(toggleNew()), this, SLOT(toggleNew())); |
48 | 48 | ||
49 | connect(view->score, SIGNAL(toggleNew()), this, SLOT(toggleNew())); | 49 | connect(view->score, SIGNAL(toggleNew()), this, SLOT(toggleNew())); |
50 | connect(view->score, SIGNAL(forcedHallOfFame(bool)), | 50 | connect(view->score, SIGNAL(forcedHallOfFame(bool)), |
51 | this, SLOT(forcedHallOfFame(bool))); | 51 | this, SLOT(forcedHallOfFame(bool))); |
52 | 52 | ||
53 | APP_CONFIG_BEGIN( cfg ); | 53 | APP_CONFIG_BEGIN( cfg ); |
54 | focusOutPause = !cfg->readBoolEntry("FocusOutPause", TRUE); | 54 | focusOutPause = !cfg->readBoolEntry("FocusOutPause", TRUE); |
55 | focusInContinue = !cfg->readBoolEntry("FocusInContinue", TRUE); | 55 | focusInContinue = !cfg->readBoolEntry("FocusInContinue", TRUE); |
56 | hideMouseCursor = !cfg->readBoolEntry("HideMouseCursor", TRUE); | 56 | hideMouseCursor = !cfg->readBoolEntry("HideMouseCursor", TRUE); |
57 | APP_CONFIG_END( cfg ); | 57 | APP_CONFIG_END( cfg ); |
58 | 58 | ||
59 | toggleFocusOutPause(); | 59 | toggleFocusOutPause(); |
60 | toggleFocusInContinue(); | 60 | toggleFocusInContinue(); |
61 | toggleHideMouseCursor(); | 61 | toggleHideMouseCursor(); |
62 | 62 | ||
63 | setCentralWidget( m_view ); | 63 | setCentralWidget( m_view ); |
64 | } | 64 | } |
65 | 65 | ||
66 | Kpacman::~Kpacman() | 66 | Kpacman::~Kpacman() |
67 | { | 67 | { |
68 | /* APP_CONFIG_BEGIN( cfg ); | 68 | /* APP_CONFIG_BEGIN( cfg ); |
69 | cfg->writeEntry("FocusOutPause", focusOutPause); | 69 | cfg->writeEntry("FocusOutPause", focusOutPause); |
70 | cfg->writeEntry("FocusInContinue", focusInContinue); | 70 | cfg->writeEntry("FocusInContinue", focusInContinue); |
71 | cfg->writeEntry("HideMouseCursor", hideMouseCursor); | 71 | cfg->writeEntry("HideMouseCursor", hideMouseCursor); |
72 | APP_CONFIG_END( cfg ); | 72 | APP_CONFIG_END( cfg ); |
73 | */ | 73 | */ |
74 | delete _menuBar; | 74 | delete _menuBar; |
75 | } | 75 | } |
76 | 76 | ||
77 | void Kpacman::menu() | 77 | void Kpacman::menu() |
78 | { | 78 | { |
79 | gamePopup = new QPopupMenu(); | 79 | gamePopup = new QPopupMenu(); |
80 | CHECK_PTR( gamePopup ); | 80 | CHECK_PTR( gamePopup ); |
81 | newID = gamePopup->insertItem(tr("&New"), this, SLOT(newKpacman()),Key_F2); | 81 | newID = gamePopup->insertItem(tr("&New"), this, SLOT(newKpacman()),Key_F2); |
82 | pauseID = gamePopup->insertItem(tr("&Pause"), | 82 | pauseID = gamePopup->insertItem(tr("&Pause"), |
83 | this, SLOT(pauseKpacman()), Key_F3); | 83 | this, SLOT(pauseKpacman()), Key_F3); |
84 | hofID = gamePopup->insertItem(tr("&Hall of fame"), | 84 | hofID = gamePopup->insertItem(tr("&Hall of fame"), |
85 | this, SLOT(toggleHallOfFame()), Key_F4); | 85 | this, SLOT(toggleHallOfFame()), Key_F4); |
86 | gamePopup->insertSeparator(); | 86 | gamePopup->insertSeparator(); |
87 | gamePopup->insertItem(tr("&Quit"), this, SLOT(quitKpacman()), CTRL+Key_Q); | 87 | gamePopup->insertItem(tr("&Quit"), this, SLOT(quitKpacman()), CTRL+Key_Q); |
88 | gamePopup->setCheckable(TRUE); | 88 | gamePopup->setCheckable(TRUE); |
89 | 89 | ||
90 | optionsPopup = new QPopupMenu(); | 90 | optionsPopup = new QPopupMenu(); |
91 | CHECK_PTR(optionsPopup); | 91 | CHECK_PTR(optionsPopup); |
92 | 92 | ||
93 | modesPopup = new QPopupMenu(); | 93 | modesPopup = new QPopupMenu(); |
94 | CHECK_PTR(modesPopup); | 94 | CHECK_PTR(modesPopup); |
95 | 95 | ||
96 | hideMouseCursorID = optionsPopup->insertItem(tr("&Hide Mousecursor"), | 96 | hideMouseCursorID = optionsPopup->insertItem(tr("&Hide Mousecursor"), |
97 | this, SLOT(toggleHideMouseCursor()), | 97 | this, SLOT(toggleHideMouseCursor()), |
98 | CTRL+Key_H); | 98 | CTRL+Key_H); |
99 | optionsPopup->insertSeparator(); | 99 | optionsPopup->insertSeparator(); |
100 | 100 | ||
101 | if (lookupSchemes() > 0) { | 101 | if (lookupSchemes() > 0) { |
102 | optionsPopup->insertItem(tr("&Select graphic scheme"), modesPopup); | 102 | optionsPopup->insertItem(tr("&Select graphic scheme"), modesPopup); |
103 | optionsPopup->insertSeparator(); | 103 | optionsPopup->insertSeparator(); |
104 | } | 104 | } |
105 | 105 | ||
106 | focusOutPauseID = optionsPopup->insertItem(tr("&Pause in Background"), | 106 | focusOutPauseID = optionsPopup->insertItem(tr("&Pause in Background"), |
107 | this, SLOT(toggleFocusOutPause())); | 107 | this, SLOT(toggleFocusOutPause())); |
108 | focusInContinueID = optionsPopup->insertItem(tr("&Continue in Foreground"), | 108 | focusInContinueID = optionsPopup->insertItem(tr("&Continue in Foreground"), |
109 | this, SLOT(toggleFocusInContinue())); | 109 | this, SLOT(toggleFocusInContinue())); |
110 | optionsPopup->insertSeparator(); | 110 | optionsPopup->insertSeparator(); |
111 | 111 | ||
112 | optionsPopup->insertItem(tr("Change &keys..."), this, SLOT(confKeys())); | 112 | optionsPopup->insertItem(tr("Change &keys..."), this, SLOT(confKeys())); |
113 | 113 | ||
114 | #ifndef QPE_PORT | 114 | #ifndef QPE_PORT |
115 | QString aboutText = tr("@PACKAGE@ - @VERSION@\n\n" | 115 | QString aboutText = tr("@PACKAGE@ - @VERSION@\n\n" |
116 | "Joerg Thoennissen (joe@dsite.de)\n\n" | 116 | "Joerg Thoennissen (joe@dsite.de)\n\n" |
117 | "A pacman game for the KDE Desktop\n\n" | 117 | "A pacman game for the KDE Desktop\n\n" |
118 | "The program based on the source of ksnake\n" | 118 | "The program based on the source of ksnake\n" |
119 | "by Michel Filippi (mfilippi@sade.rhein-main.de).\n" | 119 | "by Michel Filippi (mfilippi@sade.rhein-main.de).\n" |
120 | "The design was strongly influenced by the pacman\n" | 120 | "The design was strongly influenced by the pacman\n" |
121 | "(c) 1980 MIDWAY MFG.CO.\n\n" | 121 | "(c) 1980 MIDWAY MFG.CO.\n\n" |
122 | "I like to thank my girlfriend Elke Krueers for\n" | 122 | "I like to thank my girlfriend Elke Krueers for\n" |
123 | "the last 10 years of her friendship.\n"); | 123 | "the last 10 years of her friendship.\n"); |
124 | aboutText.replace(QRegExp("@PACKAGE@"), PACKAGE); | 124 | aboutText.replace(QRegExp("@PACKAGE@"), PACKAGE); |
125 | aboutText.replace(QRegExp("@VERSION@"), VERSION); | 125 | aboutText.replace(QRegExp("@VERSION@"), VERSION); |
126 | QPopupMenu *helpPopup = helpMenu(aboutText, FALSE); | 126 | QPopupMenu *helpPopup = helpMenu(aboutText, FALSE); |
127 | #endif | 127 | #endif |
128 | 128 | ||
129 | //_menuBar = new KMenuBar(this); | 129 | //_menuBar = new KMenuBar(this); |
130 | //CHECK_PTR( _menuBar ); | 130 | //CHECK_PTR( _menuBar ); |
131 | //_menuBar->insertItem(tr("&Game"), gamePopup); | 131 | //_menuBar->insertItem(tr("&Game"), gamePopup); |
132 | //_menuBar->insertItem(tr("&Options"), optionsPopup); | 132 | //_menuBar->insertItem(tr("&Options"), optionsPopup); |
133 | //_menuBar->insertSeparator(); | 133 | //_menuBar->insertSeparator(); |
diff --git a/noncore/games/oyatzee/oyatzee.cpp b/noncore/games/oyatzee/oyatzee.cpp index 86318db..a55aa73 100644 --- a/noncore/games/oyatzee/oyatzee.cpp +++ b/noncore/games/oyatzee/oyatzee.cpp | |||
@@ -1,128 +1,128 @@ | |||
1 | #include "oyatzee.h" | 1 | #include "oyatzee.h" |
2 | 2 | ||
3 | #include <qmessagebox.h> | 3 | #include <qmessagebox.h> |
4 | #include <qpushbutton.h> | 4 | #include <qpushbutton.h> |
5 | #include <qpainter.h> | 5 | #include <qpainter.h> |
6 | #include <qlayout.h> | 6 | #include <qlayout.h> |
7 | 7 | ||
8 | #include <stdlib.h> | 8 | #include <stdlib.h> |
9 | 9 | ||
10 | OYatzee::OYatzee( QWidget *parent , const char *name, WFlags fl ) : QMainWindow( parent , name , fl ) | 10 | OYatzee::OYatzee( QWidget *parent , const char *name, WFlags fl ) : QMainWindow( parent , name , fl ) |
11 | { | 11 | { |
12 | QWidget *thing = new QWidget( this ); | 12 | QWidget *thing = new QWidget( this ); |
13 | setCentralWidget( thing ); | 13 | setCentralWidget( thing ); |
14 | 14 | ||
15 | setCaption( tr( "OYatzee" ) ); | 15 | setCaption( tr( "OYatzee" ) ); |
16 | 16 | ||
17 | setPlayerNumber( 4 ); | 17 | setPlayerNumber( 4 ); |
18 | setRoundsNumber( 1 ); | 18 | setRoundsNumber( 1 ); |
19 | 19 | ||
20 | lastPlayerFinished = false; | 20 | lastPlayerFinished = false; |
21 | currentPlayer = 1; | 21 | currentPlayer = 1; |
22 | 22 | ||
23 | ps.append( new Player( "Carsten" ) ); | 23 | ps.append( new Player( "Carsten" ) ); |
24 | ps.append( new Player( "Julia" ) ); | 24 | ps.append( new Player( "Julia" ) ); |
25 | ps.append( new Player( "Christine" ) ); | 25 | ps.append( new Player( "Christine" ) ); |
26 | ps.append( new Player( "Stephan" ) ); | 26 | ps.append( new Player( "Stephan" ) ); |
27 | 27 | ||
28 | 28 | ||
29 | QVBoxLayout *vbox = new QVBoxLayout( thing ); | 29 | QVBoxLayout *vbox = new QVBoxLayout( thing ); |
30 | 30 | ||
31 | sb = new Scoreboard( ps, thing , "sb" ); | 31 | sb = new Scoreboard( ps, thing , "sb" ); |
32 | connect( sb->pb , SIGNAL( item( int ) ), this , SLOT( slotEndRound( int ) ) ); | 32 | connect( sb->pb , SIGNAL( item(int) ), this , SLOT( slotEndRound(int) ) ); |
33 | 33 | ||
34 | dw = new DiceWidget( thing , "dw" ); | 34 | dw = new DiceWidget( thing , "dw" ); |
35 | dw->setMaximumHeight( this->height()/4 ); | 35 | dw->setMaximumHeight( this->height()/4 ); |
36 | connect( dw->rollButton, SIGNAL( clicked() ), this , SLOT( slotRollDices() ) ); | 36 | connect( dw->rollButton, SIGNAL( clicked() ), this , SLOT( slotRollDices() ) ); |
37 | 37 | ||
38 | vbox->addWidget( sb ); | 38 | vbox->addWidget( sb ); |
39 | vbox->addWidget( dw ); | 39 | vbox->addWidget( dw ); |
40 | } | 40 | } |
41 | 41 | ||
42 | void OYatzee::slotEndRound( int item ) | 42 | void OYatzee::slotEndRound( int item ) |
43 | { | 43 | { |
44 | qDebug( "Der User hat Nummer %d ausgewählt" , item ); | 44 | qDebug( "Der User hat Nummer %d ausgewählt" , item ); |
45 | 45 | ||
46 | /* | 46 | /* |
47 | * if the user clicked on Total, Bonus or Score and thus not on a | 47 | * if the user clicked on Total, Bonus or Score and thus not on a |
48 | * selectable item return and do nothing | 48 | * selectable item return and do nothing |
49 | */ | 49 | */ |
50 | if ( item == 7 || item == 8 || item == 16 ) return; | 50 | if ( item == 7 || item == 8 || item == 16 ) return; |
51 | 51 | ||
52 | /* | 52 | /* |
53 | * check if the user can really click on that item | 53 | * check if the user can really click on that item |
54 | */ | 54 | */ |
55 | if ( posibilities.find( item ) == posibilities.end() ) return; | 55 | if ( posibilities.find( item ) == posibilities.end() ) return; |
56 | 56 | ||
57 | QValueListInt numbers; | 57 | QValueListInt numbers; |
58 | 58 | ||
59 | Dice *d = dw->diceList.first(); | 59 | Dice *d = dw->diceList.first(); |
60 | for ( ; d != 0 ; d = dw->diceList.next() ) | 60 | for ( ; d != 0 ; d = dw->diceList.next() ) |
61 | { | 61 | { |
62 | numbers.append( d->hasValue() ); | 62 | numbers.append( d->hasValue() ); |
63 | } | 63 | } |
64 | 64 | ||
65 | int points = 0; | 65 | int points = 0; |
66 | 66 | ||
67 | switch ( item ) | 67 | switch ( item ) |
68 | { | 68 | { |
69 | case Ones: | 69 | case Ones: |
70 | points = getPoints( 1 , numbers ); | 70 | points = getPoints( 1 , numbers ); |
71 | break; | 71 | break; |
72 | case Twos: | 72 | case Twos: |
73 | points = getPoints( 2 , numbers ); | 73 | points = getPoints( 2 , numbers ); |
74 | break; | 74 | break; |
75 | case Threes: | 75 | case Threes: |
76 | points = getPoints( 3 , numbers ); | 76 | points = getPoints( 3 , numbers ); |
77 | break; | 77 | break; |
78 | case Fours: | 78 | case Fours: |
79 | points = getPoints( 4 , numbers ); | 79 | points = getPoints( 4 , numbers ); |
80 | break; | 80 | break; |
81 | case Fives: | 81 | case Fives: |
82 | points = getPoints( 5 , numbers ); | 82 | points = getPoints( 5 , numbers ); |
83 | break; | 83 | break; |
84 | case Sixes: | 84 | case Sixes: |
85 | points = getPoints( 6 , numbers ); | 85 | points = getPoints( 6 , numbers ); |
86 | break; | 86 | break; |
87 | case ThreeOfAKind: | 87 | case ThreeOfAKind: |
88 | points = oakPoints; | 88 | points = oakPoints; |
89 | break; | 89 | break; |
90 | case FourOfAKind: | 90 | case FourOfAKind: |
91 | points = oakPoints; | 91 | points = oakPoints; |
92 | break; | 92 | break; |
93 | case FullHouse: | 93 | case FullHouse: |
94 | points = 25; | 94 | points = 25; |
95 | break; | 95 | break; |
96 | case SStraight: | 96 | case SStraight: |
97 | points = 30; | 97 | points = 30; |
98 | break; | 98 | break; |
99 | case LStraight: | 99 | case LStraight: |
100 | points = 40; | 100 | points = 40; |
101 | break; | 101 | break; |
102 | case Yatzee: | 102 | case Yatzee: |
103 | points = 50; | 103 | points = 50; |
104 | break; | 104 | break; |
105 | case Chance: | 105 | case Chance: |
106 | points = getPoints ( Chance , numbers ); | 106 | points = getPoints ( Chance , numbers ); |
107 | } | 107 | } |
108 | 108 | ||
109 | sb->nextRB(currentPlayer-1)->updateMap( item , points ); | 109 | sb->nextRB(currentPlayer-1)->updateMap( item , points ); |
110 | nextPlayer(); | 110 | nextPlayer(); |
111 | 111 | ||
112 | qDebug( "Punkte: %d" , points ); | 112 | qDebug( "Punkte: %d" , points ); |
113 | } | 113 | } |
114 | 114 | ||
115 | void OYatzee::nextPlayer() | 115 | void OYatzee::nextPlayer() |
116 | { | 116 | { |
117 | currentPlayer++; | 117 | currentPlayer++; |
118 | 118 | ||
119 | if ( currentPlayer > numOfPlayers ) | 119 | if ( currentPlayer > numOfPlayers ) |
120 | { | 120 | { |
121 | currentPlayer = 1; | 121 | currentPlayer = 1; |
122 | } | 122 | } |
123 | 123 | ||
124 | ps.at(currentPlayer-1)->turn = 0; | 124 | ps.at(currentPlayer-1)->turn = 0; |
125 | } | 125 | } |
126 | 126 | ||
127 | int OYatzee::getPoints( const int num , QValueListInt l) | 127 | int OYatzee::getPoints( const int num , QValueListInt l) |
128 | { | 128 | { |
@@ -553,135 +553,135 @@ void Player::setupResultList() | |||
553 | { | 553 | { |
554 | pResults.append( 0 ); | 554 | pResults.append( 0 ); |
555 | } | 555 | } |
556 | } | 556 | } |
557 | 557 | ||
558 | /* | 558 | /* |
559 | * TODO: muss noch genutzt werden | 559 | * TODO: muss noch genutzt werden |
560 | */ | 560 | */ |
561 | void Player::updateTotalPoints( pointMap m ) | 561 | void Player::updateTotalPoints( pointMap m ) |
562 | { | 562 | { |
563 | pointMap::Iterator it = m.begin(); | 563 | pointMap::Iterator it = m.begin(); |
564 | for ( ; it != m.end() ; ++it ) | 564 | for ( ; it != m.end() ; ++it ) |
565 | { | 565 | { |
566 | totalPoints += it.data(); | 566 | totalPoints += it.data(); |
567 | } | 567 | } |
568 | 568 | ||
569 | } | 569 | } |
570 | 570 | ||
571 | 571 | ||
572 | void Player::setResults( const int cat , const int points ) | 572 | void Player::setResults( const int cat , const int points ) |
573 | { | 573 | { |
574 | QValueListInt::Iterator it = pResults.at( cat ); | 574 | QValueListInt::Iterator it = pResults.at( cat ); |
575 | *it = points; | 575 | *it = points; |
576 | } | 576 | } |
577 | 577 | ||
578 | /* | 578 | /* |
579 | * Board | 579 | * Board |
580 | */ | 580 | */ |
581 | Board::Board( QWidget *parent , const char* name ) : QWidget ( parent , name ) | 581 | Board::Board( QWidget *parent , const char* name ) : QWidget ( parent , name ) |
582 | { | 582 | { |
583 | } | 583 | } |
584 | 584 | ||
585 | void Board::mousePressEvent( QMouseEvent *e ) | 585 | void Board::mousePressEvent( QMouseEvent *e ) |
586 | { | 586 | { |
587 | emit clicked( e->pos() ); | 587 | emit clicked( e->pos() ); |
588 | } | 588 | } |
589 | 589 | ||
590 | /* | 590 | /* |
591 | * Resultboard | 591 | * Resultboard |
592 | */ | 592 | */ |
593 | 593 | ||
594 | Resultboard::Resultboard( QString playerName , QWidget *parent , const char* name ) : Board ( parent , name ) | 594 | Resultboard::Resultboard( QString playerName , QWidget *parent , const char* name ) : Board ( parent , name ) |
595 | { | 595 | { |
596 | pName = playerName; | 596 | pName = playerName; |
597 | } | 597 | } |
598 | 598 | ||
599 | void Resultboard::paintEvent( QPaintEvent* ) | 599 | void Resultboard::paintEvent( QPaintEvent* ) |
600 | { | 600 | { |
601 | QPainter p; | 601 | QPainter p; |
602 | p.begin( this ); | 602 | p.begin( this ); |
603 | 603 | ||
604 | const int cell_width = this->width(); | 604 | const int cell_width = this->width(); |
605 | const int cell_height = this->height()/17; | 605 | const int cell_height = this->height()/17; |
606 | 606 | ||
607 | pointMap::Iterator it = pMap.begin(); | 607 | pointMap::Iterator it = pMap.begin(); |
608 | for ( ; it != pMap.end() ; ++it ) | 608 | for ( ; it != pMap.end() ; ++it ) |
609 | { | 609 | { |
610 | int i = it.key(); | 610 | int i = it.key(); |
611 | qDebug( "ok: %d , %d" , i , it.data() ); | 611 | qDebug( "ok: %d , %d" , i , it.data() ); |
612 | p.drawText( 0, i*cell_height , cell_width , cell_height , Qt::AlignCenter , QString::number( it.data() ) ); | 612 | p.drawText( 0, i*cell_height , cell_width , cell_height , Qt::AlignCenter , QString::number( it.data() ) ); |
613 | } | 613 | } |
614 | 614 | ||
615 | p.drawText( 0,0,cell_width,cell_height, Qt::AlignCenter , pName ); //Playername | 615 | p.drawText( 0,0,cell_width,cell_height, Qt::AlignCenter , pName ); //Playername |
616 | } | 616 | } |
617 | 617 | ||
618 | 618 | ||
619 | void Resultboard::updateMap( int item , int points ) | 619 | void Resultboard::updateMap( int item , int points ) |
620 | { | 620 | { |
621 | pMap.insert( item , points ); | 621 | pMap.insert( item , points ); |
622 | 622 | ||
623 | update(); | 623 | update(); |
624 | } | 624 | } |
625 | 625 | ||
626 | /* | 626 | /* |
627 | * Possibilityboard | 627 | * Possibilityboard |
628 | */ | 628 | */ |
629 | 629 | ||
630 | Possibilityboard::Possibilityboard( QWidget *parent , const char* name ) : Board ( parent , name ) | 630 | Possibilityboard::Possibilityboard( QWidget *parent , const char* name ) : Board ( parent , name ) |
631 | { | 631 | { |
632 | begriffe.append( "1er" ); | 632 | begriffe.append( "1er" ); |
633 | begriffe.append( "2er" ); | 633 | begriffe.append( "2er" ); |
634 | begriffe.append( "3er" ); | 634 | begriffe.append( "3er" ); |
635 | begriffe.append( "4er" ); | 635 | begriffe.append( "4er" ); |
636 | begriffe.append( "5er" ); | 636 | begriffe.append( "5er" ); |
637 | begriffe.append( "6er" ); | 637 | begriffe.append( "6er" ); |
638 | begriffe.append( "Total" ); | 638 | begriffe.append( "Total" ); |
639 | begriffe.append( "Bonus" ); | 639 | begriffe.append( "Bonus" ); |
640 | begriffe.append( "3oaK" ); | 640 | begriffe.append( "3oaK" ); |
641 | begriffe.append( "4oaK" ); | 641 | begriffe.append( "4oaK" ); |
642 | begriffe.append( "Full House" ); | 642 | begriffe.append( "Full House" ); |
643 | begriffe.append( "Short S" ); | 643 | begriffe.append( "Short S" ); |
644 | begriffe.append( "Long S" ); | 644 | begriffe.append( "Long S" ); |
645 | begriffe.append( "Yatzee!" ); | 645 | begriffe.append( "Yatzee!" ); |
646 | begriffe.append( "Chance" ); | 646 | begriffe.append( "Chance" ); |
647 | begriffe.append( "Score" ); | 647 | begriffe.append( "Score" ); |
648 | 648 | ||
649 | connect( this , SIGNAL( clicked( QPoint ) ), this , SLOT( slotClicked( QPoint ) ) ); | 649 | connect( this , SIGNAL( clicked(QPoint) ), this , SLOT( slotClicked(QPoint) ) ); |
650 | } | 650 | } |
651 | 651 | ||
652 | void Possibilityboard::slotClicked( QPoint p) | 652 | void Possibilityboard::slotClicked( QPoint p) |
653 | { | 653 | { |
654 | emit item( p.y()/(this->height()/17) ); | 654 | emit item( p.y()/(this->height()/17) ); |
655 | } | 655 | } |
656 | 656 | ||
657 | void Possibilityboard::paintEvent( QPaintEvent* ) | 657 | void Possibilityboard::paintEvent( QPaintEvent* ) |
658 | { | 658 | { |
659 | QPainter p; | 659 | QPainter p; |
660 | p.begin( this ); | 660 | p.begin( this ); |
661 | 661 | ||
662 | const int cell_width = this->width(); | 662 | const int cell_width = this->width(); |
663 | const int cell_height = this->height()/17; | 663 | const int cell_height = this->height()/17; |
664 | 664 | ||
665 | p.setBrush( Qt::blue ); | 665 | p.setBrush( Qt::blue ); |
666 | 666 | ||
667 | QValueListInt::Iterator listIt = list.begin(); | 667 | QValueListInt::Iterator listIt = list.begin(); |
668 | for ( ; listIt != list.end() ; ++listIt ) | 668 | for ( ; listIt != list.end() ; ++listIt ) |
669 | { | 669 | { |
670 | p.drawRect( 0 , (*listIt) * cell_height , cell_width , cell_height ); | 670 | p.drawRect( 0 , (*listIt) * cell_height , cell_width , cell_height ); |
671 | } | 671 | } |
672 | 672 | ||
673 | p.setBrush( Qt::black ); | 673 | p.setBrush( Qt::black ); |
674 | p.setBrush( Qt::NoBrush ); | 674 | p.setBrush( Qt::NoBrush ); |
675 | QStringList::Iterator begriffeIt = begriffe.begin(); | 675 | QStringList::Iterator begriffeIt = begriffe.begin(); |
676 | for ( int i = 1 ; i < 18 ; ++i ) | 676 | for ( int i = 1 ; i < 18 ; ++i ) |
677 | { | 677 | { |
678 | p.drawText( 0 , i*cell_height , cell_width , cell_height , Qt::AlignCenter , *begriffeIt ); | 678 | p.drawText( 0 , i*cell_height , cell_width , cell_height , Qt::AlignCenter , *begriffeIt ); |
679 | ++begriffeIt; | 679 | ++begriffeIt; |
680 | } | 680 | } |
681 | } | 681 | } |
682 | 682 | ||
683 | void Possibilityboard::setIntlist( QValueListInt &l ) | 683 | void Possibilityboard::setIntlist( QValueListInt &l ) |
684 | { | 684 | { |
685 | list = l; | 685 | list = l; |
686 | } | 686 | } |
687 | 687 | ||
diff --git a/noncore/multimedia/camera/gui/mainwindow.cpp b/noncore/multimedia/camera/gui/mainwindow.cpp index 2f42049..e4e1b6c 100644 --- a/noncore/multimedia/camera/gui/mainwindow.cpp +++ b/noncore/multimedia/camera/gui/mainwindow.cpp | |||
@@ -5,194 +5,194 @@ | |||
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 | **********************************************************************/ | 14 | **********************************************************************/ |
15 | 15 | ||
16 | #include "mainwindow.h" | 16 | #include "mainwindow.h" |
17 | #include "previewwidget.h" | 17 | #include "previewwidget.h" |
18 | #include "zcameraio.h" | 18 | #include "zcameraio.h" |
19 | #include "imageio.h" | 19 | #include "imageio.h" |
20 | #include "avi.h" | 20 | #include "avi.h" |
21 | 21 | ||
22 | /* OPIE */ | 22 | /* OPIE */ |
23 | #include <opie2/ofiledialog.h> | 23 | #include <opie2/ofiledialog.h> |
24 | #include <opie2/odevice.h> | 24 | #include <opie2/odevice.h> |
25 | #include <opie2/oapplication.h> | 25 | #include <opie2/oapplication.h> |
26 | #include <opie2/oconfig.h> | 26 | #include <opie2/oconfig.h> |
27 | #include <opie2/odebug.h> | 27 | #include <opie2/odebug.h> |
28 | #include <qpe/global.h> | 28 | #include <qpe/global.h> |
29 | #include <qpe/resource.h> | 29 | #include <qpe/resource.h> |
30 | #include <qpe/qcopenvelope_qws.h> | 30 | #include <qpe/qcopenvelope_qws.h> |
31 | using namespace Opie; | 31 | using namespace Opie; |
32 | 32 | ||
33 | /* QT */ | 33 | /* QT */ |
34 | #include <qapplication.h> | 34 | #include <qapplication.h> |
35 | #include <qaction.h> | 35 | #include <qaction.h> |
36 | #include <qvbox.h> | 36 | #include <qvbox.h> |
37 | #include <qcombobox.h> | 37 | #include <qcombobox.h> |
38 | #include <qcursor.h> | 38 | #include <qcursor.h> |
39 | #include <qdatastream.h> | 39 | #include <qdatastream.h> |
40 | #include <qdir.h> | 40 | #include <qdir.h> |
41 | #include <qfile.h> | 41 | #include <qfile.h> |
42 | #include <qimage.h> | 42 | #include <qimage.h> |
43 | #include <qlabel.h> | 43 | #include <qlabel.h> |
44 | #include <qlineedit.h> | 44 | #include <qlineedit.h> |
45 | #include <qpopupmenu.h> | 45 | #include <qpopupmenu.h> |
46 | #include <qprogressbar.h> | 46 | #include <qprogressbar.h> |
47 | #include <qpushbutton.h> | 47 | #include <qpushbutton.h> |
48 | #include <qmessagebox.h> | 48 | #include <qmessagebox.h> |
49 | #include <qlayout.h> | 49 | #include <qlayout.h> |
50 | #include <qdirectpainter_qws.h> | 50 | #include <qdirectpainter_qws.h> |
51 | 51 | ||
52 | /* STD */ | 52 | /* STD */ |
53 | #include <assert.h> | 53 | #include <assert.h> |
54 | #include <sys/types.h> | 54 | #include <sys/types.h> |
55 | #include <sys/stat.h> | 55 | #include <sys/stat.h> |
56 | #include <fcntl.h> | 56 | #include <fcntl.h> |
57 | #include <string.h> | 57 | #include <string.h> |
58 | #include <errno.h> | 58 | #include <errno.h> |
59 | #include <unistd.h> | 59 | #include <unistd.h> |
60 | 60 | ||
61 | #define CAPTUREFILE "/tmp/capture.dat" | 61 | #define CAPTUREFILE "/tmp/capture.dat" |
62 | #define OUTPUTFILE "/tmp/output.avi" | 62 | #define OUTPUTFILE "/tmp/output.avi" |
63 | 63 | ||
64 | #define OUTPUT_TO_CUSTOM 250 | 64 | #define OUTPUT_TO_CUSTOM 250 |
65 | #define OUTPUT_TO_DOCFOLDER 251 | 65 | #define OUTPUT_TO_DOCFOLDER 251 |
66 | 66 | ||
67 | CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags f ) | 67 | CameraMainWindow::CameraMainWindow( QWidget * parent, const char * name, WFlags f ) |
68 | :QMainWindow( parent, name, f ), | 68 | :QMainWindow( parent, name, f ), |
69 | _rotation( 270 ), // FIXME: get this from current settings (ODevice?) | 69 | _rotation( 270 ), // FIXME: get this from current settings (ODevice?) |
70 | _capturing( false ), | 70 | _capturing( false ), |
71 | _pics( 1 ), _videos( 1 ) | 71 | _pics( 1 ), _videos( 1 ) |
72 | { | 72 | { |
73 | #ifdef QT_NO_DEBUG | 73 | #ifdef QT_NO_DEBUG |
74 | if ( !ZCameraIO::instance()->isOpen() ) | 74 | if ( !ZCameraIO::instance()->isOpen() ) |
75 | { | 75 | { |
76 | QVBox* v = new QVBox( this ); | 76 | QVBox* v = new QVBox( this ); |
77 | v->setMargin( 10 ); | 77 | v->setMargin( 10 ); |
78 | QLabel* l1 = new QLabel( v ); | 78 | QLabel* l1 = new QLabel( v ); |
79 | l1->setPixmap( Resource::loadPixmap( "camera/error" ) ); | 79 | l1->setPixmap( Resource::loadPixmap( "camera/error" ) ); |
80 | QLabel* l2 = new QLabel( v ); | 80 | QLabel* l2 = new QLabel( v ); |
81 | l2->setText( "<b>Sorry. could not detect your camera :-(</b><p>" | 81 | l2->setText( "<b>Sorry. could not detect your camera :-(</b><p>" |
82 | "* Is the sharpzdc_cs module loaded ?<br>" | 82 | "* Is the sharpzdc_cs module loaded ?<br>" |
83 | "* Is /dev/sharpzdc read/writable ?<p>" ); | 83 | "* Is /dev/sharpzdc read/writable ?<p>" ); |
84 | connect( new QPushButton( "Exit", v ), SIGNAL( clicked() ), this, SLOT( close() ) ); | 84 | connect( new QPushButton( "Exit", v ), SIGNAL( clicked() ), this, SLOT( close() ) ); |
85 | setCentralWidget( v ); | 85 | setCentralWidget( v ); |
86 | return; | 86 | return; |
87 | } | 87 | } |
88 | #endif | 88 | #endif |
89 | 89 | ||
90 | init(); | 90 | init(); |
91 | 91 | ||
92 | _rotation = 270; //TODO: grab these from the actual settings | 92 | _rotation = 270; //TODO: grab these from the actual settings |
93 | 93 | ||
94 | preview = new PreviewWidget( this, "camera preview widget" ); | 94 | preview = new PreviewWidget( this, "camera preview widget" ); |
95 | //setCentralWidget( preview ); <--- don't do this! | 95 | //setCentralWidget( preview ); <--- don't do this! |
96 | preview->resize( QSize( 240, 288 ) ); | 96 | preview->resize( QSize( 240, 288 ) ); |
97 | preview->show(); | 97 | preview->show(); |
98 | 98 | ||
99 | // construct a System Channel to receive setRotation messages | 99 | // construct a System Channel to receive setRotation messages |
100 | _sysChannel = new QCopChannel( "QPE/System", this ); | 100 | _sysChannel = new QCopChannel( "QPE/System", this ); |
101 | connect( _sysChannel, SIGNAL( received( const QCString&, const QByteArray& ) ), | 101 | connect( _sysChannel, SIGNAL( received(const QCString&,const QByteArray&) ), |
102 | this, SLOT( systemMessage( const QCString&, const QByteArray& ) ) ); | 102 | this, SLOT( systemMessage(const QCString&,const QByteArray&) ) ); |
103 | 103 | ||
104 | connect( preview, SIGNAL( contextMenuRequested() ), this, SLOT( showContextMenu() ) ); | 104 | connect( preview, SIGNAL( contextMenuRequested() ), this, SLOT( showContextMenu() ) ); |
105 | 105 | ||
106 | connect( ZCameraIO::instance(), SIGNAL( shutterClicked() ), this, SLOT( shutterClicked() ) ); | 106 | connect( ZCameraIO::instance(), SIGNAL( shutterClicked() ), this, SLOT( shutterClicked() ) ); |
107 | 107 | ||
108 | updateCaption(); | 108 | updateCaption(); |
109 | 109 | ||
110 | }; | 110 | }; |
111 | 111 | ||
112 | 112 | ||
113 | CameraMainWindow::~CameraMainWindow() | 113 | CameraMainWindow::~CameraMainWindow() |
114 | { | 114 | { |
115 | // write back configuration | 115 | // write back configuration |
116 | OConfigGroupSaver cgs( oApp->config(), "General" ); | 116 | OConfigGroupSaver cgs( oApp->config(), "General" ); |
117 | cgs.config()->writeEntry( "flip", flip ); | 117 | cgs.config()->writeEntry( "flip", flip ); |
118 | cgs.config()->writeEntry( "quality", quality ); | 118 | cgs.config()->writeEntry( "quality", quality ); |
119 | cgs.config()->writeEntry( "zoom", zoom ); | 119 | cgs.config()->writeEntry( "zoom", zoom ); |
120 | cgs.config()->writeEntry( "captureX", captureX ); | 120 | cgs.config()->writeEntry( "captureX", captureX ); |
121 | cgs.config()->writeEntry( "captureY", captureY ); | 121 | cgs.config()->writeEntry( "captureY", captureY ); |
122 | cgs.config()->writeEntry( "captureFormat", captureFormat ); | 122 | cgs.config()->writeEntry( "captureFormat", captureFormat ); |
123 | cgs.config()->writeEntry( "outputTo", outputTo ); | 123 | cgs.config()->writeEntry( "outputTo", outputTo ); |
124 | cgs.config()->writeEntry( "prefix", prefix ); | 124 | cgs.config()->writeEntry( "prefix", prefix ); |
125 | cgs.config()->writeEntry( "appendSettings", appendSettings ); | 125 | cgs.config()->writeEntry( "appendSettings", appendSettings ); |
126 | } | 126 | } |
127 | 127 | ||
128 | 128 | ||
129 | void CameraMainWindow::init() | 129 | void CameraMainWindow::init() |
130 | { | 130 | { |
131 | // get values from configuration | 131 | // get values from configuration |
132 | OConfigGroupSaver cgs( oApp->config(), "General" ); | 132 | OConfigGroupSaver cgs( oApp->config(), "General" ); |
133 | flip = cgs.config()->readEntry( "flip", "A" ); | 133 | flip = cgs.config()->readEntry( "flip", "A" ); |
134 | quality = cgs.config()->readNumEntry( "quality", 50 ); | 134 | quality = cgs.config()->readNumEntry( "quality", 50 ); |
135 | zoom = cgs.config()->readNumEntry( "zoom", 1 ); | 135 | zoom = cgs.config()->readNumEntry( "zoom", 1 ); |
136 | captureX = cgs.config()->readNumEntry( "captureX", 480 ); | 136 | captureX = cgs.config()->readNumEntry( "captureX", 480 ); |
137 | captureY = cgs.config()->readNumEntry( "captureY", 640 ); | 137 | captureY = cgs.config()->readNumEntry( "captureY", 640 ); |
138 | captureFormat = cgs.config()->readEntry( "captureFormat", "JPEG" ); | 138 | captureFormat = cgs.config()->readEntry( "captureFormat", "JPEG" ); |
139 | outputTo = cgs.config()->readEntry( "outputTo", "Documents Folder" ); | 139 | outputTo = cgs.config()->readEntry( "outputTo", "Documents Folder" ); |
140 | prefix = cgs.config()->readEntry( "prefix", "Untitled" ); | 140 | prefix = cgs.config()->readEntry( "prefix", "Untitled" ); |
141 | appendSettings = cgs.config()->readBoolEntry( "appendSettings", true ); | 141 | appendSettings = cgs.config()->readBoolEntry( "appendSettings", true ); |
142 | 142 | ||
143 | // create action groups | 143 | // create action groups |
144 | QAction* a; | 144 | QAction* a; |
145 | resog = new QActionGroup( 0, "reso", true ); | 145 | resog = new QActionGroup( 0, "reso", true ); |
146 | resog->setToggleAction( true ); | 146 | resog->setToggleAction( true ); |
147 | new QAction( " 64 x 48", 0, 0, resog, "64x48", true ); | 147 | new QAction( " 64 x 48", 0, 0, resog, "64x48", true ); |
148 | new QAction( "128 x 96", 0, 0, resog, "128x96", true ); | 148 | new QAction( "128 x 96", 0, 0, resog, "128x96", true ); |
149 | new QAction( "192 x 144", 0, 0, resog, "192x144", true ); | 149 | new QAction( "192 x 144", 0, 0, resog, "192x144", true ); |
150 | new QAction( "256 x 192", 0, 0, resog, "256x192", true ); | 150 | new QAction( "256 x 192", 0, 0, resog, "256x192", true ); |
151 | new QAction( "320 x 240", 0, 0, resog, "320x240", true ); | 151 | new QAction( "320 x 240", 0, 0, resog, "320x240", true ); |
152 | new QAction( "384 x 288", 0, 0, resog, "384x288", true ); | 152 | new QAction( "384 x 288", 0, 0, resog, "384x288", true ); |
153 | new QAction( "448 x 336", 0, 0, resog, "448x336", true ); | 153 | new QAction( "448 x 336", 0, 0, resog, "448x336", true ); |
154 | new QAction( "512 x 384", 0, 0, resog, "512x384", true ); | 154 | new QAction( "512 x 384", 0, 0, resog, "512x384", true ); |
155 | new QAction( "576 x 432", 0, 0, resog, "576x432", true ); | 155 | new QAction( "576 x 432", 0, 0, resog, "576x432", true ); |
156 | new QAction( "640 x 480", 0, 0, resog, "640x480", true ); | 156 | new QAction( "640 x 480", 0, 0, resog, "640x480", true ); |
157 | a = (QAction*) resog->child( QString().sprintf( "%dx%d", captureX>captureY ? captureX:captureY, captureX>captureY ? captureY:captureX ) ); | 157 | a = (QAction*) resog->child( QString().sprintf( "%dx%d", captureX>captureY ? captureX:captureY, captureX>captureY ? captureY:captureX ) ); |
158 | if ( a ) a->setOn( true ); | 158 | if ( a ) a->setOn( true ); |
159 | else owarn << "can't set resolution" << oendl; | 159 | else owarn << "can't set resolution" << oendl; |
160 | 160 | ||
161 | qualityg = new QActionGroup( 0, "quality", true ); | 161 | qualityg = new QActionGroup( 0, "quality", true ); |
162 | qualityg->setToggleAction( true ); | 162 | qualityg->setToggleAction( true ); |
163 | new QAction( " 0 (&minimal)", 0, 0, qualityg, "0", true ); | 163 | new QAction( " 0 (&minimal)", 0, 0, qualityg, "0", true ); |
164 | new QAction( " 25 (&low)", 0, 0, qualityg, "25", true ); | 164 | new QAction( " 25 (&low)", 0, 0, qualityg, "25", true ); |
165 | new QAction( " 50 (&good)", 0, 0, qualityg, "50", true ); | 165 | new QAction( " 50 (&good)", 0, 0, qualityg, "50", true ); |
166 | new QAction( " 75 (&better)", 0, 0, qualityg, "75", true ); | 166 | new QAction( " 75 (&better)", 0, 0, qualityg, "75", true ); |
167 | new QAction( "100 (bes&t)", 0, 0, qualityg, "100", true ); | 167 | new QAction( "100 (bes&t)", 0, 0, qualityg, "100", true ); |
168 | a = (QAction*) qualityg->child( QString().sprintf( "%d", quality ) ); | 168 | a = (QAction*) qualityg->child( QString().sprintf( "%d", quality ) ); |
169 | if ( a ) a->setOn( true ); | 169 | if ( a ) a->setOn( true ); |
170 | else owarn << "can't set quality" << oendl; | 170 | else owarn << "can't set quality" << oendl; |
171 | 171 | ||
172 | zoomg = new QActionGroup( 0, "zoom", true ); | 172 | zoomg = new QActionGroup( 0, "zoom", true ); |
173 | zoomg->setToggleAction( true ); | 173 | zoomg->setToggleAction( true ); |
174 | new QAction( "x 1", 0, 0, zoomg, "1", true ); | 174 | new QAction( "x 1", 0, 0, zoomg, "1", true ); |
175 | new QAction( "x 2", 0, 0, zoomg, "2", true ); | 175 | new QAction( "x 2", 0, 0, zoomg, "2", true ); |
176 | a = (QAction*) zoomg->child( QString().sprintf( "%d", zoom ) ); | 176 | a = (QAction*) zoomg->child( QString().sprintf( "%d", zoom ) ); |
177 | if ( a ) a->setOn( true ); | 177 | if ( a ) a->setOn( true ); |
178 | else owarn << "can't set zoom" << oendl; | 178 | else owarn << "can't set zoom" << oendl; |
179 | 179 | ||
180 | flipg = new QActionGroup( 0, "flip", true ); | 180 | flipg = new QActionGroup( 0, "flip", true ); |
181 | flipg->setToggleAction( true ); | 181 | flipg->setToggleAction( true ); |
182 | new QAction( "Auto (recommended)", 0, 0, flipg, "A", true ); | 182 | new QAction( "Auto (recommended)", 0, 0, flipg, "A", true ); |
183 | new QAction( "0 (always off)", 0, 0, flipg, "0", true ); | 183 | new QAction( "0 (always off)", 0, 0, flipg, "0", true ); |
184 | new QAction( "X (always horizontal)", 0, 0, flipg, "X", true ); | 184 | new QAction( "X (always horizontal)", 0, 0, flipg, "X", true ); |
185 | new QAction( "Y (always vertical)", 0, 0, flipg, "Y", true ); | 185 | new QAction( "Y (always vertical)", 0, 0, flipg, "Y", true ); |
186 | new QAction( "* (always both)", 0, 0, flipg, "*", true ); | 186 | new QAction( "* (always both)", 0, 0, flipg, "*", true ); |
187 | a = (QAction*) flipg->child( QString().sprintf( "%s", (const char*) flip ) ); | 187 | a = (QAction*) flipg->child( QString().sprintf( "%s", (const char*) flip ) ); |
188 | if ( a ) a->setOn( true ); | 188 | if ( a ) a->setOn( true ); |
189 | else owarn << "can't set flip" << oendl; | 189 | else owarn << "can't set flip" << oendl; |
190 | 190 | ||
191 | outputTog = new QActionGroup( 0, "output", true ); | 191 | outputTog = new QActionGroup( 0, "output", true ); |
192 | outputTog->setToggleAction( true ); | 192 | outputTog->setToggleAction( true ); |
193 | new QAction( "/tmp/", 0, 0, outputTog, "/tmp/", true ); | 193 | new QAction( "/tmp/", 0, 0, outputTog, "/tmp/", true ); |
194 | new QAction( "/mnt/card/", 0, 0, outputTog, "/mnt/card/", true ); | 194 | new QAction( "/mnt/card/", 0, 0, outputTog, "/mnt/card/", true ); |
195 | new QAction( "/mnt/cf/", 0, 0, outputTog, "/mnt/cf/", true ); | 195 | new QAction( "/mnt/cf/", 0, 0, outputTog, "/mnt/cf/", true ); |
196 | docfolder = new QAction( "Documents Folder", 0, 0, outputTog, "Documents Folder", true ); | 196 | docfolder = new QAction( "Documents Folder", 0, 0, outputTog, "Documents Folder", true ); |
197 | custom = new QAction( "&Custom...", 0, 0, outputTog, "custom", true ); //TODO: How to save custom!? | 197 | custom = new QAction( "&Custom...", 0, 0, outputTog, "custom", true ); //TODO: How to save custom!? |
198 | a = (QAction*) outputTog->child( QString().sprintf( "%s", (const char*) outputTo ) ); | 198 | a = (QAction*) outputTog->child( QString().sprintf( "%s", (const char*) outputTo ) ); |
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp index 870b4f3..f3eafab 100644 --- a/noncore/multimedia/opieplayer2/audiowidget.cpp +++ b/noncore/multimedia/opieplayer2/audiowidget.cpp | |||
@@ -1,178 +1,178 @@ | |||
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 Max Reiss <harlekin@handhelds.org> | 4 | Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> |
5 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> | 5 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> |
6 | Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> | 6 | Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> |
7 | =. | 7 | =. |
8 | .=l. | 8 | .=l. |
9 | .>+-= | 9 | .>+-= |
10 | _;:, .> :=|. This program is free software; you can | 10 | _;:, .> :=|. This program is free software; you can |
11 | .> <`_, > . <= redistribute it and/or modify it under | 11 | .> <`_, > . <= redistribute it and/or modify it under |
12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
13 | .="- .-=="i, .._ License as published by the Free Software | 13 | .="- .-=="i, .._ License as published by the Free Software |
14 | - . .-<_> .<> Foundation; either version 2 of the License, | 14 | - . .-<_> .<> Foundation; either version 2 of the License, |
15 | ._= =} : or (at your option) any later version. | 15 | ._= =} : or (at your option) any later version. |
16 | .%`+i> _;_. | 16 | .%`+i> _;_. |
17 | .i_,=:_. -<s. This program is distributed in the hope that | 17 | .i_,=:_. -<s. This program is distributed in the hope that |
18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
19 | : .. .:, . . . without even the implied warranty of | 19 | : .. .:, . . . without even the implied warranty of |
20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
22 | ..}^=.= = ; Library General Public License for more | 22 | ..}^=.= = ; Library General Public License for more |
23 | ++= -. .` .: details. | 23 | ++= -. .` .: details. |
24 | : = ...= . :.=- | 24 | : = ...= . :.=- |
25 | -. .:....=;==+<; You should have received a copy of the GNU | 25 | -. .:....=;==+<; You should have received a copy of the GNU |
26 | -_. . . )=. = Library General Public License along with | 26 | -_. . . )=. = Library General Public License along with |
27 | -- :-=` this library; see the file COPYING.LIB. | 27 | -- :-=` this library; see the file COPYING.LIB. |
28 | If not, write to the Free Software Foundation, | 28 | If not, write to the Free Software Foundation, |
29 | Inc., 59 Temple Place - Suite 330, | 29 | Inc., 59 Temple Place - Suite 330, |
30 | Boston, MA 02111-1307, USA. | 30 | Boston, MA 02111-1307, USA. |
31 | 31 | ||
32 | */ | 32 | */ |
33 | 33 | ||
34 | 34 | ||
35 | #include "audiowidget.h" | 35 | #include "audiowidget.h" |
36 | #include "mediaplayerstate.h" | 36 | #include "mediaplayerstate.h" |
37 | #include "playlistwidget.h" | 37 | #include "playlistwidget.h" |
38 | 38 | ||
39 | #include <qpe/qpeapplication.h> | 39 | #include <qpe/qpeapplication.h> |
40 | 40 | ||
41 | namespace | 41 | namespace |
42 | { | 42 | { |
43 | 43 | ||
44 | const int xo = -2; // movable x offset | 44 | const int xo = -2; // movable x offset |
45 | const int yo = 22; // movable y offset | 45 | const int yo = 22; // movable y offset |
46 | 46 | ||
47 | const MediaWidget::SkinButtonInfo skinInfo[] = | 47 | const MediaWidget::SkinButtonInfo skinInfo[] = |
48 | { | 48 | { |
49 | { MediaWidget::Play, "play", MediaWidget::ToggleButton }, | 49 | { MediaWidget::Play, "play", MediaWidget::ToggleButton }, |
50 | { MediaWidget::Stop, "stop", MediaWidget::NormalButton }, | 50 | { MediaWidget::Stop, "stop", MediaWidget::NormalButton }, |
51 | { MediaWidget::Next, "next", MediaWidget::NormalButton }, | 51 | { MediaWidget::Next, "next", MediaWidget::NormalButton }, |
52 | { MediaWidget::Previous, "prev", MediaWidget::NormalButton }, | 52 | { MediaWidget::Previous, "prev", MediaWidget::NormalButton }, |
53 | { MediaWidget::VolumeUp, "up", MediaWidget::NormalButton }, | 53 | { MediaWidget::VolumeUp, "up", MediaWidget::NormalButton }, |
54 | { MediaWidget::VolumeDown, "down", MediaWidget::NormalButton }, | 54 | { MediaWidget::VolumeDown, "down", MediaWidget::NormalButton }, |
55 | { MediaWidget::Loop, "loop", MediaWidget::ToggleButton }, | 55 | { MediaWidget::Loop, "loop", MediaWidget::ToggleButton }, |
56 | { MediaWidget::PlayList, "playlist", MediaWidget::NormalButton }, | 56 | { MediaWidget::PlayList, "playlist", MediaWidget::NormalButton }, |
57 | { MediaWidget::Forward, "forward", MediaWidget::NormalButton }, | 57 | { MediaWidget::Forward, "forward", MediaWidget::NormalButton }, |
58 | { MediaWidget::Back, "back", MediaWidget::NormalButton } | 58 | { MediaWidget::Back, "back", MediaWidget::NormalButton } |
59 | }; | 59 | }; |
60 | 60 | ||
61 | const uint buttonCount = sizeof( skinInfo ) / sizeof( skinInfo[ 0 ] ); | 61 | const uint buttonCount = sizeof( skinInfo ) / sizeof( skinInfo[ 0 ] ); |
62 | 62 | ||
63 | void changeTextColor( QWidget * w) { | 63 | void changeTextColor( QWidget * w) { |
64 | QPalette p = w->palette(); | 64 | QPalette p = w->palette(); |
65 | p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) ); | 65 | p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) ); |
66 | p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) ); | 66 | p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) ); |
67 | w->setPalette( p ); | 67 | w->setPalette( p ); |
68 | } | 68 | } |
69 | 69 | ||
70 | } | 70 | } |
71 | 71 | ||
72 | AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name) : | 72 | AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name) : |
73 | 73 | ||
74 | MediaWidget( playList, mediaPlayerState, parent, name ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ), | 74 | MediaWidget( playList, mediaPlayerState, parent, name ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ), |
75 | audioSliderBeingMoved( false ) | 75 | audioSliderBeingMoved( false ) |
76 | { | 76 | { |
77 | setCaption( tr("OpiePlayer") ); | 77 | setCaption( tr("OpiePlayer") ); |
78 | 78 | ||
79 | loadSkin(); | 79 | loadSkin(); |
80 | 80 | ||
81 | connect( &mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) ); | 81 | connect( &mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) ); |
82 | connect( &mediaPlayerState, SIGNAL( isSeekableToggled( bool ) ), this, SLOT( setSeekable( bool ) ) ); | 82 | connect( &mediaPlayerState, SIGNAL( isSeekableToggled(bool) ), this, SLOT( setSeekable(bool) ) ); |
83 | 83 | ||
84 | connect( this, SIGNAL( forwardClicked() ), this, SLOT( skipFor() ) ); | 84 | connect( this, SIGNAL( forwardClicked() ), this, SLOT( skipFor() ) ); |
85 | connect( this, SIGNAL( backClicked() ), this, SLOT( skipBack() ) ); | 85 | connect( this, SIGNAL( backClicked() ), this, SLOT( skipBack() ) ); |
86 | connect( this, SIGNAL( forwardReleased() ), this, SLOT( stopSkip() ) ); | 86 | connect( this, SIGNAL( forwardReleased() ), this, SLOT( stopSkip() ) ); |
87 | connect( this, SIGNAL( backReleased() ), this, SLOT( stopSkip() ) ); | 87 | connect( this, SIGNAL( backReleased() ), this, SLOT( stopSkip() ) ); |
88 | 88 | ||
89 | // Intialise state | 89 | // Intialise state |
90 | setLength( mediaPlayerState.length() ); | 90 | setLength( mediaPlayerState.length() ); |
91 | setPosition( mediaPlayerState.position() ); | 91 | setPosition( mediaPlayerState.position() ); |
92 | setLooping( mediaPlayerState.isFullscreen() ); | 92 | setLooping( mediaPlayerState.isFullscreen() ); |
93 | // setPaused( mediaPlayerState->paused() ); | 93 | // setPaused( mediaPlayerState->paused() ); |
94 | setPlaying( mediaPlayerState.isPlaying() ); | 94 | setPlaying( mediaPlayerState.isPlaying() ); |
95 | } | 95 | } |
96 | 96 | ||
97 | AudioWidget::~AudioWidget() { | 97 | AudioWidget::~AudioWidget() { |
98 | 98 | ||
99 | // mediaPlayerState->setPlaying(false); | 99 | // mediaPlayerState->setPlaying(false); |
100 | } | 100 | } |
101 | 101 | ||
102 | MediaWidget::GUIInfo AudioWidget::guiInfo() | 102 | MediaWidget::GUIInfo AudioWidget::guiInfo() |
103 | { | 103 | { |
104 | return GUIInfo( QString::null /* infix */, ::skinInfo, ::buttonCount ); | 104 | return GUIInfo( QString::null /* infix */, ::skinInfo, ::buttonCount ); |
105 | } | 105 | } |
106 | 106 | ||
107 | void AudioWidget::resizeEvent( QResizeEvent *e ) { | 107 | void AudioWidget::resizeEvent( QResizeEvent *e ) { |
108 | int h = height(); | 108 | int h = height(); |
109 | int w = width(); | 109 | int w = width(); |
110 | 110 | ||
111 | songInfo.setGeometry( QRect( 2, 2, w - 4, 20 ) ); | 111 | songInfo.setGeometry( QRect( 2, 2, w - 4, 20 ) ); |
112 | slider.setFixedWidth( w - 110 ); | 112 | slider.setFixedWidth( w - 110 ); |
113 | slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); | 113 | slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); |
114 | slider.setBackgroundOrigin( QWidget::ParentOrigin ); | 114 | slider.setBackgroundOrigin( QWidget::ParentOrigin ); |
115 | time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) ); | 115 | time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) ); |
116 | 116 | ||
117 | upperLeftOfButtonMask.rx() = ( w - buttonUpImage.width() ) / 2; | 117 | upperLeftOfButtonMask.rx() = ( w - buttonUpImage.width() ) / 2; |
118 | upperLeftOfButtonMask.ry() = (( h - buttonUpImage.height() ) / 2) - 10; | 118 | upperLeftOfButtonMask.ry() = (( h - buttonUpImage.height() ) / 2) - 10; |
119 | 119 | ||
120 | MediaWidget::resizeEvent( e ); | 120 | MediaWidget::resizeEvent( e ); |
121 | } | 121 | } |
122 | 122 | ||
123 | void AudioWidget::sliderPressed() { | 123 | void AudioWidget::sliderPressed() { |
124 | audioSliderBeingMoved = TRUE; | 124 | audioSliderBeingMoved = TRUE; |
125 | } | 125 | } |
126 | 126 | ||
127 | 127 | ||
128 | void AudioWidget::sliderReleased() { | 128 | void AudioWidget::sliderReleased() { |
129 | audioSliderBeingMoved = FALSE; | 129 | audioSliderBeingMoved = FALSE; |
130 | if ( slider.width() == 0 ) | 130 | if ( slider.width() == 0 ) |
131 | return; | 131 | return; |
132 | long val = long((double)slider.value() * mediaPlayerState.length() / slider.width()); | 132 | long val = long((double)slider.value() * mediaPlayerState.length() / slider.width()); |
133 | mediaPlayerState.setPosition( val ); | 133 | mediaPlayerState.setPosition( val ); |
134 | } | 134 | } |
135 | 135 | ||
136 | void AudioWidget::setPosition( long i ) { | 136 | void AudioWidget::setPosition( long i ) { |
137 | // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i); | 137 | // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i); |
138 | updateSlider( i, mediaPlayerState.length() ); | 138 | updateSlider( i, mediaPlayerState.length() ); |
139 | } | 139 | } |
140 | 140 | ||
141 | 141 | ||
142 | void AudioWidget::setLength( long max ) { | 142 | void AudioWidget::setLength( long max ) { |
143 | updateSlider( mediaPlayerState.position(), max ); | 143 | updateSlider( mediaPlayerState.position(), max ); |
144 | } | 144 | } |
145 | 145 | ||
146 | 146 | ||
147 | void AudioWidget::setDisplayType( MediaPlayerState::DisplayType mediaType ) { | 147 | void AudioWidget::setDisplayType( MediaPlayerState::DisplayType mediaType ) { |
148 | if ( mediaType == MediaPlayerState::Audio ) { | 148 | if ( mediaType == MediaPlayerState::Audio ) { |
149 | // startTimer( 150 ); | 149 | // startTimer( 150 ); |
150 | QPEApplication::showWidget( this ); | 150 | QPEApplication::showWidget( this ); |
151 | return; | 151 | return; |
152 | } | 152 | } |
153 | 153 | ||
154 | killTimers(); | 154 | killTimers(); |
155 | hide(); | 155 | hide(); |
156 | } | 156 | } |
157 | 157 | ||
158 | void AudioWidget::loadSkin() | 158 | void AudioWidget::loadSkin() |
159 | { | 159 | { |
160 | loadDefaultSkin( guiInfo() ); | 160 | loadDefaultSkin( guiInfo() ); |
161 | 161 | ||
162 | songInfo.setFocusPolicy( QWidget::NoFocus ); | 162 | songInfo.setFocusPolicy( QWidget::NoFocus ); |
163 | // changeTextColor( &songInfo ); | 163 | // changeTextColor( &songInfo ); |
164 | // songInfo.setBackgroundColor( QColor( 167, 212, 167 )); | 164 | // songInfo.setBackgroundColor( QColor( 167, 212, 167 )); |
165 | // songInfo.setFrameStyle( QFrame::NoFrame); | 165 | // songInfo.setFrameStyle( QFrame::NoFrame); |
166 | songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); | 166 | songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); |
167 | // songInfo.setForegroundColor(Qt::white); | 167 | // songInfo.setForegroundColor(Qt::white); |
168 | 168 | ||
169 | slider.setFixedHeight( 20 ); | 169 | slider.setFixedHeight( 20 ); |
170 | slider.setMinValue( 0 ); | 170 | slider.setMinValue( 0 ); |
171 | slider.setMaxValue( 1 ); | 171 | slider.setMaxValue( 1 ); |
172 | slider.setFocusPolicy( QWidget::NoFocus ); | 172 | slider.setFocusPolicy( QWidget::NoFocus ); |
173 | slider.setBackgroundPixmap( backgroundPixmap ); | 173 | slider.setBackgroundPixmap( backgroundPixmap ); |
174 | 174 | ||
175 | // Config cofg("qpe"); | 175 | // Config cofg("qpe"); |
176 | // cofg.setGroup("Appearance"); | 176 | // cofg.setGroup("Appearance"); |
177 | // QColor backgroundcolor = QColor( cofg.readEntry( "Background", "#E5E1D5" ) ); | 177 | // QColor backgroundcolor = QColor( cofg.readEntry( "Background", "#E5E1D5" ) ); |
178 | 178 | ||
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp index 9f51006..1e6bc4d 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp | |||
@@ -1,141 +1,141 @@ | |||
1 | #include <qpe/qpeapplication.h> | 1 | #include <qpe/qpeapplication.h> |
2 | #include <qpe/config.h> | 2 | #include <qpe/config.h> |
3 | #include <qpe/qcopenvelope_qws.h> | 3 | #include <qpe/qcopenvelope_qws.h> |
4 | #include <qfileinfo.h> | 4 | #include <qfileinfo.h> |
5 | 5 | ||
6 | #include "mediaplayer.h" | 6 | #include "mediaplayer.h" |
7 | #include "playlistwidget.h" | 7 | #include "playlistwidget.h" |
8 | #include "audiowidget.h" | 8 | #include "audiowidget.h" |
9 | #include "videowidget.h" | 9 | #include "videowidget.h" |
10 | #include "volumecontrol.h" | 10 | #include "volumecontrol.h" |
11 | #include "lib.h" | 11 | #include "lib.h" |
12 | 12 | ||
13 | #include "mediaplayerstate.h" | 13 | #include "mediaplayerstate.h" |
14 | 14 | ||
15 | // for setBacklight() | 15 | // for setBacklight() |
16 | #include <linux/fb.h> | 16 | #include <linux/fb.h> |
17 | #include <sys/file.h> | 17 | #include <sys/file.h> |
18 | #include <sys/ioctl.h> | 18 | #include <sys/ioctl.h> |
19 | 19 | ||
20 | 20 | ||
21 | #define FBIOBLANK 0x4611 | 21 | #define FBIOBLANK 0x4611 |
22 | 22 | ||
23 | MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) | 23 | MediaPlayer::MediaPlayer( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QObject *parent, const char *name ) |
24 | : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) { | 24 | : QObject( parent, name ), volumeDirection( 0 ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) { |
25 | 25 | ||
26 | m_audioUI = 0; | 26 | m_audioUI = 0; |
27 | m_videoUI = 0; | 27 | m_videoUI = 0; |
28 | m_xineControl = 0; | 28 | m_xineControl = 0; |
29 | xine = new XINE::Lib( XINE::Lib::InitializeInThread ); | 29 | xine = new XINE::Lib( XINE::Lib::InitializeInThread ); |
30 | 30 | ||
31 | fd=-1;fl=-1; | 31 | fd=-1;fl=-1; |
32 | playList.setCaption( tr( "OpiePlayer: Initializating" ) ); | 32 | playList.setCaption( tr( "OpiePlayer: Initializating" ) ); |
33 | 33 | ||
34 | qApp->processEvents(); | 34 | qApp->processEvents(); |
35 | // QPEApplication::grabKeyboard(); // EVIL | 35 | // QPEApplication::grabKeyboard(); // EVIL |
36 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); | 36 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); |
37 | 37 | ||
38 | connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) ); | 38 | connect( &mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); |
39 | 39 | ||
40 | // What is pauseCheck good for? (Simon) | 40 | // What is pauseCheck good for? (Simon) |
41 | // connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); | 41 | // connect( &mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( pauseCheck(bool) ) ); |
42 | 42 | ||
43 | connect( &mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); | 43 | connect( &mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); |
44 | connect( &mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); | 44 | connect( &mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); |
45 | connect( &mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) ); | 45 | connect( &mediaPlayerState, SIGNAL( blankToggled(bool) ), this, SLOT ( blank(bool) ) ); |
46 | 46 | ||
47 | volControl = new VolumeControl; | 47 | volControl = new VolumeControl; |
48 | Config cfg( "OpiePlayer" ); | 48 | Config cfg( "OpiePlayer" ); |
49 | cfg.setGroup("PlayList"); | 49 | cfg.setGroup("PlayList"); |
50 | QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); | 50 | QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); |
51 | playList.setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() ); | 51 | playList.setCaption( tr( "OpiePlayer: " ) + QFileInfo(currentPlaylist).baseName() ); |
52 | 52 | ||
53 | m_skinLoader = new SkinLoader; | 53 | m_skinLoader = new SkinLoader; |
54 | m_skinLoader->schedule( AudioWidget::guiInfo() ); | 54 | m_skinLoader->schedule( AudioWidget::guiInfo() ); |
55 | m_skinLoader->schedule( VideoWidget::guiInfo() ); | 55 | m_skinLoader->schedule( VideoWidget::guiInfo() ); |
56 | m_skinLoader->start(); | 56 | m_skinLoader->start(); |
57 | } | 57 | } |
58 | 58 | ||
59 | MediaPlayer::~MediaPlayer() { | 59 | MediaPlayer::~MediaPlayer() { |
60 | // this shold never happen, but one never knows... | 60 | // this shold never happen, but one never knows... |
61 | if ( xine ) { | 61 | if ( xine ) { |
62 | xine->ensureInitialized(); | 62 | xine->ensureInitialized(); |
63 | delete xine; | 63 | delete xine; |
64 | } | 64 | } |
65 | delete m_xineControl; | 65 | delete m_xineControl; |
66 | delete m_audioUI; | 66 | delete m_audioUI; |
67 | delete m_videoUI; | 67 | delete m_videoUI; |
68 | delete volControl; | 68 | delete volControl; |
69 | } | 69 | } |
70 | 70 | ||
71 | void MediaPlayer::pauseCheck( bool b ) { | 71 | void MediaPlayer::pauseCheck( bool b ) { |
72 | if ( b && !mediaPlayerState.isPlaying() ) { | 72 | if ( b && !mediaPlayerState.isPlaying() ) { |
73 | mediaPlayerState.setPaused( FALSE ); | 73 | mediaPlayerState.setPaused( FALSE ); |
74 | } | 74 | } |
75 | } | 75 | } |
76 | 76 | ||
77 | void MediaPlayer::play() { | 77 | void MediaPlayer::play() { |
78 | mediaPlayerState.setPlaying( FALSE ); | 78 | mediaPlayerState.setPlaying( FALSE ); |
79 | mediaPlayerState.setPlaying( TRUE ); | 79 | mediaPlayerState.setPlaying( TRUE ); |
80 | } | 80 | } |
81 | 81 | ||
82 | void MediaPlayer::setPlaying( bool play ) { | 82 | void MediaPlayer::setPlaying( bool play ) { |
83 | if ( !play ) { | 83 | if ( !play ) { |
84 | return; | 84 | return; |
85 | } | 85 | } |
86 | 86 | ||
87 | if ( mediaPlayerState.isPaused() ) { | 87 | if ( mediaPlayerState.isPaused() ) { |
88 | mediaPlayerState.setPaused( FALSE ); | 88 | mediaPlayerState.setPaused( FALSE ); |
89 | return; | 89 | return; |
90 | } | 90 | } |
91 | 91 | ||
92 | QString tickerText, time, fileName; | 92 | QString tickerText, time, fileName; |
93 | if ( playList.currentTab() != PlayListWidget::CurrentPlayList ) { | 93 | if ( playList.currentTab() != PlayListWidget::CurrentPlayList ) { |
94 | //if playing in file list.. play in a different way | 94 | //if playing in file list.. play in a different way |
95 | // random and looping settings enabled causes problems here, | 95 | // random and looping settings enabled causes problems here, |
96 | // since there is no selected file in the playlist, but a selected file in the file list, | 96 | // since there is no selected file in the playlist, but a selected file in the file list, |
97 | // so we remember and shutoff | 97 | // so we remember and shutoff |
98 | l = mediaPlayerState.isLooping(); | 98 | l = mediaPlayerState.isLooping(); |
99 | if(l) { | 99 | if(l) { |
100 | mediaPlayerState.setLooping( false ); | 100 | mediaPlayerState.setLooping( false ); |
101 | } | 101 | } |
102 | r = mediaPlayerState.isShuffled(); | 102 | r = mediaPlayerState.isShuffled(); |
103 | mediaPlayerState.setShuffled( false ); | 103 | mediaPlayerState.setShuffled( false ); |
104 | } | 104 | } |
105 | 105 | ||
106 | PlayListWidget::Entry playListEntry = playList.currentEntry(); | 106 | PlayListWidget::Entry playListEntry = playList.currentEntry(); |
107 | fileName = playListEntry.name; | 107 | fileName = playListEntry.name; |
108 | xineControl()->play( playListEntry.file ); | 108 | xineControl()->play( playListEntry.file ); |
109 | 109 | ||
110 | long seconds = mediaPlayerState.length(); | 110 | long seconds = mediaPlayerState.length(); |
111 | time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); | 111 | time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); |
112 | 112 | ||
113 | if( fileName.left(4) == "http" ) { | 113 | if( fileName.left(4) == "http" ) { |
114 | fileName = QFileInfo( fileName ).baseName(); | 114 | fileName = QFileInfo( fileName ).baseName(); |
115 | if ( xineControl()->getMetaInfo().isEmpty() ) { | 115 | if ( xineControl()->getMetaInfo().isEmpty() ) { |
116 | tickerText = tr( " File: " ) + fileName; | 116 | tickerText = tr( " File: " ) + fileName; |
117 | } else { | 117 | } else { |
118 | tickerText = xineControl()->getMetaInfo(); | 118 | tickerText = xineControl()->getMetaInfo(); |
119 | } | 119 | } |
120 | } else { | 120 | } else { |
121 | if ( xineControl()->getMetaInfo().isEmpty() ) { | 121 | if ( xineControl()->getMetaInfo().isEmpty() ) { |
122 | tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " "; | 122 | tickerText = tr( " File: " ) + fileName + tr( ", Length: " ) + time + " "; |
123 | } else { | 123 | } else { |
124 | tickerText = xineControl()->getMetaInfo() + " Length: " + time + " "; | 124 | tickerText = xineControl()->getMetaInfo() + " Length: " + time + " "; |
125 | } | 125 | } |
126 | } | 126 | } |
127 | audioUI()->setTickerText( tickerText ); | 127 | audioUI()->setTickerText( tickerText ); |
128 | } | 128 | } |
129 | 129 | ||
130 | 130 | ||
131 | void MediaPlayer::prev() { | 131 | void MediaPlayer::prev() { |
132 | if( playList.currentTab() == PlayListWidget::CurrentPlayList ) { //if using the playlist | 132 | if( playList.currentTab() == PlayListWidget::CurrentPlayList ) { //if using the playlist |
133 | if ( playList.prev() ) { | 133 | if ( playList.prev() ) { |
134 | play(); | 134 | play(); |
135 | } else if ( mediaPlayerState.isLooping() ) { | 135 | } else if ( mediaPlayerState.isLooping() ) { |
136 | if ( playList.last() ) { | 136 | if ( playList.last() ) { |
137 | play(); | 137 | play(); |
138 | } | 138 | } |
139 | } else { | 139 | } else { |
140 | mediaPlayerState.setList(); | 140 | mediaPlayerState.setList(); |
141 | } | 141 | } |
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp index f193001..08c62a2 100644 --- a/noncore/multimedia/opieplayer2/mediawidget.cpp +++ b/noncore/multimedia/opieplayer2/mediawidget.cpp | |||
@@ -1,133 +1,133 @@ | |||
1 | /* | 1 | /* |
2 | Copyright (C) 2002 Simon Hausmann <simon@lst.de> | 2 | Copyright (C) 2002 Simon Hausmann <simon@lst.de> |
3 | (C) 2002 Max Reiss <harlekin@handhelds.org> | 3 | (C) 2002 Max Reiss <harlekin@handhelds.org> |
4 | (C) 2002 L. Potter <ljp@llornkcor.com> | 4 | (C) 2002 L. Potter <ljp@llornkcor.com> |
5 | (C) 2002 Holger Freyther <zecke@handhelds.org> | 5 | (C) 2002 Holger Freyther <zecke@handhelds.org> |
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 General Public | 8 | modify it under the terms of the GNU 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 | This program is distributed in the hope that it will be useful, | 12 | This program is distributed in the hope that it will be useful, |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 | General Public License for more details. | 15 | General Public License for more details. |
16 | 16 | ||
17 | You should have received a copy of the GNU General Public License | 17 | You should have received a copy of the GNU General Public License |
18 | along with this program; see the file COPYING. If not, write to | 18 | along with this program; see the file COPYING. If not, write to |
19 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 19 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
20 | Boston, MA 02111-1307, USA. | 20 | Boston, MA 02111-1307, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <assert.h> | 23 | #include <assert.h> |
24 | 24 | ||
25 | #include "mediawidget.h" | 25 | #include "mediawidget.h" |
26 | #include "playlistwidget.h" | 26 | #include "playlistwidget.h" |
27 | #include "skin.h" | 27 | #include "skin.h" |
28 | 28 | ||
29 | MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent, const char *name ) | 29 | MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent, const char *name ) |
30 | : QWidget( parent, name ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) | 30 | : QWidget( parent, name ), mediaPlayerState( _mediaPlayerState ), playList( _playList ) |
31 | { | 31 | { |
32 | connect( &mediaPlayerState, SIGNAL( displayTypeChanged( MediaPlayerState::DisplayType ) ), | 32 | connect( &mediaPlayerState, SIGNAL( displayTypeChanged(MediaPlayerState::DisplayType) ), |
33 | this, SLOT( setDisplayType( MediaPlayerState::DisplayType ) ) ); | 33 | this, SLOT( setDisplayType(MediaPlayerState::DisplayType) ) ); |
34 | connect( &mediaPlayerState, SIGNAL( lengthChanged( long ) ), | 34 | connect( &mediaPlayerState, SIGNAL( lengthChanged(long) ), |
35 | this, SLOT( setLength( long ) ) ); | 35 | this, SLOT( setLength(long) ) ); |
36 | connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), | 36 | connect( &mediaPlayerState, SIGNAL( playingToggled(bool) ), |
37 | this, SLOT( setPlaying( bool ) ) ); | 37 | this, SLOT( setPlaying(bool) ) ); |
38 | 38 | ||
39 | setBackgroundMode( NoBackground ); | 39 | setBackgroundMode( NoBackground ); |
40 | } | 40 | } |
41 | 41 | ||
42 | MediaWidget::~MediaWidget() | 42 | MediaWidget::~MediaWidget() |
43 | { | 43 | { |
44 | } | 44 | } |
45 | 45 | ||
46 | void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, | 46 | void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, |
47 | const Skin &skin ) | 47 | const Skin &skin ) |
48 | { | 48 | { |
49 | buttonMask = skin.buttonMask( skinInfo, buttonCount ); | 49 | buttonMask = skin.buttonMask( skinInfo, buttonCount ); |
50 | 50 | ||
51 | buttons.clear(); | 51 | buttons.clear(); |
52 | buttons.reserve( buttonCount ); | 52 | buttons.reserve( buttonCount ); |
53 | 53 | ||
54 | for ( uint i = 0; i < buttonCount; ++i ) { | 54 | for ( uint i = 0; i < buttonCount; ++i ) { |
55 | Button button = setupButton( skinInfo[ i ], skin ); | 55 | Button button = setupButton( skinInfo[ i ], skin ); |
56 | buttons.push_back( button ); | 56 | buttons.push_back( button ); |
57 | } | 57 | } |
58 | } | 58 | } |
59 | 59 | ||
60 | MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin ) | 60 | MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin ) |
61 | { | 61 | { |
62 | Button button; | 62 | Button button; |
63 | button.command = buttonInfo.command; | 63 | button.command = buttonInfo.command; |
64 | button.type = buttonInfo.type; | 64 | button.type = buttonInfo.type; |
65 | button.mask = skin.buttonMaskImage( buttonInfo.fileName ); | 65 | button.mask = skin.buttonMaskImage( buttonInfo.fileName ); |
66 | 66 | ||
67 | return button; | 67 | return button; |
68 | } | 68 | } |
69 | 69 | ||
70 | void MediaWidget::loadDefaultSkin( const GUIInfo &guiInfo ) | 70 | void MediaWidget::loadDefaultSkin( const GUIInfo &guiInfo ) |
71 | { | 71 | { |
72 | Skin skin( guiInfo.fileNameInfix ); | 72 | Skin skin( guiInfo.fileNameInfix ); |
73 | skin.setCachable( false ); | 73 | skin.setCachable( false ); |
74 | loadSkin( guiInfo.buttonInfo, guiInfo.buttonCount, skin ); | 74 | loadSkin( guiInfo.buttonInfo, guiInfo.buttonCount, skin ); |
75 | } | 75 | } |
76 | 76 | ||
77 | void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const Skin &skin ) | 77 | void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const Skin &skin ) |
78 | { | 78 | { |
79 | backgroundPixmap = skin.backgroundPixmap(); | 79 | backgroundPixmap = skin.backgroundPixmap(); |
80 | buttonUpImage = skin.buttonUpImage(); | 80 | buttonUpImage = skin.buttonUpImage(); |
81 | buttonDownImage = skin.buttonDownImage(); | 81 | buttonDownImage = skin.buttonDownImage(); |
82 | 82 | ||
83 | setupButtons( skinInfo, buttonCount, skin ); | 83 | setupButtons( skinInfo, buttonCount, skin ); |
84 | } | 84 | } |
85 | 85 | ||
86 | void MediaWidget::closeEvent( QCloseEvent * ) | 86 | void MediaWidget::closeEvent( QCloseEvent * ) |
87 | { | 87 | { |
88 | mediaPlayerState.setList(); | 88 | mediaPlayerState.setList(); |
89 | } | 89 | } |
90 | 90 | ||
91 | void MediaWidget::paintEvent( QPaintEvent *pe ) | 91 | void MediaWidget::paintEvent( QPaintEvent *pe ) |
92 | { | 92 | { |
93 | QPainter p( this ); | 93 | QPainter p( this ); |
94 | 94 | ||
95 | if ( mediaPlayerState.isFullscreen() ) { | 95 | if ( mediaPlayerState.isFullscreen() ) { |
96 | // Clear the background | 96 | // Clear the background |
97 | p.setBrush( QBrush( Qt::black ) ); | 97 | p.setBrush( QBrush( Qt::black ) ); |
98 | return; | 98 | return; |
99 | } | 99 | } |
100 | 100 | ||
101 | QPixmap buffer( size() ); | 101 | QPixmap buffer( size() ); |
102 | QPainter bufferedPainter( &buffer ); | 102 | QPainter bufferedPainter( &buffer ); |
103 | bufferedPainter.drawTiledPixmap( rect(), backgroundPixmap, QPoint( 0, 0 ) ); | 103 | bufferedPainter.drawTiledPixmap( rect(), backgroundPixmap, QPoint( 0, 0 ) ); |
104 | paintAllButtons( bufferedPainter ); | 104 | paintAllButtons( bufferedPainter ); |
105 | p.drawPixmap( 0, 0, buffer ); | 105 | p.drawPixmap( 0, 0, buffer ); |
106 | } | 106 | } |
107 | 107 | ||
108 | void MediaWidget::resizeEvent( QResizeEvent *e ) | 108 | void MediaWidget::resizeEvent( QResizeEvent *e ) |
109 | { | 109 | { |
110 | QPixmap pixUp = combineImageWithBackground( buttonUpImage, backgroundPixmap, upperLeftOfButtonMask ); | 110 | QPixmap pixUp = combineImageWithBackground( buttonUpImage, backgroundPixmap, upperLeftOfButtonMask ); |
111 | QPixmap pixDn = combineImageWithBackground( buttonDownImage, backgroundPixmap, upperLeftOfButtonMask ); | 111 | QPixmap pixDn = combineImageWithBackground( buttonDownImage, backgroundPixmap, upperLeftOfButtonMask ); |
112 | 112 | ||
113 | for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) { | 113 | for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) { |
114 | Button &button = *it; | 114 | Button &button = *it; |
115 | 115 | ||
116 | if ( button.mask.isNull() ) | 116 | if ( button.mask.isNull() ) |
117 | continue; | 117 | continue; |
118 | button.pixUp = addMaskToPixmap( pixUp, button.mask ); | 118 | button.pixUp = addMaskToPixmap( pixUp, button.mask ); |
119 | button.pixDown = addMaskToPixmap( pixDn, button.mask ); | 119 | button.pixDown = addMaskToPixmap( pixDn, button.mask ); |
120 | } | 120 | } |
121 | 121 | ||
122 | QWidget::resizeEvent( e ); | 122 | QWidget::resizeEvent( e ); |
123 | } | 123 | } |
124 | 124 | ||
125 | MediaWidget::Button *MediaWidget::buttonAt( const QPoint &position ) | 125 | MediaWidget::Button *MediaWidget::buttonAt( const QPoint &position ) |
126 | { | 126 | { |
127 | if ( position.x() <= 0 || position.y() <= 0 || | 127 | if ( position.x() <= 0 || position.y() <= 0 || |
128 | position.x() >= buttonMask.width() || | 128 | position.x() >= buttonMask.width() || |
129 | position.y() >= buttonMask.height() ) | 129 | position.y() >= buttonMask.height() ) |
130 | return 0; | 130 | return 0; |
131 | 131 | ||
132 | int pixelIdx = buttonMask.pixelIndex( position.x(), position.y() ); | 132 | int pixelIdx = buttonMask.pixelIndex( position.x(), position.y() ); |
133 | for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) | 133 | for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) |
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index 9a9e1ec..0a84268 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp | |||
@@ -1,249 +1,249 @@ | |||
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,2003 Max Reiss <harlekin@handhelds.org> | 4 | Copyright (c) 2002,2003 Max Reiss <harlekin@handhelds.org> |
5 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> | 5 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> |
6 | Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> | 6 | Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> |
7 | =. | 7 | =. |
8 | .=l. | 8 | .=l. |
9 | .>+-= | 9 | .>+-= |
10 | _;:, .> :=|. This program is free software; you can | 10 | _;:, .> :=|. This program is free software; you can |
11 | .> <`_, > . <= redistribute it and/or modify it under | 11 | .> <`_, > . <= redistribute it and/or modify it under |
12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
13 | .="- .-=="i, .._ License as published by the Free Software | 13 | .="- .-=="i, .._ License as published by the Free Software |
14 | - . .-<_> .<> Foundation; either version 2 of the License, | 14 | - . .-<_> .<> Foundation; either version 2 of the License, |
15 | ._= =} : or (at your option) any later version. | 15 | ._= =} : or (at your option) any later version. |
16 | .%`+i> _;_. | 16 | .%`+i> _;_. |
17 | .i_,=:_. -<s. This program is distributed in the hope that | 17 | .i_,=:_. -<s. This program is distributed in the hope that |
18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
19 | : .. .:, . . . without even the implied warranty of | 19 | : .. .:, . . . without even the implied warranty of |
20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
22 | ..}^=.= = ; General Public License for more | 22 | ..}^=.= = ; General Public License for more |
23 | ++= -. .` .: details. | 23 | ++= -. .` .: details. |
24 | : = ...= . :.=- | 24 | : = ...= . :.=- |
25 | -. .:....=;==+<; You should have received a copy of the GNU | 25 | -. .:....=;==+<; You should have received a copy of the GNU |
26 | -_. . . )=. = General Public License along with | 26 | -_. . . )=. = General Public License along with |
27 | -- :-=` this library; see the file COPYING.LIB. | 27 | -- :-=` this library; see the file COPYING.LIB. |
28 | If not, write to the Free Software Foundation, | 28 | If not, write to the Free Software Foundation, |
29 | Inc., 59 Temple Place - Suite 330, | 29 | Inc., 59 Temple Place - Suite 330, |
30 | Boston, MA 02111-1307, USA. | 30 | Boston, MA 02111-1307, USA. |
31 | 31 | ||
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <qtoolbar.h> | 34 | #include <qtoolbar.h> |
35 | 35 | ||
36 | #include <opie/ofiledialog.h> | 36 | #include <opie/ofiledialog.h> |
37 | 37 | ||
38 | #include <qmessagebox.h> | 38 | #include <qmessagebox.h> |
39 | 39 | ||
40 | #include "playlistselection.h" | 40 | #include "playlistselection.h" |
41 | #include "playlistwidget.h" | 41 | #include "playlistwidget.h" |
42 | #include "mediaplayer.h" | 42 | #include "mediaplayer.h" |
43 | #include "mediaplayerstate.h" | 43 | #include "mediaplayerstate.h" |
44 | #include "inputDialog.h" | 44 | #include "inputDialog.h" |
45 | #include "om3u.h" | 45 | #include "om3u.h" |
46 | #include "playlistfileview.h" | 46 | #include "playlistfileview.h" |
47 | 47 | ||
48 | //only needed for the random play | 48 | //only needed for the random play |
49 | #include <assert.h> | 49 | #include <assert.h> |
50 | 50 | ||
51 | PlayListWidget::PlayListWidget(QWidget* parent, const char* name, WFlags fl ) | 51 | PlayListWidget::PlayListWidget(QWidget* parent, const char* name, WFlags fl ) |
52 | : PlayListWidgetGui( parent, "playList" ) , currentFileListView( 0 ) | 52 | : PlayListWidgetGui( parent, "playList" ) , currentFileListView( 0 ) |
53 | { | 53 | { |
54 | mediaPlayerState = new MediaPlayerState(0, "mediaPlayerState" ); | 54 | mediaPlayerState = new MediaPlayerState(0, "mediaPlayerState" ); |
55 | m_mp = new MediaPlayer(*this, *mediaPlayerState, 0, "mediaPlayer"); | 55 | m_mp = new MediaPlayer(*this, *mediaPlayerState, 0, "mediaPlayer"); |
56 | 56 | ||
57 | 57 | ||
58 | 58 | ||
59 | d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), | 59 | d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), |
60 | "opieplayer2/add_to_playlist", | 60 | "opieplayer2/add_to_playlist", |
61 | this , SLOT(addSelected() ) ); | 61 | this , SLOT(addSelected() ) ); |
62 | d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), | 62 | d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), |
63 | "opieplayer2/remove_from_playlist", | 63 | "opieplayer2/remove_from_playlist", |
64 | this , SLOT(removeSelected() ) ); | 64 | this , SLOT(removeSelected() ) ); |
65 | d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play", | 65 | d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play", |
66 | this , SLOT( btnPlay( bool) ), TRUE ); | 66 | this , SLOT( btnPlay(bool) ), TRUE ); |
67 | d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle", | 67 | d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle", |
68 | mediaPlayerState, SLOT( setShuffled( bool ) ), TRUE ); | 68 | mediaPlayerState, SLOT( setShuffled(bool) ), TRUE ); |
69 | d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop", | 69 | d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop", |
70 | mediaPlayerState, SLOT( setLooping( bool ) ), TRUE ); | 70 | mediaPlayerState, SLOT( setLooping(bool) ), TRUE ); |
71 | 71 | ||
72 | (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); | 72 | (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); |
73 | (void)new MenuItem( pmPlayList, tr( "Add all audio files" ), | 73 | (void)new MenuItem( pmPlayList, tr( "Add all audio files" ), |
74 | this, SLOT( addAllMusicToList() ) ); | 74 | this, SLOT( addAllMusicToList() ) ); |
75 | (void)new MenuItem( pmPlayList, tr( "Add all video files" ), | 75 | (void)new MenuItem( pmPlayList, tr( "Add all video files" ), |
76 | this, SLOT( addAllVideoToList() ) ); | 76 | this, SLOT( addAllVideoToList() ) ); |
77 | (void)new MenuItem( pmPlayList, tr( "Add all files" ), | 77 | (void)new MenuItem( pmPlayList, tr( "Add all files" ), |
78 | this, SLOT( addAllToList() ) ); | 78 | this, SLOT( addAllToList() ) ); |
79 | pmPlayList->insertSeparator(-1); | 79 | pmPlayList->insertSeparator(-1); |
80 | (void)new MenuItem( pmPlayList, tr( "Add File" ), | 80 | (void)new MenuItem( pmPlayList, tr( "Add File" ), |
81 | this,SLOT( openFile() ) ); | 81 | this,SLOT( openFile() ) ); |
82 | (void)new MenuItem( pmPlayList, tr("Add URL"), | 82 | (void)new MenuItem( pmPlayList, tr("Add URL"), |
83 | this,SLOT( openURL() ) ); | 83 | this,SLOT( openURL() ) ); |
84 | pmPlayList->insertSeparator(-1); | 84 | pmPlayList->insertSeparator(-1); |
85 | (void)new MenuItem( pmPlayList, tr( "Save Playlist" ), | 85 | (void)new MenuItem( pmPlayList, tr( "Save Playlist" ), |
86 | this, SLOT(writem3u() ) ); | 86 | this, SLOT(writem3u() ) ); |
87 | pmPlayList->insertSeparator(-1); | 87 | pmPlayList->insertSeparator(-1); |
88 | (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), | 88 | (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), |
89 | audioView, SLOT( scanFiles() ) ); | 89 | audioView, SLOT( scanFiles() ) ); |
90 | (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), | 90 | (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), |
91 | videoView, SLOT( scanFiles() ) ); | 91 | videoView, SLOT( scanFiles() ) ); |
92 | 92 | ||
93 | pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), | 93 | pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), |
94 | mediaPlayerState, SLOT( toggleFullscreen() ) ); | 94 | mediaPlayerState, SLOT( toggleFullscreen() ) ); |
95 | 95 | ||
96 | Config cfg( "OpiePlayer" ); | 96 | Config cfg( "OpiePlayer" ); |
97 | bool b= cfg.readBoolEntry("FullScreen", 0); | 97 | bool b= cfg.readBoolEntry("FullScreen", 0); |
98 | mediaPlayerState->setFullscreen( b ); | 98 | mediaPlayerState->setFullscreen( b ); |
99 | pmView->setItemChecked( -16, b ); | 99 | pmView->setItemChecked( -16, b ); |
100 | 100 | ||
101 | (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", | 101 | (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", |
102 | d->selectedFiles, SLOT(moveSelectedUp() ) ); | 102 | d->selectedFiles, SLOT(moveSelectedUp() ) ); |
103 | (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", | 103 | (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", |
104 | d->selectedFiles, SLOT(removeSelected() ) ); | 104 | d->selectedFiles, SLOT(removeSelected() ) ); |
105 | (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", | 105 | (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", |
106 | d->selectedFiles, SLOT(moveSelectedDown() ) ); | 106 | d->selectedFiles, SLOT(moveSelectedDown() ) ); |
107 | QVBox *stretch2 = new QVBox( vbox1 ); | 107 | QVBox *stretch2 = new QVBox( vbox1 ); |
108 | 108 | ||
109 | connect( tbDeletePlaylist, ( SIGNAL( released() ) ), | 109 | connect( tbDeletePlaylist, ( SIGNAL( released() ) ), |
110 | SLOT( deletePlaylist() ) ); | 110 | SLOT( deletePlaylist() ) ); |
111 | connect( pmView, SIGNAL( activated( int ) ), | 111 | connect( pmView, SIGNAL( activated(int) ), |
112 | this, SLOT( pmViewActivated( int ) ) ); | 112 | this, SLOT( pmViewActivated(int) ) ); |
113 | connect( skinsMenu, SIGNAL( activated( int ) ) , | 113 | connect( skinsMenu, SIGNAL( activated(int) ) , |
114 | this, SLOT( skinsMenuActivated( int ) ) ); | 114 | this, SLOT( skinsMenuActivated(int) ) ); |
115 | connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ), | 115 | connect( d->selectedFiles, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ), |
116 | this,SLOT( playlistViewPressed( int, QListViewItem *, const QPoint&, int ) ) ); | 116 | this,SLOT( playlistViewPressed(int,QListViewItem*,const QPoint&,int) ) ); |
117 | connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int ) ), | 117 | connect( audioView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ), |
118 | this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int ) ) ); | 118 | this,SLOT( viewPressed(int,QListViewItem*,const QPoint&,int) ) ); |
119 | connect( audioView, SIGNAL( returnPressed( QListViewItem *) ), | 119 | connect( audioView, SIGNAL( returnPressed(QListViewItem*) ), |
120 | this,SLOT( playIt( QListViewItem *) ) ); | 120 | this,SLOT( playIt(QListViewItem*) ) ); |
121 | connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), | 121 | connect( audioView, SIGNAL( doubleClicked(QListViewItem*) ), |
122 | this, SLOT( addToSelection( QListViewItem *) ) ); | 122 | this, SLOT( addToSelection(QListViewItem*) ) ); |
123 | connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ), | 123 | connect( videoView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ), |
124 | this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int) ) ); | 124 | this,SLOT( viewPressed(int,QListViewItem*,const QPoint&,int) ) ); |
125 | connect( videoView, SIGNAL( returnPressed( QListViewItem *) ), | 125 | connect( videoView, SIGNAL( returnPressed(QListViewItem*) ), |
126 | this,SLOT( playIt( QListViewItem *) ) ); | 126 | this,SLOT( playIt(QListViewItem*) ) ); |
127 | connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), | 127 | connect( videoView, SIGNAL( doubleClicked(QListViewItem*) ), |
128 | this, SLOT( addToSelection( QListViewItem *) ) ); | 128 | this, SLOT( addToSelection(QListViewItem*) ) ); |
129 | connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), | 129 | connect( playLists, SIGNAL( fileSelected(const DocLnk&) ), |
130 | this, SLOT( loadList( const DocLnk & ) ) ); | 130 | this, SLOT( loadList(const DocLnk&) ) ); |
131 | connect( tabWidget, SIGNAL ( currentChanged(QWidget*) ), | 131 | connect( tabWidget, SIGNAL ( currentChanged(QWidget*) ), |
132 | this, SLOT( tabChanged( QWidget* ) ) ); | 132 | this, SLOT( tabChanged(QWidget*) ) ); |
133 | connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), | 133 | connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), |
134 | d->tbPlay, SLOT( setOn( bool ) ) ); | 134 | d->tbPlay, SLOT( setOn(bool) ) ); |
135 | connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), | 135 | connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ), |
136 | d->tbLoop, SLOT( setOn( bool ) ) ); | 136 | d->tbLoop, SLOT( setOn(bool) ) ); |
137 | connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), | 137 | connect( mediaPlayerState, SIGNAL( shuffledToggled(bool) ), |
138 | d->tbShuffle, SLOT( setOn( bool ) ) ); | 138 | d->tbShuffle, SLOT( setOn(bool) ) ); |
139 | connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), | 139 | connect( d->selectedFiles, SIGNAL( doubleClicked(QListViewItem*) ), |
140 | this, SLOT( playIt( QListViewItem *) ) ); | 140 | this, SLOT( playIt(QListViewItem*) ) ); |
141 | connect ( gammaSlider, SIGNAL( valueChanged( int ) ), | 141 | connect ( gammaSlider, SIGNAL( valueChanged(int) ), |
142 | mediaPlayerState, SLOT( setVideoGamma( int ) ) ); | 142 | mediaPlayerState, SLOT( setVideoGamma(int) ) ); |
143 | 143 | ||
144 | connect( this, SIGNAL(skinSelected() ), | 144 | connect( this, SIGNAL(skinSelected() ), |
145 | m_mp, SLOT( reloadSkins() ) ); | 145 | m_mp, SLOT( reloadSkins() ) ); |
146 | 146 | ||
147 | // see which skins are installed | 147 | // see which skins are installed |
148 | populateSkinsMenu(); | 148 | populateSkinsMenu(); |
149 | initializeStates(); | 149 | initializeStates(); |
150 | 150 | ||
151 | channel = new QCopChannel( "QPE/Application/opieplayer2", this ); | 151 | channel = new QCopChannel( "QPE/Application/opieplayer2", this ); |
152 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 152 | connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), |
153 | this, SLOT( qcopReceive(const QCString&, const QByteArray&)) ); | 153 | this, SLOT( qcopReceive(const QCString&,const QByteArray&)) ); |
154 | 154 | ||
155 | 155 | ||
156 | cfg.setGroup("PlayList"); | 156 | cfg.setGroup("PlayList"); |
157 | QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); | 157 | QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); |
158 | loadList(DocLnk( currentPlaylist ) ); | 158 | loadList(DocLnk( currentPlaylist ) ); |
159 | 159 | ||
160 | tabWidget->showPage( playListTab ); | 160 | tabWidget->showPage( playListTab ); |
161 | } | 161 | } |
162 | 162 | ||
163 | 163 | ||
164 | PlayListWidget::~PlayListWidget() { | 164 | PlayListWidget::~PlayListWidget() { |
165 | delete d; | 165 | delete d; |
166 | delete m_mp; | 166 | delete m_mp; |
167 | } | 167 | } |
168 | 168 | ||
169 | 169 | ||
170 | void PlayListWidget::initializeStates() { | 170 | void PlayListWidget::initializeStates() { |
171 | d->tbPlay->setOn( mediaPlayerState->isPlaying() ); | 171 | d->tbPlay->setOn( mediaPlayerState->isPlaying() ); |
172 | d->tbLoop->setOn( mediaPlayerState->isLooping() ); | 172 | d->tbLoop->setOn( mediaPlayerState->isLooping() ); |
173 | d->tbShuffle->setOn( mediaPlayerState->isShuffled() ); | 173 | d->tbShuffle->setOn( mediaPlayerState->isShuffled() ); |
174 | d->playListFrame->show(); | 174 | d->playListFrame->show(); |
175 | } | 175 | } |
176 | 176 | ||
177 | void PlayListWidget::writeDefaultPlaylist() { | 177 | void PlayListWidget::writeDefaultPlaylist() { |
178 | 178 | ||
179 | Config config( "OpiePlayer" ); | 179 | Config config( "OpiePlayer" ); |
180 | config.setGroup( "PlayList" ); | 180 | config.setGroup( "PlayList" ); |
181 | QString filename=QPEApplication::documentDir() + "/default.m3u"; | 181 | QString filename=QPEApplication::documentDir() + "/default.m3u"; |
182 | QString currentString = config.readEntry( "CurrentPlaylist", filename); | 182 | QString currentString = config.readEntry( "CurrentPlaylist", filename); |
183 | if( currentString == filename) { | 183 | if( currentString == filename) { |
184 | Om3u *m3uList; | 184 | Om3u *m3uList; |
185 | // qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>"); | 185 | // qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>"); |
186 | if( d->selectedFiles->first() ) { | 186 | if( d->selectedFiles->first() ) { |
187 | m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate); | 187 | m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate); |
188 | do { | 188 | do { |
189 | // qDebug(d->selectedFiles->current()->file()); | 189 | // qDebug(d->selectedFiles->current()->file()); |
190 | m3uList->add( d->selectedFiles->current()->file() ); | 190 | m3uList->add( d->selectedFiles->current()->file() ); |
191 | } | 191 | } |
192 | while ( d->selectedFiles->next() ); | 192 | while ( d->selectedFiles->next() ); |
193 | 193 | ||
194 | m3uList->write(); | 194 | m3uList->write(); |
195 | m3uList->close(); | 195 | m3uList->close(); |
196 | delete m3uList; | 196 | delete m3uList; |
197 | 197 | ||
198 | } | 198 | } |
199 | } | 199 | } |
200 | } | 200 | } |
201 | 201 | ||
202 | void PlayListWidget::addToSelection( const DocLnk& lnk ) { | 202 | void PlayListWidget::addToSelection( const DocLnk& lnk ) { |
203 | d->setDocumentUsed = FALSE; | 203 | d->setDocumentUsed = FALSE; |
204 | if( QFileInfo( lnk.file() ).exists() || | 204 | if( QFileInfo( lnk.file() ).exists() || |
205 | lnk.file().left(4) == "http" ) { | 205 | lnk.file().left(4) == "http" ) { |
206 | d->selectedFiles->addToSelection( lnk ); | 206 | d->selectedFiles->addToSelection( lnk ); |
207 | } | 207 | } |
208 | // writeCurrentM3u(); | 208 | // writeCurrentM3u(); |
209 | } | 209 | } |
210 | 210 | ||
211 | 211 | ||
212 | void PlayListWidget::clearList() { | 212 | void PlayListWidget::clearList() { |
213 | while ( first() ) { | 213 | while ( first() ) { |
214 | d->selectedFiles->removeSelected(); | 214 | d->selectedFiles->removeSelected(); |
215 | } | 215 | } |
216 | Config cfg( "OpiePlayer" ); | 216 | Config cfg( "OpiePlayer" ); |
217 | cfg.setGroup("PlayList"); | 217 | cfg.setGroup("PlayList"); |
218 | cfg.writeEntry("CurrentPlaylist","default"); | 218 | cfg.writeEntry("CurrentPlaylist","default"); |
219 | setCaption("OpiePlayer"); | 219 | setCaption("OpiePlayer"); |
220 | } | 220 | } |
221 | 221 | ||
222 | void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) { | 222 | void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) { |
223 | switch (mouse) { | 223 | switch (mouse) { |
224 | case LeftButton: | 224 | case LeftButton: |
225 | break; | 225 | break; |
226 | case RightButton: | 226 | case RightButton: |
227 | { | 227 | { |
228 | QPopupMenu m; | 228 | QPopupMenu m; |
229 | m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); | 229 | m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); |
230 | m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); | 230 | m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); |
231 | m.exec( QCursor::pos() ); | 231 | m.exec( QCursor::pos() ); |
232 | } | 232 | } |
233 | break; | 233 | break; |
234 | } | 234 | } |
235 | } | 235 | } |
236 | 236 | ||
237 | 237 | ||
238 | void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *, const QPoint& , int ) { | 238 | void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *, const QPoint& , int ) { |
239 | switch (mouse) { | 239 | switch (mouse) { |
240 | case LeftButton: | 240 | case LeftButton: |
241 | break; | 241 | break; |
242 | case RightButton: | 242 | case RightButton: |
243 | { | 243 | { |
244 | QPopupMenu m; | 244 | QPopupMenu m; |
245 | m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); | 245 | m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); |
246 | m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); | 246 | m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); |
247 | m.exec( QCursor::pos() ); | 247 | m.exec( QCursor::pos() ); |
248 | } | 248 | } |
249 | break; | 249 | break; |
@@ -410,240 +410,240 @@ bool PlayListWidget::next() { | |||
410 | return d->selectedFiles->first(); | 410 | return d->selectedFiles->first(); |
411 | } else { | 411 | } else { |
412 | return FALSE; | 412 | return FALSE; |
413 | } | 413 | } |
414 | } | 414 | } |
415 | return TRUE; | 415 | return TRUE; |
416 | } | 416 | } |
417 | } | 417 | } |
418 | 418 | ||
419 | 419 | ||
420 | bool PlayListWidget::first() { | 420 | bool PlayListWidget::first() { |
421 | return d->selectedFiles->first(); | 421 | return d->selectedFiles->first(); |
422 | } | 422 | } |
423 | 423 | ||
424 | 424 | ||
425 | bool PlayListWidget::last() { | 425 | bool PlayListWidget::last() { |
426 | return d->selectedFiles->last(); | 426 | return d->selectedFiles->last(); |
427 | } | 427 | } |
428 | 428 | ||
429 | 429 | ||
430 | void PlayListWidget::saveList() { | 430 | void PlayListWidget::saveList() { |
431 | writem3u(); | 431 | writem3u(); |
432 | } | 432 | } |
433 | 433 | ||
434 | 434 | ||
435 | void PlayListWidget::loadList( const DocLnk & lnk) { | 435 | void PlayListWidget::loadList( const DocLnk & lnk) { |
436 | QString name = lnk.name(); | 436 | QString name = lnk.name(); |
437 | 437 | ||
438 | if( name.length()>0) { | 438 | if( name.length()>0) { |
439 | setCaption("OpiePlayer: "+name); | 439 | setCaption("OpiePlayer: "+name); |
440 | clearList(); | 440 | clearList(); |
441 | readListFromFile(lnk.file()); | 441 | readListFromFile(lnk.file()); |
442 | tabWidget->setCurrentPage(0); | 442 | tabWidget->setCurrentPage(0); |
443 | } | 443 | } |
444 | } | 444 | } |
445 | 445 | ||
446 | void PlayListWidget::addSelected() { | 446 | void PlayListWidget::addSelected() { |
447 | assert( inFileListMode() ); | 447 | assert( inFileListMode() ); |
448 | 448 | ||
449 | QListViewItemIterator it( currentFileListView ); | 449 | QListViewItemIterator it( currentFileListView ); |
450 | for ( ; it.current(); ++it ) | 450 | for ( ; it.current(); ++it ) |
451 | if ( it.current()->isSelected() ) { | 451 | if ( it.current()->isSelected() ) { |
452 | QString filename = it.current()->text(3); | 452 | QString filename = it.current()->text(3); |
453 | 453 | ||
454 | DocLnk lnk; | 454 | DocLnk lnk; |
455 | lnk.setName( QFileInfo( filename ).baseName() ); //sets name | 455 | lnk.setName( QFileInfo( filename ).baseName() ); //sets name |
456 | lnk.setFile( filename ); //sets file name | 456 | lnk.setFile( filename ); //sets file name |
457 | 457 | ||
458 | d->selectedFiles->addToSelection( lnk ); | 458 | d->selectedFiles->addToSelection( lnk ); |
459 | } | 459 | } |
460 | 460 | ||
461 | currentFileListView->clearSelection(); | 461 | currentFileListView->clearSelection(); |
462 | 462 | ||
463 | writeCurrentM3u(); | 463 | writeCurrentM3u(); |
464 | } | 464 | } |
465 | 465 | ||
466 | 466 | ||
467 | void PlayListWidget::removeSelected() { | 467 | void PlayListWidget::removeSelected() { |
468 | d->selectedFiles->removeSelected( ); | 468 | d->selectedFiles->removeSelected( ); |
469 | writeCurrentM3u(); | 469 | writeCurrentM3u(); |
470 | } | 470 | } |
471 | 471 | ||
472 | 472 | ||
473 | void PlayListWidget::playIt( QListViewItem *it) { | 473 | void PlayListWidget::playIt( QListViewItem *it) { |
474 | if(!it) return; | 474 | if(!it) return; |
475 | mediaPlayerState->setPlaying(FALSE); | 475 | mediaPlayerState->setPlaying(FALSE); |
476 | mediaPlayerState->setPlaying(TRUE); | 476 | mediaPlayerState->setPlaying(TRUE); |
477 | d->selectedFiles->unSelect(); | 477 | d->selectedFiles->unSelect(); |
478 | } | 478 | } |
479 | 479 | ||
480 | 480 | ||
481 | void PlayListWidget::addToSelection( QListViewItem *it) { | 481 | void PlayListWidget::addToSelection( QListViewItem *it) { |
482 | d->setDocumentUsed = FALSE; | 482 | d->setDocumentUsed = FALSE; |
483 | 483 | ||
484 | if(it) { | 484 | if(it) { |
485 | if ( currentTab() == CurrentPlayList ) | 485 | if ( currentTab() == CurrentPlayList ) |
486 | return; | 486 | return; |
487 | DocLnk lnk; | 487 | DocLnk lnk; |
488 | QString filename; | 488 | QString filename; |
489 | 489 | ||
490 | filename=it->text(3); | 490 | filename=it->text(3); |
491 | lnk.setName( QFileInfo(filename).baseName() ); //sets name | 491 | lnk.setName( QFileInfo(filename).baseName() ); //sets name |
492 | lnk.setFile( filename ); //sets file name | 492 | lnk.setFile( filename ); //sets file name |
493 | d->selectedFiles->addToSelection( lnk); | 493 | d->selectedFiles->addToSelection( lnk); |
494 | 494 | ||
495 | writeCurrentM3u(); | 495 | writeCurrentM3u(); |
496 | // tabWidget->setCurrentPage(0); | 496 | // tabWidget->setCurrentPage(0); |
497 | 497 | ||
498 | } | 498 | } |
499 | } | 499 | } |
500 | 500 | ||
501 | 501 | ||
502 | void PlayListWidget::tabChanged(QWidget *) { | 502 | void PlayListWidget::tabChanged(QWidget *) { |
503 | 503 | ||
504 | d->tbPlay->setEnabled( true ); | 504 | d->tbPlay->setEnabled( true ); |
505 | 505 | ||
506 | disconnect( audioView, SIGNAL( itemsSelected( bool ) ), | 506 | disconnect( audioView, SIGNAL( itemsSelected(bool) ), |
507 | d->tbPlay, SLOT( setEnabled( bool ) ) ); | 507 | d->tbPlay, SLOT( setEnabled(bool) ) ); |
508 | disconnect( videoView, SIGNAL( itemsSelected( bool ) ), | 508 | disconnect( videoView, SIGNAL( itemsSelected(bool) ), |
509 | d->tbPlay, SLOT( setEnabled( bool ) ) ); | 509 | d->tbPlay, SLOT( setEnabled(bool) ) ); |
510 | 510 | ||
511 | currentFileListView = 0; | 511 | currentFileListView = 0; |
512 | 512 | ||
513 | switch ( currentTab() ) { | 513 | switch ( currentTab() ) { |
514 | case CurrentPlayList: | 514 | case CurrentPlayList: |
515 | { | 515 | { |
516 | if( !tbDeletePlaylist->isHidden() ) { | 516 | if( !tbDeletePlaylist->isHidden() ) { |
517 | tbDeletePlaylist->hide(); | 517 | tbDeletePlaylist->hide(); |
518 | } | 518 | } |
519 | d->tbRemoveFromList->setEnabled(TRUE); | 519 | d->tbRemoveFromList->setEnabled(TRUE); |
520 | d->tbAddToList->setEnabled(FALSE); | 520 | d->tbAddToList->setEnabled(FALSE); |
521 | 521 | ||
522 | d->tbPlay->setEnabled( !d->selectedFiles->isEmpty() ); | 522 | d->tbPlay->setEnabled( !d->selectedFiles->isEmpty() ); |
523 | } | 523 | } |
524 | break; | 524 | break; |
525 | case AudioFiles: | 525 | case AudioFiles: |
526 | { | 526 | { |
527 | audioView->populateView(); | 527 | audioView->populateView(); |
528 | 528 | ||
529 | if( !tbDeletePlaylist->isHidden() ) { | 529 | if( !tbDeletePlaylist->isHidden() ) { |
530 | tbDeletePlaylist->hide(); | 530 | tbDeletePlaylist->hide(); |
531 | } | 531 | } |
532 | d->tbRemoveFromList->setEnabled(FALSE); | 532 | d->tbRemoveFromList->setEnabled(FALSE); |
533 | d->tbAddToList->setEnabled(TRUE); | 533 | d->tbAddToList->setEnabled(TRUE); |
534 | 534 | ||
535 | connect( audioView, SIGNAL( itemsSelected( bool ) ), | 535 | connect( audioView, SIGNAL( itemsSelected(bool) ), |
536 | d->tbPlay, SLOT( setEnabled( bool ) ) ); | 536 | d->tbPlay, SLOT( setEnabled(bool) ) ); |
537 | 537 | ||
538 | d->tbPlay->setEnabled( audioView->hasSelection() ); | 538 | d->tbPlay->setEnabled( audioView->hasSelection() ); |
539 | 539 | ||
540 | currentFileListView = audioView; | 540 | currentFileListView = audioView; |
541 | } | 541 | } |
542 | break; | 542 | break; |
543 | case VideoFiles: | 543 | case VideoFiles: |
544 | { | 544 | { |
545 | videoView->populateView(); | 545 | videoView->populateView(); |
546 | if( !tbDeletePlaylist->isHidden() ) { | 546 | if( !tbDeletePlaylist->isHidden() ) { |
547 | tbDeletePlaylist->hide(); | 547 | tbDeletePlaylist->hide(); |
548 | } | 548 | } |
549 | d->tbRemoveFromList->setEnabled(FALSE); | 549 | d->tbRemoveFromList->setEnabled(FALSE); |
550 | d->tbAddToList->setEnabled(TRUE); | 550 | d->tbAddToList->setEnabled(TRUE); |
551 | 551 | ||
552 | connect( videoView, SIGNAL( itemsSelected( bool ) ), | 552 | connect( videoView, SIGNAL( itemsSelected(bool) ), |
553 | d->tbPlay, SLOT( setEnabled( bool ) ) ); | 553 | d->tbPlay, SLOT( setEnabled(bool) ) ); |
554 | 554 | ||
555 | d->tbPlay->setEnabled( videoView->hasSelection() ); | 555 | d->tbPlay->setEnabled( videoView->hasSelection() ); |
556 | 556 | ||
557 | currentFileListView = videoView; | 557 | currentFileListView = videoView; |
558 | } | 558 | } |
559 | break; | 559 | break; |
560 | case PlayLists: | 560 | case PlayLists: |
561 | { | 561 | { |
562 | if( tbDeletePlaylist->isHidden() ) { | 562 | if( tbDeletePlaylist->isHidden() ) { |
563 | tbDeletePlaylist->show(); | 563 | tbDeletePlaylist->show(); |
564 | } | 564 | } |
565 | playLists->reread(); | 565 | playLists->reread(); |
566 | d->tbAddToList->setEnabled(FALSE); | 566 | d->tbAddToList->setEnabled(FALSE); |
567 | 567 | ||
568 | d->tbPlay->setEnabled( false ); | 568 | d->tbPlay->setEnabled( false ); |
569 | } | 569 | } |
570 | break; | 570 | break; |
571 | }; | 571 | }; |
572 | } | 572 | } |
573 | 573 | ||
574 | 574 | ||
575 | void PlayListWidget::btnPlay(bool b) { | 575 | void PlayListWidget::btnPlay(bool b) { |
576 | // mediaPlayerState->setPlaying(false); | 576 | // mediaPlayerState->setPlaying(false); |
577 | mediaPlayerState->setPlaying(b); | 577 | mediaPlayerState->setPlaying(b); |
578 | insanityBool=FALSE; | 578 | insanityBool=FALSE; |
579 | } | 579 | } |
580 | 580 | ||
581 | void PlayListWidget::deletePlaylist() { | 581 | void PlayListWidget::deletePlaylist() { |
582 | switch( QMessageBox::information( this, (tr("Remove Playlist?")), | 582 | switch( QMessageBox::information( this, (tr("Remove Playlist?")), |
583 | (tr("You really want to delete\nthis playlist?")), | 583 | (tr("You really want to delete\nthis playlist?")), |
584 | (tr("Yes")), (tr("No")), 0 )){ | 584 | (tr("Yes")), (tr("No")), 0 )){ |
585 | case 0: // Yes clicked, | 585 | case 0: // Yes clicked, |
586 | QFile().remove(playLists->selectedDocument().file()); | 586 | QFile().remove(playLists->selectedDocument().file()); |
587 | QFile().remove(playLists->selectedDocument().linkFile()); | 587 | QFile().remove(playLists->selectedDocument().linkFile()); |
588 | playLists->reread(); | 588 | playLists->reread(); |
589 | break; | 589 | break; |
590 | case 1: // Cancel | 590 | case 1: // Cancel |
591 | break; | 591 | break; |
592 | }; | 592 | }; |
593 | } | 593 | } |
594 | 594 | ||
595 | 595 | ||
596 | void PlayListWidget::playSelected() { | 596 | void PlayListWidget::playSelected() { |
597 | btnPlay( TRUE); | 597 | btnPlay( TRUE); |
598 | } | 598 | } |
599 | 599 | ||
600 | bool PlayListWidget::inFileListMode() const | 600 | bool PlayListWidget::inFileListMode() const |
601 | { | 601 | { |
602 | TabType tab = currentTab(); | 602 | TabType tab = currentTab(); |
603 | return tab == AudioFiles || tab == VideoFiles; | 603 | return tab == AudioFiles || tab == VideoFiles; |
604 | } | 604 | } |
605 | 605 | ||
606 | void PlayListWidget::openURL() { | 606 | void PlayListWidget::openURL() { |
607 | // http://66.28.164.33:2080 | 607 | // http://66.28.164.33:2080 |
608 | // http://somafm.com/star0242.m3u | 608 | // http://somafm.com/star0242.m3u |
609 | QString filename, name; | 609 | QString filename, name; |
610 | InputDialog *fileDlg; | 610 | InputDialog *fileDlg; |
611 | fileDlg = new InputDialog(this,tr("Add URL"),TRUE, 0); | 611 | fileDlg = new InputDialog(this,tr("Add URL"),TRUE, 0); |
612 | fileDlg->exec(); | 612 | fileDlg->exec(); |
613 | if( fileDlg->result() == 1 ) { | 613 | if( fileDlg->result() == 1 ) { |
614 | filename = fileDlg->text(); | 614 | filename = fileDlg->text(); |
615 | qDebug( "Selected filename is " + filename ); | 615 | qDebug( "Selected filename is " + filename ); |
616 | // Om3u *m3uList; | 616 | // Om3u *m3uList; |
617 | DocLnk lnk; | 617 | DocLnk lnk; |
618 | Config cfg( "OpiePlayer" ); | 618 | Config cfg( "OpiePlayer" ); |
619 | cfg.setGroup("PlayList"); | 619 | cfg.setGroup("PlayList"); |
620 | 620 | ||
621 | if(filename.left(4) == "http") { | 621 | if(filename.left(4) == "http") { |
622 | QString m3uFile, m3uFilePath; | 622 | QString m3uFile, m3uFilePath; |
623 | if(filename.find(":",8,TRUE) != -1) { //found a port | 623 | if(filename.find(":",8,TRUE) != -1) { //found a port |
624 | m3uFile = filename.left( filename.find( ":",8,TRUE)); | 624 | m3uFile = filename.left( filename.find( ":",8,TRUE)); |
625 | m3uFile = m3uFile.right( 7); | 625 | m3uFile = m3uFile.right( 7); |
626 | } else if(filename.left(4) == "http"){ | 626 | } else if(filename.left(4) == "http"){ |
627 | m3uFile=filename; | 627 | m3uFile=filename; |
628 | m3uFile = m3uFile.right( m3uFile.length() - 7); | 628 | m3uFile = m3uFile.right( m3uFile.length() - 7); |
629 | } else{ | 629 | } else{ |
630 | m3uFile=filename; | 630 | m3uFile=filename; |
631 | } | 631 | } |
632 | 632 | ||
633 | lnk.setName( filename ); //sets name | 633 | lnk.setName( filename ); //sets name |
634 | lnk.setFile( filename ); //sets file name | 634 | lnk.setFile( filename ); //sets file name |
635 | 635 | ||
636 | // lnk.setIcon("opieplayer2/musicfile"); | 636 | // lnk.setIcon("opieplayer2/musicfile"); |
637 | 637 | ||
638 | d->selectedFiles->addToSelection( lnk ); | 638 | d->selectedFiles->addToSelection( lnk ); |
639 | writeCurrentM3u(); | 639 | writeCurrentM3u(); |
640 | d->selectedFiles->setSelectedItem( lnk.name()); | 640 | d->selectedFiles->setSelectedItem( lnk.name()); |
641 | } | 641 | } |
642 | else if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) { | 642 | else if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) { |
643 | readListFromFile( filename ); | 643 | readListFromFile( filename ); |
644 | } else { | 644 | } else { |
645 | lnk.setName( QFileInfo(filename).baseName() ); //sets name | 645 | lnk.setName( QFileInfo(filename).baseName() ); //sets name |
646 | lnk.setFile( filename ); //sets file name | 646 | lnk.setFile( filename ); //sets file name |
647 | d->selectedFiles->addToSelection( lnk); | 647 | d->selectedFiles->addToSelection( lnk); |
648 | writeCurrentM3u(); | 648 | writeCurrentM3u(); |
649 | d->selectedFiles->setSelectedItem( lnk.name()); | 649 | d->selectedFiles->setSelectedItem( lnk.name()); |
diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp index fec91ea..33fe188 100644 --- a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp | |||
@@ -8,187 +8,187 @@ | |||
8 | .=l. | 8 | .=l. |
9 | .>+-= | 9 | .>+-= |
10 | _;:, .> :=|. This program is free software; you can | 10 | _;:, .> :=|. This program is free software; you can |
11 | .> <`_, > . <= redistribute it and/or modify it under | 11 | .> <`_, > . <= redistribute it and/or modify it under |
12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
13 | .="- .-=="i, .._ License as published by the Free Software | 13 | .="- .-=="i, .._ License as published by the Free Software |
14 | - . .-<_> .<> Foundation; either version 2 of the License, | 14 | - . .-<_> .<> Foundation; either version 2 of the License, |
15 | ._= =} : or (at your option) any later version. | 15 | ._= =} : or (at your option) any later version. |
16 | .%`+i> _;_. | 16 | .%`+i> _;_. |
17 | .i_,=:_. -<s. This program is distributed in the hope that | 17 | .i_,=:_. -<s. This program is distributed in the hope that |
18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
19 | : .. .:, . . . without even the implied warranty of | 19 | : .. .:, . . . without even the implied warranty of |
20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
22 | ..}^=.= = ; General Public License for more | 22 | ..}^=.= = ; General Public License for more |
23 | ++= -. .` .: details. | 23 | ++= -. .` .: details. |
24 | : = ...= . :.=- | 24 | : = ...= . :.=- |
25 | -. .:....=;==+<; You should have received a copy of the GNU | 25 | -. .:....=;==+<; You should have received a copy of the GNU |
26 | -_. . . )=. = General Public License along with | 26 | -_. . . )=. = General Public License along with |
27 | -- :-=` this library; see the file COPYING.LIB. | 27 | -- :-=` this library; see the file COPYING.LIB. |
28 | If not, write to the Free Software Foundation, | 28 | If not, write to the Free Software Foundation, |
29 | Inc., 59 Temple Place - Suite 330, | 29 | Inc., 59 Temple Place - Suite 330, |
30 | Boston, MA 02111-1307, USA. | 30 | Boston, MA 02111-1307, USA. |
31 | 31 | ||
32 | */ | 32 | */ |
33 | 33 | ||
34 | 34 | ||
35 | #include <qtoolbar.h> | 35 | #include <qtoolbar.h> |
36 | #include <qpe/qpeapplication.h> | 36 | #include <qpe/qpeapplication.h> |
37 | 37 | ||
38 | #include <qlayout.h> | 38 | #include <qlayout.h> |
39 | #include <qmenubar.h> | 39 | #include <qmenubar.h> |
40 | 40 | ||
41 | #include "playlistselection.h" | 41 | #include "playlistselection.h" |
42 | #include "playlistwidget.h" | 42 | #include "playlistwidget.h" |
43 | #include "mediaplayerstate.h" | 43 | #include "mediaplayerstate.h" |
44 | #include "inputDialog.h" | 44 | #include "inputDialog.h" |
45 | #include "playlistfileview.h" | 45 | #include "playlistfileview.h" |
46 | 46 | ||
47 | #include "mediaplayerstate.h" | 47 | #include "mediaplayerstate.h" |
48 | 48 | ||
49 | PlayListWidgetGui::PlayListWidgetGui(QWidget* parent, const char* name ) | 49 | PlayListWidgetGui::PlayListWidgetGui(QWidget* parent, const char* name ) |
50 | : QMainWindow( parent, name ) { | 50 | : QMainWindow( parent, name ) { |
51 | 51 | ||
52 | d = new PlayListWidgetPrivate; | 52 | d = new PlayListWidgetPrivate; |
53 | d->setDocumentUsed = FALSE; | 53 | d->setDocumentUsed = FALSE; |
54 | 54 | ||
55 | setBackgroundMode( PaletteButton ); | 55 | setBackgroundMode( PaletteButton ); |
56 | setToolBarsMovable( FALSE ); | 56 | setToolBarsMovable( FALSE ); |
57 | 57 | ||
58 | // Create Toolbar | 58 | // Create Toolbar |
59 | QToolBar *toolbar = new QToolBar( this ); | 59 | QToolBar *toolbar = new QToolBar( this ); |
60 | toolbar->setHorizontalStretchable( TRUE ); | 60 | toolbar->setHorizontalStretchable( TRUE ); |
61 | 61 | ||
62 | // Create Menubar | 62 | // Create Menubar |
63 | QMenuBar *menu = new QMenuBar( toolbar ); | 63 | QMenuBar *menu = new QMenuBar( toolbar ); |
64 | menu->setMargin( 0 ); | 64 | menu->setMargin( 0 ); |
65 | 65 | ||
66 | bar = new QToolBar( this ); | 66 | bar = new QToolBar( this ); |
67 | bar->setLabel( tr( "Play Operations" ) ); | 67 | bar->setLabel( tr( "Play Operations" ) ); |
68 | 68 | ||
69 | tbDeletePlaylist = new QPushButton( Resource::loadIconSet( "trash" ), "", bar, "close" ); | 69 | tbDeletePlaylist = new QPushButton( Resource::loadIconSet( "trash" ), "", bar, "close" ); |
70 | tbDeletePlaylist->setFlat( TRUE ); | 70 | tbDeletePlaylist->setFlat( TRUE ); |
71 | tbDeletePlaylist->setFixedSize( 20, 20 ); | 71 | tbDeletePlaylist->setFixedSize( 20, 20 ); |
72 | 72 | ||
73 | tbDeletePlaylist->hide(); | 73 | tbDeletePlaylist->hide(); |
74 | 74 | ||
75 | pmPlayList = new QPopupMenu( this ); | 75 | pmPlayList = new QPopupMenu( this ); |
76 | menu->insertItem( tr( "File" ), pmPlayList ); | 76 | menu->insertItem( tr( "File" ), pmPlayList ); |
77 | 77 | ||
78 | pmView = new QPopupMenu( this ); | 78 | pmView = new QPopupMenu( this ); |
79 | menu->insertItem( tr( "View" ), pmView ); | 79 | menu->insertItem( tr( "View" ), pmView ); |
80 | pmView->isCheckable(); | 80 | pmView->isCheckable(); |
81 | 81 | ||
82 | skinsMenu = new QPopupMenu( this ); | 82 | skinsMenu = new QPopupMenu( this ); |
83 | pmView->insertItem( tr( "Skins" ), skinsMenu ); | 83 | pmView->insertItem( tr( "Skins" ), skinsMenu ); |
84 | skinsMenu->isCheckable(); | 84 | skinsMenu->isCheckable(); |
85 | 85 | ||
86 | gammaMenu = new QPopupMenu( this ); | 86 | gammaMenu = new QPopupMenu( this ); |
87 | pmView->insertItem( tr( "Gamma (Video)" ), gammaMenu ); | 87 | pmView->insertItem( tr( "Gamma (Video)" ), gammaMenu ); |
88 | 88 | ||
89 | gammaSlider = new QSlider( QSlider::Vertical, gammaMenu ); | 89 | gammaSlider = new QSlider( QSlider::Vertical, gammaMenu ); |
90 | gammaSlider->setRange( -40, 40 ); | 90 | gammaSlider->setRange( -40, 40 ); |
91 | gammaSlider->setTickmarks( QSlider::Left ); | 91 | gammaSlider->setTickmarks( QSlider::Left ); |
92 | gammaSlider->setTickInterval( 20 ); | 92 | gammaSlider->setTickInterval( 20 ); |
93 | gammaSlider->setFocusPolicy( QWidget::StrongFocus ); | 93 | gammaSlider->setFocusPolicy( QWidget::StrongFocus ); |
94 | gammaSlider->setValue( 0 ); | 94 | gammaSlider->setValue( 0 ); |
95 | gammaSlider->setMinimumHeight( 50 ); | 95 | gammaSlider->setMinimumHeight( 50 ); |
96 | 96 | ||
97 | gammaLCD = new QLCDNumber( 3, gammaMenu ); | 97 | gammaLCD = new QLCDNumber( 3, gammaMenu ); |
98 | gammaLCD-> setFrameShape ( QFrame::NoFrame ); | 98 | gammaLCD-> setFrameShape ( QFrame::NoFrame ); |
99 | gammaLCD-> setSegmentStyle ( QLCDNumber::Flat ); | 99 | gammaLCD-> setSegmentStyle ( QLCDNumber::Flat ); |
100 | 100 | ||
101 | gammaMenu->insertItem( gammaSlider ); | 101 | gammaMenu->insertItem( gammaSlider ); |
102 | gammaMenu->insertItem( gammaLCD ); | 102 | gammaMenu->insertItem( gammaLCD ); |
103 | 103 | ||
104 | connect( gammaSlider, SIGNAL( valueChanged( int ) ), gammaLCD, SLOT( display( int ) ) ); | 104 | connect( gammaSlider, SIGNAL( valueChanged(int) ), gammaLCD, SLOT( display(int) ) ); |
105 | 105 | ||
106 | vbox5 = new QVBox( this ); | 106 | vbox5 = new QVBox( this ); |
107 | QVBox *vbox4 = new QVBox( vbox5 ); | 107 | QVBox *vbox4 = new QVBox( vbox5 ); |
108 | QHBox *hbox6 = new QHBox( vbox4 ); | 108 | QHBox *hbox6 = new QHBox( vbox4 ); |
109 | 109 | ||
110 | tabWidget = new QTabWidget( hbox6, "tabWidget" ); | 110 | tabWidget = new QTabWidget( hbox6, "tabWidget" ); |
111 | 111 | ||
112 | playListTab = new QWidget( tabWidget, "PlayListTab" ); | 112 | playListTab = new QWidget( tabWidget, "PlayListTab" ); |
113 | tabWidget->insertTab( playListTab, "Playlist"); | 113 | tabWidget->insertTab( playListTab, "Playlist"); |
114 | 114 | ||
115 | QGridLayout *Playout = new QGridLayout( playListTab ); | 115 | QGridLayout *Playout = new QGridLayout( playListTab ); |
116 | Playout->setSpacing( 2); | 116 | Playout->setSpacing( 2); |
117 | Playout->setMargin( 2); | 117 | Playout->setMargin( 2); |
118 | 118 | ||
119 | // Add the playlist area | 119 | // Add the playlist area |
120 | QVBox *vbox3 = new QVBox( playListTab ); | 120 | QVBox *vbox3 = new QVBox( playListTab ); |
121 | d->playListFrame = vbox3; | 121 | d->playListFrame = vbox3; |
122 | 122 | ||
123 | QHBox *hbox2 = new QHBox( vbox3 ); | 123 | QHBox *hbox2 = new QHBox( vbox3 ); |
124 | d->selectedFiles = new PlayListSelection( hbox2 ); | 124 | d->selectedFiles = new PlayListSelection( hbox2 ); |
125 | 125 | ||
126 | vbox1 = new QVBox( hbox2 ); | 126 | vbox1 = new QVBox( hbox2 ); |
127 | QPEApplication::setStylusOperation( d->selectedFiles->viewport(), QPEApplication::RightOnHold ); | 127 | QPEApplication::setStylusOperation( d->selectedFiles->viewport(), QPEApplication::RightOnHold ); |
128 | QVBox *stretch1 = new QVBox( vbox1 ); // add stretch | 128 | QVBox *stretch1 = new QVBox( vbox1 ); // add stretch |
129 | 129 | ||
130 | Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 ); | 130 | Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 ); |
131 | 131 | ||
132 | QWidget *aTab; | 132 | QWidget *aTab; |
133 | aTab = new QWidget( tabWidget, "aTab" ); | 133 | aTab = new QWidget( tabWidget, "aTab" ); |
134 | 134 | ||
135 | QGridLayout *Alayout = new QGridLayout( aTab ); | 135 | QGridLayout *Alayout = new QGridLayout( aTab ); |
136 | Alayout->setSpacing( 2 ); | 136 | Alayout->setSpacing( 2 ); |
137 | Alayout->setMargin( 2 ); | 137 | Alayout->setMargin( 2 ); |
138 | // no m3u's here please | 138 | // no m3u's here please |
139 | audioView = new PlayListFileView( "audio/mpeg;audio/x-wav;application/ogg", "opieplayer2/musicfile", aTab, "Audioview" ); | 139 | audioView = new PlayListFileView( "audio/mpeg;audio/x-wav;application/ogg", "opieplayer2/musicfile", aTab, "Audioview" ); |
140 | Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 ); | 140 | Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 ); |
141 | tabWidget->insertTab( aTab, tr( "Audio" ) ); | 141 | tabWidget->insertTab( aTab, tr( "Audio" ) ); |
142 | 142 | ||
143 | QPEApplication::setStylusOperation( audioView->viewport(), QPEApplication::RightOnHold ); | 143 | QPEApplication::setStylusOperation( audioView->viewport(), QPEApplication::RightOnHold ); |
144 | 144 | ||
145 | QWidget *vTab; | 145 | QWidget *vTab; |
146 | vTab = new QWidget( tabWidget, "vTab" ); | 146 | vTab = new QWidget( tabWidget, "vTab" ); |
147 | 147 | ||
148 | QGridLayout *Vlayout = new QGridLayout( vTab ); | 148 | QGridLayout *Vlayout = new QGridLayout( vTab ); |
149 | Vlayout->setSpacing( 2 ); | 149 | Vlayout->setSpacing( 2 ); |
150 | Vlayout->setMargin( 2 ); | 150 | Vlayout->setMargin( 2 ); |
151 | videoView = new PlayListFileView( "video/*", "opieplayer2/videofile", vTab, "Videoview" ); | 151 | videoView = new PlayListFileView( "video/*", "opieplayer2/videofile", vTab, "Videoview" ); |
152 | Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 ); | 152 | Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 ); |
153 | 153 | ||
154 | QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold ); | 154 | QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold ); |
155 | 155 | ||
156 | tabWidget->insertTab( vTab, tr( "Video" ) ); | 156 | tabWidget->insertTab( vTab, tr( "Video" ) ); |
157 | 157 | ||
158 | //playlists list | 158 | //playlists list |
159 | QWidget *LTab; | 159 | QWidget *LTab; |
160 | LTab = new QWidget( tabWidget, "LTab" ); | 160 | LTab = new QWidget( tabWidget, "LTab" ); |
161 | QGridLayout *Llayout = new QGridLayout( LTab ); | 161 | QGridLayout *Llayout = new QGridLayout( LTab ); |
162 | Llayout->setSpacing( 2 ); | 162 | Llayout->setSpacing( 2 ); |
163 | Llayout->setMargin( 2 ); | 163 | Llayout->setMargin( 2 ); |
164 | 164 | ||
165 | playLists = new FileSelector( "playlist/plain;audio/x-mpegurl", LTab, "fileselector" , FALSE, FALSE ); | 165 | playLists = new FileSelector( "playlist/plain;audio/x-mpegurl", LTab, "fileselector" , FALSE, FALSE ); |
166 | Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 ); | 166 | Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 ); |
167 | 167 | ||
168 | tabWidget->insertTab( LTab, tr( "Lists" ) ); | 168 | tabWidget->insertTab( LTab, tr( "Lists" ) ); |
169 | 169 | ||
170 | setCentralWidget( vbox5 ); | 170 | setCentralWidget( vbox5 ); |
171 | } | 171 | } |
172 | 172 | ||
173 | 173 | ||
174 | 174 | ||
175 | PlayListWidgetGui::~PlayListWidgetGui() { | 175 | PlayListWidgetGui::~PlayListWidgetGui() { |
176 | } | 176 | } |
177 | 177 | ||
178 | void PlayListWidgetGui::setView( char view ) { | 178 | void PlayListWidgetGui::setView( char view ) { |
179 | if ( view == 'l' ) | 179 | if ( view == 'l' ) |
180 | showMaximized(); | 180 | showMaximized(); |
181 | else | 181 | else |
182 | hide(); | 182 | hide(); |
183 | } | 183 | } |
184 | 184 | ||
185 | 185 | ||
186 | void PlayListWidgetGui::setActiveWindow() { | 186 | void PlayListWidgetGui::setActiveWindow() { |
187 | // qDebug("SETTING active window"); | 187 | // qDebug("SETTING active window"); |
188 | // When we get raised we need to ensure that it switches views | 188 | // When we get raised we need to ensure that it switches views |
189 | MediaPlayerState::DisplayType origDisplayType = mediaPlayerState->displayType(); | 189 | MediaPlayerState::DisplayType origDisplayType = mediaPlayerState->displayType(); |
190 | mediaPlayerState->setDisplayType( MediaPlayerState::MediaSelection ); // invalidate | 190 | mediaPlayerState->setDisplayType( MediaPlayerState::MediaSelection ); // invalidate |
191 | mediaPlayerState->setDisplayType( origDisplayType ); // now switch back | 191 | mediaPlayerState->setDisplayType( origDisplayType ); // now switch back |
192 | } | 192 | } |
193 | 193 | ||
194 | 194 | ||
diff --git a/noncore/multimedia/opieplayer2/threadutil.cpp b/noncore/multimedia/opieplayer2/threadutil.cpp index ff38b1e..fb951b4 100644 --- a/noncore/multimedia/opieplayer2/threadutil.cpp +++ b/noncore/multimedia/opieplayer2/threadutil.cpp | |||
@@ -147,193 +147,193 @@ static void terminate_thread( void *arg ) | |||
147 | Thread::Data *data = ( Thread::Data* )arg; | 147 | Thread::Data *data = ( Thread::Data* )arg; |
148 | 148 | ||
149 | assert( data ); | 149 | assert( data ); |
150 | 150 | ||
151 | AutoLock locker( data->guard ); | 151 | AutoLock locker( data->guard ); |
152 | data->isRunning = false; | 152 | data->isRunning = false; |
153 | data->finishCondition.wakeAll(); | 153 | data->finishCondition.wakeAll(); |
154 | } | 154 | } |
155 | 155 | ||
156 | static void *start_thread( void *arg ) | 156 | static void *start_thread( void *arg ) |
157 | { | 157 | { |
158 | Thread::Data *data = ( Thread::Data* )arg; | 158 | Thread::Data *data = ( Thread::Data* )arg; |
159 | 159 | ||
160 | pthread_cleanup_push( terminate_thread, data ); | 160 | pthread_cleanup_push( terminate_thread, data ); |
161 | 161 | ||
162 | data->isRunning = true; | 162 | data->isRunning = true; |
163 | data->run(); | 163 | data->run(); |
164 | 164 | ||
165 | pthread_cleanup_pop( true ); | 165 | pthread_cleanup_pop( true ); |
166 | 166 | ||
167 | Thread::exit(); | 167 | Thread::exit(); |
168 | return 0; // never reached | 168 | return 0; // never reached |
169 | } | 169 | } |
170 | 170 | ||
171 | } | 171 | } |
172 | 172 | ||
173 | Thread::Thread() | 173 | Thread::Thread() |
174 | : d( new Data ) | 174 | : d( new Data ) |
175 | { | 175 | { |
176 | d->thr = this; | 176 | d->thr = this; |
177 | } | 177 | } |
178 | 178 | ||
179 | Thread::~Thread() | 179 | Thread::~Thread() |
180 | { | 180 | { |
181 | assert( d->isRunning == false ); | 181 | assert( d->isRunning == false ); |
182 | delete d; | 182 | delete d; |
183 | } | 183 | } |
184 | 184 | ||
185 | void Thread::start() | 185 | void Thread::start() |
186 | { | 186 | { |
187 | AutoLock lock( d->guard ); | 187 | AutoLock lock( d->guard ); |
188 | 188 | ||
189 | if ( d->isRunning ) { | 189 | if ( d->isRunning ) { |
190 | qDebug( "ThreadUtil::Thread::start() called for running thread." ); | 190 | qDebug( "ThreadUtil::Thread::start() called for running thread." ); |
191 | return; | 191 | return; |
192 | } | 192 | } |
193 | 193 | ||
194 | pthread_attr_t attributes; | 194 | pthread_attr_t attributes; |
195 | pthread_attr_init( &attributes ); | 195 | pthread_attr_init( &attributes ); |
196 | pthread_attr_setscope( &attributes, PTHREAD_SCOPE_SYSTEM ); | 196 | pthread_attr_setscope( &attributes, PTHREAD_SCOPE_SYSTEM ); |
197 | int err = pthread_create( &d->self, &attributes, start_thread, ( void* )d ); | 197 | int err = pthread_create( &d->self, &attributes, start_thread, ( void* )d ); |
198 | if ( err != 0 ) { | 198 | if ( err != 0 ) { |
199 | qDebug( "ThreadUtil::Thread::start() : can't create thread: %s", strerror( err ) ); | 199 | qDebug( "ThreadUtil::Thread::start() : can't create thread: %s", strerror( err ) ); |
200 | pthread_attr_destroy( &attributes ); | 200 | pthread_attr_destroy( &attributes ); |
201 | return; | 201 | return; |
202 | } | 202 | } |
203 | pthread_attr_destroy( &attributes ); | 203 | pthread_attr_destroy( &attributes ); |
204 | } | 204 | } |
205 | 205 | ||
206 | void Thread::terminate() | 206 | void Thread::terminate() |
207 | { | 207 | { |
208 | AutoLock lock( d->guard ); | 208 | AutoLock lock( d->guard ); |
209 | if ( !d->isRunning ) | 209 | if ( !d->isRunning ) |
210 | return; | 210 | return; |
211 | 211 | ||
212 | pthread_cancel( d->self ); | 212 | pthread_cancel( d->self ); |
213 | } | 213 | } |
214 | 214 | ||
215 | bool Thread::wait() | 215 | bool Thread::wait() |
216 | { | 216 | { |
217 | AutoLock lock( d->guard ); | 217 | AutoLock lock( d->guard ); |
218 | if ( !d->isRunning ) | 218 | if ( !d->isRunning ) |
219 | return true; | 219 | return true; |
220 | 220 | ||
221 | return d->finishCondition.wait( d->guard ); | 221 | return d->finishCondition.wait( d->guard ); |
222 | } | 222 | } |
223 | 223 | ||
224 | bool Thread::isRunning() const | 224 | bool Thread::isRunning() const |
225 | { | 225 | { |
226 | AutoLock lock( d->guard ); | 226 | AutoLock lock( d->guard ); |
227 | return d->isRunning; | 227 | return d->isRunning; |
228 | } | 228 | } |
229 | 229 | ||
230 | void Thread::exit() | 230 | void Thread::exit() |
231 | { | 231 | { |
232 | pthread_exit( 0 ); | 232 | pthread_exit( 0 ); |
233 | } | 233 | } |
234 | 234 | ||
235 | OnewayNotifier::OnewayNotifier() | 235 | OnewayNotifier::OnewayNotifier() |
236 | { | 236 | { |
237 | int fds[ 2 ]; | 237 | int fds[ 2 ]; |
238 | pipe( fds ); | 238 | pipe( fds ); |
239 | m_readFd = fds[ 0 ]; | 239 | m_readFd = fds[ 0 ]; |
240 | m_writeFd = fds[ 1 ]; | 240 | m_writeFd = fds[ 1 ]; |
241 | 241 | ||
242 | m_notifier = new QSocketNotifier( m_readFd, QSocketNotifier::Read ); | 242 | m_notifier = new QSocketNotifier( m_readFd, QSocketNotifier::Read ); |
243 | connect( m_notifier, SIGNAL( activated( int ) ), | 243 | connect( m_notifier, SIGNAL( activated(int) ), |
244 | this, SLOT( wakeUp() ) ); | 244 | this, SLOT( wakeUp() ) ); |
245 | } | 245 | } |
246 | 246 | ||
247 | OnewayNotifier::~OnewayNotifier() | 247 | OnewayNotifier::~OnewayNotifier() |
248 | { | 248 | { |
249 | delete m_notifier; | 249 | delete m_notifier; |
250 | 250 | ||
251 | ::close( m_readFd ); | 251 | ::close( m_readFd ); |
252 | ::close( m_writeFd ); | 252 | ::close( m_writeFd ); |
253 | } | 253 | } |
254 | 254 | ||
255 | void OnewayNotifier::notify() | 255 | void OnewayNotifier::notify() |
256 | { | 256 | { |
257 | const char c = 42; | 257 | const char c = 42; |
258 | ::write( m_writeFd, &c, 1 ); | 258 | ::write( m_writeFd, &c, 1 ); |
259 | } | 259 | } |
260 | 260 | ||
261 | void OnewayNotifier::wakeUp() | 261 | void OnewayNotifier::wakeUp() |
262 | { | 262 | { |
263 | char c = 0; | 263 | char c = 0; |
264 | 264 | ||
265 | if ( ::read( m_readFd, &c, 1 ) != 1 ) | 265 | if ( ::read( m_readFd, &c, 1 ) != 1 ) |
266 | return; | 266 | return; |
267 | 267 | ||
268 | emit awake(); | 268 | emit awake(); |
269 | } | 269 | } |
270 | 270 | ||
271 | ChannelMessage::ChannelMessage( int type ) | 271 | ChannelMessage::ChannelMessage( int type ) |
272 | : m_type( type ), m_isCall( false ), m_replied( false ), | 272 | : m_type( type ), m_isCall( false ), m_replied( false ), |
273 | m_inEventHandler( false ) | 273 | m_inEventHandler( false ) |
274 | { | 274 | { |
275 | } | 275 | } |
276 | 276 | ||
277 | ChannelMessage::~ChannelMessage() | 277 | ChannelMessage::~ChannelMessage() |
278 | { | 278 | { |
279 | if ( m_guard.isLocked() ) | 279 | if ( m_guard.isLocked() ) |
280 | m_guard.unlock(); | 280 | m_guard.unlock(); |
281 | } | 281 | } |
282 | 282 | ||
283 | void ChannelMessage::reply() | 283 | void ChannelMessage::reply() |
284 | { | 284 | { |
285 | if ( !m_isCall ) | 285 | if ( !m_isCall ) |
286 | { | 286 | { |
287 | qDebug( "ChannelMessage::reply() - can't reply oneway message!" ); | 287 | qDebug( "ChannelMessage::reply() - can't reply oneway message!" ); |
288 | return; | 288 | return; |
289 | } | 289 | } |
290 | 290 | ||
291 | if ( m_inEventHandler ) | 291 | if ( m_inEventHandler ) |
292 | { | 292 | { |
293 | m_replied = true; | 293 | m_replied = true; |
294 | return; | 294 | return; |
295 | } | 295 | } |
296 | 296 | ||
297 | m_condition.wakeOne(); | 297 | m_condition.wakeOne(); |
298 | m_guard.unlock(); | 298 | m_guard.unlock(); |
299 | } | 299 | } |
300 | 300 | ||
301 | struct Channel::Private | 301 | struct Channel::Private |
302 | { | 302 | { |
303 | Private() | 303 | Private() |
304 | { | 304 | { |
305 | ownerThread = pthread_self(); | 305 | ownerThread = pthread_self(); |
306 | } | 306 | } |
307 | 307 | ||
308 | pthread_t ownerThread; | 308 | pthread_t ownerThread; |
309 | }; | 309 | }; |
310 | 310 | ||
311 | Channel::Channel( QObject *parent, const char *name ) | 311 | Channel::Channel( QObject *parent, const char *name ) |
312 | : QObject( parent, name ), d( new Private ) | 312 | : QObject( parent, name ), d( new Private ) |
313 | { | 313 | { |
314 | connect( &m_notifier, SIGNAL( awake() ), | 314 | connect( &m_notifier, SIGNAL( awake() ), |
315 | this, SLOT( deliver() ) ); | 315 | this, SLOT( deliver() ) ); |
316 | } | 316 | } |
317 | 317 | ||
318 | Channel::~Channel() | 318 | Channel::~Channel() |
319 | { | 319 | { |
320 | delete d; | 320 | delete d; |
321 | } | 321 | } |
322 | 322 | ||
323 | void Channel::send( ChannelMessage *message, SendType type ) | 323 | void Channel::send( ChannelMessage *message, SendType type ) |
324 | { | 324 | { |
325 | if ( type == WaitForReply ) | 325 | if ( type == WaitForReply ) |
326 | { | 326 | { |
327 | message->m_guard.lock(); | 327 | message->m_guard.lock(); |
328 | message->m_isCall = true; | 328 | message->m_isCall = true; |
329 | } | 329 | } |
330 | 330 | ||
331 | m_pendingMessagesGuard.lock(); | 331 | m_pendingMessagesGuard.lock(); |
332 | m_pendingMessages << MsgEnvelope( type, message ); | 332 | m_pendingMessages << MsgEnvelope( type, message ); |
333 | m_pendingMessagesGuard.unlock(); | 333 | m_pendingMessagesGuard.unlock(); |
334 | 334 | ||
335 | if ( d->ownerThread == pthread_self() ) { | 335 | if ( d->ownerThread == pthread_self() ) { |
336 | assert( type != WaitForReply ); | 336 | assert( type != WaitForReply ); |
337 | 337 | ||
338 | deliver(); | 338 | deliver(); |
339 | } | 339 | } |
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp index c829e03..a4d09f5 100644 --- a/noncore/multimedia/opieplayer2/videowidget.cpp +++ b/noncore/multimedia/opieplayer2/videowidget.cpp | |||
@@ -1,171 +1,171 @@ | |||
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 Max Reiss <harlekin@handhelds.org> | 4 | Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> |
5 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> | 5 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> |
6 | Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> | 6 | Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> |
7 | =. | 7 | =. |
8 | .=l. | 8 | .=l. |
9 | .>+-= | 9 | .>+-= |
10 | _;:, .> :=|. This program is free software; you can | 10 | _;:, .> :=|. This program is free software; you can |
11 | .> <`_, > . <= redistribute it and/or modify it under | 11 | .> <`_, > . <= redistribute it and/or modify it under |
12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
13 | .="- .-=="i, .._ License as published by the Free Software | 13 | .="- .-=="i, .._ License as published by the Free Software |
14 | - . .-<_> .<> Foundation; either version 2 of the License, | 14 | - . .-<_> .<> Foundation; either version 2 of the License, |
15 | ._= =} : or (at your option) any later version. | 15 | ._= =} : or (at your option) any later version. |
16 | .%`+i> _;_. | 16 | .%`+i> _;_. |
17 | .i_,=:_. -<s. This program is distributed in the hope that | 17 | .i_,=:_. -<s. This program is distributed in the hope that |
18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
19 | : .. .:, . . . without even the implied warranty of | 19 | : .. .:, . . . without even the implied warranty of |
20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
22 | ..}^=.= = ; Library General Public License for more | 22 | ..}^=.= = ; Library General Public License for more |
23 | ++= -. .` .: details. | 23 | ++= -. .` .: details. |
24 | : = ...= . :.=- | 24 | : = ...= . :.=- |
25 | -. .:....=;==+<; You should have received a copy of the GNU | 25 | -. .:....=;==+<; You should have received a copy of the GNU |
26 | -_. . . )=. = Library General Public License along with | 26 | -_. . . )=. = Library General Public License along with |
27 | -- :-=` this library; see the file COPYING.LIB. | 27 | -- :-=` this library; see the file COPYING.LIB. |
28 | If not, write to the Free Software Foundation, | 28 | If not, write to the Free Software Foundation, |
29 | Inc., 59 Temple Place - Suite 330, | 29 | Inc., 59 Temple Place - Suite 330, |
30 | Boston, MA 02111-1307, USA. | 30 | Boston, MA 02111-1307, USA. |
31 | 31 | ||
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include "videowidget.h" | 34 | #include "videowidget.h" |
35 | #include "mediaplayerstate.h" | 35 | #include "mediaplayerstate.h" |
36 | #include "playlistwidget.h" | 36 | #include "playlistwidget.h" |
37 | 37 | ||
38 | 38 | ||
39 | #ifdef Q_WS_QWS | 39 | #ifdef Q_WS_QWS |
40 | # define USE_DIRECT_PAINTER | 40 | # define USE_DIRECT_PAINTER |
41 | # include <qdirectpainter_qws.h> | 41 | # include <qdirectpainter_qws.h> |
42 | # include <qgfxraster_qws.h> | 42 | # include <qgfxraster_qws.h> |
43 | #endif | 43 | #endif |
44 | 44 | ||
45 | 45 | ||
46 | namespace | 46 | namespace |
47 | { | 47 | { |
48 | 48 | ||
49 | const int xo = 2; // movable x offset | 49 | const int xo = 2; // movable x offset |
50 | const int yo = 0; // movable y offset | 50 | const int yo = 0; // movable y offset |
51 | 51 | ||
52 | const MediaWidget::SkinButtonInfo skinInfo[] = | 52 | const MediaWidget::SkinButtonInfo skinInfo[] = |
53 | { | 53 | { |
54 | { MediaWidget::Play, "play", MediaWidget::ToggleButton }, | 54 | { MediaWidget::Play, "play", MediaWidget::ToggleButton }, |
55 | { MediaWidget::Stop, "stop", MediaWidget::NormalButton }, | 55 | { MediaWidget::Stop, "stop", MediaWidget::NormalButton }, |
56 | { MediaWidget::Next, "fwd", MediaWidget::NormalButton }, | 56 | { MediaWidget::Next, "fwd", MediaWidget::NormalButton }, |
57 | { MediaWidget::Previous, "back", MediaWidget::NormalButton }, | 57 | { MediaWidget::Previous, "back", MediaWidget::NormalButton }, |
58 | { MediaWidget::VolumeUp, "up", MediaWidget::NormalButton }, | 58 | { MediaWidget::VolumeUp, "up", MediaWidget::NormalButton }, |
59 | { MediaWidget::VolumeDown, "down", MediaWidget::NormalButton }, | 59 | { MediaWidget::VolumeDown, "down", MediaWidget::NormalButton }, |
60 | { MediaWidget::FullScreen, "full", MediaWidget::ToggleButton } | 60 | { MediaWidget::FullScreen, "full", MediaWidget::ToggleButton } |
61 | }; | 61 | }; |
62 | 62 | ||
63 | const uint buttonCount = sizeof( skinInfo ) / sizeof( skinInfo[ 0 ] ); | 63 | const uint buttonCount = sizeof( skinInfo ) / sizeof( skinInfo[ 0 ] ); |
64 | 64 | ||
65 | } | 65 | } |
66 | 66 | ||
67 | VideoWidget::VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name ) | 67 | VideoWidget::VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name ) |
68 | : MediaWidget( playList, mediaPlayerState, parent, name ), scaledWidth( 0 ), scaledHeight( 0 ), videoSliderBeingMoved( false ) | 68 | : MediaWidget( playList, mediaPlayerState, parent, name ), scaledWidth( 0 ), scaledHeight( 0 ), videoSliderBeingMoved( false ) |
69 | { | 69 | { |
70 | setCaption( tr("OpiePlayer - Video") ); | 70 | setCaption( tr("OpiePlayer - Video") ); |
71 | 71 | ||
72 | videoFrame = new XineVideoWidget ( this, "Video frame" ); | 72 | videoFrame = new XineVideoWidget ( this, "Video frame" ); |
73 | 73 | ||
74 | connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & ))); | 74 | connect ( videoFrame, SIGNAL( videoResized(const QSize&)), this, SIGNAL( videoResized(const QSize&))); |
75 | connect ( videoFrame, SIGNAL( clicked () ), this, SLOT ( backToNormal() ) ); | 75 | connect ( videoFrame, SIGNAL( clicked() ), this, SLOT ( backToNormal() ) ); |
76 | 76 | ||
77 | slider = 0; | 77 | slider = 0; |
78 | 78 | ||
79 | loadSkin(); | 79 | loadSkin(); |
80 | 80 | ||
81 | setLength( mediaPlayerState.length() ); | 81 | setLength( mediaPlayerState.length() ); |
82 | setPosition( mediaPlayerState.position() ); | 82 | setPosition( mediaPlayerState.position() ); |
83 | setFullscreen( mediaPlayerState.isFullscreen() ); | 83 | setFullscreen( mediaPlayerState.isFullscreen() ); |
84 | setPlaying( mediaPlayerState.isPlaying() ); | 84 | setPlaying( mediaPlayerState.isPlaying() ); |
85 | } | 85 | } |
86 | 86 | ||
87 | 87 | ||
88 | VideoWidget::~VideoWidget() | 88 | VideoWidget::~VideoWidget() |
89 | { | 89 | { |
90 | } | 90 | } |
91 | 91 | ||
92 | MediaWidget::GUIInfo VideoWidget::guiInfo() | 92 | MediaWidget::GUIInfo VideoWidget::guiInfo() |
93 | { | 93 | { |
94 | return GUIInfo( "V" /* infix */, ::skinInfo, ::buttonCount ); | 94 | return GUIInfo( "V" /* infix */, ::skinInfo, ::buttonCount ); |
95 | } | 95 | } |
96 | 96 | ||
97 | void VideoWidget::resizeEvent( QResizeEvent *e ) { | 97 | void VideoWidget::resizeEvent( QResizeEvent *e ) { |
98 | int h = height(); | 98 | int h = height(); |
99 | int w = width(); | 99 | int w = width(); |
100 | //int Vh = 160; | 100 | //int Vh = 160; |
101 | //int Vw = 220; | 101 | //int Vw = 220; |
102 | 102 | ||
103 | slider->setFixedWidth( w - 20 ); | 103 | slider->setFixedWidth( w - 20 ); |
104 | slider->setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); | 104 | slider->setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); |
105 | slider->setBackgroundOrigin( QWidget::ParentOrigin ); | 105 | slider->setBackgroundOrigin( QWidget::ParentOrigin ); |
106 | slider->setFocusPolicy( QWidget::NoFocus ); | 106 | slider->setFocusPolicy( QWidget::NoFocus ); |
107 | slider->setBackgroundPixmap( backgroundPixmap ); | 107 | slider->setBackgroundPixmap( backgroundPixmap ); |
108 | 108 | ||
109 | upperLeftOfButtonMask.rx() = 0;// ( imgUp->width() ) / 2; | 109 | upperLeftOfButtonMask.rx() = 0;// ( imgUp->width() ) / 2; |
110 | if(w>h) | 110 | if(w>h) |
111 | upperLeftOfButtonMask.ry() = 0; | 111 | upperLeftOfButtonMask.ry() = 0; |
112 | else | 112 | else |
113 | upperLeftOfButtonMask.ry() = 185;//(( Vh - imgUp->height() ) / 2) - 10; | 113 | upperLeftOfButtonMask.ry() = 185;//(( Vh - imgUp->height() ) / 2) - 10; |
114 | 114 | ||
115 | MediaWidget::resizeEvent( e ); | 115 | MediaWidget::resizeEvent( e ); |
116 | } | 116 | } |
117 | 117 | ||
118 | void VideoWidget::sliderPressed() { | 118 | void VideoWidget::sliderPressed() { |
119 | videoSliderBeingMoved = TRUE; | 119 | videoSliderBeingMoved = TRUE; |
120 | } | 120 | } |
121 | 121 | ||
122 | void VideoWidget::sliderReleased() { | 122 | void VideoWidget::sliderReleased() { |
123 | videoSliderBeingMoved = FALSE; | 123 | videoSliderBeingMoved = FALSE; |
124 | if ( slider->width() == 0 ) { | 124 | if ( slider->width() == 0 ) { |
125 | return; | 125 | return; |
126 | } | 126 | } |
127 | long val = long((double)slider->value() * mediaPlayerState.length() / slider->width()); | 127 | long val = long((double)slider->value() * mediaPlayerState.length() / slider->width()); |
128 | mediaPlayerState.setPosition( val ); | 128 | mediaPlayerState.setPosition( val ); |
129 | } | 129 | } |
130 | 130 | ||
131 | void VideoWidget::setPosition( long i ) { | 131 | void VideoWidget::setPosition( long i ) { |
132 | updateSlider( i, mediaPlayerState.length() ); | 132 | updateSlider( i, mediaPlayerState.length() ); |
133 | } | 133 | } |
134 | 134 | ||
135 | 135 | ||
136 | void VideoWidget::setLength( long max ) { | 136 | void VideoWidget::setLength( long max ) { |
137 | updateSlider( mediaPlayerState.position(), max ); | 137 | updateSlider( mediaPlayerState.position(), max ); |
138 | } | 138 | } |
139 | 139 | ||
140 | void VideoWidget::setDisplayType( MediaPlayerState::DisplayType displayType ) | 140 | void VideoWidget::setDisplayType( MediaPlayerState::DisplayType displayType ) |
141 | { | 141 | { |
142 | if ( displayType == MediaPlayerState::Video ) { | 142 | if ( displayType == MediaPlayerState::Video ) { |
143 | makeVisible(); | 143 | makeVisible(); |
144 | return; | 144 | return; |
145 | } | 145 | } |
146 | 146 | ||
147 | // Effectively blank the view next time we show it so it looks nicer | 147 | // Effectively blank the view next time we show it so it looks nicer |
148 | scaledWidth = 0; | 148 | scaledWidth = 0; |
149 | scaledHeight = 0; | 149 | scaledHeight = 0; |
150 | hide(); | 150 | hide(); |
151 | } | 151 | } |
152 | 152 | ||
153 | void VideoWidget::loadSkin() | 153 | void VideoWidget::loadSkin() |
154 | { | 154 | { |
155 | loadDefaultSkin( guiInfo() ); | 155 | loadDefaultSkin( guiInfo() ); |
156 | 156 | ||
157 | delete slider; | 157 | delete slider; |
158 | slider = new QSlider( Qt::Horizontal, this ); | 158 | slider = new QSlider( Qt::Horizontal, this ); |
159 | slider->setMinValue( 0 ); | 159 | slider->setMinValue( 0 ); |
160 | slider->setMaxValue( 1 ); | 160 | slider->setMaxValue( 1 ); |
161 | slider->setBackgroundPixmap( backgroundPixmap ); | 161 | slider->setBackgroundPixmap( backgroundPixmap ); |
162 | //slider->setFocusPolicy( QWidget::NoFocus ); | 162 | //slider->setFocusPolicy( QWidget::NoFocus ); |
163 | 163 | ||
164 | resizeEvent( 0 ); | 164 | resizeEvent( 0 ); |
165 | } | 165 | } |
166 | 166 | ||
167 | void VideoWidget::updateSlider( long i, long max ) { | 167 | void VideoWidget::updateSlider( long i, long max ) { |
168 | // Will flicker too much if we don't do this | 168 | // Will flicker too much if we don't do this |
169 | if ( max == 0 ) { | 169 | if ( max == 0 ) { |
170 | return; | 170 | return; |
171 | } | 171 | } |
diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp index a392f4a..70f2ffd 100644 --- a/noncore/multimedia/opieplayer2/xinecontrol.cpp +++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp | |||
@@ -1,171 +1,171 @@ | |||
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 Max Reiss <harlekin@handhelds.org> | 4 | Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> |
5 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> | 5 | Copyright (c) 2002 L. Potter <ljp@llornkcor.com> |
6 | Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> | 6 | Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> |
7 | =. | 7 | =. |
8 | .=l. | 8 | .=l. |
9 | .>+-= | 9 | .>+-= |
10 | _;:, .> :=|. This program is free software; you can | 10 | _;:, .> :=|. This program is free software; you can |
11 | .> <`_, > . <= redistribute it and/or modify it under | 11 | .> <`_, > . <= redistribute it and/or modify it under |
12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 12 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
13 | .="- .-=="i, .._ License as published by the Free Software | 13 | .="- .-=="i, .._ License as published by the Free Software |
14 | - . .-<_> .<> Foundation; either version 2 of the License, | 14 | - . .-<_> .<> Foundation; either version 2 of the License, |
15 | ._= =} : or (at your option) any later version. | 15 | ._= =} : or (at your option) any later version. |
16 | .%`+i> _;_. | 16 | .%`+i> _;_. |
17 | .i_,=:_. -<s. This program is distributed in the hope that | 17 | .i_,=:_. -<s. This program is distributed in the hope that |
18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 18 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
19 | : .. .:, . . . without even the implied warranty of | 19 | : .. .:, . . . without even the implied warranty of |
20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 20 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 21 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
22 | ..}^=.= = ; General Public License for more | 22 | ..}^=.= = ; General Public License for more |
23 | ++= -. .` .: details. | 23 | ++= -. .` .: details. |
24 | : = ...= . :.=- | 24 | : = ...= . :.=- |
25 | -. .:....=;==+<; You should have received a copy of the GNU | 25 | -. .:....=;==+<; You should have received a copy of the GNU |
26 | -_. . . )=. = General Public License along with | 26 | -_. . . )=. = General Public License along with |
27 | -- :-=` this library; see the file COPYING.LIB. | 27 | -- :-=` this library; see the file COPYING.LIB. |
28 | If not, write to the Free Software Foundation, | 28 | If not, write to the Free Software Foundation, |
29 | Inc., 59 Temple Place - Suite 330, | 29 | Inc., 59 Temple Place - Suite 330, |
30 | Boston, MA 02111-1307, USA. | 30 | Boston, MA 02111-1307, USA. |
31 | 31 | ||
32 | */ | 32 | */ |
33 | 33 | ||
34 | 34 | ||
35 | #include <qtimer.h> | 35 | #include <qtimer.h> |
36 | #include <qmessagebox.h> | 36 | #include <qmessagebox.h> |
37 | #include <qpe/qcopenvelope_qws.h> | 37 | #include <qpe/qcopenvelope_qws.h> |
38 | #include <qpe/qpeapplication.h> | 38 | #include <qpe/qpeapplication.h> |
39 | 39 | ||
40 | #include "xinecontrol.h" | 40 | #include "xinecontrol.h" |
41 | #include "mediaplayerstate.h" | 41 | #include "mediaplayerstate.h" |
42 | #include "xinevideowidget.h" | 42 | #include "xinevideowidget.h" |
43 | 43 | ||
44 | XineControl::XineControl( XineVideoWidget *xineWidget, | 44 | XineControl::XineControl( XineVideoWidget *xineWidget, |
45 | MediaPlayerState &_mediaPlayerState, | 45 | MediaPlayerState &_mediaPlayerState, |
46 | QObject *parent, const char *name ) | 46 | QObject *parent, const char *name ) |
47 | : QObject( parent, name ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget ) | 47 | : QObject( parent, name ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget ) |
48 | { | 48 | { |
49 | libXine = new XINE::Lib( XINE::Lib::InitializeImmediately, xineWidget ); | 49 | libXine = new XINE::Lib( XINE::Lib::InitializeImmediately, xineWidget ); |
50 | 50 | ||
51 | init(); | 51 | init(); |
52 | } | 52 | } |
53 | 53 | ||
54 | XineControl::XineControl( XINE::Lib *xine, XineVideoWidget *xineWidget, | 54 | XineControl::XineControl( XINE::Lib *xine, XineVideoWidget *xineWidget, |
55 | MediaPlayerState &_mediaPlayerState, | 55 | MediaPlayerState &_mediaPlayerState, |
56 | QObject *parent, const char *name ) | 56 | QObject *parent, const char *name ) |
57 | : QObject( parent, name ), libXine( xine ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget ) | 57 | : QObject( parent, name ), libXine( xine ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget ) |
58 | { | 58 | { |
59 | xine->ensureInitialized(); | 59 | xine->ensureInitialized(); |
60 | 60 | ||
61 | xine->setWidget( xineWidget ); | 61 | xine->setWidget( xineWidget ); |
62 | 62 | ||
63 | init(); | 63 | init(); |
64 | } | 64 | } |
65 | 65 | ||
66 | void XineControl::init() | 66 | void XineControl::init() |
67 | { | 67 | { |
68 | connect( &mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pause( bool ) ) ); | 68 | connect( &mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( pause(bool) ) ); |
69 | connect( this, SIGNAL( positionChanged( long ) ), &mediaPlayerState, SLOT( updatePosition( long ) ) ); | 69 | connect( this, SIGNAL( positionChanged(long) ), &mediaPlayerState, SLOT( updatePosition(long) ) ); |
70 | connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( stop( bool ) ) ); | 70 | connect( &mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( stop(bool) ) ); |
71 | connect( &mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), this, SLOT( setFullscreen( bool ) ) ); | 71 | connect( &mediaPlayerState, SIGNAL( fullscreenToggled(bool) ), this, SLOT( setFullscreen(bool) ) ); |
72 | connect( &mediaPlayerState, SIGNAL( positionChanged( long ) ), this, SLOT( seekTo( long ) ) ); | 72 | connect( &mediaPlayerState, SIGNAL( positionChanged(long) ), this, SLOT( seekTo(long) ) ); |
73 | connect( &mediaPlayerState, SIGNAL( videoGammaChanged( int ) ), this, SLOT( setGamma( int ) ) ); | 73 | connect( &mediaPlayerState, SIGNAL( videoGammaChanged(int) ), this, SLOT( setGamma(int) ) ); |
74 | connect( libXine, SIGNAL( stopped() ), this, SLOT( nextMedia() ) ); | 74 | connect( libXine, SIGNAL( stopped() ), this, SLOT( nextMedia() ) ); |
75 | connect( xineVideoWidget, SIGNAL( videoResized( const QSize & ) ), this, SLOT( videoResized ( const QSize & ) ) ); | 75 | connect( xineVideoWidget, SIGNAL( videoResized(const QSize&) ), this, SLOT( videoResized(const QSize&) ) ); |
76 | 76 | ||
77 | disabledSuspendScreenSaver = FALSE; | 77 | disabledSuspendScreenSaver = FALSE; |
78 | } | 78 | } |
79 | 79 | ||
80 | XineControl::~XineControl() { | 80 | XineControl::~XineControl() { |
81 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 81 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
82 | if ( disabledSuspendScreenSaver ) { | 82 | if ( disabledSuspendScreenSaver ) { |
83 | disabledSuspendScreenSaver = FALSE; | 83 | disabledSuspendScreenSaver = FALSE; |
84 | // Re-enable the suspend mode | 84 | // Re-enable the suspend mode |
85 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; | 85 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; |
86 | } | 86 | } |
87 | #endif | 87 | #endif |
88 | delete libXine; | 88 | delete libXine; |
89 | } | 89 | } |
90 | 90 | ||
91 | void XineControl::play( const QString& fileName ) { | 91 | void XineControl::play( const QString& fileName ) { |
92 | 92 | ||
93 | hasVideoChannel = FALSE; | 93 | hasVideoChannel = FALSE; |
94 | hasAudioChannel = FALSE; | 94 | hasAudioChannel = FALSE; |
95 | m_fileName = fileName; | 95 | m_fileName = fileName; |
96 | 96 | ||
97 | qDebug("<<FILENAME: " + fileName + ">>>>"); | 97 | qDebug("<<FILENAME: " + fileName + ">>>>"); |
98 | 98 | ||
99 | if ( !libXine->play( fileName, 0, 0 ) ) { | 99 | if ( !libXine->play( fileName, 0, 0 ) ) { |
100 | QMessageBox::warning( 0l , tr( "Failure" ), getErrorCode() ); | 100 | QMessageBox::warning( 0l , tr( "Failure" ), getErrorCode() ); |
101 | // toggle stop so the the play button is reset | 101 | // toggle stop so the the play button is reset |
102 | mediaPlayerState.setPlaying( false ); | 102 | mediaPlayerState.setPlaying( false ); |
103 | return; | 103 | return; |
104 | } | 104 | } |
105 | mediaPlayerState.setPlaying( true ); | 105 | mediaPlayerState.setPlaying( true ); |
106 | 106 | ||
107 | MediaPlayerState::DisplayType displayType; | 107 | MediaPlayerState::DisplayType displayType; |
108 | if ( !libXine->hasVideo() ) { | 108 | if ( !libXine->hasVideo() ) { |
109 | displayType = MediaPlayerState::Audio; | 109 | displayType = MediaPlayerState::Audio; |
110 | qDebug("HAS AUDIO"); | 110 | qDebug("HAS AUDIO"); |
111 | libXine->setShowVideo( false ); | 111 | libXine->setShowVideo( false ); |
112 | hasAudioChannel = TRUE; | 112 | hasAudioChannel = TRUE; |
113 | } else { | 113 | } else { |
114 | displayType = MediaPlayerState::Video; | 114 | displayType = MediaPlayerState::Video; |
115 | qDebug("HAS VIDEO"); | 115 | qDebug("HAS VIDEO"); |
116 | libXine->setShowVideo( true ); | 116 | libXine->setShowVideo( true ); |
117 | hasVideoChannel = TRUE; | 117 | hasVideoChannel = TRUE; |
118 | } | 118 | } |
119 | // determine if slider is shown | 119 | // determine if slider is shown |
120 | mediaPlayerState.setIsSeekable( libXine->isSeekable() ); | 120 | mediaPlayerState.setIsSeekable( libXine->isSeekable() ); |
121 | 121 | ||
122 | // which gui (video / audio) | 122 | // which gui (video / audio) |
123 | mediaPlayerState.setDisplayType( displayType ); | 123 | mediaPlayerState.setDisplayType( displayType ); |
124 | 124 | ||
125 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 125 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
126 | if ( !disabledSuspendScreenSaver ) { | 126 | if ( !disabledSuspendScreenSaver ) { |
127 | disabledSuspendScreenSaver = TRUE; | 127 | disabledSuspendScreenSaver = TRUE; |
128 | // Stop the screen from blanking and power saving state | 128 | // Stop the screen from blanking and power saving state |
129 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) | 129 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) |
130 | << ( displayType == MediaPlayerState::Video ? QPEApplication::Disable : QPEApplication::DisableSuspend ); | 130 | << ( displayType == MediaPlayerState::Video ? QPEApplication::Disable : QPEApplication::DisableSuspend ); |
131 | } | 131 | } |
132 | #endif | 132 | #endif |
133 | 133 | ||
134 | length(); | 134 | length(); |
135 | position(); | 135 | position(); |
136 | } | 136 | } |
137 | 137 | ||
138 | void XineControl::nextMedia() { | 138 | void XineControl::nextMedia() { |
139 | mediaPlayerState.setNext(); | 139 | mediaPlayerState.setNext(); |
140 | } | 140 | } |
141 | 141 | ||
142 | void XineControl::setGamma( int value ) { | 142 | void XineControl::setGamma( int value ) { |
143 | libXine->setGamma( value ); | 143 | libXine->setGamma( value ); |
144 | } | 144 | } |
145 | 145 | ||
146 | void XineControl::stop( bool isSet ) { | 146 | void XineControl::stop( bool isSet ) { |
147 | if ( !isSet ) { | 147 | if ( !isSet ) { |
148 | libXine->stop(); | 148 | libXine->stop(); |
149 | 149 | ||
150 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 150 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
151 | if ( disabledSuspendScreenSaver ) { | 151 | if ( disabledSuspendScreenSaver ) { |
152 | disabledSuspendScreenSaver = FALSE; | 152 | disabledSuspendScreenSaver = FALSE; |
153 | // Re-enable the suspend mode | 153 | // Re-enable the suspend mode |
154 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; | 154 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; |
155 | } | 155 | } |
156 | #endif | 156 | #endif |
157 | } | 157 | } |
158 | } | 158 | } |
159 | 159 | ||
160 | /** | 160 | /** |
161 | * Pause playback | 161 | * Pause playback |
162 | * @isSet | 162 | * @isSet |
163 | */ | 163 | */ |
164 | void XineControl::pause( bool isSet) { | 164 | void XineControl::pause( bool isSet) { |
165 | libXine->pause( isSet ); | 165 | libXine->pause( isSet ); |
166 | } | 166 | } |
167 | 167 | ||
168 | 168 | ||
169 | /** | 169 | /** |
170 | * get current time in playback | 170 | * get current time in playback |
171 | */ | 171 | */ |
diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp index 0a6e5ae..f2035ef 100644 --- a/noncore/multimedia/opierec/qtrec.cpp +++ b/noncore/multimedia/opierec/qtrec.cpp | |||
@@ -668,226 +668,226 @@ void QtRec::init() { | |||
668 | 668 | ||
669 | TextLabel2 = new QLabel( tab_5, "InputLabel" ); | 669 | TextLabel2 = new QLabel( tab_5, "InputLabel" ); |
670 | TextLabel2->setText( tr( "In")); | 670 | TextLabel2->setText( tr( "In")); |
671 | TextLabel2->setFixedWidth( 35); | 671 | TextLabel2->setFixedWidth( 35); |
672 | Layout15->addWidget( TextLabel2 ); | 672 | Layout15->addWidget( TextLabel2 ); |
673 | 673 | ||
674 | TextLabel3 = new QLabel( tab_5, "OutputLabel" ); | 674 | TextLabel3 = new QLabel( tab_5, "OutputLabel" ); |
675 | TextLabel3->setText( tr( "Out" ) ); | 675 | TextLabel3->setText( tr( "Out" ) ); |
676 | Layout15b->addWidget( TextLabel3 ); | 676 | Layout15b->addWidget( TextLabel3 ); |
677 | 677 | ||
678 | InputSlider = new QSlider( -100, 0, 10, 0, QSlider::Vertical, tab_5, (const char *) "InputSlider" ); | 678 | InputSlider = new QSlider( -100, 0, 10, 0, QSlider::Vertical, tab_5, (const char *) "InputSlider" ); |
679 | InputSlider->setTickmarks( QSlider::Both); | 679 | InputSlider->setTickmarks( QSlider::Both); |
680 | Layout15->addWidget( InputSlider); | 680 | Layout15->addWidget( InputSlider); |
681 | 681 | ||
682 | OutputSlider = new QSlider( -100,0,10,0, QSlider::Vertical,tab_5,(const char *) "OutputSlider" ); | 682 | OutputSlider = new QSlider( -100,0,10,0, QSlider::Vertical,tab_5,(const char *) "OutputSlider" ); |
683 | OutputSlider->setTickmarks( QSlider::Both); | 683 | OutputSlider->setTickmarks( QSlider::Both); |
684 | 684 | ||
685 | Layout15b->addWidget( OutputSlider ); | 685 | Layout15b->addWidget( OutputSlider ); |
686 | 686 | ||
687 | outMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 ); | 687 | outMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 ); |
688 | Layout15->addWidget( outMuteCheckBox ); | 688 | Layout15->addWidget( outMuteCheckBox ); |
689 | 689 | ||
690 | inMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 ); | 690 | inMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 ); |
691 | inMuteCheckBox-> setFocusPolicy ( QWidget::NoFocus ); | 691 | inMuteCheckBox-> setFocusPolicy ( QWidget::NoFocus ); |
692 | Layout15b->addWidget( inMuteCheckBox ); | 692 | Layout15b->addWidget( inMuteCheckBox ); |
693 | 693 | ||
694 | 694 | ||
695 | Layout19a->addLayout( Layout15 ); | 695 | Layout19a->addLayout( Layout15 ); |
696 | Layout19a->addLayout( Layout15b ); | 696 | Layout19a->addLayout( Layout15b ); |
697 | 697 | ||
698 | fillDirectoryCombo(); | 698 | fillDirectoryCombo(); |
699 | 699 | ||
700 | TabWidget->insertTab( tab_3, tr( "Options" ) ); | 700 | TabWidget->insertTab( tab_3, tr( "Options" ) ); |
701 | 701 | ||
702 | TabWidget->insertTab( tab_5, tr( "Volume" ) ); | 702 | TabWidget->insertTab( tab_5, tr( "Volume" ) ); |
703 | 703 | ||
704 | 704 | ||
705 | waveform = new Waveform( this, "waveform" ); | 705 | waveform = new Waveform( this, "waveform" ); |
706 | // waveform->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)3, waveform->sizePolicy().hasHeightForWidth() ) ); | 706 | // waveform->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)3, waveform->sizePolicy().hasHeightForWidth() ) ); |
707 | waveform->setMinimumSize( QSize( 0, 50 ) ); | 707 | waveform->setMinimumSize( QSize( 0, 50 ) ); |
708 | 708 | ||
709 | layout->addMultiCellWidget( waveform, 8, 8, 0, 7 ); | 709 | layout->addMultiCellWidget( waveform, 8, 8, 0, 7 ); |
710 | waveform->setBackgroundColor ( black ); | 710 | waveform->setBackgroundColor ( black ); |
711 | } | 711 | } |
712 | 712 | ||
713 | void QtRec::initIconView() { | 713 | void QtRec::initIconView() { |
714 | 714 | ||
715 | ListView1->clear(); | 715 | ListView1->clear(); |
716 | Config cfg("OpieRec"); | 716 | Config cfg("OpieRec"); |
717 | cfg.setGroup("Sounds"); | 717 | cfg.setGroup("Sounds"); |
718 | QString temp; | 718 | QString temp; |
719 | QPixmap image0( ( const char** ) image0_data ); | 719 | QPixmap image0( ( const char** ) image0_data ); |
720 | 720 | ||
721 | int nFiles = cfg.readNumEntry("NumberofFiles",0); | 721 | int nFiles = cfg.readNumEntry("NumberofFiles",0); |
722 | // qDebug("init number of files %d", nFiles); | 722 | // qDebug("init number of files %d", nFiles); |
723 | 723 | ||
724 | for(int i=1;i<= nFiles;i++) { | 724 | for(int i=1;i<= nFiles;i++) { |
725 | 725 | ||
726 | QListViewItem * item; | 726 | QListViewItem * item; |
727 | QString fileS, mediaLocation, fileDate, filePath; | 727 | QString fileS, mediaLocation, fileDate, filePath; |
728 | 728 | ||
729 | temp.sprintf( "%d",i); | 729 | temp.sprintf( "%d",i); |
730 | temp = cfg.readEntry( temp,""); //reads currentFile | 730 | temp = cfg.readEntry( temp,""); //reads currentFile |
731 | filePath = cfg.readEntry( temp,""); //currentFileName | 731 | filePath = cfg.readEntry( temp,""); //currentFileName |
732 | 732 | ||
733 | QFileInfo info(filePath); | 733 | QFileInfo info(filePath); |
734 | fileDate = info.lastModified().toString(); | 734 | fileDate = info.lastModified().toString(); |
735 | 735 | ||
736 | fileS = cfg.readEntry( filePath, "0" );// file length in seconds | 736 | fileS = cfg.readEntry( filePath, "0" );// file length in seconds |
737 | mediaLocation = getStorage( filePath); | 737 | mediaLocation = getStorage( filePath); |
738 | if( info.exists()) { | 738 | if( info.exists()) { |
739 | item = new QListViewItem( ListView1, temp, fileS, mediaLocation, fileDate); | 739 | item = new QListViewItem( ListView1, temp, fileS, mediaLocation, fileDate); |
740 | item->setPixmap( 0, image0); | 740 | item->setPixmap( 0, image0); |
741 | if( currentFileName == filePath) | 741 | if( currentFileName == filePath) |
742 | ListView1->setSelected( item, true); | 742 | ListView1->setSelected( item, true); |
743 | } | 743 | } |
744 | } | 744 | } |
745 | } | 745 | } |
746 | 746 | ||
747 | void QtRec::initConnections() { | 747 | void QtRec::initConnections() { |
748 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); | 748 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); |
749 | 749 | ||
750 | connect( toBeginningButton, SIGNAL( pressed()), | 750 | connect( toBeginningButton, SIGNAL( pressed()), |
751 | this, SLOT( rewindPressed() )); | 751 | this, SLOT( rewindPressed() )); |
752 | connect( toBeginningButton, SIGNAL( released()), | 752 | connect( toBeginningButton, SIGNAL( released()), |
753 | this, SLOT( rewindReleased() )); | 753 | this, SLOT( rewindReleased() )); |
754 | connect( toEndButton, SIGNAL( pressed()), | 754 | connect( toEndButton, SIGNAL( pressed()), |
755 | this, SLOT( FastforwardPressed() )); | 755 | this, SLOT( FastforwardPressed() )); |
756 | connect( toEndButton, SIGNAL( released()), | 756 | connect( toEndButton, SIGNAL( released()), |
757 | this, SLOT( FastforwardReleased() )); | 757 | this, SLOT( FastforwardReleased() )); |
758 | connect( deleteSoundButton, SIGNAL(released()), | 758 | connect( deleteSoundButton, SIGNAL(released()), |
759 | this, SLOT( deleteSound() )); | 759 | this, SLOT( deleteSound() )); |
760 | connect( Stop_PushButton, SIGNAL(released()), | 760 | connect( Stop_PushButton, SIGNAL(released()), |
761 | this, SLOT( doPlayBtn() )); | 761 | this, SLOT( doPlayBtn() )); |
762 | connect( Rec_PushButton, SIGNAL(released()), | 762 | connect( Rec_PushButton, SIGNAL(released()), |
763 | this, SLOT( newSound() ) ); | 763 | this, SLOT( newSound() ) ); |
764 | connect( TabWidget, SIGNAL( currentChanged( QWidget*)), | 764 | connect( TabWidget, SIGNAL( currentChanged(QWidget*)), |
765 | this, SLOT(thisTab(QWidget*) )); | 765 | this, SLOT(thisTab(QWidget*) )); |
766 | connect( OutputSlider, SIGNAL(sliderReleased()), | 766 | connect( OutputSlider, SIGNAL(sliderReleased()), |
767 | this, SLOT( changedOutVolume()) ); | 767 | this, SLOT( changedOutVolume()) ); |
768 | connect( InputSlider, SIGNAL(sliderReleased()), | 768 | connect( InputSlider, SIGNAL(sliderReleased()), |
769 | this, SLOT( changedInVolume()) ); | 769 | this, SLOT( changedInVolume()) ); |
770 | 770 | ||
771 | connect( sampleRateComboBox, SIGNAL(activated( int)), | 771 | connect( sampleRateComboBox, SIGNAL(activated(int)), |
772 | this, SLOT( changesamplerateCombo(int)) ); | 772 | this, SLOT( changesamplerateCombo(int)) ); |
773 | connect( bitRateComboBox, SIGNAL(activated( int)), | 773 | connect( bitRateComboBox, SIGNAL(activated(int)), |
774 | this, SLOT( changebitrateCombo(int)) ); | 774 | this, SLOT( changebitrateCombo(int)) ); |
775 | 775 | ||
776 | connect( directoryComboBox, SIGNAL(activated( int)), | 776 | connect( directoryComboBox, SIGNAL(activated(int)), |
777 | this, SLOT( changeDirCombo(int)) ); | 777 | this, SLOT( changeDirCombo(int)) ); |
778 | connect( sizeLimitCombo, SIGNAL(activated( int)), | 778 | connect( sizeLimitCombo, SIGNAL(activated(int)), |
779 | this, SLOT( changeSizeLimitCombo(int)) ); | 779 | this, SLOT( changeSizeLimitCombo(int)) ); |
780 | 780 | ||
781 | connect( stereoCheckBox, SIGNAL(toggled( bool)), | 781 | connect( stereoCheckBox, SIGNAL(toggled(bool)), |
782 | this, SLOT( changeStereoCheck(bool)) ); | 782 | this, SLOT( changeStereoCheck(bool)) ); |
783 | 783 | ||
784 | connect( outMuteCheckBox, SIGNAL(toggled( bool)), | 784 | connect( outMuteCheckBox, SIGNAL(toggled(bool)), |
785 | this, SLOT( doVolMuting(bool)) ); | 785 | this, SLOT( doVolMuting(bool)) ); |
786 | connect( inMuteCheckBox , SIGNAL(toggled( bool)), | 786 | connect( inMuteCheckBox , SIGNAL(toggled(bool)), |
787 | this, SLOT( doMicMuting(bool)) ); | 787 | this, SLOT( doMicMuting(bool)) ); |
788 | 788 | ||
789 | connect( ListView1,SIGNAL(doubleClicked( QListViewItem*)), | 789 | connect( ListView1,SIGNAL(doubleClicked(QListViewItem*)), |
790 | this,SLOT( itClick(QListViewItem*))); | 790 | this,SLOT( itClick(QListViewItem*))); |
791 | connect( ListView1, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 791 | connect( ListView1, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), |
792 | this,SLOT( listPressed(int, QListViewItem *, const QPoint&, int)) ); | 792 | this,SLOT( listPressed(int,QListViewItem*,const QPoint&,int)) ); |
793 | connect( timeSlider, SIGNAL( sliderMoved( int)), | 793 | connect( timeSlider, SIGNAL( sliderMoved(int)), |
794 | this, SLOT( changeTimeSlider(int) )); | 794 | this, SLOT( changeTimeSlider(int) )); |
795 | connect( timeSlider, SIGNAL( sliderPressed( )), | 795 | connect( timeSlider, SIGNAL( sliderPressed()), |
796 | this, SLOT( timeSliderPressed() )); | 796 | this, SLOT( timeSliderPressed() )); |
797 | connect( timeSlider, SIGNAL( sliderReleased( )), | 797 | connect( timeSlider, SIGNAL( sliderReleased()), |
798 | this, SLOT( timeSliderReleased() )); | 798 | this, SLOT( timeSliderReleased() )); |
799 | connect( compressionCheckBox, SIGNAL( toggled(bool)), | 799 | connect( compressionCheckBox, SIGNAL( toggled(bool)), |
800 | this, SLOT( compressionSelected(bool))); | 800 | this, SLOT( compressionSelected(bool))); |
801 | connect( autoMuteCheckBox, SIGNAL( toggled(bool)), | 801 | connect( autoMuteCheckBox, SIGNAL( toggled(bool)), |
802 | this, SLOT( slotAutoMute(bool))); | 802 | this, SLOT( slotAutoMute(bool))); |
803 | } | 803 | } |
804 | 804 | ||
805 | void QtRec::initConfig() { | 805 | void QtRec::initConfig() { |
806 | int index, fred, i; | 806 | int index, fred, i; |
807 | Config cfg("OpieRec"); | 807 | Config cfg("OpieRec"); |
808 | cfg.setGroup("Settings"); | 808 | cfg.setGroup("Settings"); |
809 | 809 | ||
810 | index = cfg.readNumEntry("samplerate",22050); | 810 | index = cfg.readNumEntry("samplerate",22050); |
811 | bool ok; | 811 | bool ok; |
812 | 812 | ||
813 | for(int ws=0;ws<sampleRateComboBox->count();ws++) { | 813 | for(int ws=0;ws<sampleRateComboBox->count();ws++) { |
814 | fred = sampleRateComboBox->text(ws).toInt(&ok, 10); | 814 | fred = sampleRateComboBox->text(ws).toInt(&ok, 10); |
815 | if( index == fred) { | 815 | if( index == fred) { |
816 | filePara.sampleRate = fred; | 816 | filePara.sampleRate = fred; |
817 | sampleRateComboBox->setCurrentItem(ws); | 817 | sampleRateComboBox->setCurrentItem(ws); |
818 | } | 818 | } |
819 | } | 819 | } |
820 | 820 | ||
821 | i = cfg.readNumEntry("bitrate",16); | 821 | i = cfg.readNumEntry("bitrate",16); |
822 | if(i == 16) | 822 | if(i == 16) |
823 | bitRateComboBox->setCurrentItem( 1); | 823 | bitRateComboBox->setCurrentItem( 1); |
824 | elseif(i == 24) | 824 | elseif(i == 24) |
825 | bitRateComboBox->setCurrentItem( 2); | 825 | bitRateComboBox->setCurrentItem( 2); |
826 | elseif(i == 32) | 826 | elseif(i == 32) |
827 | bitRateComboBox->setCurrentItem( 3); | 827 | bitRateComboBox->setCurrentItem( 3); |
828 | else | 828 | else |
829 | bitRateComboBox->setCurrentItem( 0); | 829 | bitRateComboBox->setCurrentItem( 0); |
830 | 830 | ||
831 | filePara.resolution = i; | 831 | filePara.resolution = i; |
832 | 832 | ||
833 | i = cfg.readNumEntry("sizeLimit", 5 ); | 833 | i = cfg.readNumEntry("sizeLimit", 5 ); |
834 | QString temp; | 834 | QString temp; |
835 | sizeLimitCombo->setCurrentItem((i/5)); | 835 | sizeLimitCombo->setCurrentItem((i/5)); |
836 | 836 | ||
837 | stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 1)); | 837 | stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 1)); |
838 | if( stereoCheckBox->isChecked()) { | 838 | if( stereoCheckBox->isChecked()) { |
839 | filePara.channels = 2; | 839 | filePara.channels = 2; |
840 | } else { | 840 | } else { |
841 | filePara.channels = 1; | 841 | filePara.channels = 1; |
842 | } | 842 | } |
843 | 843 | ||
844 | compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1)); | 844 | compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1)); |
845 | if( compressionCheckBox->isChecked()) { | 845 | if( compressionCheckBox->isChecked()) { |
846 | bitRateComboBox->setEnabled(false); | 846 | bitRateComboBox->setEnabled(false); |
847 | bitRateComboBox->setCurrentItem(0); | 847 | bitRateComboBox->setCurrentItem(0); |
848 | filePara.resolution=16; | 848 | filePara.resolution=16; |
849 | } | 849 | } |
850 | 850 | ||
851 | autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0)); | 851 | autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0)); |
852 | if( autoMuteCheckBox->isChecked()) | 852 | if( autoMuteCheckBox->isChecked()) |
853 | slotAutoMute(true); | 853 | slotAutoMute(true); |
854 | else | 854 | else |
855 | slotAutoMute(false); | 855 | slotAutoMute(false); |
856 | 856 | ||
857 | Config cofg( "qpe"); | 857 | Config cofg( "qpe"); |
858 | cofg.setGroup( "Volume"); | 858 | cofg.setGroup( "Volume"); |
859 | outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0)); | 859 | outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0)); |
860 | inMuteCheckBox->setChecked( cofg.readBoolEntry( "MicMute",0)); | 860 | inMuteCheckBox->setChecked( cofg.readBoolEntry( "MicMute",0)); |
861 | } | 861 | } |
862 | 862 | ||
863 | void QtRec::stop() { | 863 | void QtRec::stop() { |
864 | qWarning("STOP"); | 864 | qWarning("STOP"); |
865 | setRecordButton(false); | 865 | setRecordButton(false); |
866 | 866 | ||
867 | if( !recording) | 867 | if( !recording) |
868 | endPlaying(); | 868 | endPlaying(); |
869 | else | 869 | else |
870 | endRecording(); | 870 | endRecording(); |
871 | timeSlider->setValue(0); | 871 | timeSlider->setValue(0); |
872 | } | 872 | } |
873 | 873 | ||
874 | void QtRec::doPlayBtn() { | 874 | void QtRec::doPlayBtn() { |
875 | 875 | ||
876 | if(!stopped) { | 876 | if(!stopped) { |
877 | playLabel2->setText(tr("Play")); | 877 | playLabel2->setText(tr("Play")); |
878 | stop(); | 878 | stop(); |
879 | } else { | 879 | } else { |
880 | if(ListView1->currentItem() == 0) return; | 880 | if(ListView1->currentItem() == 0) return; |
881 | playLabel2->setText(tr("Stop")); | 881 | playLabel2->setText(tr("Stop")); |
882 | currentFile = ListView1->currentItem()->text(0); | 882 | currentFile = ListView1->currentItem()->text(0); |
883 | start(); | 883 | start(); |
884 | } | 884 | } |
885 | } | 885 | } |
886 | 886 | ||
887 | void QtRec::start() { //play | 887 | void QtRec::start() { //play |
888 | if( stopped) { | 888 | if( stopped) { |
889 | QPixmap image3( ( const char** ) image3_data ); | 889 | QPixmap image3( ( const char** ) image3_data ); |
890 | Stop_PushButton->setPixmap( image3 ); | 890 | Stop_PushButton->setPixmap( image3 ); |
891 | Stop_PushButton->setDown( true); | 891 | Stop_PushButton->setDown( true); |
892 | stopped = false; | 892 | stopped = false; |
893 | paused = false; | 893 | paused = false; |
@@ -1563,193 +1563,193 @@ bool QtRec::openPlayFile() { | |||
1563 | if( cfg.readEntry( QString::number(i),"").find( currentFile,0,true) != -1) { | 1563 | if( cfg.readEntry( QString::number(i),"").find( currentFile,0,true) != -1) { |
1564 | currentFileName = cfg.readEntry( currentFile, "" ); | 1564 | currentFileName = cfg.readEntry( currentFile, "" ); |
1565 | qDebug("opening for play: " + currentFileName); | 1565 | qDebug("opening for play: " + currentFileName); |
1566 | } | 1566 | } |
1567 | } | 1567 | } |
1568 | wavFile = new WavFile(this, | 1568 | wavFile = new WavFile(this, |
1569 | currentFileName, | 1569 | currentFileName, |
1570 | false); | 1570 | false); |
1571 | filePara.fd = wavFile->wavHandle(); | 1571 | filePara.fd = wavFile->wavHandle(); |
1572 | if(filePara.fd == -1) { | 1572 | if(filePara.fd == -1) { |
1573 | // if(!track.open(IO_ReadOnly)) { | 1573 | // if(!track.open(IO_ReadOnly)) { |
1574 | QString errorMsg = (QString)strerror(errno); | 1574 | QString errorMsg = (QString)strerror(errno); |
1575 | monitoring = false; | 1575 | monitoring = false; |
1576 | setCaption( tr( "OpieRecord " ) + QString::number(VERSION) ); | 1576 | setCaption( tr( "OpieRecord " ) + QString::number(VERSION) ); |
1577 | QMessageBox::message(tr("Note"), tr("Could not open audio file.\n") | 1577 | QMessageBox::message(tr("Note"), tr("Could not open audio file.\n") |
1578 | + errorMsg + "\n" + currentFile); | 1578 | + errorMsg + "\n" + currentFile); |
1579 | return false; | 1579 | return false; |
1580 | } else { | 1580 | } else { |
1581 | 1581 | ||
1582 | filePara.numberSamples = wavFile->getNumberSamples(); | 1582 | filePara.numberSamples = wavFile->getNumberSamples(); |
1583 | filePara.format = wavFile->getFormat(); | 1583 | filePara.format = wavFile->getFormat(); |
1584 | filePara.sampleRate = wavFile->getSampleRate(); | 1584 | filePara.sampleRate = wavFile->getSampleRate(); |
1585 | filePara.resolution = wavFile->getResolution(); | 1585 | filePara.resolution = wavFile->getResolution(); |
1586 | filePara.channels = wavFile->getChannels(); | 1586 | filePara.channels = wavFile->getChannels(); |
1587 | timeSlider->setPageStep(1); | 1587 | timeSlider->setPageStep(1); |
1588 | monitoring = true; | 1588 | monitoring = true; |
1589 | 1589 | ||
1590 | qDebug("file %d, samples %d %d", filePara.fd, filePara.numberSamples, filePara.sampleRate); | 1590 | qDebug("file %d, samples %d %d", filePara.fd, filePara.numberSamples, filePara.sampleRate); |
1591 | int sec = (int) (( filePara.numberSamples / filePara.sampleRate) / filePara.channels) / ( filePara.channels*( filePara.resolution/8)); | 1591 | int sec = (int) (( filePara.numberSamples / filePara.sampleRate) / filePara.channels) / ( filePara.channels*( filePara.resolution/8)); |
1592 | 1592 | ||
1593 | qWarning("seconds %d", sec); | 1593 | qWarning("seconds %d", sec); |
1594 | 1594 | ||
1595 | timeSlider->setRange(0, filePara.numberSamples ); | 1595 | timeSlider->setRange(0, filePara.numberSamples ); |
1596 | } | 1596 | } |
1597 | 1597 | ||
1598 | return true; | 1598 | return true; |
1599 | } | 1599 | } |
1600 | 1600 | ||
1601 | void QtRec::listPressed( int mouse, QListViewItem *item, const QPoint &, int ) { | 1601 | void QtRec::listPressed( int mouse, QListViewItem *item, const QPoint &, int ) { |
1602 | if(item == NULL ) | 1602 | if(item == NULL ) |
1603 | return; | 1603 | return; |
1604 | switch (mouse) { | 1604 | switch (mouse) { |
1605 | case 1: { | 1605 | case 1: { |
1606 | if( renameBox != 0 ) //tricky | 1606 | if( renameBox != 0 ) //tricky |
1607 | cancelRename(); | 1607 | cancelRename(); |
1608 | 1608 | ||
1609 | currentFile = item->text(0); | 1609 | currentFile = item->text(0); |
1610 | setCaption( "OpieRecord " + currentFile); | 1610 | setCaption( "OpieRecord " + currentFile); |
1611 | } | 1611 | } |
1612 | break; | 1612 | break; |
1613 | case 2: | 1613 | case 2: |
1614 | showListMenu(item); | 1614 | showListMenu(item); |
1615 | ListView1->clearSelection(); | 1615 | ListView1->clearSelection(); |
1616 | break; | 1616 | break; |
1617 | }; | 1617 | }; |
1618 | } | 1618 | } |
1619 | 1619 | ||
1620 | void QtRec::showListMenu(QListViewItem * item) { | 1620 | void QtRec::showListMenu(QListViewItem * item) { |
1621 | if(item == NULL) | 1621 | if(item == NULL) |
1622 | return; | 1622 | return; |
1623 | QPopupMenu *m = new QPopupMenu(this); | 1623 | QPopupMenu *m = new QPopupMenu(this); |
1624 | m->insertItem( tr("Play"), this, SLOT( doMenuPlay() )); | 1624 | m->insertItem( tr("Play"), this, SLOT( doMenuPlay() )); |
1625 | if(Ir::supported()) m->insertItem( tr( "Send with Ir" ), this, SLOT( doBeam() )); | 1625 | if(Ir::supported()) m->insertItem( tr( "Send with Ir" ), this, SLOT( doBeam() )); |
1626 | m->insertItem( tr( "Rename" ), this, SLOT( doRename() )); | 1626 | m->insertItem( tr( "Rename" ), this, SLOT( doRename() )); |
1627 | // #if defined (QTOPIA_INTERNAL_FSLP) | 1627 | // #if defined (QTOPIA_INTERNAL_FSLP) |
1628 | // m->insertItem( tr( "Properties" ), this, SLOT( doProperties() )); | 1628 | // m->insertItem( tr( "Properties" ), this, SLOT( doProperties() )); |
1629 | // #endif | 1629 | // #endif |
1630 | m->insertSeparator(); | 1630 | m->insertSeparator(); |
1631 | m->insertItem( tr("Delete"), this, SLOT( deleteSound() ) ); | 1631 | m->insertItem( tr("Delete"), this, SLOT( deleteSound() ) ); |
1632 | m->exec( QCursor::pos() ); | 1632 | m->exec( QCursor::pos() ); |
1633 | qApp->processEvents(); | 1633 | qApp->processEvents(); |
1634 | } | 1634 | } |
1635 | 1635 | ||
1636 | void QtRec::fileBeamFinished( Ir *ir) { | 1636 | void QtRec::fileBeamFinished( Ir *ir) { |
1637 | if(ir) | 1637 | if(ir) |
1638 | QMessageBox::message( tr("Ir Beam out"), tr("Ir sent.") ,tr("Ok") ); | 1638 | QMessageBox::message( tr("Ir Beam out"), tr("Ir sent.") ,tr("Ok") ); |
1639 | 1639 | ||
1640 | } | 1640 | } |
1641 | 1641 | ||
1642 | void QtRec::doBeam() { | 1642 | void QtRec::doBeam() { |
1643 | qApp->processEvents(); | 1643 | qApp->processEvents(); |
1644 | if( ListView1->currentItem() == NULL) | 1644 | if( ListView1->currentItem() == NULL) |
1645 | return; | 1645 | return; |
1646 | Ir ir; | 1646 | Ir ir; |
1647 | if( ir.supported()) { | 1647 | if( ir.supported()) { |
1648 | QString file = ListView1->currentItem()->text(0); | 1648 | QString file = ListView1->currentItem()->text(0); |
1649 | Config cfg("OpieRec"); | 1649 | Config cfg("OpieRec"); |
1650 | cfg.setGroup("Sounds"); | 1650 | cfg.setGroup("Sounds"); |
1651 | 1651 | ||
1652 | int nFiles = cfg.readNumEntry("NumberofFiles",0); | 1652 | int nFiles = cfg.readNumEntry("NumberofFiles",0); |
1653 | 1653 | ||
1654 | for(int i=0;i<nFiles+1;i++) { | 1654 | for(int i=0;i<nFiles+1;i++) { |
1655 | if( cfg.readEntry( QString::number( i),"").find( file, 0, true) != -1) { | 1655 | if( cfg.readEntry( QString::number( i),"").find( file, 0, true) != -1) { |
1656 | QString filePath = cfg.readEntry(file,""); | 1656 | QString filePath = cfg.readEntry(file,""); |
1657 | Ir *file = new Ir(this, "IR"); | 1657 | Ir *file = new Ir(this, "IR"); |
1658 | connect( file, SIGNAL( done(Ir*)), | 1658 | connect( file, SIGNAL( done(Ir*)), |
1659 | this, SLOT( fileBeamFinished( Ir * ))); | 1659 | this, SLOT( fileBeamFinished(Ir*))); |
1660 | file->send( filePath, "OPieRec audio file\n" + filePath ); | 1660 | file->send( filePath, "OPieRec audio file\n" + filePath ); |
1661 | } | 1661 | } |
1662 | } | 1662 | } |
1663 | } | 1663 | } |
1664 | } | 1664 | } |
1665 | 1665 | ||
1666 | void QtRec::doMenuPlay() { | 1666 | void QtRec::doMenuPlay() { |
1667 | qApp->processEvents(); | 1667 | qApp->processEvents(); |
1668 | currentFile = ListView1->currentItem()->text(0); | 1668 | currentFile = ListView1->currentItem()->text(0); |
1669 | } | 1669 | } |
1670 | 1670 | ||
1671 | void QtRec::doRename() { | 1671 | void QtRec::doRename() { |
1672 | QRect r = ListView1->itemRect( ListView1->currentItem( )); | 1672 | QRect r = ListView1->itemRect( ListView1->currentItem( )); |
1673 | r = QRect( ListView1->viewportToContents( r.topLeft() ), r.size() ); | 1673 | r = QRect( ListView1->viewportToContents( r.topLeft() ), r.size() ); |
1674 | r.setX( ListView1->contentsX() ); | 1674 | r.setX( ListView1->contentsX() ); |
1675 | if ( r.width() > ListView1->visibleWidth() ) | 1675 | if ( r.width() > ListView1->visibleWidth() ) |
1676 | r.setWidth( ListView1->visibleWidth() ); | 1676 | r.setWidth( ListView1->visibleWidth() ); |
1677 | 1677 | ||
1678 | renameBox = new QLineEdit( ListView1->viewport(), "qt_renamebox" ); | 1678 | renameBox = new QLineEdit( ListView1->viewport(), "qt_renamebox" ); |
1679 | renameBox->setFrame(true); | 1679 | renameBox->setFrame(true); |
1680 | 1680 | ||
1681 | renameBox->setText( ListView1->currentItem()->text(0) ); | 1681 | renameBox->setText( ListView1->currentItem()->text(0) ); |
1682 | 1682 | ||
1683 | renameBox->selectAll(); | 1683 | renameBox->selectAll(); |
1684 | renameBox->installEventFilter( this ); | 1684 | renameBox->installEventFilter( this ); |
1685 | ListView1->addChild( renameBox, r.x(), r.y() ); | 1685 | ListView1->addChild( renameBox, r.x(), r.y() ); |
1686 | renameBox->resize( r.size() ); | 1686 | renameBox->resize( r.size() ); |
1687 | ListView1->viewport()->setFocusProxy( renameBox ); | 1687 | ListView1->viewport()->setFocusProxy( renameBox ); |
1688 | renameBox->setFocus(); | 1688 | renameBox->setFocus(); |
1689 | renameBox->show(); | 1689 | renameBox->show(); |
1690 | 1690 | ||
1691 | } | 1691 | } |
1692 | 1692 | ||
1693 | void QtRec::okRename() { | 1693 | void QtRec::okRename() { |
1694 | qDebug(renameBox->text()); | 1694 | qDebug(renameBox->text()); |
1695 | QString filename = renameBox->text(); | 1695 | QString filename = renameBox->text(); |
1696 | cancelRename(); | 1696 | cancelRename(); |
1697 | 1697 | ||
1698 | if( ListView1->currentItem() == NULL) | 1698 | if( ListView1->currentItem() == NULL) |
1699 | return; | 1699 | return; |
1700 | 1700 | ||
1701 | Config cfg("OpieRec"); | 1701 | Config cfg("OpieRec"); |
1702 | cfg.setGroup("Sounds"); | 1702 | cfg.setGroup("Sounds"); |
1703 | 1703 | ||
1704 | QString file = ListView1->currentItem()->text(0); | 1704 | QString file = ListView1->currentItem()->text(0); |
1705 | 1705 | ||
1706 | qDebug("filename is " + filename); | 1706 | qDebug("filename is " + filename); |
1707 | 1707 | ||
1708 | int nFiles = cfg.readNumEntry("NumberofFiles",0); | 1708 | int nFiles = cfg.readNumEntry("NumberofFiles",0); |
1709 | 1709 | ||
1710 | for(int i=0;i<nFiles+1;i++) { //look for file | 1710 | for(int i=0;i<nFiles+1;i++) { //look for file |
1711 | if( cfg.readEntry( QString::number(i),"").find(file,0,true) != -1) { | 1711 | if( cfg.readEntry( QString::number(i),"").find(file,0,true) != -1) { |
1712 | 1712 | ||
1713 | QString filePath = cfg.readEntry(file,""); | 1713 | QString filePath = cfg.readEntry(file,""); |
1714 | 1714 | ||
1715 | cfg.writeEntry( QString::number(i), filename ); | 1715 | cfg.writeEntry( QString::number(i), filename ); |
1716 | cfg.writeEntry( filename, filePath ); | 1716 | cfg.writeEntry( filename, filePath ); |
1717 | cfg.removeEntry( file); | 1717 | cfg.removeEntry( file); |
1718 | cfg.write(); | 1718 | cfg.write(); |
1719 | } | 1719 | } |
1720 | } | 1720 | } |
1721 | 1721 | ||
1722 | ListView1->takeItem( ListView1->currentItem() ); | 1722 | ListView1->takeItem( ListView1->currentItem() ); |
1723 | delete ListView1->currentItem(); | 1723 | delete ListView1->currentItem(); |
1724 | ListView1->clear(); | 1724 | ListView1->clear(); |
1725 | initIconView(); | 1725 | initIconView(); |
1726 | update(); | 1726 | update(); |
1727 | } | 1727 | } |
1728 | 1728 | ||
1729 | void QtRec::cancelRename() { | 1729 | void QtRec::cancelRename() { |
1730 | bool resetFocus = ListView1->viewport()->focusProxy() == renameBox; | 1730 | bool resetFocus = ListView1->viewport()->focusProxy() == renameBox; |
1731 | delete renameBox; | 1731 | delete renameBox; |
1732 | renameBox = 0; | 1732 | renameBox = 0; |
1733 | if ( resetFocus ) { | 1733 | if ( resetFocus ) { |
1734 | ListView1->viewport()->setFocusProxy( ListView1 ); | 1734 | ListView1->viewport()->setFocusProxy( ListView1 ); |
1735 | ListView1->setFocus(); | 1735 | ListView1->setFocus(); |
1736 | } | 1736 | } |
1737 | } | 1737 | } |
1738 | 1738 | ||
1739 | bool QtRec::eventFilter( QObject * o, QEvent * e ) { | 1739 | bool QtRec::eventFilter( QObject * o, QEvent * e ) { |
1740 | if ( o->inherits( "QLineEdit" ) ) { | 1740 | if ( o->inherits( "QLineEdit" ) ) { |
1741 | if ( e->type() == QEvent::KeyPress ) { | 1741 | if ( e->type() == QEvent::KeyPress ) { |
1742 | QKeyEvent *ke = (QKeyEvent*)e; | 1742 | QKeyEvent *ke = (QKeyEvent*)e; |
1743 | if ( ke->key() == Key_Return || | 1743 | if ( ke->key() == Key_Return || |
1744 | ke->key() == Key_Enter ) { | 1744 | ke->key() == Key_Enter ) { |
1745 | okRename(); | 1745 | okRename(); |
1746 | return true; | 1746 | return true; |
1747 | } else if ( ke->key() == Key_Escape ) { | 1747 | } else if ( ke->key() == Key_Escape ) { |
1748 | cancelRename(); | 1748 | cancelRename(); |
1749 | return true; | 1749 | return true; |
1750 | } | 1750 | } |
1751 | } else if ( e->type() == QEvent::FocusOut ) { | 1751 | } else if ( e->type() == QEvent::FocusOut ) { |
1752 | cancelRename(); | 1752 | cancelRename(); |
1753 | return true; | 1753 | return true; |
1754 | } | 1754 | } |
1755 | } | 1755 | } |
diff --git a/noncore/multimedia/powerchord/powerchordbase.cpp b/noncore/multimedia/powerchord/powerchordbase.cpp index 0b97984..7978426 100644 --- a/noncore/multimedia/powerchord/powerchordbase.cpp +++ b/noncore/multimedia/powerchord/powerchordbase.cpp | |||
@@ -291,199 +291,199 @@ PowerchordBase::PowerchordBase( QWidget* parent, const char* name, WFlags fl ) | |||
291 | tabs->insertTab( tab_2, tr( "Options" ) ); | 291 | tabs->insertTab( tab_2, tr( "Options" ) ); |
292 | 292 | ||
293 | Tuner = new QWidget( tabs, "Tuner" ); | 293 | Tuner = new QWidget( tabs, "Tuner" ); |
294 | 294 | ||
295 | Frame4 = new QFrame( Tuner, "Frame4" ); | 295 | Frame4 = new QFrame( Tuner, "Frame4" ); |
296 | Frame4->setGeometry( QRect( 0, 0, 230, 126 ) ); | 296 | Frame4->setGeometry( QRect( 0, 0, 230, 126 ) ); |
297 | Frame4->setFrameShape( QFrame::Box ); | 297 | Frame4->setFrameShape( QFrame::Box ); |
298 | Frame4->setFrameShadow( QFrame::Raised ); | 298 | Frame4->setFrameShadow( QFrame::Raised ); |
299 | 299 | ||
300 | vu = new VUMeter( Frame4, "vu" ); | 300 | vu = new VUMeter( Frame4, "vu" ); |
301 | vu->setGeometry( QRect( 5, 5, 220, 115 ) ); | 301 | vu->setGeometry( QRect( 5, 5, 220, 115 ) ); |
302 | 302 | ||
303 | tuner_note = new QComboBox( FALSE, Tuner, "tuner_note" ); | 303 | tuner_note = new QComboBox( FALSE, Tuner, "tuner_note" ); |
304 | tuner_note->insertItem( tr( "auto" ) ); | 304 | tuner_note->insertItem( tr( "auto" ) ); |
305 | tuner_note->insertItem( tr( "E" ) ); | 305 | tuner_note->insertItem( tr( "E" ) ); |
306 | tuner_note->insertItem( tr( "D" ) ); | 306 | tuner_note->insertItem( tr( "D" ) ); |
307 | tuner_note->insertItem( tr( "G" ) ); | 307 | tuner_note->insertItem( tr( "G" ) ); |
308 | tuner_note->insertItem( tr( "A" ) ); | 308 | tuner_note->insertItem( tr( "A" ) ); |
309 | tuner_note->insertItem( tr( "B" ) ); | 309 | tuner_note->insertItem( tr( "B" ) ); |
310 | tuner_note->insertItem( tr( "C" ) ); | 310 | tuner_note->insertItem( tr( "C" ) ); |
311 | tuner_note->insertItem( tr( "F" ) ); | 311 | tuner_note->insertItem( tr( "F" ) ); |
312 | tuner_note->setGeometry( QRect( 5, 160, 90, 20 ) ); | 312 | tuner_note->setGeometry( QRect( 5, 160, 90, 20 ) ); |
313 | 313 | ||
314 | Frame8 = new QFrame( Tuner, "Frame8" ); | 314 | Frame8 = new QFrame( Tuner, "Frame8" ); |
315 | Frame8->setGeometry( QRect( -2, 188, 231, 10 ) ); | 315 | Frame8->setGeometry( QRect( -2, 188, 231, 10 ) ); |
316 | Frame8->setFrameShape( QFrame::HLine ); | 316 | Frame8->setFrameShape( QFrame::HLine ); |
317 | Frame8->setFrameShadow( QFrame::Raised ); | 317 | Frame8->setFrameShadow( QFrame::Raised ); |
318 | 318 | ||
319 | tuner_start = new QPushButton( Tuner, "tuner_start" ); | 319 | tuner_start = new QPushButton( Tuner, "tuner_start" ); |
320 | tuner_start->setGeometry( QRect( 100, 155, 91, 30 ) ); | 320 | tuner_start->setGeometry( QRect( 100, 155, 91, 30 ) ); |
321 | tuner_start->setText( tr( "Start" ) ); | 321 | tuner_start->setText( tr( "Start" ) ); |
322 | 322 | ||
323 | tuner_lab1 = new QLabel( Tuner, "tuner_lab1" ); | 323 | tuner_lab1 = new QLabel( Tuner, "tuner_lab1" ); |
324 | tuner_lab1->setGeometry( QRect( 10, 130, 100, 21 ) ); | 324 | tuner_lab1->setGeometry( QRect( 10, 130, 100, 21 ) ); |
325 | tuner_lab1->setText( tr( "Tuner operation" ) ); | 325 | tuner_lab1->setText( tr( "Tuner operation" ) ); |
326 | 326 | ||
327 | tuner_lab2 = new QLabel( Tuner, "tuner_lab2" ); | 327 | tuner_lab2 = new QLabel( Tuner, "tuner_lab2" ); |
328 | tuner_lab2->setGeometry( QRect( 10, 200, 100, 16 ) ); | 328 | tuner_lab2->setGeometry( QRect( 10, 200, 100, 16 ) ); |
329 | tuner_lab2->setText( tr( "Pitch calibration" ) ); | 329 | tuner_lab2->setText( tr( "Pitch calibration" ) ); |
330 | 330 | ||
331 | tuner_calib_note = new QComboBox( FALSE, Tuner, "tuner_calib_note" ); | 331 | tuner_calib_note = new QComboBox( FALSE, Tuner, "tuner_calib_note" ); |
332 | tuner_calib_note->insertItem( tr( "A" ) ); | 332 | tuner_calib_note->insertItem( tr( "A" ) ); |
333 | tuner_calib_note->insertItem( tr( "C" ) ); | 333 | tuner_calib_note->insertItem( tr( "C" ) ); |
334 | tuner_calib_note->setGeometry( QRect( 5, 225, 90, 21 ) ); | 334 | tuner_calib_note->setGeometry( QRect( 5, 225, 90, 21 ) ); |
335 | 335 | ||
336 | tuner_calib_freq = new QSpinBox( Tuner, "tuner_calib_freq" ); | 336 | tuner_calib_freq = new QSpinBox( Tuner, "tuner_calib_freq" ); |
337 | tuner_calib_freq->setGeometry( QRect( 105, 225, 71, 21 ) ); | 337 | tuner_calib_freq->setGeometry( QRect( 105, 225, 71, 21 ) ); |
338 | tuner_calib_freq->setSuffix( tr( "Hz" ) ); | 338 | tuner_calib_freq->setSuffix( tr( "Hz" ) ); |
339 | tuner_calib_freq->setWrapping( TRUE ); | 339 | tuner_calib_freq->setWrapping( TRUE ); |
340 | tuner_calib_freq->setMaxValue( 500 ); | 340 | tuner_calib_freq->setMaxValue( 500 ); |
341 | tuner_calib_freq->setMinValue( 300 ); | 341 | tuner_calib_freq->setMinValue( 300 ); |
342 | tuner_calib_freq->setValue( 440 ); | 342 | tuner_calib_freq->setValue( 440 ); |
343 | 343 | ||
344 | tuner_lab3 = new QLabel( Tuner, "tuner_lab3" ); | 344 | tuner_lab3 = new QLabel( Tuner, "tuner_lab3" ); |
345 | tuner_lab3->setGeometry( QRect( 185, 225, 40, 21 ) ); | 345 | tuner_lab3->setGeometry( QRect( 185, 225, 40, 21 ) ); |
346 | tuner_lab3->setText( tr( "Pitch" ) ); | 346 | tuner_lab3->setText( tr( "Pitch" ) ); |
347 | 347 | ||
348 | tuner_pic1 = new QLabel( Tuner, "tuner_pic1" ); | 348 | tuner_pic1 = new QLabel( Tuner, "tuner_pic1" ); |
349 | tuner_pic1->setGeometry( QRect( 195, 155, 31, 31 ) ); | 349 | tuner_pic1->setGeometry( QRect( 195, 155, 31, 31 ) ); |
350 | tuner_pic1->setFrameShape( QLabel::NoFrame ); | 350 | tuner_pic1->setFrameShape( QLabel::NoFrame ); |
351 | tuner_pic1->setPixmap( image6 ); | 351 | tuner_pic1->setPixmap( image6 ); |
352 | tuner_pic1->setScaledContents( TRUE ); | 352 | tuner_pic1->setScaledContents( TRUE ); |
353 | tabs->insertTab( Tuner, tr( "Tuner" ) ); | 353 | tabs->insertTab( Tuner, tr( "Tuner" ) ); |
354 | 354 | ||
355 | tab_3 = new QWidget( tabs, "tab_3" ); | 355 | tab_3 = new QWidget( tabs, "tab_3" ); |
356 | 356 | ||
357 | chordlistlab1 = new QLabel( tab_3, "chordlistlab1" ); | 357 | chordlistlab1 = new QLabel( tab_3, "chordlistlab1" ); |
358 | chordlistlab1->setGeometry( QRect( 5, 5, 216, 16 ) ); | 358 | chordlistlab1->setGeometry( QRect( 5, 5, 216, 16 ) ); |
359 | chordlistlab1->setText( tr( "Chord list" ) ); | 359 | chordlistlab1->setText( tr( "Chord list" ) ); |
360 | 360 | ||
361 | chordlist = new QListBox( tab_3, "chordlist" ); | 361 | chordlist = new QListBox( tab_3, "chordlist" ); |
362 | chordlist->setGeometry( QRect( 5, 25, 220, 200 ) ); | 362 | chordlist->setGeometry( QRect( 5, 25, 220, 200 ) ); |
363 | 363 | ||
364 | list_remove_btn = new QPushButton( tab_3, "list_remove_btn" ); | 364 | list_remove_btn = new QPushButton( tab_3, "list_remove_btn" ); |
365 | list_remove_btn->setGeometry( QRect( 150, 230, 71, 25 ) ); | 365 | list_remove_btn->setGeometry( QRect( 150, 230, 71, 25 ) ); |
366 | list_remove_btn->setText( tr( "Remove" ) ); | 366 | list_remove_btn->setText( tr( "Remove" ) ); |
367 | tabs->insertTab( tab_3, tr( "Chords" ) ); | 367 | tabs->insertTab( tab_3, tr( "Chords" ) ); |
368 | 368 | ||
369 | // hope this does what it's supposed to!! | 369 | // hope this does what it's supposed to!! |
370 | // setPalette( QPalette( QColor( 232, 227, 215) ) ); | 370 | // setPalette( QPalette( QColor( 232, 227, 215) ) ); |
371 | 371 | ||
372 | // signals and slots connections | 372 | // signals and slots connections |
373 | 373 | ||
374 | //cxm | 374 | //cxm |
375 | connect( tuning, SIGNAL( activated(int) ), frets, SLOT( Tune(int) ) ); | 375 | connect( tuning, SIGNAL( activated(int) ), frets, SLOT( Tune(int) ) ); |
376 | connect( span, SIGNAL( activated(int) ), frets, SLOT( Span(int) ) ); | 376 | connect( span, SIGNAL( activated(int) ), frets, SLOT( Span(int) ) ); |
377 | connect( transport_rec, SIGNAL( clicked() ), this, SLOT( transport_rec_cb() )); | 377 | connect( transport_rec, SIGNAL( clicked() ), this, SLOT( transport_rec_cb() )); |
378 | connect( play_sound, SIGNAL( clicked() ), this, SLOT( play_chord_cb() )); | 378 | connect( play_sound, SIGNAL( clicked() ), this, SLOT( play_chord_cb() )); |
379 | connect( tuner_start, SIGNAL( clicked() ), this, SLOT( tuner_start_cb() )); | 379 | connect( tuner_start, SIGNAL( clicked() ), this, SLOT( tuner_start_cb() )); |
380 | connect( tuner_note, SIGNAL( textChanged(const QString&) ), vu, SLOT( AnnotL(const QString&) )); | 380 | connect( tuner_note, SIGNAL( textChanged(const QString&) ), vu, SLOT( AnnotL(const QString&) )); |
381 | connect( this, SIGNAL( frequency_change(int) ), vu, SLOT( Value(int) )); | 381 | connect( this, SIGNAL( frequency_change(int) ), vu, SLOT( Value(int) )); |
382 | 382 | ||
383 | connect( chordnote, SIGNAL( activated(int) ), frets, SLOT( Base(int) ) ); | 383 | connect( chordnote, SIGNAL( activated(int) ), frets, SLOT( Base(int) ) ); |
384 | connect( chordkey, SIGNAL( activated(int) ), frets, SLOT( Chord(int) ) ); | 384 | connect( chordkey, SIGNAL( activated(int) ), frets, SLOT( Chord(int) ) ); |
385 | connect( chordfret, SIGNAL( activated(int) ), frets, SLOT( Fret(int) ) ); | 385 | connect( chordfret, SIGNAL( activated(int) ), frets, SLOT( Fret(int) ) ); |
386 | connect( list_remove_btn, SIGNAL( clicked() ), this, SLOT( list_remove_cb() ) ); | 386 | connect( list_remove_btn, SIGNAL( clicked() ), this, SLOT( list_remove_cb() ) ); |
387 | connect( frets, SIGNAL( s1nameChanged(const QString &) ), s1_1, SLOT( setText(const QString&) ) ); | 387 | connect( frets, SIGNAL( s1nameChanged(const QString&) ), s1_1, SLOT( setText(const QString&) ) ); |
388 | connect( frets, SIGNAL( s2nameChanged(const QString &) ), s1_2, SLOT( setText(const QString&) ) ); | 388 | connect( frets, SIGNAL( s2nameChanged(const QString&) ), s1_2, SLOT( setText(const QString&) ) ); |
389 | connect( frets, SIGNAL( s3nameChanged(const QString &) ), s1_3, SLOT( setText(const QString&) ) ); | 389 | connect( frets, SIGNAL( s3nameChanged(const QString&) ), s1_3, SLOT( setText(const QString&) ) ); |
390 | connect( frets, SIGNAL( s4nameChanged(const QString &) ), s1_4, SLOT( setText(const QString&) ) ); | 390 | connect( frets, SIGNAL( s4nameChanged(const QString&) ), s1_4, SLOT( setText(const QString&) ) ); |
391 | connect( frets, SIGNAL( s5nameChanged(const QString &) ), s1_5, SLOT( setText(const QString&) ) ); | 391 | connect( frets, SIGNAL( s5nameChanged(const QString&) ), s1_5, SLOT( setText(const QString&) ) ); |
392 | connect( frets, SIGNAL( s6nameChanged(const QString &) ), s1_6, SLOT( setText(const QString&) ) ); | 392 | connect( frets, SIGNAL( s6nameChanged(const QString&) ), s1_6, SLOT( setText(const QString&) ) ); |
393 | connect( frets, SIGNAL( nameChanged(const QString &) ), chordname, SLOT( setText(const QString&) ) ); | 393 | connect( frets, SIGNAL( nameChanged(const QString&) ), chordname, SLOT( setText(const QString&) ) ); |
394 | } | 394 | } |
395 | 395 | ||
396 | 396 | ||
397 | static int known=0; | 397 | static int known=0; |
398 | #include <qmessagebox.h> | 398 | #include <qmessagebox.h> |
399 | void PowerchordBase::transport_rec_cb(){ | 399 | void PowerchordBase::transport_rec_cb(){ |
400 | chordlist->insertItem(chordname->text(),-1); | 400 | chordlist->insertItem(chordname->text(),-1); |
401 | if (!known){ | 401 | if (!known){ |
402 | QMessageBox::information(this, "Powerchord", "This chord has been saved\ninto the list of chords,\nfor later playback."); | 402 | QMessageBox::information(this, "Powerchord", "This chord has been saved\ninto the list of chords,\nfor later playback."); |
403 | known = 1; | 403 | known = 1; |
404 | } | 404 | } |
405 | } | 405 | } |
406 | void PowerchordBase::list_remove_cb(){ | 406 | void PowerchordBase::list_remove_cb(){ |
407 | if (chordlist->count() > 0){ | 407 | if (chordlist->count() > 0){ |
408 | chordlist->removeItem(0); | 408 | chordlist->removeItem(0); |
409 | } | 409 | } |
410 | } | 410 | } |
411 | void PowerchordBase::play_chord_cb(){ | 411 | void PowerchordBase::play_chord_cb(){ |
412 | // QMessageBox::information(this, "Coming soon!", "This button plays\nthe chord by synthesizing\nthe sound of the notes."); | 412 | // QMessageBox::information(this, "Coming soon!", "This button plays\nthe chord by synthesizing\nthe sound of the notes."); |
413 | 413 | ||
414 | 414 | ||
415 | if (audio_timer){ | 415 | if (audio_timer){ |
416 | audio_timer->stop(); | 416 | audio_timer->stop(); |
417 | // set pixmap? | 417 | // set pixmap? |
418 | synth->Stop(); | 418 | synth->Stop(); |
419 | delete(audio_timer); | 419 | delete(audio_timer); |
420 | audio_timer = 0; | 420 | audio_timer = 0; |
421 | }else{ | 421 | }else{ |
422 | // get notes from chord engine | 422 | // get notes from chord engine |
423 | 423 | ||
424 | int note; | 424 | int note; |
425 | int base; | 425 | int base; |
426 | int octave; | 426 | int octave; |
427 | note = frets->ce.noteindex(0); | 427 | note = frets->ce.noteindex(0); |
428 | if (note >= 0){ | 428 | if (note >= 0){ |
429 | //fprintf(stderr, "Note was %d\n", note); | 429 | //fprintf(stderr, "Note was %d\n", note); |
430 | base = note % 12; | 430 | base = note % 12; |
431 | octave = note / 12; | 431 | octave = note / 12; |
432 | synth->note_start(0, base, octave); | 432 | synth->note_start(0, base, octave); |
433 | }else{ | 433 | }else{ |
434 | // subtle bug here - replay second note if 1st one muted | 434 | // subtle bug here - replay second note if 1st one muted |
435 | note = frets->ce.noteindex(1); | 435 | note = frets->ce.noteindex(1); |
436 | base = note % 12; | 436 | base = note % 12; |
437 | octave = note / 12; | 437 | octave = note / 12; |
438 | synth->note_start(1, base, octave); | 438 | synth->note_start(1, base, octave); |
439 | 439 | ||
440 | } | 440 | } |
441 | 441 | ||
442 | // init synth | 442 | // init synth |
443 | if (synth->Play()){ | 443 | if (synth->Play()){ |
444 | // error | 444 | // error |
445 | QMessageBox::information(this, "Powerchord", "Unable to open device for sound playback - check that no other application is using it."); | 445 | QMessageBox::information(this, "Powerchord", "Unable to open device for sound playback - check that no other application is using it."); |
446 | return; | 446 | return; |
447 | } | 447 | } |
448 | synth->fill_buffer(); | 448 | synth->fill_buffer(); |
449 | 449 | ||
450 | // start timer | 450 | // start timer |
451 | audio_timer = new QTimer(); | 451 | audio_timer = new QTimer(); |
452 | connect(audio_timer, SIGNAL( timeout() ), this, SLOT( audio_cb() )); | 452 | connect(audio_timer, SIGNAL( timeout() ), this, SLOT( audio_cb() )); |
453 | // set pixmap on player? | 453 | // set pixmap on player? |
454 | audio_timer->start(19); // 19 msec (fudge factor!!) | 454 | audio_timer->start(19); // 19 msec (fudge factor!!) |
455 | } | 455 | } |
456 | } | 456 | } |
457 | 457 | ||
458 | 458 | ||
459 | 459 | ||
460 | void PowerchordBase::audio_cb(){ | 460 | void PowerchordBase::audio_cb(){ |
461 | // play the next bit of audio until quiet | 461 | // play the next bit of audio until quiet |
462 | 462 | ||
463 | // strum timing | 463 | // strum timing |
464 | #define INTERVAL 2 | 464 | #define INTERVAL 2 |
465 | 465 | ||
466 | if ((synth->Frames() % INTERVAL) == 0){ | 466 | if ((synth->Frames() % INTERVAL) == 0){ |
467 | int string = synth->Frames() / INTERVAL; | 467 | int string = synth->Frames() / INTERVAL; |
468 | if (string <= 5){ | 468 | if (string <= 5){ |
469 | int note; | 469 | int note; |
470 | int base; | 470 | int base; |
471 | int octave; | 471 | int octave; |
472 | note = frets->ce.noteindex(string); | 472 | note = frets->ce.noteindex(string); |
473 | // check not muted... | 473 | // check not muted... |
474 | if (note > 0){ | 474 | if (note > 0){ |
475 | base = note % 12; | 475 | base = note % 12; |
476 | octave = note / 12; | 476 | octave = note / 12; |
477 | synth->note_start(string, base, octave); | 477 | synth->note_start(string, base, octave); |
478 | } | 478 | } |
479 | } | 479 | } |
480 | } | 480 | } |
481 | 481 | ||
482 | if (synth->Playing()){ | 482 | if (synth->Playing()){ |
483 | synth->write_buffer(); | 483 | synth->write_buffer(); |
484 | synth->fill_buffer(); | 484 | synth->fill_buffer(); |
485 | }else{ | 485 | }else{ |
486 | audio_timer->stop(); | 486 | audio_timer->stop(); |
487 | // set pixmap? | 487 | // set pixmap? |
488 | synth->Stop(); | 488 | synth->Stop(); |
489 | delete(audio_timer); | 489 | delete(audio_timer); |
diff --git a/noncore/multimedia/showimg/ImageFileSelector.cpp b/noncore/multimedia/showimg/ImageFileSelector.cpp index 7872c09..d2b65a9 100644 --- a/noncore/multimedia/showimg/ImageFileSelector.cpp +++ b/noncore/multimedia/showimg/ImageFileSelector.cpp | |||
@@ -6,266 +6,266 @@ | |||
6 | #include "qpe/applnk.h" | 6 | #include "qpe/applnk.h" |
7 | #include "qpe/qpeapplication.h" | 7 | #include "qpe/qpeapplication.h" |
8 | 8 | ||
9 | #include <stdlib.h> | 9 | #include <stdlib.h> |
10 | 10 | ||
11 | #include <qdir.h> | 11 | #include <qdir.h> |
12 | #include <qwidget.h> | 12 | #include <qwidget.h> |
13 | #include <qheader.h> | 13 | #include <qheader.h> |
14 | #include <qimage.h> | 14 | #include <qimage.h> |
15 | #include <qpixmap.h> | 15 | #include <qpixmap.h> |
16 | #include <qlabel.h> | 16 | #include <qlabel.h> |
17 | #include <qfileinfo.h> | 17 | #include <qfileinfo.h> |
18 | #include <qpainter.h> | 18 | #include <qpainter.h> |
19 | #include <qscrollview.h> | 19 | #include <qscrollview.h> |
20 | 20 | ||
21 | #include "ImageFileSelector.h" | 21 | #include "ImageFileSelector.h" |
22 | 22 | ||
23 | 23 | ||
24 | ThumbWidget::ThumbWidget(QPixmap p,QString text,const DocLnk& f,QWidget *parent,int w) | 24 | ThumbWidget::ThumbWidget(QPixmap p,QString text,const DocLnk& f,QWidget *parent,int w) |
25 | : QWidget( parent ),fl(f) | 25 | : QWidget( parent ),fl(f) |
26 | { | 26 | { |
27 | setBackgroundMode(NoBackground); | 27 | setBackgroundMode(NoBackground); |
28 | if ( w!=-1 ) | 28 | if ( w!=-1 ) |
29 | setMinimumSize(w,p.height()+24); | 29 | setMinimumSize(w,p.height()+24); |
30 | else | 30 | else |
31 | setMinimumSize(p.width(),p.height()+24); | 31 | setMinimumSize(p.width(),p.height()+24); |
32 | description=new QLabel(text,this); | 32 | description=new QLabel(text,this); |
33 | description->setBackgroundColor(colorGroup().base()); | 33 | description->setBackgroundColor(colorGroup().base()); |
34 | description->setAlignment(AlignCenter); | 34 | description->setAlignment(AlignCenter); |
35 | description->setGeometry(0,height()-24,width(),24); | 35 | description->setGeometry(0,height()-24,width(),24); |
36 | pixmap=p; | 36 | pixmap=p; |
37 | } | 37 | } |
38 | 38 | ||
39 | void ThumbWidget::resizeEvent(QResizeEvent *) | 39 | void ThumbWidget::resizeEvent(QResizeEvent *) |
40 | { | 40 | { |
41 | description->setGeometry(0,height()-24,width(),24); | 41 | description->setGeometry(0,height()-24,width(),24); |
42 | } | 42 | } |
43 | 43 | ||
44 | void ThumbWidget::paintEvent( QPaintEvent *e ) | 44 | void ThumbWidget::paintEvent( QPaintEvent *e ) |
45 | { | 45 | { |
46 | QPainter painter(this); | 46 | QPainter painter(this); |
47 | 47 | ||
48 | painter.setClipRect(e->rect()); | 48 | painter.setClipRect(e->rect()); |
49 | painter.fillRect(0,0,width(),height(),QColor(255,255,255)); | 49 | painter.fillRect(0,0,width(),height(),QColor(255,255,255)); |
50 | painter.drawPixmap((width() - pixmap.width()) / 2,0, pixmap); | 50 | painter.drawPixmap((width() - pixmap.width()) / 2,0, pixmap); |
51 | 51 | ||
52 | } | 52 | } |
53 | 53 | ||
54 | void ThumbWidget::mouseReleaseEvent(QMouseEvent* ) | 54 | void ThumbWidget::mouseReleaseEvent(QMouseEvent* ) |
55 | { | 55 | { |
56 | emit clicked(fl); | 56 | emit clicked(fl); |
57 | } | 57 | } |
58 | 58 | ||
59 | 59 | ||
60 | 60 | ||
61 | ImageFileSelectorItem::ImageFileSelectorItem( QListView *parent, const DocLnk &f) | 61 | ImageFileSelectorItem::ImageFileSelectorItem( QListView *parent, const DocLnk &f) |
62 | : QListViewItem( parent ), fl( f ) | 62 | : QListViewItem( parent ), fl( f ) |
63 | { | 63 | { |
64 | setText( 0, f.name() ); | 64 | setText( 0, f.name() ); |
65 | QFileInfo fi(f.file()); | 65 | QFileInfo fi(f.file()); |
66 | setText( 1, (fi.extension()).upper() ); | 66 | setText( 1, (fi.extension()).upper() ); |
67 | setPixmap( 0, f.pixmap() ); | 67 | setPixmap( 0, f.pixmap() ); |
68 | 68 | ||
69 | 69 | ||
70 | } | 70 | } |
71 | 71 | ||
72 | 72 | ||
73 | ImageFileSelectorItem::~ImageFileSelectorItem() | 73 | ImageFileSelectorItem::~ImageFileSelectorItem() |
74 | { | 74 | { |
75 | 75 | ||
76 | } | 76 | } |
77 | 77 | ||
78 | 78 | ||
79 | ImageFileSelector::ImageFileSelector( CURRENT_VIEW scv,QWidget *parent,const char * ) | 79 | ImageFileSelector::ImageFileSelector( CURRENT_VIEW scv,QWidget *parent,const char * ) |
80 | : QWidgetStack(parent) | 80 | : QWidgetStack(parent) |
81 | { | 81 | { |
82 | 82 | ||
83 | detailed=new QListView(this); | 83 | detailed=new QListView(this); |
84 | 84 | ||
85 | detailed->addColumn (tr("Title")); | 85 | detailed->addColumn (tr("Title")); |
86 | detailed->addColumn (tr("Type")); | 86 | detailed->addColumn (tr("Type")); |
87 | detailed->setAllColumnsShowFocus( true ); | 87 | detailed->setAllColumnsShowFocus( true ); |
88 | 88 | ||
89 | tList.setAutoDelete(true); | 89 | tList.setAutoDelete(true); |
90 | 90 | ||
91 | thumb =new QScrollView(this); | 91 | thumb =new QScrollView(this); |
92 | thumb->setVScrollBarMode (QScrollView::Auto ); | 92 | thumb->setVScrollBarMode (QScrollView::Auto ); |
93 | thumb->viewport()->setBackgroundColor(colorGroup().base()); | 93 | thumb->viewport()->setBackgroundColor(colorGroup().base()); |
94 | 94 | ||
95 | background=new QWidget(0); | 95 | background=new QWidget(0); |
96 | background->setBackgroundColor(colorGroup().base()); | 96 | background->setBackgroundColor(colorGroup().base()); |
97 | thumb->addChild(background); | 97 | thumb->addChild(background); |
98 | gl = new QGridLayout(background,1,2,4,4); | 98 | gl = new QGridLayout(background,1,2,4,4); |
99 | 99 | ||
100 | 100 | ||
101 | 101 | ||
102 | connect( detailed, SIGNAL( mouseButtonClicked( int, QListViewItem *, const QPoint &, int ) ), | 102 | connect( detailed, SIGNAL( mouseButtonClicked(int,QListViewItem*,const QPoint&,int) ), |
103 | this, SLOT( fileClicked( int, QListViewItem *, const QPoint &, int ) ) ); | 103 | this, SLOT( fileClicked(int,QListViewItem*,const QPoint&,int) ) ); |
104 | connect( detailed, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint &, int ) ), | 104 | connect( detailed, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ), |
105 | this, SLOT( filePressed( int, QListViewItem *, const QPoint &, int ) ) ); | 105 | this, SLOT( filePressed(int,QListViewItem*,const QPoint&,int) ) ); |
106 | connect( detailed, SIGNAL( returnPressed( QListViewItem * ) ), | 106 | connect( detailed, SIGNAL( returnPressed(QListViewItem*) ), |
107 | this, SLOT( fileClicked( QListViewItem * ) ) ); | 107 | this, SLOT( fileClicked(QListViewItem*) ) ); |
108 | 108 | ||
109 | cView=UNKNOWN; | 109 | cView=UNKNOWN; |
110 | setView(scv); | 110 | setView(scv); |
111 | reread(); | 111 | reread(); |
112 | 112 | ||
113 | } | 113 | } |
114 | ImageFileSelector::~ImageFileSelector() | 114 | ImageFileSelector::~ImageFileSelector() |
115 | { | 115 | { |
116 | 116 | ||
117 | } | 117 | } |
118 | 118 | ||
119 | 119 | ||
120 | void ImageFileSelector::switchView() | 120 | void ImageFileSelector::switchView() |
121 | { | 121 | { |
122 | CURRENT_VIEW v=cView; | 122 | CURRENT_VIEW v=cView; |
123 | 123 | ||
124 | if ( v==DETAILED ) | 124 | if ( v==DETAILED ) |
125 | v=THUMBNAIL; | 125 | v=THUMBNAIL; |
126 | else | 126 | else |
127 | v=DETAILED; | 127 | v=DETAILED; |
128 | setView(v); | 128 | setView(v); |
129 | } | 129 | } |
130 | 130 | ||
131 | void ImageFileSelector::setView(CURRENT_VIEW v) | 131 | void ImageFileSelector::setView(CURRENT_VIEW v) |
132 | { | 132 | { |
133 | 133 | ||
134 | if ( v==cView ) | 134 | if ( v==cView ) |
135 | return; | 135 | return; |
136 | cView=v; | 136 | cView=v; |
137 | 137 | ||
138 | if ( cView!=DETAILED ) | 138 | if ( cView!=DETAILED ) |
139 | { | 139 | { |
140 | raiseWidget(thumb); | 140 | raiseWidget(thumb); |
141 | updateSizes(); | 141 | updateSizes(); |
142 | } | 142 | } |
143 | else | 143 | else |
144 | { | 144 | { |
145 | raiseWidget(detailed); | 145 | raiseWidget(detailed); |
146 | updateSizes(); | 146 | updateSizes(); |
147 | } | 147 | } |
148 | 148 | ||
149 | 149 | ||
150 | } | 150 | } |
151 | 151 | ||
152 | void ImageFileSelector::resizeEvent(QResizeEvent *) | 152 | void ImageFileSelector::resizeEvent(QResizeEvent *) |
153 | { | 153 | { |
154 | updateSizes(); | 154 | updateSizes(); |
155 | } | 155 | } |
156 | 156 | ||
157 | void ImageFileSelector::updateSizes() | 157 | void ImageFileSelector::updateSizes() |
158 | { | 158 | { |
159 | int ww=(detailed->width()-detailed->frameWidth()*2); | 159 | int ww=(detailed->width()-detailed->frameWidth()*2); |
160 | double w=(double)ww*0.70; | 160 | double w=(double)ww*0.70; |
161 | detailed->setColumnWidth(0,(int)w); | 161 | detailed->setColumnWidth(0,(int)w); |
162 | detailed->setColumnWidth(1,ww-(int)w); | 162 | detailed->setColumnWidth(1,ww-(int)w); |
163 | background->setMinimumWidth(thumb->visibleWidth()); | 163 | background->setMinimumWidth(thumb->visibleWidth()); |
164 | thumb->updateScrollBars(); | 164 | thumb->updateScrollBars(); |
165 | } | 165 | } |
166 | 166 | ||
167 | void ImageFileSelector::reread(bool) | 167 | void ImageFileSelector::reread(bool) |
168 | { | 168 | { |
169 | // qDebug("reread"); | 169 | // qDebug("reread"); |
170 | ImageFileSelectorItem *item = (ImageFileSelectorItem *)detailed->selectedItem(); | 170 | ImageFileSelectorItem *item = (ImageFileSelectorItem *)detailed->selectedItem(); |
171 | QString oldFile; | 171 | QString oldFile; |
172 | if ( item ) | 172 | if ( item ) |
173 | oldFile = item->file().file(); | 173 | oldFile = item->file().file(); |
174 | detailed->clear(); | 174 | detailed->clear(); |
175 | tList.clear(); | 175 | tList.clear(); |
176 | DocLnkSet files; | 176 | DocLnkSet files; |
177 | Global::findDocuments(&files, "image/*"); | 177 | Global::findDocuments(&files, "image/*"); |
178 | count = files.children().count(); | 178 | count = files.children().count(); |
179 | QListIterator<DocLnk> dit( files.children() ); | 179 | QListIterator<DocLnk> dit( files.children() ); |
180 | // int y=0; | 180 | // int y=0; |
181 | // int x=4; | 181 | // int x=4; |
182 | // int totalHeight=4; | 182 | // int totalHeight=4; |
183 | ThumbWidget *l=0; | 183 | ThumbWidget *l=0; |
184 | int width=80; | 184 | int width=80; |
185 | gl->expand(dit.count()/2,2); | 185 | gl->expand(dit.count()/2,2); |
186 | int i,j; | 186 | int i,j; |
187 | i=j=0; | 187 | i=j=0; |
188 | detailed->setUpdatesEnabled(false); | 188 | detailed->setUpdatesEnabled(false); |
189 | thumb->setUpdatesEnabled(false); | 189 | thumb->setUpdatesEnabled(false); |
190 | 190 | ||
191 | for ( ; dit.current(); ++dit ) { | 191 | for ( ; dit.current(); ++dit ) { |
192 | item = new ImageFileSelectorItem( detailed, **dit ); | 192 | item = new ImageFileSelectorItem( detailed, **dit ); |
193 | if ( item->file().file() == oldFile ) | 193 | if ( item->file().file() == oldFile ) |
194 | detailed->setCurrentItem( item ); | 194 | detailed->setCurrentItem( item ); |
195 | } | 195 | } |
196 | 196 | ||
197 | QListViewItemIterator it( detailed ); | 197 | QListViewItemIterator it( detailed ); |
198 | ImageFileSelectorItem *ii; | 198 | ImageFileSelectorItem *ii; |
199 | // iterate through all items of the listview | 199 | // iterate through all items of the listview |
200 | for ( ; it.current(); ++it ) { | 200 | for ( ; it.current(); ++it ) { |
201 | ii=(ImageFileSelectorItem *)it.current(); | 201 | ii=(ImageFileSelectorItem *)it.current(); |
202 | QImage img( ii->file().file() ); | 202 | QImage img( ii->file().file() ); |
203 | if( !img.isNull()) { | 203 | if( !img.isNull()) { |
204 | img=img.smoothScale(64,64); | 204 | img=img.smoothScale(64,64); |
205 | QPixmap pix; | 205 | QPixmap pix; |
206 | pix.convertFromImage(img); | 206 | pix.convertFromImage(img); |
207 | l=new ThumbWidget(pix,ii->file().name(),ii->file(),background,width); | 207 | l=new ThumbWidget(pix,ii->file().name(),ii->file(),background,width); |
208 | l->setBackgroundColor(colorGroup().base()); | 208 | l->setBackgroundColor(colorGroup().base()); |
209 | gl->addWidget(l,j,i); | 209 | gl->addWidget(l,j,i); |
210 | i++; | 210 | i++; |
211 | if ( i==2 ) { | 211 | if ( i==2 ) { |
212 | i=0; | 212 | i=0; |
213 | j++; | 213 | j++; |
214 | } | 214 | } |
215 | tList.append(l); | 215 | tList.append(l); |
216 | connect(l,SIGNAL(clicked(const DocLnk &)),this,SLOT(thumbClicked(const DocLnk &))); | 216 | connect(l,SIGNAL(clicked(const DocLnk&)),this,SLOT(thumbClicked(const DocLnk&))); |
217 | } | 217 | } |
218 | } | 218 | } |
219 | 219 | ||
220 | if ( !detailed->selectedItem() ) | 220 | if ( !detailed->selectedItem() ) |
221 | detailed->setCurrentItem( detailed->firstChild() ); | 221 | detailed->setCurrentItem( detailed->firstChild() ); |
222 | 222 | ||
223 | detailed->setUpdatesEnabled(true); | 223 | detailed->setUpdatesEnabled(true); |
224 | thumb->setUpdatesEnabled(true); | 224 | thumb->setUpdatesEnabled(true); |
225 | detailed->update(); | 225 | detailed->update(); |
226 | thumb->update(); | 226 | thumb->update(); |
227 | } | 227 | } |
228 | 228 | ||
229 | int ImageFileSelector::fileCount() | 229 | int ImageFileSelector::fileCount() |
230 | { | 230 | { |
231 | return count; | 231 | return count; |
232 | } | 232 | } |
233 | const DocLnk * ImageFileSelector::selected() | 233 | const DocLnk * ImageFileSelector::selected() |
234 | { | 234 | { |
235 | qDebug("image selected"); | 235 | qDebug("image selected"); |
236 | ImageFileSelectorItem *item = (ImageFileSelectorItem *) detailed->selectedItem(); | 236 | ImageFileSelectorItem *item = (ImageFileSelectorItem *) detailed->selectedItem(); |
237 | if ( item ) | 237 | if ( item ) |
238 | return new DocLnk( item->file() ); | 238 | return new DocLnk( item->file() ); |
239 | return 0; | 239 | return 0; |
240 | } | 240 | } |
241 | 241 | ||
242 | 242 | ||
243 | 243 | ||
244 | void ImageFileSelector::fileClicked( int button, QListViewItem *i, const QPoint &, int ) | 244 | void ImageFileSelector::fileClicked( int button, QListViewItem *i, const QPoint &, int ) |
245 | { | 245 | { |
246 | if ( !i ) | 246 | if ( !i ) |
247 | return; | 247 | return; |
248 | if ( button == Qt::LeftButton ) | 248 | if ( button == Qt::LeftButton ) |
249 | { | 249 | { |
250 | fileClicked( i ); | 250 | fileClicked( i ); |
251 | } | 251 | } |
252 | } | 252 | } |
253 | // pressed to get 'right down' | 253 | // pressed to get 'right down' |
254 | void ImageFileSelector::filePressed( int, QListViewItem *, const QPoint &, int ) | 254 | void ImageFileSelector::filePressed( int, QListViewItem *, const QPoint &, int ) |
255 | { | 255 | { |
256 | 256 | ||
257 | } | 257 | } |
258 | void ImageFileSelector::fileClicked( QListViewItem *i) | 258 | void ImageFileSelector::fileClicked( QListViewItem *i) |
259 | { | 259 | { |
260 | if ( !i ) | 260 | if ( !i ) |
261 | return; | 261 | return; |
262 | emit fileSelected( ( (ImageFileSelectorItem*)i )->file() ); | 262 | emit fileSelected( ( (ImageFileSelectorItem*)i )->file() ); |
263 | emit closeMe(); | 263 | emit closeMe(); |
264 | } | 264 | } |
265 | 265 | ||
266 | void ImageFileSelector::thumbClicked(const DocLnk &f) | 266 | void ImageFileSelector::thumbClicked(const DocLnk &f) |
267 | { | 267 | { |
268 | emit fileSelected( f ); | 268 | emit fileSelected( f ); |
269 | emit closeMe(); | 269 | emit closeMe(); |
270 | } | 270 | } |
271 | 271 | ||
diff --git a/noncore/multimedia/showimg/showimg.cpp b/noncore/multimedia/showimg/showimg.cpp index ba76e57..02a1d91 100644 --- a/noncore/multimedia/showimg/showimg.cpp +++ b/noncore/multimedia/showimg/showimg.cpp | |||
@@ -215,194 +215,194 @@ ImageViewer::ImageViewer( QWidget *parent, const char *name, int wFlags ) | |||
215 | : QMainWindow( parent, name, WResizeNoErase ), filename( 0 ), bFromDocView( FALSE ) | 215 | : QMainWindow( parent, name, WResizeNoErase ), filename( 0 ), bFromDocView( FALSE ) |
216 | { | 216 | { |
217 | setCaption( tr("Image Viewer") ); | 217 | setCaption( tr("Image Viewer") ); |
218 | setIcon( Resource::loadPixmap( "ImageViewer" ) ); | 218 | setIcon( Resource::loadPixmap( "ImageViewer" ) ); |
219 | 219 | ||
220 | 220 | ||
221 | Config cfg("Image Viewer"); | 221 | Config cfg("Image Viewer"); |
222 | cfg.setGroup("Image Viewer"); | 222 | cfg.setGroup("Image Viewer"); |
223 | 223 | ||
224 | showThumbView=cfg.readBoolEntry("ShowThumbnails",false); | 224 | showThumbView=cfg.readBoolEntry("ShowThumbnails",false); |
225 | isSized=cfg.readBoolEntry("SizeToScreen",true); | 225 | isSized=cfg.readBoolEntry("SizeToScreen",true); |
226 | 226 | ||
227 | isFullScreen = FALSE; | 227 | isFullScreen = FALSE; |
228 | 228 | ||
229 | setToolBarsMovable( FALSE ); | 229 | setToolBarsMovable( FALSE ); |
230 | 230 | ||
231 | toolBar = new QToolBar( this ); | 231 | toolBar = new QToolBar( this ); |
232 | toolBar->setHorizontalStretchable( TRUE ); | 232 | toolBar->setHorizontalStretchable( TRUE ); |
233 | 233 | ||
234 | menuBar = new QMenuBar( toolBar ); | 234 | menuBar = new QMenuBar( toolBar ); |
235 | 235 | ||
236 | current=menuBar; | 236 | current=menuBar; |
237 | 237 | ||
238 | 238 | ||
239 | 239 | ||
240 | fileMenuFile = new QPopupMenu(this); | 240 | fileMenuFile = new QPopupMenu(this); |
241 | //menuBarmenubarFile->insertItem( tr("File"), fileMenu ); | 241 | //menuBarmenubarFile->insertItem( tr("File"), fileMenu ); |
242 | fileMenuFile->insertItem(tr("Open"), | 242 | fileMenuFile->insertItem(tr("Open"), |
243 | this, SLOT(openFile()), 0); | 243 | this, SLOT(openFile()), 0); |
244 | 244 | ||
245 | viewMenuFile = new QPopupMenu( this ); | 245 | viewMenuFile = new QPopupMenu( this ); |
246 | //menubarFile->insertItem( tr("View"), viewMenu ); | 246 | //menubarFile->insertItem( tr("View"), viewMenu ); |
247 | viewMenuFile->insertItem( tr("Thumbnail View"), | 247 | viewMenuFile->insertItem( tr("Thumbnail View"), |
248 | this, SLOT(switchThumbView()), 0, SHOW_THUMBNAILS ); | 248 | this, SLOT(switchThumbView()), 0, SHOW_THUMBNAILS ); |
249 | 249 | ||
250 | viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView ); | 250 | viewMenuFile->setItemChecked ( SHOW_THUMBNAILS, showThumbView ); |
251 | 251 | ||
252 | 252 | ||
253 | 253 | ||
254 | 254 | ||
255 | optionsMenuFile = new QPopupMenu( this); | 255 | optionsMenuFile = new QPopupMenu( this); |
256 | //menubarFile->insertItem( tr("Options"),optionsMenu ); | 256 | //menubarFile->insertItem( tr("Options"),optionsMenu ); |
257 | slideAction = new QAction( tr( "Slide show" ), Resource::loadIconSet( "slideshow" ), | 257 | slideAction = new QAction( tr( "Slide show" ), Resource::loadIconSet( "slideshow" ), |
258 | QString::null, 0, this, 0 ); | 258 | QString::null, 0, this, 0 ); |
259 | slideAction->setToggleAction( TRUE ); | 259 | slideAction->setToggleAction( TRUE ); |
260 | connect( slideAction, SIGNAL( toggled(bool) ), this, SLOT( slideShow(bool) ) ); | 260 | connect( slideAction, SIGNAL( toggled(bool) ), this, SLOT( slideShow(bool) ) ); |
261 | slideAction->addTo( optionsMenuFile); | 261 | slideAction->addTo( optionsMenuFile); |
262 | // slideAction->addTo( toolBar ); | 262 | // slideAction->addTo( toolBar ); |
263 | 263 | ||
264 | 264 | ||
265 | // optionsMenuFile->insertItem( tr("Slideshow") ); | 265 | // optionsMenuFile->insertItem( tr("Slideshow") ); |
266 | optionsMenuFile->insertSeparator(); | 266 | optionsMenuFile->insertSeparator(); |
267 | optionsMenuFile->insertItem( tr("Preferences.."), this, SLOT(settings()), 0); | 267 | optionsMenuFile->insertItem( tr("Preferences.."), this, SLOT(settings()), 0); |
268 | // optionsMenuFile->insertItem( tr("Help"), this, SLOT(help()), 0); | 268 | // optionsMenuFile->insertItem( tr("Help"), this, SLOT(help()), 0); |
269 | 269 | ||
270 | QStrList fmt = QImage::outputFormats(); | 270 | QStrList fmt = QImage::outputFormats(); |
271 | 271 | ||
272 | 272 | ||
273 | fileMenuView = new QPopupMenu( this ); | 273 | fileMenuView = new QPopupMenu( this ); |
274 | //menubarView->insertItem( tr("File"),fileMenu ); | 274 | //menubarView->insertItem( tr("File"),fileMenu ); |
275 | fileMenuView->insertItem( tr("Image Info ..."),this, SLOT(displayInfoDialog()),0 ); | 275 | fileMenuView->insertItem( tr("Image Info ..."),this, SLOT(displayInfoDialog()),0 ); |
276 | fileMenuView->insertSeparator(); | 276 | fileMenuView->insertSeparator(); |
277 | 277 | ||
278 | viewMenuView = new QPopupMenu(this ); | 278 | viewMenuView = new QPopupMenu(this ); |
279 | viewMenuView->setCheckable ( true ); | 279 | viewMenuView->setCheckable ( true ); |
280 | 280 | ||
281 | //menubarView->insertItem( tr("View"),viewMenu ); | 281 | //menubarView->insertItem( tr("View"),viewMenu ); |
282 | viewMenuView->insertItem(tr("Horizontal flip"), this, SLOT(hFlip()), 0); | 282 | viewMenuView->insertItem(tr("Horizontal flip"), this, SLOT(hFlip()), 0); |
283 | viewMenuView->insertItem(tr("Vertical flip"), this, SLOT(vFlip()), 0); | 283 | viewMenuView->insertItem(tr("Vertical flip"), this, SLOT(vFlip()), 0); |
284 | 284 | ||
285 | stack = new QWidgetStack( this ); | 285 | stack = new QWidgetStack( this ); |
286 | stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); | 286 | stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); |
287 | setCentralWidget( stack ); | 287 | setCentralWidget( stack ); |
288 | 288 | ||
289 | 289 | ||
290 | imagePanel = new ImagePane( stack ); | 290 | imagePanel = new ImagePane( stack ); |
291 | connect(imagePanel, SIGNAL(clicked()), this, SLOT(normalView())); | 291 | connect(imagePanel, SIGNAL(clicked()), this, SLOT(normalView())); |
292 | 292 | ||
293 | 293 | ||
294 | ImageFileSelector::CURRENT_VIEW cv; | 294 | ImageFileSelector::CURRENT_VIEW cv; |
295 | if(showThumbView) | 295 | if(showThumbView) |
296 | cv=ImageFileSelector::THUMBNAIL; | 296 | cv=ImageFileSelector::THUMBNAIL; |
297 | else | 297 | else |
298 | cv=ImageFileSelector::DETAILED; | 298 | cv=ImageFileSelector::DETAILED; |
299 | 299 | ||
300 | qDebug("cv = %d",cv); | 300 | qDebug("cv = %d",cv); |
301 | 301 | ||
302 | fileSelector = new ImageFileSelector( cv,stack, "fs"); | 302 | fileSelector = new ImageFileSelector( cv,stack, "fs"); |
303 | 303 | ||
304 | //switchThumbView(); | 304 | //switchThumbView(); |
305 | 305 | ||
306 | 306 | ||
307 | //fileSelector = new ImageFileSelector("image/*", stack, "fs"); | 307 | //fileSelector = new ImageFileSelector("image/*", stack, "fs"); |
308 | //fileSelector->setNewVisible(FALSE); | 308 | //fileSelector->setNewVisible(FALSE); |
309 | //fileSelector->setCloseVisible(FALSE); | 309 | //fileSelector->setCloseVisible(FALSE); |
310 | connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( closeFileSelector() ) ); | 310 | connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( closeFileSelector() ) ); |
311 | connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), | 311 | connect( fileSelector, SIGNAL( fileSelected(const DocLnk&) ), |
312 | this, SLOT( openFile( const DocLnk & ) ) ); | 312 | this, SLOT( openFile(const DocLnk&) ) ); |
313 | 313 | ||
314 | imageList = fileSelector->fileList(); | 314 | imageList = fileSelector->fileList(); |
315 | slideAction->setEnabled( imageList.count() != 0); | 315 | slideAction->setEnabled( imageList.count() != 0); |
316 | 316 | ||
317 | iconToolBar = new QToolBar(this); | 317 | iconToolBar = new QToolBar(this); |
318 | 318 | ||
319 | QAction *a; | 319 | QAction *a; |
320 | 320 | ||
321 | a = new QAction( tr( "Open ..." ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); | 321 | a = new QAction( tr( "Open ..." ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); |
322 | connect( a, SIGNAL( activated() ), this, SLOT( open() ) ); | 322 | connect( a, SIGNAL( activated() ), this, SLOT( open() ) ); |
323 | a->addTo( fileMenuView); | 323 | a->addTo( fileMenuView); |
324 | a->addTo( iconToolBar ); | 324 | a->addTo( iconToolBar ); |
325 | 325 | ||
326 | 326 | ||
327 | a = new QAction( tr( "Rotate 90"), Resource::loadPixmap( "rotate90" ), QString::null, 0, this, 0); | 327 | a = new QAction( tr( "Rotate 90"), Resource::loadPixmap( "rotate90" ), QString::null, 0, this, 0); |
328 | connect( a, SIGNAL( activated() ), this, SLOT( rot90() ) ); | 328 | connect( a, SIGNAL( activated() ), this, SLOT( rot90() ) ); |
329 | a->addTo( iconToolBar ); | 329 | a->addTo( iconToolBar ); |
330 | a->addTo( viewMenuView ); | 330 | a->addTo( viewMenuView ); |
331 | 331 | ||
332 | a = new QAction( tr( "Rotate 180" ), Resource::loadPixmap( "repeat" ), QString::null, 0, this, 0 ); | 332 | a = new QAction( tr( "Rotate 180" ), Resource::loadPixmap( "repeat" ), QString::null, 0, this, 0 ); |
333 | connect( a, SIGNAL( activated() ), this, SLOT( rot180() ) ); | 333 | connect( a, SIGNAL( activated() ), this, SLOT( rot180() ) ); |
334 | a->addTo( iconToolBar ); | 334 | a->addTo( iconToolBar ); |
335 | a->addTo( viewMenuView ); | 335 | a->addTo( viewMenuView ); |
336 | 336 | ||
337 | 337 | ||
338 | a = new QAction( tr( "Rotate 270"), Resource::loadPixmap( "rotate270" ), QString::null, 0, this, 0); | 338 | a = new QAction( tr( "Rotate 270"), Resource::loadPixmap( "rotate270" ), QString::null, 0, this, 0); |
339 | connect( a, SIGNAL( activated() ), this, SLOT( rot270() ) ); | 339 | connect( a, SIGNAL( activated() ), this, SLOT( rot270() ) ); |
340 | //a->addTo( iconToolBar ); | 340 | //a->addTo( iconToolBar ); |
341 | a->addTo( viewMenuView ); | 341 | a->addTo( viewMenuView ); |
342 | 342 | ||
343 | 343 | ||
344 | 344 | ||
345 | viewMenuView->insertSeparator(); | 345 | viewMenuView->insertSeparator(); |
346 | viewMenuView->insertItem(tr("Brightness ..."), this, SLOT(displayControlsDialog()), 0); | 346 | viewMenuView->insertItem(tr("Brightness ..."), this, SLOT(displayControlsDialog()), 0); |
347 | viewMenuView->insertItem(tr("Black And White"), this, SLOT(blackAndWhite()), 0,BLACKANDWHITE); | 347 | viewMenuView->insertItem(tr("Black And White"), this, SLOT(blackAndWhite()), 0,BLACKANDWHITE); |
348 | viewMenuView->insertSeparator(); | 348 | viewMenuView->insertSeparator(); |
349 | 349 | ||
350 | 350 | ||
351 | sss = new QAction( tr( "Scale to Screen"), Resource::loadPixmap( "scale" ), QString::null, 0, this, 0,true); | 351 | sss = new QAction( tr( "Scale to Screen"), Resource::loadPixmap( "scale" ), QString::null, 0, this, 0,true); |
352 | connect( sss, SIGNAL( activated() ), this, SLOT( switchSizeToScreen() ) ); | 352 | connect( sss, SIGNAL( activated() ), this, SLOT( switchSizeToScreen() ) ); |
353 | sss->addTo( iconToolBar ); | 353 | sss->addTo( iconToolBar ); |
354 | sss->addTo( viewMenuView ); | 354 | sss->addTo( viewMenuView ); |
355 | 355 | ||
356 | sss->setOn(isSized); | 356 | sss->setOn(isSized); |
357 | viewMenuView->insertSeparator(); | 357 | viewMenuView->insertSeparator(); |
358 | 358 | ||
359 | 359 | ||
360 | a = new QAction( tr( "Fullscreen" ), Resource::loadPixmap( "fullscreen" ), | 360 | a = new QAction( tr( "Fullscreen" ), Resource::loadPixmap( "fullscreen" ), |
361 | QString::null, 0, this, 0 ); | 361 | QString::null, 0, this, 0 ); |
362 | connect( a, SIGNAL( activated() ), this, SLOT( fullScreen() ) ); | 362 | connect( a, SIGNAL( activated() ), this, SLOT( fullScreen() ) ); |
363 | a->addTo( iconToolBar ); | 363 | a->addTo( iconToolBar ); |
364 | a->addTo( viewMenuView); | 364 | a->addTo( viewMenuView); |
365 | 365 | ||
366 | a = new QAction( tr( "Stop Slideshow" ), Resource::loadPixmap( "quit_icon" ), | 366 | a = new QAction( tr( "Stop Slideshow" ), Resource::loadPixmap( "quit_icon" ), |
367 | QString::null, 0, this, 0 ); | 367 | QString::null, 0, this, 0 ); |
368 | connect( a, SIGNAL( activated() ), this, SLOT( stopSlideShow() ) ); | 368 | connect( a, SIGNAL( activated() ), this, SLOT( stopSlideShow() ) ); |
369 | a->addTo( iconToolBar ); | 369 | a->addTo( iconToolBar ); |
370 | a->addTo( viewMenuView); | 370 | a->addTo( viewMenuView); |
371 | 371 | ||
372 | 372 | ||
373 | Config config( "ImageViewer" ); | 373 | Config config( "ImageViewer" ); |
374 | config.setGroup( "SlideShow" ); | 374 | config.setGroup( "SlideShow" ); |
375 | slideDelay = config.readNumEntry( "Delay", 2); | 375 | slideDelay = config.readNumEntry( "Delay", 2); |
376 | slideRepeat = config.readBoolEntry( "Repeat", FALSE ); | 376 | slideRepeat = config.readBoolEntry( "Repeat", FALSE ); |
377 | slideReverse = config.readBoolEntry("Reverse", FALSE); | 377 | slideReverse = config.readBoolEntry("Reverse", FALSE); |
378 | 378 | ||
379 | config.setGroup("Default"); | 379 | config.setGroup("Default"); |
380 | rotateOnLoad = config.readBoolEntry("Rotate", FALSE); | 380 | rotateOnLoad = config.readBoolEntry("Rotate", FALSE); |
381 | fastLoad = config.readBoolEntry("FastLoad", TRUE); | 381 | fastLoad = config.readBoolEntry("FastLoad", TRUE); |
382 | slideTimer = new QTimer( this ); | 382 | slideTimer = new QTimer( this ); |
383 | connect( slideTimer, SIGNAL(timeout()), this, SLOT(slideUpdate()) ); | 383 | connect( slideTimer, SIGNAL(timeout()), this, SLOT(slideUpdate()) ); |
384 | 384 | ||
385 | switchToFileSelector(); | 385 | switchToFileSelector(); |
386 | 386 | ||
387 | setMouseTracking( TRUE ); | 387 | setMouseTracking( TRUE ); |
388 | 388 | ||
389 | 389 | ||
390 | } | 390 | } |
391 | 391 | ||
392 | ImageViewer::~ImageViewer() | 392 | ImageViewer::~ImageViewer() |
393 | { | 393 | { |
394 | Config cfg("Image Viewer"); | 394 | Config cfg("Image Viewer"); |
395 | cfg.setGroup("Image Viewer"); | 395 | cfg.setGroup("Image Viewer"); |
396 | 396 | ||
397 | cfg.writeEntry("ShowThumbnails",(int)showThumbView); | 397 | cfg.writeEntry("ShowThumbnails",(int)showThumbView); |
398 | cfg.writeEntry("SizeToScreen",(int)isSized); | 398 | cfg.writeEntry("SizeToScreen",(int)isSized); |
399 | 399 | ||
400 | cfg.setGroup( "SlideShow" ); | 400 | cfg.setGroup( "SlideShow" ); |
401 | cfg.writeEntry( "Delay", slideDelay); | 401 | cfg.writeEntry( "Delay", slideDelay); |
402 | cfg.writeEntry( "Repeat", slideRepeat ); | 402 | cfg.writeEntry( "Repeat", slideRepeat ); |
403 | cfg.writeEntry("Reverse", slideReverse); | 403 | cfg.writeEntry("Reverse", slideReverse); |
404 | 404 | ||
405 | cfg.setGroup("Default"); | 405 | cfg.setGroup("Default"); |
406 | cfg.writeEntry("Rotate", rotateOnLoad); | 406 | cfg.writeEntry("Rotate", rotateOnLoad); |
407 | cfg.writeEntry("FastLoad", fastLoad); | 407 | cfg.writeEntry("FastLoad", fastLoad); |
408 | 408 | ||
diff --git a/noncore/net/linphone/qlinphone.cpp b/noncore/net/linphone/qlinphone.cpp index 3cc2ebc..ba4ee5f 100644 --- a/noncore/net/linphone/qlinphone.cpp +++ b/noncore/net/linphone/qlinphone.cpp | |||
@@ -19,192 +19,192 @@ | |||
19 | #include <qlineedit.h> | 19 | #include <qlineedit.h> |
20 | #include <qlabel.h> | 20 | #include <qlabel.h> |
21 | #include <qwidget.h> | 21 | #include <qwidget.h> |
22 | #include <qslider.h> | 22 | #include <qslider.h> |
23 | #include <qtabwidget.h> | 23 | #include <qtabwidget.h> |
24 | #include <qcheckbox.h> | 24 | #include <qcheckbox.h> |
25 | #include <qmessagebox.h> | 25 | #include <qmessagebox.h> |
26 | #include <qpe/config.h> | 26 | #include <qpe/config.h> |
27 | #include <qpe/qpeapplication.h> | 27 | #include <qpe/qpeapplication.h> |
28 | #include <linphonecore.h> | 28 | #include <linphonecore.h> |
29 | 29 | ||
30 | extern "C" { | 30 | extern "C" { |
31 | static void stub(LinphoneCore*lc, char*msg) {} | 31 | static void stub(LinphoneCore*lc, char*msg) {} |
32 | 32 | ||
33 | static void qt_show(LinphoneCore *lc) { | 33 | static void qt_show(LinphoneCore *lc) { |
34 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; | 34 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; |
35 | w->pushGuiTask(new ShowTask(w)); | 35 | w->pushGuiTask(new ShowTask(w)); |
36 | } | 36 | } |
37 | 37 | ||
38 | static void qt_inv_recv(LinphoneCore *lc, char *from) { | 38 | static void qt_inv_recv(LinphoneCore *lc, char *from) { |
39 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; | 39 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; |
40 | QString tmp(from); | 40 | QString tmp(from); |
41 | w->pushGuiTask(new InviteReceivedTask(w,tmp)); | 41 | w->pushGuiTask(new InviteReceivedTask(w,tmp)); |
42 | } | 42 | } |
43 | 43 | ||
44 | static void qt_display_status(LinphoneCore *lc, char *status) { | 44 | static void qt_display_status(LinphoneCore *lc, char *status) { |
45 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; | 45 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; |
46 | QString tmp(status); | 46 | QString tmp(status); |
47 | w->pushGuiTask(new UpdateStatusBarTask(w,tmp)); | 47 | w->pushGuiTask(new UpdateStatusBarTask(w,tmp)); |
48 | } | 48 | } |
49 | static void qt_display_message(LinphoneCore *lc, char *message) { | 49 | static void qt_display_message(LinphoneCore *lc, char *message) { |
50 | QString qmsg(message); | 50 | QString qmsg(message); |
51 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; | 51 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; |
52 | w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Info)); | 52 | w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Info)); |
53 | } | 53 | } |
54 | static void qt_display_warning(LinphoneCore *lc, char *message) { | 54 | static void qt_display_warning(LinphoneCore *lc, char *message) { |
55 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; | 55 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; |
56 | QString qmsg(message); | 56 | QString qmsg(message); |
57 | w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Warn)); | 57 | w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Warn)); |
58 | } | 58 | } |
59 | static void qt_display_url(LinphoneCore *lc, char *message, char *url) { | 59 | static void qt_display_url(LinphoneCore *lc, char *message, char *url) { |
60 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; | 60 | QLinphoneMainWidget *w=(QLinphoneMainWidget*)lc->data; |
61 | QString qmsg=QString(message)+QString(url); | 61 | QString qmsg=QString(message)+QString(url); |
62 | w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Info)); | 62 | w->pushGuiTask(new DisplayMessageTask(w,qmsg,DisplayMessageTask::Info)); |
63 | } | 63 | } |
64 | static void qt_notify_recv(LinphoneCore *lc, const char *url, const char *status) { | 64 | static void qt_notify_recv(LinphoneCore *lc, const char *url, const char *status) { |
65 | } | 65 | } |
66 | 66 | ||
67 | LinphoneCoreVTable lcvtable={ | 67 | LinphoneCoreVTable lcvtable={ |
68 | show: | 68 | show: |
69 | qt_show, | 69 | qt_show, |
70 | inv_recv: | 70 | inv_recv: |
71 | qt_inv_recv, | 71 | qt_inv_recv, |
72 | bye_recv : | 72 | bye_recv : |
73 | stub, | 73 | stub, |
74 | notify_recv : | 74 | notify_recv : |
75 | qt_notify_recv, | 75 | qt_notify_recv, |
76 | display_status : | 76 | display_status : |
77 | qt_display_status, | 77 | qt_display_status, |
78 | display_message : | 78 | display_message : |
79 | qt_display_message, | 79 | qt_display_message, |
80 | display_warning : | 80 | display_warning : |
81 | qt_display_warning, | 81 | qt_display_warning, |
82 | display_url : | 82 | display_url : |
83 | qt_display_url, | 83 | qt_display_url, |
84 | display_question : | 84 | display_question : |
85 | stub | 85 | stub |
86 | }; | 86 | }; |
87 | 87 | ||
88 | 88 | ||
89 | } //extern "C" | 89 | } //extern "C" |
90 | 90 | ||
91 | void UpdateStatusBarTask::execute() { | 91 | void UpdateStatusBarTask::execute() { |
92 | static_cast<QLinphoneMainWidget*>(_w)->displayStatus(_msg); | 92 | static_cast<QLinphoneMainWidget*>(_w)->displayStatus(_msg); |
93 | } | 93 | } |
94 | 94 | ||
95 | void InviteReceivedTask::execute() { | 95 | void InviteReceivedTask::execute() { |
96 | static_cast<QLinphoneMainWidget*>(_w)->inviteReceived(_msg); | 96 | static_cast<QLinphoneMainWidget*>(_w)->inviteReceived(_msg); |
97 | } | 97 | } |
98 | 98 | ||
99 | void DisplayMessageTask::execute() { | 99 | void DisplayMessageTask::execute() { |
100 | switch(_msgtype) { | 100 | switch(_msgtype) { |
101 | case Info: | 101 | case Info: |
102 | QMessageBox::information(0,QObject::tr("Information"),_msg); | 102 | QMessageBox::information(0,QObject::tr("Information"),_msg); |
103 | break; | 103 | break; |
104 | case Warn: | 104 | case Warn: |
105 | QMessageBox::warning(0,QObject::tr("Warning"),_msg); | 105 | QMessageBox::warning(0,QObject::tr("Warning"),_msg); |
106 | break; | 106 | break; |
107 | } | 107 | } |
108 | } | 108 | } |
109 | 109 | ||
110 | QLinphoneMainWidget::QLinphoneMainWidget(QWidget* parent , const char* name , WFlags fl ) : | 110 | QLinphoneMainWidget::QLinphoneMainWidget(QWidget* parent , const char* name , WFlags fl ) : |
111 | _QLinphoneMainWidget( parent, name, fl ) { | 111 | _QLinphoneMainWidget( parent, name, fl ) { |
112 | 112 | ||
113 | readConfig(); | 113 | readConfig(); |
114 | createLinphoneCore(); | 114 | createLinphoneCore(); |
115 | connect( CheckBox1, SIGNAL( toggled( bool ) ), this, SLOT( slotHide( bool ) ) ); | 115 | connect( CheckBox1, SIGNAL( toggled(bool) ), this, SLOT( slotHide(bool) ) ); |
116 | CheckBox1->setChecked( true ); | 116 | CheckBox1->setChecked( true ); |
117 | } | 117 | } |
118 | 118 | ||
119 | QLinphoneMainWidget::~QLinphoneMainWidget() { | 119 | QLinphoneMainWidget::~QLinphoneMainWidget() { |
120 | linphone_core_destroy(_core); | 120 | linphone_core_destroy(_core); |
121 | writeConfig(); | 121 | writeConfig(); |
122 | } | 122 | } |
123 | 123 | ||
124 | void QLinphoneMainWidget::slotHide( bool show ) { | 124 | void QLinphoneMainWidget::slotHide( bool show ) { |
125 | if ( show ) { | 125 | if ( show ) { |
126 | TabWidget2->show(); | 126 | TabWidget2->show(); |
127 | } else { | 127 | } else { |
128 | TabWidget2->hide(); | 128 | TabWidget2->hide(); |
129 | } | 129 | } |
130 | } | 130 | } |
131 | 131 | ||
132 | void QLinphoneMainWidget::callOrAccept() { | 132 | void QLinphoneMainWidget::callOrAccept() { |
133 | if (linphone_core_inc_invite_pending(_core)) { | 133 | if (linphone_core_inc_invite_pending(_core)) { |
134 | linphone_core_accept_dialog(_core,NULL); | 134 | linphone_core_accept_dialog(_core,NULL); |
135 | return; | 135 | return; |
136 | } | 136 | } |
137 | QString url=sip_url->text(); | 137 | QString url=sip_url->text(); |
138 | linphone_core_invite(_core,(char*)url.ascii()); | 138 | linphone_core_invite(_core,(char*)url.ascii()); |
139 | } | 139 | } |
140 | void QLinphoneMainWidget::terminateCall() { | 140 | void QLinphoneMainWidget::terminateCall() { |
141 | linphone_core_terminate_dialog(_core,NULL); | 141 | linphone_core_terminate_dialog(_core,NULL); |
142 | } | 142 | } |
143 | 143 | ||
144 | void QLinphoneMainWidget::inviteReceived(QString &tmp) { | 144 | void QLinphoneMainWidget::inviteReceived(QString &tmp) { |
145 | sip_url->setText(tmp); | 145 | sip_url->setText(tmp); |
146 | } | 146 | } |
147 | 147 | ||
148 | void QLinphoneMainWidget::displayStatus(QString &msg) { | 148 | void QLinphoneMainWidget::displayStatus(QString &msg) { |
149 | status_bar->setText(msg); | 149 | status_bar->setText(msg); |
150 | } | 150 | } |
151 | 151 | ||
152 | void QLinphoneMainWidget::pushGuiTask(GuiTask* g) { | 152 | void QLinphoneMainWidget::pushGuiTask(GuiTask* g) { |
153 | _mutex.lock(); | 153 | _mutex.lock(); |
154 | _actionq.enqueue(g); | 154 | _actionq.enqueue(g); |
155 | _mutex.unlock(); | 155 | _mutex.unlock(); |
156 | printf("New action added to task list.\n"); | 156 | printf("New action added to task list.\n"); |
157 | } | 157 | } |
158 | 158 | ||
159 | void QLinphoneMainWidget::processGuiTasks() { | 159 | void QLinphoneMainWidget::processGuiTasks() { |
160 | GuiTask *g; | 160 | GuiTask *g; |
161 | _mutex.lock(); | 161 | _mutex.lock(); |
162 | while(!_actionq.isEmpty()) { | 162 | while(!_actionq.isEmpty()) { |
163 | g=_actionq.dequeue(); | 163 | g=_actionq.dequeue(); |
164 | printf("Executing action...\n"); | 164 | printf("Executing action...\n"); |
165 | g->execute(); | 165 | g->execute(); |
166 | delete g; | 166 | delete g; |
167 | } | 167 | } |
168 | _mutex.unlock(); | 168 | _mutex.unlock(); |
169 | } | 169 | } |
170 | 170 | ||
171 | void QLinphoneMainWidget::timerEvent(QTimerEvent *t) { | 171 | void QLinphoneMainWidget::timerEvent(QTimerEvent *t) { |
172 | processGuiTasks(); | 172 | processGuiTasks(); |
173 | } | 173 | } |
174 | 174 | ||
175 | void QLinphoneMainWidget::readConfig() { | 175 | void QLinphoneMainWidget::readConfig() { |
176 | Config cfg( "opie-phone" ); | 176 | Config cfg( "opie-phone" ); |
177 | cfg.setGroup( "audio" ); | 177 | cfg.setGroup( "audio" ); |
178 | SliderInput->setValue( cfg.readNumEntry( "rec_lev", 50 ) ); | 178 | SliderInput->setValue( cfg.readNumEntry( "rec_lev", 50 ) ); |
179 | SliderOutput->setValue( cfg.readNumEntry( "play_lev", 50 ) ); | 179 | SliderOutput->setValue( cfg.readNumEntry( "play_lev", 50 ) ); |
180 | } | 180 | } |
181 | 181 | ||
182 | void QLinphoneMainWidget::writeConfig() { | 182 | void QLinphoneMainWidget::writeConfig() { |
183 | Config cfg( "opie-phone" ); | 183 | Config cfg( "opie-phone" ); |
184 | cfg.setGroup( "audio" ); | 184 | cfg.setGroup( "audio" ); |
185 | cfg.writeEntry( "rec_lev", SliderInput->value() ); | 185 | cfg.writeEntry( "rec_lev", SliderInput->value() ); |
186 | cfg.writeEntry( "playlev", SliderOutput->value() ); | 186 | cfg.writeEntry( "playlev", SliderOutput->value() ); |
187 | } | 187 | } |
188 | 188 | ||
189 | void QLinphoneMainWidget::helpAbout() { | 189 | void QLinphoneMainWidget::helpAbout() { |
190 | QMessageBox::about(this,tr("About Linphone"),tr("QT version of linphone\nJuly 2003 - Made in old Europe.")); | 190 | QMessageBox::about(this,tr("About Linphone"),tr("QT version of linphone\nJuly 2003 - Made in old Europe.")); |
191 | } | 191 | } |
192 | 192 | ||
193 | void QLinphoneMainWidget::createLinphoneCore() { | 193 | void QLinphoneMainWidget::createLinphoneCore() { |
194 | if ( _core ) { | 194 | if ( _core ) { |
195 | linphone_core_destroy(_core); | 195 | linphone_core_destroy(_core); |
196 | } | 196 | } |
197 | 197 | ||
198 | gchar *home=getenv("HOME"); | 198 | gchar *home=getenv("HOME"); |
199 | gchar *suffix="/Settings/opie-phone.conf"; | 199 | gchar *suffix="/Settings/opie-phone.conf"; |
200 | if (home==0) | 200 | if (home==0) |
201 | home=strdup("/root"); | 201 | home=strdup("/root"); |
202 | gchar *config=new char[strlen(home)+strlen(suffix)+2]; | 202 | gchar *config=new char[strlen(home)+strlen(suffix)+2]; |
203 | sprintf(config,"%s/%s",home,suffix); | 203 | sprintf(config,"%s/%s",home,suffix); |
204 | /* tracing for osip */ | 204 | /* tracing for osip */ |
205 | TRACE_INITIALIZE((trace_level_t)5,stdout); | 205 | TRACE_INITIALIZE((trace_level_t)5,stdout); |
206 | _core=linphone_core_new(&lcvtable,config,(gpointer)this); | 206 | _core=linphone_core_new(&lcvtable,config,(gpointer)this); |
207 | delete [] config; | 207 | delete [] config; |
208 | startTimer(10); | 208 | startTimer(10); |
209 | } | 209 | } |
210 | 210 | ||
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp index c2185f2..64557ee 100644 --- a/noncore/net/mail/accountview.cpp +++ b/noncore/net/mail/accountview.cpp | |||
@@ -1,119 +1,119 @@ | |||
1 | 1 | ||
2 | #include "accountview.h" | 2 | #include "accountview.h" |
3 | #include "accountitem.h" | 3 | #include "accountitem.h" |
4 | #include "selectstore.h" | 4 | #include "selectstore.h" |
5 | 5 | ||
6 | /* OPIE */ | 6 | /* OPIE */ |
7 | #include <libmailwrapper/settings.h> | 7 | #include <libmailwrapper/settings.h> |
8 | #include <libmailwrapper/mailwrapper.h> | 8 | #include <libmailwrapper/mailwrapper.h> |
9 | #include <libmailwrapper/mailtypes.h> | 9 | #include <libmailwrapper/mailtypes.h> |
10 | #include <libmailwrapper/abstractmail.h> | 10 | #include <libmailwrapper/abstractmail.h> |
11 | #include <qpe/qpeapplication.h> | 11 | #include <qpe/qpeapplication.h> |
12 | 12 | ||
13 | /* QT */ | 13 | /* QT */ |
14 | #include <qmessagebox.h> | 14 | #include <qmessagebox.h> |
15 | #include <qpopupmenu.h> | 15 | #include <qpopupmenu.h> |
16 | 16 | ||
17 | AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) | 17 | AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) |
18 | : QListView( parent, name, flags ) | 18 | : QListView( parent, name, flags ) |
19 | { | 19 | { |
20 | connect( this, SIGNAL( selectionChanged( QListViewItem * ) ), | 20 | connect( this, SIGNAL( selectionChanged(QListViewItem*) ), |
21 | SLOT( refresh( QListViewItem * ) ) ); | 21 | SLOT( refresh(QListViewItem*) ) ); |
22 | connect( this, SIGNAL( mouseButtonPressed(int, QListViewItem *,const QPoint&,int ) ),this, | 22 | connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, |
23 | SLOT( slotHold( int, QListViewItem *,const QPoint&,int ) ) ); | 23 | SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) ); |
24 | setSorting(0); | 24 | setSorting(0); |
25 | } | 25 | } |
26 | 26 | ||
27 | AccountView::~AccountView() | 27 | AccountView::~AccountView() |
28 | { | 28 | { |
29 | imapAccounts.clear(); | 29 | imapAccounts.clear(); |
30 | mhAccounts.clear(); | 30 | mhAccounts.clear(); |
31 | } | 31 | } |
32 | 32 | ||
33 | void AccountView::slotContextMenu(int id) | 33 | void AccountView::slotContextMenu(int id) |
34 | { | 34 | { |
35 | AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); | 35 | AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); |
36 | if (!view) return; | 36 | if (!view) return; |
37 | view->contextMenuSelected(id); | 37 | view->contextMenuSelected(id); |
38 | } | 38 | } |
39 | 39 | ||
40 | void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) | 40 | void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) |
41 | { | 41 | { |
42 | if (button==1) {return;} | 42 | if (button==1) {return;} |
43 | if (!item) return; | 43 | if (!item) return; |
44 | AccountViewItem *view = static_cast<AccountViewItem *>(item); | 44 | AccountViewItem *view = static_cast<AccountViewItem *>(item); |
45 | QPopupMenu*m = view->getContextMenu(); | 45 | QPopupMenu*m = view->getContextMenu(); |
46 | if (!m) return; | 46 | if (!m) return; |
47 | connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int))); | 47 | connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int))); |
48 | m->setFocus(); | 48 | m->setFocus(); |
49 | m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); | 49 | m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); |
50 | delete m; | 50 | delete m; |
51 | } | 51 | } |
52 | 52 | ||
53 | void AccountView::populate( QList<Account> list ) | 53 | void AccountView::populate( QList<Account> list ) |
54 | { | 54 | { |
55 | clear(); | 55 | clear(); |
56 | 56 | ||
57 | imapAccounts.clear(); | 57 | imapAccounts.clear(); |
58 | mhAccounts.clear(); | 58 | mhAccounts.clear(); |
59 | 59 | ||
60 | mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this)); | 60 | mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this)); |
61 | 61 | ||
62 | Account *it; | 62 | Account *it; |
63 | for ( it = list.first(); it; it = list.next() ) | 63 | for ( it = list.first(); it; it = list.next() ) |
64 | { | 64 | { |
65 | if ( it->getType().compare( "IMAP" ) == 0 ) | 65 | if ( it->getType().compare( "IMAP" ) == 0 ) |
66 | { | 66 | { |
67 | IMAPaccount *imap = static_cast<IMAPaccount *>(it); | 67 | IMAPaccount *imap = static_cast<IMAPaccount *>(it); |
68 | qDebug( "added IMAP " + imap->getAccountName() ); | 68 | qDebug( "added IMAP " + imap->getAccountName() ); |
69 | imapAccounts.append(new IMAPviewItem( imap, this )); | 69 | imapAccounts.append(new IMAPviewItem( imap, this )); |
70 | } | 70 | } |
71 | else if ( it->getType().compare( "POP3" ) == 0 ) | 71 | else if ( it->getType().compare( "POP3" ) == 0 ) |
72 | { | 72 | { |
73 | POP3account *pop3 = static_cast<POP3account *>(it); | 73 | POP3account *pop3 = static_cast<POP3account *>(it); |
74 | qDebug( "added POP3 " + pop3->getAccountName() ); | 74 | qDebug( "added POP3 " + pop3->getAccountName() ); |
75 | /* must not be hold 'cause it isn't required */ | 75 | /* must not be hold 'cause it isn't required */ |
76 | (void) new POP3viewItem( pop3, this ); | 76 | (void) new POP3viewItem( pop3, this ); |
77 | } | 77 | } |
78 | else if ( it->getType().compare( "NNTP" ) == 0 ) | 78 | else if ( it->getType().compare( "NNTP" ) == 0 ) |
79 | { | 79 | { |
80 | NNTPaccount *nntp = static_cast<NNTPaccount *>(it); | 80 | NNTPaccount *nntp = static_cast<NNTPaccount *>(it); |
81 | qDebug( "added NNTP " + nntp->getAccountName() ); | 81 | qDebug( "added NNTP " + nntp->getAccountName() ); |
82 | /* must not be hold 'cause it isn't required */ | 82 | /* must not be hold 'cause it isn't required */ |
83 | (void) new NNTPviewItem( nntp, this ); | 83 | (void) new NNTPviewItem( nntp, this ); |
84 | } | 84 | } |
85 | } | 85 | } |
86 | } | 86 | } |
87 | 87 | ||
88 | void AccountView::refresh(QListViewItem *item) | 88 | void AccountView::refresh(QListViewItem *item) |
89 | { | 89 | { |
90 | 90 | ||
91 | qDebug("AccountView refresh..."); | 91 | qDebug("AccountView refresh..."); |
92 | if ( item ) | 92 | if ( item ) |
93 | { | 93 | { |
94 | m_currentItem = item; | 94 | m_currentItem = item; |
95 | QList<RecMail> headerlist; | 95 | QList<RecMail> headerlist; |
96 | headerlist.setAutoDelete(true); | 96 | headerlist.setAutoDelete(true); |
97 | AccountViewItem *view = static_cast<AccountViewItem *>(item); | 97 | AccountViewItem *view = static_cast<AccountViewItem *>(item); |
98 | view->refresh(headerlist); | 98 | view->refresh(headerlist); |
99 | emit refreshMailview(&headerlist); | 99 | emit refreshMailview(&headerlist); |
100 | } | 100 | } |
101 | } | 101 | } |
102 | 102 | ||
103 | void AccountView::refreshCurrent() | 103 | void AccountView::refreshCurrent() |
104 | { | 104 | { |
105 | m_currentItem = currentItem(); | 105 | m_currentItem = currentItem(); |
106 | if ( !m_currentItem ) return; | 106 | if ( !m_currentItem ) return; |
107 | QList<RecMail> headerlist; | 107 | QList<RecMail> headerlist; |
108 | headerlist.setAutoDelete(true); | 108 | headerlist.setAutoDelete(true); |
109 | AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); | 109 | AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); |
110 | view->refresh(headerlist); | 110 | view->refresh(headerlist); |
111 | emit refreshMailview(&headerlist); | 111 | emit refreshMailview(&headerlist); |
112 | } | 112 | } |
113 | 113 | ||
114 | void AccountView::refreshAll() | 114 | void AccountView::refreshAll() |
115 | { | 115 | { |
116 | } | 116 | } |
117 | 117 | ||
118 | RecBody AccountView::fetchBody(const RecMail&aMail) | 118 | RecBody AccountView::fetchBody(const RecMail&aMail) |
119 | { | 119 | { |
diff --git a/noncore/net/mail/composemail.cpp b/noncore/net/mail/composemail.cpp index 6708779..f51a8fe 100644 --- a/noncore/net/mail/composemail.cpp +++ b/noncore/net/mail/composemail.cpp | |||
@@ -1,161 +1,161 @@ | |||
1 | #include <qt.h> | 1 | #include <qt.h> |
2 | 2 | ||
3 | #include <opie2/ofiledialog.h> | 3 | #include <opie2/ofiledialog.h> |
4 | #include <qpe/resource.h> | 4 | #include <qpe/resource.h> |
5 | #include <qpe/config.h> | 5 | #include <qpe/config.h> |
6 | #include <qpe/global.h> | 6 | #include <qpe/global.h> |
7 | #include <qpe/contact.h> | 7 | #include <qpe/contact.h> |
8 | 8 | ||
9 | #include "composemail.h" | 9 | #include "composemail.h" |
10 | 10 | ||
11 | #include <libmailwrapper/smtpwrapper.h> | 11 | #include <libmailwrapper/smtpwrapper.h> |
12 | 12 | ||
13 | ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) | 13 | ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) |
14 | : ComposeMailUI( parent, name, modal, flags ) | 14 | : ComposeMailUI( parent, name, modal, flags ) |
15 | { | 15 | { |
16 | settings = s; | 16 | settings = s; |
17 | 17 | ||
18 | QString vfilename = Global::applicationFileName("addressbook", | 18 | QString vfilename = Global::applicationFileName("addressbook", |
19 | "businesscard.vcf"); | 19 | "businesscard.vcf"); |
20 | Contact c; | 20 | Contact c; |
21 | if (QFile::exists(vfilename)) { | 21 | if (QFile::exists(vfilename)) { |
22 | c = Contact::readVCard( vfilename )[0]; | 22 | c = Contact::readVCard( vfilename )[0]; |
23 | } | 23 | } |
24 | 24 | ||
25 | QStringList mails = c.emailList(); | 25 | QStringList mails = c.emailList(); |
26 | QString defmail = c.defaultEmail(); | 26 | QString defmail = c.defaultEmail(); |
27 | 27 | ||
28 | if (defmail.length()!=0) { | 28 | if (defmail.length()!=0) { |
29 | fromBox->insertItem(defmail); | 29 | fromBox->insertItem(defmail); |
30 | } | 30 | } |
31 | QStringList::ConstIterator sit = mails.begin(); | 31 | QStringList::ConstIterator sit = mails.begin(); |
32 | for (;sit!=mails.end();++sit) { | 32 | for (;sit!=mails.end();++sit) { |
33 | if ( (*sit)==defmail) | 33 | if ( (*sit)==defmail) |
34 | continue; | 34 | continue; |
35 | fromBox->insertItem((*sit)); | 35 | fromBox->insertItem((*sit)); |
36 | } | 36 | } |
37 | senderNameEdit->setText(c.firstName()+" "+c.lastName()); | 37 | senderNameEdit->setText(c.firstName()+" "+c.lastName()); |
38 | Config cfg( "mail" ); | 38 | Config cfg( "mail" ); |
39 | cfg.setGroup( "Compose" ); | 39 | cfg.setGroup( "Compose" ); |
40 | checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) ); | 40 | checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) ); |
41 | 41 | ||
42 | attList->addColumn( tr( "Name" ) ); | 42 | attList->addColumn( tr( "Name" ) ); |
43 | attList->addColumn( tr( "Size" ) ); | 43 | attList->addColumn( tr( "Size" ) ); |
44 | 44 | ||
45 | QList<Account> accounts = settings->getAccounts(); | 45 | QList<Account> accounts = settings->getAccounts(); |
46 | 46 | ||
47 | Account *it; | 47 | Account *it; |
48 | for ( it = accounts.first(); it; it = accounts.next() ) { | 48 | for ( it = accounts.first(); it; it = accounts.next() ) { |
49 | if ( it->getType().compare( "SMTP" ) == 0 ) { | 49 | if ( it->getType().compare( "SMTP" ) == 0 ) { |
50 | SMTPaccount *smtp = static_cast<SMTPaccount *>(it); | 50 | SMTPaccount *smtp = static_cast<SMTPaccount *>(it); |
51 | smtpAccountBox->insertItem( smtp->getAccountName() ); | 51 | smtpAccountBox->insertItem( smtp->getAccountName() ); |
52 | smtpAccounts.append( smtp ); | 52 | smtpAccounts.append( smtp ); |
53 | } | 53 | } |
54 | } | 54 | } |
55 | 55 | ||
56 | if ( smtpAccounts.count() > 0 ) { | 56 | if ( smtpAccounts.count() > 0 ) { |
57 | fillValues( smtpAccountBox->currentItem() ); | 57 | fillValues( smtpAccountBox->currentItem() ); |
58 | } else { | 58 | } else { |
59 | QMessageBox::information( this, tr( "Problem" ), | 59 | QMessageBox::information( this, tr( "Problem" ), |
60 | tr( "<p>Please create an SMTP account first.</p>" ), | 60 | tr( "<p>Please create an SMTP account first.</p>" ), |
61 | tr( "Ok" ) ); | 61 | tr( "Ok" ) ); |
62 | return; | 62 | return; |
63 | } | 63 | } |
64 | 64 | ||
65 | connect( smtpAccountBox, SIGNAL( activated( int ) ), SLOT( fillValues( int ) ) ); | 65 | connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) ); |
66 | connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) ); | 66 | connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) ); |
67 | connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) ); | 67 | connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) ); |
68 | connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) ); | 68 | connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) ); |
69 | connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) ); | 69 | connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) ); |
70 | connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) ); | 70 | connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) ); |
71 | connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) ); | 71 | connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) ); |
72 | } | 72 | } |
73 | 73 | ||
74 | void ComposeMail::pickAddress( QLineEdit *line ) | 74 | void ComposeMail::pickAddress( QLineEdit *line ) |
75 | { | 75 | { |
76 | QString names = AddressPicker::getNames(); | 76 | QString names = AddressPicker::getNames(); |
77 | if ( line->text().isEmpty() ) { | 77 | if ( line->text().isEmpty() ) { |
78 | line->setText( names ); | 78 | line->setText( names ); |
79 | } else if ( !names.isEmpty() ) { | 79 | } else if ( !names.isEmpty() ) { |
80 | line->setText( line->text() + ", " + names ); | 80 | line->setText( line->text() + ", " + names ); |
81 | } | 81 | } |
82 | } | 82 | } |
83 | 83 | ||
84 | 84 | ||
85 | void ComposeMail::setTo( const QString & to ) | 85 | void ComposeMail::setTo( const QString & to ) |
86 | { | 86 | { |
87 | /* QString toline; | 87 | /* QString toline; |
88 | QStringList toEntry = to; | 88 | QStringList toEntry = to; |
89 | for ( QStringList::Iterator it = toEntry.begin(); it != toEntry.end(); ++it ) { | 89 | for ( QStringList::Iterator it = toEntry.begin(); it != toEntry.end(); ++it ) { |
90 | toline += (*it); | 90 | toline += (*it); |
91 | } | 91 | } |
92 | toLine->setText( toline ); | 92 | toLine->setText( toline ); |
93 | */ | 93 | */ |
94 | toLine->setText( to ); | 94 | toLine->setText( to ); |
95 | } | 95 | } |
96 | 96 | ||
97 | void ComposeMail::setSubject( const QString & subject ) | 97 | void ComposeMail::setSubject( const QString & subject ) |
98 | { | 98 | { |
99 | subjectLine->setText( subject ); | 99 | subjectLine->setText( subject ); |
100 | } | 100 | } |
101 | 101 | ||
102 | void ComposeMail::setInReplyTo( const QString & messageId ) | 102 | void ComposeMail::setInReplyTo( const QString & messageId ) |
103 | { | 103 | { |
104 | 104 | ||
105 | } | 105 | } |
106 | 106 | ||
107 | void ComposeMail::setMessage( const QString & text ) | 107 | void ComposeMail::setMessage( const QString & text ) |
108 | { | 108 | { |
109 | message->setText( text ); | 109 | message->setText( text ); |
110 | } | 110 | } |
111 | 111 | ||
112 | 112 | ||
113 | void ComposeMail::pickAddressTo() | 113 | void ComposeMail::pickAddressTo() |
114 | { | 114 | { |
115 | pickAddress( toLine ); | 115 | pickAddress( toLine ); |
116 | } | 116 | } |
117 | 117 | ||
118 | void ComposeMail::pickAddressCC() | 118 | void ComposeMail::pickAddressCC() |
119 | { | 119 | { |
120 | pickAddress( ccLine ); | 120 | pickAddress( ccLine ); |
121 | } | 121 | } |
122 | 122 | ||
123 | void ComposeMail::pickAddressBCC() | 123 | void ComposeMail::pickAddressBCC() |
124 | { | 124 | { |
125 | pickAddress( bccLine ); | 125 | pickAddress( bccLine ); |
126 | } | 126 | } |
127 | 127 | ||
128 | void ComposeMail::pickAddressReply() | 128 | void ComposeMail::pickAddressReply() |
129 | { | 129 | { |
130 | pickAddress( replyLine ); | 130 | pickAddress( replyLine ); |
131 | } | 131 | } |
132 | 132 | ||
133 | void ComposeMail::fillValues( int current ) | 133 | void ComposeMail::fillValues( int current ) |
134 | { | 134 | { |
135 | #if 0 | 135 | #if 0 |
136 | SMTPaccount *smtp = smtpAccounts.at( current ); | 136 | SMTPaccount *smtp = smtpAccounts.at( current ); |
137 | ccLine->clear(); | 137 | ccLine->clear(); |
138 | if ( smtp->getUseCC() ) { | 138 | if ( smtp->getUseCC() ) { |
139 | ccLine->setText( smtp->getCC() ); | 139 | ccLine->setText( smtp->getCC() ); |
140 | } | 140 | } |
141 | bccLine->clear(); | 141 | bccLine->clear(); |
142 | if ( smtp->getUseBCC() ) { | 142 | if ( smtp->getUseBCC() ) { |
143 | bccLine->setText( smtp->getBCC() ); | 143 | bccLine->setText( smtp->getBCC() ); |
144 | } | 144 | } |
145 | replyLine->clear(); | 145 | replyLine->clear(); |
146 | if ( smtp->getUseReply() ) { | 146 | if ( smtp->getUseReply() ) { |
147 | replyLine->setText( smtp->getReply() ); | 147 | replyLine->setText( smtp->getReply() ); |
148 | } | 148 | } |
149 | sigMultiLine->setText( smtp->getSignature() ); | 149 | sigMultiLine->setText( smtp->getSignature() ); |
150 | #endif | 150 | #endif |
151 | } | 151 | } |
152 | 152 | ||
153 | void ComposeMail::slotAdjustColumns() | 153 | void ComposeMail::slotAdjustColumns() |
154 | { | 154 | { |
155 | int currPage = tabWidget->currentPageIndex(); | 155 | int currPage = tabWidget->currentPageIndex(); |
156 | 156 | ||
157 | tabWidget->showPage( attachTab ); | 157 | tabWidget->showPage( attachTab ); |
158 | attList->setColumnWidth( 0, attList->visibleWidth() - 80 ); | 158 | attList->setColumnWidth( 0, attList->visibleWidth() - 80 ); |
159 | attList->setColumnWidth( 1, 80 ); | 159 | attList->setColumnWidth( 1, 80 ); |
160 | 160 | ||
161 | tabWidget->setCurrentPage( currPage ); | 161 | tabWidget->setCurrentPage( currPage ); |
diff --git a/noncore/net/mail/editaccounts.cpp b/noncore/net/mail/editaccounts.cpp index 60bffa5..edeb1de 100644 --- a/noncore/net/mail/editaccounts.cpp +++ b/noncore/net/mail/editaccounts.cpp | |||
@@ -191,342 +191,342 @@ void EditAccounts::slotDeleteAccount( Account *account ) | |||
191 | 191 | ||
192 | void EditAccounts::slotEditMail() | 192 | void EditAccounts::slotEditMail() |
193 | { | 193 | { |
194 | qDebug( "Edit Mail Account" ); | 194 | qDebug( "Edit Mail Account" ); |
195 | if ( !mailList->currentItem() ) | 195 | if ( !mailList->currentItem() ) |
196 | { | 196 | { |
197 | QMessageBox::information( this, tr( "Error" ), | 197 | QMessageBox::information( this, tr( "Error" ), |
198 | tr( "<p>Please select an account.</p>" ), | 198 | tr( "<p>Please select an account.</p>" ), |
199 | tr( "Ok" ) ); | 199 | tr( "Ok" ) ); |
200 | return; | 200 | return; |
201 | } | 201 | } |
202 | 202 | ||
203 | Account *a = ((AccountListItem *) mailList->currentItem())->getAccount(); | 203 | Account *a = ((AccountListItem *) mailList->currentItem())->getAccount(); |
204 | slotEditAccount( a ); | 204 | slotEditAccount( a ); |
205 | } | 205 | } |
206 | 206 | ||
207 | void EditAccounts::slotDeleteMail() | 207 | void EditAccounts::slotDeleteMail() |
208 | { | 208 | { |
209 | if ( !mailList->currentItem() ) | 209 | if ( !mailList->currentItem() ) |
210 | { | 210 | { |
211 | QMessageBox::information( this, tr( "Error" ), | 211 | QMessageBox::information( this, tr( "Error" ), |
212 | tr( "<p>Please select an account.</p>" ), | 212 | tr( "<p>Please select an account.</p>" ), |
213 | tr( "Ok" ) ); | 213 | tr( "Ok" ) ); |
214 | return; | 214 | return; |
215 | } | 215 | } |
216 | 216 | ||
217 | Account *a = ((AccountListItem *) mailList->currentItem())->getAccount(); | 217 | Account *a = ((AccountListItem *) mailList->currentItem())->getAccount(); |
218 | slotDeleteAccount( a ); | 218 | slotDeleteAccount( a ); |
219 | } | 219 | } |
220 | 220 | ||
221 | void EditAccounts::slotNewNews() | 221 | void EditAccounts::slotNewNews() |
222 | { | 222 | { |
223 | qDebug( "New News Account" ); | 223 | qDebug( "New News Account" ); |
224 | slotNewAccount( "NNTP" ); | 224 | slotNewAccount( "NNTP" ); |
225 | } | 225 | } |
226 | 226 | ||
227 | void EditAccounts::slotEditNews() | 227 | void EditAccounts::slotEditNews() |
228 | { | 228 | { |
229 | qDebug( "Edit News Account" ); | 229 | qDebug( "Edit News Account" ); |
230 | if ( !newsList->currentItem() ) | 230 | if ( !newsList->currentItem() ) |
231 | { | 231 | { |
232 | QMessageBox::information( this, tr( "Error" ), | 232 | QMessageBox::information( this, tr( "Error" ), |
233 | tr( "<p>Please select an account.</p>" ), | 233 | tr( "<p>Please select an account.</p>" ), |
234 | tr( "Ok" ) ); | 234 | tr( "Ok" ) ); |
235 | return; | 235 | return; |
236 | } | 236 | } |
237 | 237 | ||
238 | Account *a = ((AccountListItem *) newsList->currentItem())->getAccount(); | 238 | Account *a = ((AccountListItem *) newsList->currentItem())->getAccount(); |
239 | slotEditAccount( a ); | 239 | slotEditAccount( a ); |
240 | } | 240 | } |
241 | 241 | ||
242 | void EditAccounts::slotDeleteNews() | 242 | void EditAccounts::slotDeleteNews() |
243 | { | 243 | { |
244 | qDebug( "Delete News Account" ); | 244 | qDebug( "Delete News Account" ); |
245 | if ( !newsList->currentItem() ) | 245 | if ( !newsList->currentItem() ) |
246 | { | 246 | { |
247 | QMessageBox::information( this, tr( "Error" ), | 247 | QMessageBox::information( this, tr( "Error" ), |
248 | tr( "<p>Please select an account.</p>" ), | 248 | tr( "<p>Please select an account.</p>" ), |
249 | tr( "Ok" ) ); | 249 | tr( "Ok" ) ); |
250 | return; | 250 | return; |
251 | } | 251 | } |
252 | 252 | ||
253 | Account *a = ((AccountListItem *) newsList->currentItem())->getAccount(); | 253 | Account *a = ((AccountListItem *) newsList->currentItem())->getAccount(); |
254 | slotDeleteAccount( a ); | 254 | slotDeleteAccount( a ); |
255 | } | 255 | } |
256 | 256 | ||
257 | void EditAccounts::slotAdjustColumns() | 257 | void EditAccounts::slotAdjustColumns() |
258 | { | 258 | { |
259 | int currPage = configTab->currentPageIndex(); | 259 | int currPage = configTab->currentPageIndex(); |
260 | 260 | ||
261 | configTab->showPage( mailTab ); | 261 | configTab->showPage( mailTab ); |
262 | mailList->setColumnWidth( 0, mailList->visibleWidth() - 50 ); | 262 | mailList->setColumnWidth( 0, mailList->visibleWidth() - 50 ); |
263 | mailList->setColumnWidth( 1, 50 ); | 263 | mailList->setColumnWidth( 1, 50 ); |
264 | 264 | ||
265 | configTab->showPage( newsTab ); | 265 | configTab->showPage( newsTab ); |
266 | newsList->setColumnWidth( 0, newsList->visibleWidth() ); | 266 | newsList->setColumnWidth( 0, newsList->visibleWidth() ); |
267 | 267 | ||
268 | configTab->setCurrentPage( currPage ); | 268 | configTab->setCurrentPage( currPage ); |
269 | } | 269 | } |
270 | 270 | ||
271 | void EditAccounts::accept() | 271 | void EditAccounts::accept() |
272 | { | 272 | { |
273 | settings->saveAccounts(); | 273 | settings->saveAccounts(); |
274 | 274 | ||
275 | QDialog::accept(); | 275 | QDialog::accept(); |
276 | } | 276 | } |
277 | 277 | ||
278 | /** | 278 | /** |
279 | * SelectMailType | 279 | * SelectMailType |
280 | */ | 280 | */ |
281 | 281 | ||
282 | SelectMailType::SelectMailType( QString *selection, QWidget *parent, const char *name, bool modal, WFlags flags ) | 282 | SelectMailType::SelectMailType( QString *selection, QWidget *parent, const char *name, bool modal, WFlags flags ) |
283 | : SelectMailTypeUI( parent, name, modal, flags ) | 283 | : SelectMailTypeUI( parent, name, modal, flags ) |
284 | { | 284 | { |
285 | selected = selection; | 285 | selected = selection; |
286 | selected->replace( 0, selected->length(), typeBox->currentText() ); | 286 | selected->replace( 0, selected->length(), typeBox->currentText() ); |
287 | connect( typeBox, SIGNAL( activated( const QString & ) ), SLOT( slotSelection( const QString & ) ) ); | 287 | connect( typeBox, SIGNAL( activated(const QString&) ), SLOT( slotSelection(const QString&) ) ); |
288 | } | 288 | } |
289 | 289 | ||
290 | void SelectMailType::slotSelection( const QString &sel ) | 290 | void SelectMailType::slotSelection( const QString &sel ) |
291 | { | 291 | { |
292 | selected->replace( 0, selected->length(), sel ); | 292 | selected->replace( 0, selected->length(), sel ); |
293 | } | 293 | } |
294 | 294 | ||
295 | /** | 295 | /** |
296 | * IMAPconfig | 296 | * IMAPconfig |
297 | */ | 297 | */ |
298 | 298 | ||
299 | IMAPconfig::IMAPconfig( IMAPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | 299 | IMAPconfig::IMAPconfig( IMAPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) |
300 | : IMAPconfigUI( parent, name, modal, flags ) | 300 | : IMAPconfigUI( parent, name, modal, flags ) |
301 | { | 301 | { |
302 | data = account; | 302 | data = account; |
303 | 303 | ||
304 | fillValues(); | 304 | fillValues(); |
305 | 305 | ||
306 | connect( ComboBox1, SIGNAL( activated( int ) ), SLOT( slotConnectionToggle( int ) ) ); | 306 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); |
307 | ComboBox1->insertItem( "Only if available", 0 ); | 307 | ComboBox1->insertItem( "Only if available", 0 ); |
308 | ComboBox1->insertItem( "Always, Negotiated", 1 ); | 308 | ComboBox1->insertItem( "Always, Negotiated", 1 ); |
309 | ComboBox1->insertItem( "Connect on secure port", 2 ); | 309 | ComboBox1->insertItem( "Connect on secure port", 2 ); |
310 | ComboBox1->insertItem( "Run command instead", 3 ); | 310 | ComboBox1->insertItem( "Run command instead", 3 ); |
311 | CommandEdit->hide(); | 311 | CommandEdit->hide(); |
312 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 312 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
313 | } | 313 | } |
314 | 314 | ||
315 | void IMAPconfig::slotConnectionToggle( int index ) | 315 | void IMAPconfig::slotConnectionToggle( int index ) |
316 | { | 316 | { |
317 | if ( index == 2 ) | 317 | if ( index == 2 ) |
318 | { | 318 | { |
319 | portLine->setText( IMAP_SSL_PORT ); | 319 | portLine->setText( IMAP_SSL_PORT ); |
320 | } | 320 | } |
321 | else if ( index == 3 ) | 321 | else if ( index == 3 ) |
322 | { | 322 | { |
323 | portLine->setText( IMAP_PORT ); | 323 | portLine->setText( IMAP_PORT ); |
324 | CommandEdit->show(); | 324 | CommandEdit->show(); |
325 | } | 325 | } |
326 | else | 326 | else |
327 | { | 327 | { |
328 | portLine->setText( IMAP_PORT ); | 328 | portLine->setText( IMAP_PORT ); |
329 | } | 329 | } |
330 | } | 330 | } |
331 | 331 | ||
332 | void IMAPconfig::fillValues() | 332 | void IMAPconfig::fillValues() |
333 | { | 333 | { |
334 | accountLine->setText( data->getAccountName() ); | 334 | accountLine->setText( data->getAccountName() ); |
335 | serverLine->setText( data->getServer() ); | 335 | serverLine->setText( data->getServer() ); |
336 | portLine->setText( data->getPort() ); | 336 | portLine->setText( data->getPort() ); |
337 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 337 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
338 | userLine->setText( data->getUser() ); | 338 | userLine->setText( data->getUser() ); |
339 | passLine->setText( data->getPassword() ); | 339 | passLine->setText( data->getPassword() ); |
340 | prefixLine->setText(data->getPrefix()); | 340 | prefixLine->setText(data->getPrefix()); |
341 | } | 341 | } |
342 | 342 | ||
343 | void IMAPconfig::accept() | 343 | void IMAPconfig::accept() |
344 | { | 344 | { |
345 | data->setAccountName( accountLine->text() ); | 345 | data->setAccountName( accountLine->text() ); |
346 | data->setServer( serverLine->text() ); | 346 | data->setServer( serverLine->text() ); |
347 | data->setPort( portLine->text() ); | 347 | data->setPort( portLine->text() ); |
348 | data->setConnectionType( ComboBox1->currentItem() ); | 348 | data->setConnectionType( ComboBox1->currentItem() ); |
349 | data->setUser( userLine->text() ); | 349 | data->setUser( userLine->text() ); |
350 | data->setPassword( passLine->text() ); | 350 | data->setPassword( passLine->text() ); |
351 | data->setPrefix(prefixLine->text()); | 351 | data->setPrefix(prefixLine->text()); |
352 | 352 | ||
353 | QDialog::accept(); | 353 | QDialog::accept(); |
354 | } | 354 | } |
355 | 355 | ||
356 | /** | 356 | /** |
357 | * POP3config | 357 | * POP3config |
358 | */ | 358 | */ |
359 | 359 | ||
360 | POP3config::POP3config( POP3account *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | 360 | POP3config::POP3config( POP3account *account, QWidget *parent, const char *name, bool modal, WFlags flags ) |
361 | : POP3configUI( parent, name, modal, flags ) | 361 | : POP3configUI( parent, name, modal, flags ) |
362 | { | 362 | { |
363 | data = account; | 363 | data = account; |
364 | fillValues(); | 364 | fillValues(); |
365 | 365 | ||
366 | connect( ComboBox1, SIGNAL( activated( int ) ), SLOT( slotConnectionToggle( int ) ) ); | 366 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); |
367 | ComboBox1->insertItem( "Only if available", 0 ); | 367 | ComboBox1->insertItem( "Only if available", 0 ); |
368 | ComboBox1->insertItem( "Always, Negotiated", 1 ); | 368 | ComboBox1->insertItem( "Always, Negotiated", 1 ); |
369 | ComboBox1->insertItem( "Connect on secure port", 2 ); | 369 | ComboBox1->insertItem( "Connect on secure port", 2 ); |
370 | ComboBox1->insertItem( "Run command instead", 3 ); | 370 | ComboBox1->insertItem( "Run command instead", 3 ); |
371 | CommandEdit->hide(); | 371 | CommandEdit->hide(); |
372 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 372 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
373 | } | 373 | } |
374 | 374 | ||
375 | void POP3config::slotConnectionToggle( int index ) | 375 | void POP3config::slotConnectionToggle( int index ) |
376 | { | 376 | { |
377 | // 2 is ssl connection | 377 | // 2 is ssl connection |
378 | if ( index == 2 ) | 378 | if ( index == 2 ) |
379 | { | 379 | { |
380 | portLine->setText( POP3_SSL_PORT ); | 380 | portLine->setText( POP3_SSL_PORT ); |
381 | } | 381 | } |
382 | else if ( index == 3 ) | 382 | else if ( index == 3 ) |
383 | { | 383 | { |
384 | portLine->setText( POP3_PORT ); | 384 | portLine->setText( POP3_PORT ); |
385 | CommandEdit->show(); | 385 | CommandEdit->show(); |
386 | } | 386 | } |
387 | else | 387 | else |
388 | { | 388 | { |
389 | portLine->setText( POP3_PORT ); | 389 | portLine->setText( POP3_PORT ); |
390 | } | 390 | } |
391 | } | 391 | } |
392 | 392 | ||
393 | void POP3config::fillValues() | 393 | void POP3config::fillValues() |
394 | { | 394 | { |
395 | accountLine->setText( data->getAccountName() ); | 395 | accountLine->setText( data->getAccountName() ); |
396 | serverLine->setText( data->getServer() ); | 396 | serverLine->setText( data->getServer() ); |
397 | portLine->setText( data->getPort() ); | 397 | portLine->setText( data->getPort() ); |
398 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 398 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
399 | userLine->setText( data->getUser() ); | 399 | userLine->setText( data->getUser() ); |
400 | passLine->setText( data->getPassword() ); | 400 | passLine->setText( data->getPassword() ); |
401 | } | 401 | } |
402 | 402 | ||
403 | void POP3config::accept() | 403 | void POP3config::accept() |
404 | { | 404 | { |
405 | data->setAccountName( accountLine->text() ); | 405 | data->setAccountName( accountLine->text() ); |
406 | data->setServer( serverLine->text() ); | 406 | data->setServer( serverLine->text() ); |
407 | data->setPort( portLine->text() ); | 407 | data->setPort( portLine->text() ); |
408 | data->setConnectionType( ComboBox1->currentItem() ); | 408 | data->setConnectionType( ComboBox1->currentItem() ); |
409 | data->setUser( userLine->text() ); | 409 | data->setUser( userLine->text() ); |
410 | data->setPassword( passLine->text() ); | 410 | data->setPassword( passLine->text() ); |
411 | 411 | ||
412 | QDialog::accept(); | 412 | QDialog::accept(); |
413 | } | 413 | } |
414 | 414 | ||
415 | /** | 415 | /** |
416 | * SMTPconfig | 416 | * SMTPconfig |
417 | */ | 417 | */ |
418 | 418 | ||
419 | SMTPconfig::SMTPconfig( SMTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | 419 | SMTPconfig::SMTPconfig( SMTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) |
420 | : SMTPconfigUI( parent, name, modal, flags ) | 420 | : SMTPconfigUI( parent, name, modal, flags ) |
421 | { | 421 | { |
422 | data = account; | 422 | data = account; |
423 | 423 | ||
424 | connect( loginBox, SIGNAL( toggled( bool ) ), userLine, SLOT( setEnabled( bool ) ) ); | 424 | connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) ); |
425 | connect( loginBox, SIGNAL( toggled( bool ) ), passLine, SLOT( setEnabled( bool ) ) ); | 425 | connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) ); |
426 | 426 | ||
427 | fillValues(); | 427 | fillValues(); |
428 | 428 | ||
429 | connect( ComboBox1, SIGNAL( activated( int ) ), SLOT( slotConnectionToggle( int ) ) ); | 429 | connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); |
430 | ComboBox1->insertItem( "Only if available", 0 ); | 430 | ComboBox1->insertItem( "Only if available", 0 ); |
431 | ComboBox1->insertItem( "Always, Negotiated", 1 ); | 431 | ComboBox1->insertItem( "Always, Negotiated", 1 ); |
432 | ComboBox1->insertItem( "Connect on secure port", 2 ); | 432 | ComboBox1->insertItem( "Connect on secure port", 2 ); |
433 | ComboBox1->insertItem( "Run command instead", 3 ); | 433 | ComboBox1->insertItem( "Run command instead", 3 ); |
434 | CommandEdit->hide(); | 434 | CommandEdit->hide(); |
435 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 435 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
436 | } | 436 | } |
437 | 437 | ||
438 | void SMTPconfig::slotConnectionToggle( int index ) | 438 | void SMTPconfig::slotConnectionToggle( int index ) |
439 | { | 439 | { |
440 | // 2 is ssl connection | 440 | // 2 is ssl connection |
441 | if ( index == 2 ) | 441 | if ( index == 2 ) |
442 | { | 442 | { |
443 | portLine->setText( SMTP_SSL_PORT ); | 443 | portLine->setText( SMTP_SSL_PORT ); |
444 | } | 444 | } |
445 | else if ( index == 3 ) | 445 | else if ( index == 3 ) |
446 | { | 446 | { |
447 | portLine->setText( SMTP_PORT ); | 447 | portLine->setText( SMTP_PORT ); |
448 | CommandEdit->show(); | 448 | CommandEdit->show(); |
449 | } | 449 | } |
450 | else | 450 | else |
451 | { | 451 | { |
452 | portLine->setText( SMTP_PORT ); | 452 | portLine->setText( SMTP_PORT ); |
453 | } | 453 | } |
454 | } | 454 | } |
455 | 455 | ||
456 | void SMTPconfig::fillValues() | 456 | void SMTPconfig::fillValues() |
457 | { | 457 | { |
458 | accountLine->setText( data->getAccountName() ); | 458 | accountLine->setText( data->getAccountName() ); |
459 | serverLine->setText( data->getServer() ); | 459 | serverLine->setText( data->getServer() ); |
460 | portLine->setText( data->getPort() ); | 460 | portLine->setText( data->getPort() ); |
461 | ComboBox1->setCurrentItem( data->ConnectionType() ); | 461 | ComboBox1->setCurrentItem( data->ConnectionType() ); |
462 | loginBox->setChecked( data->getLogin() ); | 462 | loginBox->setChecked( data->getLogin() ); |
463 | userLine->setText( data->getUser() ); | 463 | userLine->setText( data->getUser() ); |
464 | passLine->setText( data->getPassword() ); | 464 | passLine->setText( data->getPassword() ); |
465 | } | 465 | } |
466 | 466 | ||
467 | void SMTPconfig::accept() | 467 | void SMTPconfig::accept() |
468 | { | 468 | { |
469 | data->setAccountName( accountLine->text() ); | 469 | data->setAccountName( accountLine->text() ); |
470 | data->setServer( serverLine->text() ); | 470 | data->setServer( serverLine->text() ); |
471 | data->setPort( portLine->text() ); | 471 | data->setPort( portLine->text() ); |
472 | data->setConnectionType( ComboBox1->currentItem() ); | 472 | data->setConnectionType( ComboBox1->currentItem() ); |
473 | data->setLogin( loginBox->isChecked() ); | 473 | data->setLogin( loginBox->isChecked() ); |
474 | data->setUser( userLine->text() ); | 474 | data->setUser( userLine->text() ); |
475 | data->setPassword( passLine->text() ); | 475 | data->setPassword( passLine->text() ); |
476 | 476 | ||
477 | QDialog::accept(); | 477 | QDialog::accept(); |
478 | } | 478 | } |
479 | 479 | ||
480 | /** | 480 | /** |
481 | * NNTPconfig | 481 | * NNTPconfig |
482 | */ | 482 | */ |
483 | 483 | ||
484 | NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | 484 | NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) |
485 | : NNTPconfigUI( parent, name, modal, flags ) | 485 | : NNTPconfigUI( parent, name, modal, flags ) |
486 | { | 486 | { |
487 | data = account; | 487 | data = account; |
488 | 488 | ||
489 | connect( loginBox, SIGNAL( toggled( bool ) ), userLine, SLOT( setEnabled( bool ) ) ); | 489 | connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) ); |
490 | connect( loginBox, SIGNAL( toggled( bool ) ), passLine, SLOT( setEnabled( bool ) ) ); | 490 | connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) ); |
491 | 491 | ||
492 | fillValues(); | 492 | fillValues(); |
493 | 493 | ||
494 | connect( sslBox, SIGNAL( toggled( bool ) ), SLOT( slotSSL( bool ) ) ); | 494 | connect( sslBox, SIGNAL( toggled(bool) ), SLOT( slotSSL(bool) ) ); |
495 | } | 495 | } |
496 | 496 | ||
497 | void NNTPconfig::slotSSL( bool enabled ) | 497 | void NNTPconfig::slotSSL( bool enabled ) |
498 | { | 498 | { |
499 | if ( enabled ) | 499 | if ( enabled ) |
500 | { | 500 | { |
501 | portLine->setText( NNTP_SSL_PORT ); | 501 | portLine->setText( NNTP_SSL_PORT ); |
502 | } | 502 | } |
503 | else | 503 | else |
504 | { | 504 | { |
505 | portLine->setText( NNTP_PORT ); | 505 | portLine->setText( NNTP_PORT ); |
506 | } | 506 | } |
507 | } | 507 | } |
508 | 508 | ||
509 | void NNTPconfig::fillValues() | 509 | void NNTPconfig::fillValues() |
510 | { | 510 | { |
511 | accountLine->setText( data->getAccountName() ); | 511 | accountLine->setText( data->getAccountName() ); |
512 | serverLine->setText( data->getServer() ); | 512 | serverLine->setText( data->getServer() ); |
513 | portLine->setText( data->getPort() ); | 513 | portLine->setText( data->getPort() ); |
514 | sslBox->setChecked( data->getSSL() ); | 514 | sslBox->setChecked( data->getSSL() ); |
515 | loginBox->setChecked( data->getLogin() ); | 515 | loginBox->setChecked( data->getLogin() ); |
516 | userLine->setText( data->getUser() ); | 516 | userLine->setText( data->getUser() ); |
517 | passLine->setText( data->getPassword() ); | 517 | passLine->setText( data->getPassword() ); |
518 | } | 518 | } |
519 | 519 | ||
520 | void NNTPconfig::accept() | 520 | void NNTPconfig::accept() |
521 | { | 521 | { |
522 | data->setAccountName( accountLine->text() ); | 522 | data->setAccountName( accountLine->text() ); |
523 | data->setServer( serverLine->text() ); | 523 | data->setServer( serverLine->text() ); |
524 | data->setPort( portLine->text() ); | 524 | data->setPort( portLine->text() ); |
525 | data->setSSL( sslBox->isChecked() ); | 525 | data->setSSL( sslBox->isChecked() ); |
526 | data->setLogin( loginBox->isChecked() ); | 526 | data->setLogin( loginBox->isChecked() ); |
527 | data->setUser( userLine->text() ); | 527 | data->setUser( userLine->text() ); |
528 | data->setPassword( passLine->text() ); | 528 | data->setPassword( passLine->text() ); |
529 | 529 | ||
530 | QDialog::accept(); | 530 | QDialog::accept(); |
531 | } | 531 | } |
532 | 532 | ||
diff --git a/noncore/net/mail/libmailwrapper/mhwrapper.cpp b/noncore/net/mail/libmailwrapper/mhwrapper.cpp index dfc00d8..df7f773 100644 --- a/noncore/net/mail/libmailwrapper/mhwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mhwrapper.cpp | |||
@@ -229,196 +229,196 @@ encodedString* MHwrapper::fetchRawBody(const RecMail&mail) | |||
229 | if (r!=MAIL_NO_ERROR) { | 229 | if (r!=MAIL_NO_ERROR) { |
230 | qDebug("error selecting folder!"); | 230 | qDebug("error selecting folder!"); |
231 | return result; | 231 | return result; |
232 | } | 232 | } |
233 | r = mailsession_get_message(m_storage->sto_session, mail.getNumber(), &msg); | 233 | r = mailsession_get_message(m_storage->sto_session, mail.getNumber(), &msg); |
234 | if (r != MAIL_NO_ERROR) { | 234 | if (r != MAIL_NO_ERROR) { |
235 | Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); | 235 | Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); |
236 | return 0; | 236 | return 0; |
237 | } | 237 | } |
238 | r = mailmessage_fetch(msg,&data,&size); | 238 | r = mailmessage_fetch(msg,&data,&size); |
239 | if (r != MAIL_NO_ERROR) { | 239 | if (r != MAIL_NO_ERROR) { |
240 | Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); | 240 | Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); |
241 | if (msg) mailmessage_free(msg); | 241 | if (msg) mailmessage_free(msg); |
242 | return 0; | 242 | return 0; |
243 | } | 243 | } |
244 | result = new encodedString(data,size); | 244 | result = new encodedString(data,size); |
245 | if (msg) mailmessage_free(msg); | 245 | if (msg) mailmessage_free(msg); |
246 | return result; | 246 | return result; |
247 | } | 247 | } |
248 | 248 | ||
249 | void MHwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) | 249 | void MHwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) |
250 | { | 250 | { |
251 | QString f = buildPath(mailbox); | 251 | QString f = buildPath(mailbox); |
252 | int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); | 252 | int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); |
253 | if (r!=MAIL_NO_ERROR) { | 253 | if (r!=MAIL_NO_ERROR) { |
254 | qDebug("deleteMails: error selecting folder!"); | 254 | qDebug("deleteMails: error selecting folder!"); |
255 | return; | 255 | return; |
256 | } | 256 | } |
257 | RecMail*c = 0; | 257 | RecMail*c = 0; |
258 | for (unsigned int i=0; i < target.count();++i) { | 258 | for (unsigned int i=0; i < target.count();++i) { |
259 | c = target.at(i); | 259 | c = target.at(i); |
260 | r = mailsession_remove_message(m_storage->sto_session,c->getNumber()); | 260 | r = mailsession_remove_message(m_storage->sto_session,c->getNumber()); |
261 | if (r != MAIL_NO_ERROR) { | 261 | if (r != MAIL_NO_ERROR) { |
262 | qDebug("error deleting mail"); | 262 | qDebug("error deleting mail"); |
263 | break; | 263 | break; |
264 | } | 264 | } |
265 | } | 265 | } |
266 | } | 266 | } |
267 | 267 | ||
268 | int MHwrapper::deleteAllMail(const Folder*tfolder) | 268 | int MHwrapper::deleteAllMail(const Folder*tfolder) |
269 | { | 269 | { |
270 | init_storage(); | 270 | init_storage(); |
271 | if (!m_storage) { | 271 | if (!m_storage) { |
272 | return 0; | 272 | return 0; |
273 | } | 273 | } |
274 | int res = 1; | 274 | int res = 1; |
275 | if (!tfolder) return 0; | 275 | if (!tfolder) return 0; |
276 | int r = mailsession_select_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); | 276 | int r = mailsession_select_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); |
277 | if (r!=MAIL_NO_ERROR) { | 277 | if (r!=MAIL_NO_ERROR) { |
278 | qDebug("error selecting folder!"); | 278 | qDebug("error selecting folder!"); |
279 | return 0; | 279 | return 0; |
280 | } | 280 | } |
281 | mailmessage_list*l=0; | 281 | mailmessage_list*l=0; |
282 | r = mailsession_get_messages_list(m_storage->sto_session,&l); | 282 | r = mailsession_get_messages_list(m_storage->sto_session,&l); |
283 | if (r != MAIL_NO_ERROR) { | 283 | if (r != MAIL_NO_ERROR) { |
284 | qDebug("Error message list"); | 284 | qDebug("Error message list"); |
285 | res = 0; | 285 | res = 0; |
286 | } | 286 | } |
287 | unsigned j = 0; | 287 | unsigned j = 0; |
288 | for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) { | 288 | for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) { |
289 | mailmessage * msg; | 289 | mailmessage * msg; |
290 | msg = (mailmessage*)carray_get(l->msg_tab, i); | 290 | msg = (mailmessage*)carray_get(l->msg_tab, i); |
291 | j = msg->msg_index; | 291 | j = msg->msg_index; |
292 | r = mailsession_remove_message(m_storage->sto_session,j); | 292 | r = mailsession_remove_message(m_storage->sto_session,j); |
293 | if (r != MAIL_NO_ERROR) { | 293 | if (r != MAIL_NO_ERROR) { |
294 | Global::statusMessage(tr("Error deleting mail %1").arg(i+1)); | 294 | Global::statusMessage(tr("Error deleting mail %1").arg(i+1)); |
295 | res = 0; | 295 | res = 0; |
296 | break; | 296 | break; |
297 | } | 297 | } |
298 | } | 298 | } |
299 | if (l) mailmessage_list_free(l); | 299 | if (l) mailmessage_list_free(l); |
300 | return res; | 300 | return res; |
301 | } | 301 | } |
302 | 302 | ||
303 | int MHwrapper::deleteMbox(const Folder*tfolder) | 303 | int MHwrapper::deleteMbox(const Folder*tfolder) |
304 | { | 304 | { |
305 | init_storage(); | 305 | init_storage(); |
306 | if (!m_storage) { | 306 | if (!m_storage) { |
307 | return 0; | 307 | return 0; |
308 | } | 308 | } |
309 | if (!tfolder) return 0; | 309 | if (!tfolder) return 0; |
310 | if (tfolder->getName()=="/" || tfolder->getName().isEmpty()) return 0; | 310 | if (tfolder->getName()=="/" || tfolder->getName().isEmpty()) return 0; |
311 | 311 | ||
312 | int r = mailsession_delete_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); | 312 | int r = mailsession_delete_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); |
313 | 313 | ||
314 | if (r != MAIL_NO_ERROR) { | 314 | if (r != MAIL_NO_ERROR) { |
315 | qDebug("error deleting mail box"); | 315 | qDebug("error deleting mail box"); |
316 | return 0; | 316 | return 0; |
317 | } | 317 | } |
318 | QString cmd = "rm -rf "+tfolder->getName(); | 318 | QString cmd = "rm -rf "+tfolder->getName(); |
319 | QStringList command; | 319 | QStringList command; |
320 | command << "/bin/sh"; | 320 | command << "/bin/sh"; |
321 | command << "-c"; | 321 | command << "-c"; |
322 | command << cmd.latin1(); | 322 | command << cmd.latin1(); |
323 | OProcess *process = new OProcess(); | 323 | OProcess *process = new OProcess(); |
324 | 324 | ||
325 | connect(process, SIGNAL(processExited(OProcess *)), | 325 | connect(process, SIGNAL(processExited(OProcess*)), |
326 | this, SLOT( processEnded(OProcess *))); | 326 | this, SLOT( processEnded(OProcess*))); |
327 | connect(process, SIGNAL( receivedStderr(OProcess *, char *, int)), | 327 | connect(process, SIGNAL( receivedStderr(OProcess*,char*,int)), |
328 | this, SLOT( oprocessStderr(OProcess *, char *, int))); | 328 | this, SLOT( oprocessStderr(OProcess*,char*,int))); |
329 | 329 | ||
330 | *process << command; | 330 | *process << command; |
331 | removeMboxfailed = false; | 331 | removeMboxfailed = false; |
332 | if(!process->start(OProcess::Block, OProcess::All) ) { | 332 | if(!process->start(OProcess::Block, OProcess::All) ) { |
333 | qDebug("could not start process"); | 333 | qDebug("could not start process"); |
334 | return 0; | 334 | return 0; |
335 | } | 335 | } |
336 | qDebug("mail box deleted"); | 336 | qDebug("mail box deleted"); |
337 | return 1; | 337 | return 1; |
338 | } | 338 | } |
339 | 339 | ||
340 | void MHwrapper::processEnded(OProcess *p) | 340 | void MHwrapper::processEnded(OProcess *p) |
341 | { | 341 | { |
342 | if (p) delete p; | 342 | if (p) delete p; |
343 | } | 343 | } |
344 | 344 | ||
345 | void MHwrapper::oprocessStderr(OProcess*, char *buffer, int ) | 345 | void MHwrapper::oprocessStderr(OProcess*, char *buffer, int ) |
346 | { | 346 | { |
347 | QString lineStr = buffer; | 347 | QString lineStr = buffer; |
348 | QMessageBox::warning( 0, tr("Error"), lineStr ,tr("Ok") ); | 348 | QMessageBox::warning( 0, tr("Error"), lineStr ,tr("Ok") ); |
349 | removeMboxfailed = true; | 349 | removeMboxfailed = true; |
350 | } | 350 | } |
351 | 351 | ||
352 | void MHwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) | 352 | void MHwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) |
353 | { | 353 | { |
354 | init_storage(); | 354 | init_storage(); |
355 | if (!m_storage) { | 355 | if (!m_storage) { |
356 | return; | 356 | return; |
357 | } | 357 | } |
358 | target_stat.message_count = 0; | 358 | target_stat.message_count = 0; |
359 | target_stat.message_unseen = 0; | 359 | target_stat.message_unseen = 0; |
360 | target_stat.message_recent = 0; | 360 | target_stat.message_recent = 0; |
361 | QString f = buildPath(mailbox); | 361 | QString f = buildPath(mailbox); |
362 | int r = mailsession_status_folder(m_storage->sto_session,(char*)f.latin1(),&target_stat.message_count, | 362 | int r = mailsession_status_folder(m_storage->sto_session,(char*)f.latin1(),&target_stat.message_count, |
363 | &target_stat.message_recent,&target_stat.message_unseen); | 363 | &target_stat.message_recent,&target_stat.message_unseen); |
364 | if (r != MAIL_NO_ERROR) { | 364 | if (r != MAIL_NO_ERROR) { |
365 | Global::statusMessage(tr("Error retrieving status")); | 365 | Global::statusMessage(tr("Error retrieving status")); |
366 | } | 366 | } |
367 | } | 367 | } |
368 | 368 | ||
369 | const QString&MHwrapper::getType()const | 369 | const QString&MHwrapper::getType()const |
370 | { | 370 | { |
371 | return wrapperType; | 371 | return wrapperType; |
372 | } | 372 | } |
373 | 373 | ||
374 | const QString&MHwrapper::getName()const | 374 | const QString&MHwrapper::getName()const |
375 | { | 375 | { |
376 | return MHName; | 376 | return MHName; |
377 | } | 377 | } |
378 | void MHwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | 378 | void MHwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) |
379 | { | 379 | { |
380 | init_storage(); | 380 | init_storage(); |
381 | if (!m_storage) { | 381 | if (!m_storage) { |
382 | return; | 382 | return; |
383 | } | 383 | } |
384 | if (targetWrapper != this) { | 384 | if (targetWrapper != this) { |
385 | qDebug("Using generic"); | 385 | qDebug("Using generic"); |
386 | Genericwrapper::mvcpMail(mail,targetFolder,targetWrapper,moveit); | 386 | Genericwrapper::mvcpMail(mail,targetFolder,targetWrapper,moveit); |
387 | return; | 387 | return; |
388 | } | 388 | } |
389 | qDebug("Using internal routines for move/copy"); | 389 | qDebug("Using internal routines for move/copy"); |
390 | QString tf = buildPath(targetFolder); | 390 | QString tf = buildPath(targetFolder); |
391 | int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); | 391 | int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); |
392 | if (r != MAIL_NO_ERROR) { | 392 | if (r != MAIL_NO_ERROR) { |
393 | qDebug("Error selecting source mailbox"); | 393 | qDebug("Error selecting source mailbox"); |
394 | return; | 394 | return; |
395 | } | 395 | } |
396 | if (moveit) { | 396 | if (moveit) { |
397 | r = mailsession_move_message(m_storage->sto_session,mail.getNumber(),(char*)tf.latin1()); | 397 | r = mailsession_move_message(m_storage->sto_session,mail.getNumber(),(char*)tf.latin1()); |
398 | } else { | 398 | } else { |
399 | r = mailsession_copy_message(m_storage->sto_session,mail.getNumber(),(char*)tf.latin1()); | 399 | r = mailsession_copy_message(m_storage->sto_session,mail.getNumber(),(char*)tf.latin1()); |
400 | } | 400 | } |
401 | if (r != MAIL_NO_ERROR) { | 401 | if (r != MAIL_NO_ERROR) { |
402 | qDebug("Error copy/moving mail internal (%i)",r); | 402 | qDebug("Error copy/moving mail internal (%i)",r); |
403 | } | 403 | } |
404 | } | 404 | } |
405 | 405 | ||
406 | void MHwrapper::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | 406 | void MHwrapper::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) |
407 | { | 407 | { |
408 | init_storage(); | 408 | init_storage(); |
409 | if (!m_storage) { | 409 | if (!m_storage) { |
410 | return; | 410 | return; |
411 | } | 411 | } |
412 | if (targetWrapper != this) { | 412 | if (targetWrapper != this) { |
413 | qDebug("Using generic"); | 413 | qDebug("Using generic"); |
414 | Genericwrapper::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit); | 414 | Genericwrapper::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit); |
415 | return; | 415 | return; |
416 | } | 416 | } |
417 | if (!fromFolder) return; | 417 | if (!fromFolder) return; |
418 | int r = mailsession_select_folder(m_storage->sto_session,(char*)fromFolder->getName().latin1()); | 418 | int r = mailsession_select_folder(m_storage->sto_session,(char*)fromFolder->getName().latin1()); |
419 | if (r!=MAIL_NO_ERROR) { | 419 | if (r!=MAIL_NO_ERROR) { |
420 | qDebug("error selecting source folder!"); | 420 | qDebug("error selecting source folder!"); |
421 | return; | 421 | return; |
422 | } | 422 | } |
423 | QString tf = buildPath(targetFolder); | 423 | QString tf = buildPath(targetFolder); |
424 | mailmessage_list*l=0; | 424 | mailmessage_list*l=0; |
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp index a3c68ae..d75d52a 100644 --- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp | |||
@@ -1,131 +1,131 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | #include <sys/stat.h> | 2 | #include <sys/stat.h> |
3 | #include <sys/types.h> | 3 | #include <sys/types.h> |
4 | #include <unistd.h> | 4 | #include <unistd.h> |
5 | #include <fcntl.h> | 5 | #include <fcntl.h> |
6 | #include <string.h> | 6 | #include <string.h> |
7 | #include <qdir.h> | 7 | #include <qdir.h> |
8 | #include <qt.h> | 8 | #include <qt.h> |
9 | #include <qmessagebox.h> | 9 | #include <qmessagebox.h> |
10 | 10 | ||
11 | #include <qpe/config.h> | 11 | #include <qpe/config.h> |
12 | #include <qpe/qcopenvelope_qws.h> | 12 | #include <qpe/qcopenvelope_qws.h> |
13 | 13 | ||
14 | #include <libetpan/libetpan.h> | 14 | #include <libetpan/libetpan.h> |
15 | 15 | ||
16 | #include "smtpwrapper.h" | 16 | #include "smtpwrapper.h" |
17 | #include "mailwrapper.h" | 17 | #include "mailwrapper.h" |
18 | #include "abstractmail.h" | 18 | #include "abstractmail.h" |
19 | #include "logindialog.h" | 19 | #include "logindialog.h" |
20 | #include "mailtypes.h" | 20 | #include "mailtypes.h" |
21 | #include "sendmailprogress.h" | 21 | #include "sendmailprogress.h" |
22 | 22 | ||
23 | const char* SMTPwrapper::USER_AGENT="OpieMail v0.4"; | 23 | const char* SMTPwrapper::USER_AGENT="OpieMail v0.4"; |
24 | 24 | ||
25 | progressMailSend*SMTPwrapper::sendProgress = 0; | 25 | progressMailSend*SMTPwrapper::sendProgress = 0; |
26 | 26 | ||
27 | SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp ) | 27 | SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp ) |
28 | : QObject() | 28 | : QObject() |
29 | { | 29 | { |
30 | m_SmtpAccount = aSmtp; | 30 | m_SmtpAccount = aSmtp; |
31 | Config cfg( "mail" ); | 31 | Config cfg( "mail" ); |
32 | cfg.setGroup( "Status" ); | 32 | cfg.setGroup( "Status" ); |
33 | m_queuedMail = cfg.readNumEntry( "outgoing", 0 ); | 33 | m_queuedMail = cfg.readNumEntry( "outgoing", 0 ); |
34 | emit queuedMails( m_queuedMail ); | 34 | emit queuedMails( m_queuedMail ); |
35 | connect( this, SIGNAL( queuedMails( int ) ), this, SLOT( emitQCop( int ) ) ); | 35 | connect( this, SIGNAL( queuedMails(int) ), this, SLOT( emitQCop(int) ) ); |
36 | m_smtp = 0; | 36 | m_smtp = 0; |
37 | } | 37 | } |
38 | 38 | ||
39 | SMTPwrapper::~SMTPwrapper() | 39 | SMTPwrapper::~SMTPwrapper() |
40 | { | 40 | { |
41 | disc_server(); | 41 | disc_server(); |
42 | } | 42 | } |
43 | 43 | ||
44 | void SMTPwrapper::emitQCop( int queued ) { | 44 | void SMTPwrapper::emitQCop( int queued ) { |
45 | QCopEnvelope env( "QPE/Pim", "outgoingMails(int)" ); | 45 | QCopEnvelope env( "QPE/Pim", "outgoingMails(int)" ); |
46 | env << queued; | 46 | env << queued; |
47 | } | 47 | } |
48 | 48 | ||
49 | QString SMTPwrapper::mailsmtpError( int errnum ) { | 49 | QString SMTPwrapper::mailsmtpError( int errnum ) { |
50 | switch ( errnum ) { | 50 | switch ( errnum ) { |
51 | case MAILSMTP_NO_ERROR: | 51 | case MAILSMTP_NO_ERROR: |
52 | return tr( "No error" ); | 52 | return tr( "No error" ); |
53 | case MAILSMTP_ERROR_UNEXPECTED_CODE: | 53 | case MAILSMTP_ERROR_UNEXPECTED_CODE: |
54 | return tr( "Unexpected error code" ); | 54 | return tr( "Unexpected error code" ); |
55 | case MAILSMTP_ERROR_SERVICE_NOT_AVAILABLE: | 55 | case MAILSMTP_ERROR_SERVICE_NOT_AVAILABLE: |
56 | return tr( "Service not available" ); | 56 | return tr( "Service not available" ); |
57 | case MAILSMTP_ERROR_STREAM: | 57 | case MAILSMTP_ERROR_STREAM: |
58 | return tr( "Stream error" ); | 58 | return tr( "Stream error" ); |
59 | case MAILSMTP_ERROR_HOSTNAME: | 59 | case MAILSMTP_ERROR_HOSTNAME: |
60 | return tr( "gethostname() failed" ); | 60 | return tr( "gethostname() failed" ); |
61 | case MAILSMTP_ERROR_NOT_IMPLEMENTED: | 61 | case MAILSMTP_ERROR_NOT_IMPLEMENTED: |
62 | return tr( "Not implemented" ); | 62 | return tr( "Not implemented" ); |
63 | case MAILSMTP_ERROR_ACTION_NOT_TAKEN: | 63 | case MAILSMTP_ERROR_ACTION_NOT_TAKEN: |
64 | return tr( "Error, action not taken" ); | 64 | return tr( "Error, action not taken" ); |
65 | case MAILSMTP_ERROR_EXCEED_STORAGE_ALLOCATION: | 65 | case MAILSMTP_ERROR_EXCEED_STORAGE_ALLOCATION: |
66 | return tr( "Data exceeds storage allocation" ); | 66 | return tr( "Data exceeds storage allocation" ); |
67 | case MAILSMTP_ERROR_IN_PROCESSING: | 67 | case MAILSMTP_ERROR_IN_PROCESSING: |
68 | return tr( "Error in processing" ); | 68 | return tr( "Error in processing" ); |
69 | case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED: | 69 | case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED: |
70 | return tr( "Starttls not supported" ); | 70 | return tr( "Starttls not supported" ); |
71 | // case MAILSMTP_ERROR_INSUFFISANT_SYSTEM_STORAGE: | 71 | // case MAILSMTP_ERROR_INSUFFISANT_SYSTEM_STORAGE: |
72 | // return tr( "Insufficient system storage" ); | 72 | // return tr( "Insufficient system storage" ); |
73 | case MAILSMTP_ERROR_MAILBOX_UNAVAILABLE: | 73 | case MAILSMTP_ERROR_MAILBOX_UNAVAILABLE: |
74 | return tr( "Mailbox unavailable" ); | 74 | return tr( "Mailbox unavailable" ); |
75 | case MAILSMTP_ERROR_MAILBOX_NAME_NOT_ALLOWED: | 75 | case MAILSMTP_ERROR_MAILBOX_NAME_NOT_ALLOWED: |
76 | return tr( "Mailbox name not allowed" ); | 76 | return tr( "Mailbox name not allowed" ); |
77 | case MAILSMTP_ERROR_BAD_SEQUENCE_OF_COMMAND: | 77 | case MAILSMTP_ERROR_BAD_SEQUENCE_OF_COMMAND: |
78 | return tr( "Bad command sequence" ); | 78 | return tr( "Bad command sequence" ); |
79 | case MAILSMTP_ERROR_USER_NOT_LOCAL: | 79 | case MAILSMTP_ERROR_USER_NOT_LOCAL: |
80 | return tr( "User not local" ); | 80 | return tr( "User not local" ); |
81 | case MAILSMTP_ERROR_TRANSACTION_FAILED: | 81 | case MAILSMTP_ERROR_TRANSACTION_FAILED: |
82 | return tr( "Transaction failed" ); | 82 | return tr( "Transaction failed" ); |
83 | case MAILSMTP_ERROR_MEMORY: | 83 | case MAILSMTP_ERROR_MEMORY: |
84 | return tr( "Memory error" ); | 84 | return tr( "Memory error" ); |
85 | case MAILSMTP_ERROR_CONNECTION_REFUSED: | 85 | case MAILSMTP_ERROR_CONNECTION_REFUSED: |
86 | return tr( "Connection refused" ); | 86 | return tr( "Connection refused" ); |
87 | default: | 87 | default: |
88 | return tr( "Unknown error code" ); | 88 | return tr( "Unknown error code" ); |
89 | } | 89 | } |
90 | } | 90 | } |
91 | 91 | ||
92 | mailimf_mailbox *SMTPwrapper::newMailbox(const QString&name, const QString&mail ) { | 92 | mailimf_mailbox *SMTPwrapper::newMailbox(const QString&name, const QString&mail ) { |
93 | return mailimf_mailbox_new( strdup( name.latin1() ), | 93 | return mailimf_mailbox_new( strdup( name.latin1() ), |
94 | strdup( mail.latin1() ) ); | 94 | strdup( mail.latin1() ) ); |
95 | } | 95 | } |
96 | 96 | ||
97 | mailimf_address_list *SMTPwrapper::parseAddresses(const QString&addr ) { | 97 | mailimf_address_list *SMTPwrapper::parseAddresses(const QString&addr ) { |
98 | mailimf_address_list *addresses; | 98 | mailimf_address_list *addresses; |
99 | 99 | ||
100 | if ( addr.isEmpty() ) | 100 | if ( addr.isEmpty() ) |
101 | return NULL; | 101 | return NULL; |
102 | 102 | ||
103 | addresses = mailimf_address_list_new_empty(); | 103 | addresses = mailimf_address_list_new_empty(); |
104 | 104 | ||
105 | bool literal_open = false; | 105 | bool literal_open = false; |
106 | unsigned int startpos = 0; | 106 | unsigned int startpos = 0; |
107 | QStringList list; | 107 | QStringList list; |
108 | QString s; | 108 | QString s; |
109 | unsigned int i = 0; | 109 | unsigned int i = 0; |
110 | for (; i < addr.length();++i) { | 110 | for (; i < addr.length();++i) { |
111 | switch (addr[i]) { | 111 | switch (addr[i]) { |
112 | case '\"': | 112 | case '\"': |
113 | literal_open = !literal_open; | 113 | literal_open = !literal_open; |
114 | break; | 114 | break; |
115 | case ',': | 115 | case ',': |
116 | if (!literal_open) { | 116 | if (!literal_open) { |
117 | s = addr.mid(startpos,i-startpos); | 117 | s = addr.mid(startpos,i-startpos); |
118 | if (!s.isEmpty()) { | 118 | if (!s.isEmpty()) { |
119 | list.append(s); | 119 | list.append(s); |
120 | qDebug("Appended %s",s.latin1()); | 120 | qDebug("Appended %s",s.latin1()); |
121 | } | 121 | } |
122 | // !!!! this is a MUST BE! | 122 | // !!!! this is a MUST BE! |
123 | startpos = ++i; | 123 | startpos = ++i; |
124 | } | 124 | } |
125 | break; | 125 | break; |
126 | default: | 126 | default: |
127 | break; | 127 | break; |
128 | } | 128 | } |
129 | } | 129 | } |
130 | s = addr.mid(startpos,i-startpos); | 130 | s = addr.mid(startpos,i-startpos); |
131 | if (!s.isEmpty()) { | 131 | if (!s.isEmpty()) { |
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp index 2a1f90d..3f34fe7 100644 --- a/noncore/net/mail/mainwindow.cpp +++ b/noncore/net/mail/mainwindow.cpp | |||
@@ -1,217 +1,217 @@ | |||
1 | #include <qlabel.h> | 1 | #include <qlabel.h> |
2 | #include <qvbox.h> | 2 | #include <qvbox.h> |
3 | #include <qheader.h> | 3 | #include <qheader.h> |
4 | #include <qtimer.h> | 4 | #include <qtimer.h> |
5 | #include <qlayout.h> | 5 | #include <qlayout.h> |
6 | #include <qmessagebox.h> | 6 | #include <qmessagebox.h> |
7 | 7 | ||
8 | #include <qpe/qpeapplication.h> | 8 | #include <qpe/qpeapplication.h> |
9 | #include <qpe/resource.h> | 9 | #include <qpe/resource.h> |
10 | 10 | ||
11 | #include "defines.h" | 11 | #include "defines.h" |
12 | #include "mainwindow.h" | 12 | #include "mainwindow.h" |
13 | 13 | ||
14 | 14 | ||
15 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | 15 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) |
16 | : QMainWindow( parent, name, flags ) | 16 | : QMainWindow( parent, name, flags ) |
17 | { | 17 | { |
18 | 18 | ||
19 | setCaption( tr( "Mail" ) ); | 19 | setCaption( tr( "Mail" ) ); |
20 | setToolBarsMovable( false ); | 20 | setToolBarsMovable( false ); |
21 | 21 | ||
22 | toolBar = new QToolBar( this ); | 22 | toolBar = new QToolBar( this ); |
23 | menuBar = new QMenuBar( toolBar ); | 23 | menuBar = new QMenuBar( toolBar ); |
24 | mailMenu = new QPopupMenu( menuBar ); | 24 | mailMenu = new QPopupMenu( menuBar ); |
25 | menuBar->insertItem( tr( "Mail" ), mailMenu ); | 25 | menuBar->insertItem( tr( "Mail" ), mailMenu ); |
26 | settingsMenu = new QPopupMenu( menuBar ); | 26 | settingsMenu = new QPopupMenu( menuBar ); |
27 | menuBar->insertItem( tr( "Settings" ), settingsMenu ); | 27 | menuBar->insertItem( tr( "Settings" ), settingsMenu ); |
28 | 28 | ||
29 | addToolBar( toolBar ); | 29 | addToolBar( toolBar ); |
30 | toolBar->setHorizontalStretchable( true ); | 30 | toolBar->setHorizontalStretchable( true ); |
31 | 31 | ||
32 | QLabel *spacer = new QLabel( toolBar ); | 32 | QLabel *spacer = new QLabel( toolBar ); |
33 | spacer->setBackgroundMode( QWidget::PaletteButton ); | 33 | spacer->setBackgroundMode( QWidget::PaletteButton ); |
34 | toolBar->setStretchableWidget( spacer ); | 34 | toolBar->setStretchableWidget( spacer ); |
35 | 35 | ||
36 | composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, | 36 | composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, |
37 | 0, 0, this ); | 37 | 0, 0, this ); |
38 | composeMail->addTo( toolBar ); | 38 | composeMail->addTo( toolBar ); |
39 | composeMail->addTo( mailMenu ); | 39 | composeMail->addTo( mailMenu ); |
40 | 40 | ||
41 | sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, | 41 | sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, |
42 | 0, 0, this ); | 42 | 0, 0, this ); |
43 | sendQueued->addTo( toolBar ); | 43 | sendQueued->addTo( toolBar ); |
44 | sendQueued->addTo( mailMenu ); | 44 | sendQueued->addTo( mailMenu ); |
45 | 45 | ||
46 | /* | 46 | /* |
47 | syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, | 47 | syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, |
48 | 0, 0, this ); | 48 | 0, 0, this ); |
49 | syncFolders->addTo( toolBar ); | 49 | syncFolders->addTo( toolBar ); |
50 | syncFolders->addTo( mailMenu ); | 50 | syncFolders->addTo( mailMenu ); |
51 | */ | 51 | */ |
52 | 52 | ||
53 | showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, | 53 | showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, |
54 | 0, 0, this, 0, true ); | 54 | 0, 0, this, 0, true ); |
55 | showFolders->addTo( toolBar ); | 55 | showFolders->addTo( toolBar ); |
56 | showFolders->addTo( mailMenu ); | 56 | showFolders->addTo( mailMenu ); |
57 | showFolders->setOn( true ); | 57 | showFolders->setOn( true ); |
58 | connect(showFolders, SIGNAL( toggled( bool ) ), | 58 | connect(showFolders, SIGNAL( toggled(bool) ), |
59 | SLOT( slotShowFolders( bool ) ) ); | 59 | SLOT( slotShowFolders(bool) ) ); |
60 | 60 | ||
61 | /* | 61 | /* |
62 | searchMails = new QAction( tr( "Search mails" ), QIconSet( Resource::loadPixmap("find") ), | 62 | searchMails = new QAction( tr( "Search mails" ), QIconSet( Resource::loadPixmap("find") ), |
63 | 0, 0, this ); | 63 | 0, 0, this ); |
64 | searchMails->addTo( toolBar ); | 64 | searchMails->addTo( toolBar ); |
65 | searchMails->addTo( mailMenu ); | 65 | searchMails->addTo( mailMenu ); |
66 | */ | 66 | */ |
67 | 67 | ||
68 | deleteMails = new QAction(tr("Delete Mail"), QIconSet( Resource::loadPixmap("trash")), 0, 0, this); | 68 | deleteMails = new QAction(tr("Delete Mail"), QIconSet( Resource::loadPixmap("trash")), 0, 0, this); |
69 | deleteMails->addTo( toolBar ); | 69 | deleteMails->addTo( toolBar ); |
70 | deleteMails->addTo( mailMenu ); | 70 | deleteMails->addTo( mailMenu ); |
71 | connect( deleteMails, SIGNAL( activated() ), | 71 | connect( deleteMails, SIGNAL( activated() ), |
72 | SLOT( slotDeleteMail() ) ); | 72 | SLOT( slotDeleteMail() ) ); |
73 | 73 | ||
74 | editSettings = new QAction( tr( "Edit settings" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) , | 74 | editSettings = new QAction( tr( "Edit settings" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) , |
75 | 0, 0, this ); | 75 | 0, 0, this ); |
76 | editSettings->addTo( settingsMenu ); | 76 | editSettings->addTo( settingsMenu ); |
77 | connect( editSettings, SIGNAL( activated() ), | 77 | connect( editSettings, SIGNAL( activated() ), |
78 | SLOT( slotEditSettings() ) ); | 78 | SLOT( slotEditSettings() ) ); |
79 | editAccounts = new QAction( tr( "Configure accounts" ), QIconSet( Resource::loadPixmap("mail/editaccounts") ) , | 79 | editAccounts = new QAction( tr( "Configure accounts" ), QIconSet( Resource::loadPixmap("mail/editaccounts") ) , |
80 | 0, 0, this ); | 80 | 0, 0, this ); |
81 | editAccounts->addTo( settingsMenu ); | 81 | editAccounts->addTo( settingsMenu ); |
82 | 82 | ||
83 | //setCentralWidget( view ); | 83 | //setCentralWidget( view ); |
84 | 84 | ||
85 | QVBox* wrapperBox = new QVBox( this ); | 85 | QVBox* wrapperBox = new QVBox( this ); |
86 | setCentralWidget( wrapperBox ); | 86 | setCentralWidget( wrapperBox ); |
87 | 87 | ||
88 | QWidget *view = new QWidget( wrapperBox ); | 88 | QWidget *view = new QWidget( wrapperBox ); |
89 | 89 | ||
90 | layout = new QBoxLayout ( view, QBoxLayout::LeftToRight ); | 90 | layout = new QBoxLayout ( view, QBoxLayout::LeftToRight ); |
91 | 91 | ||
92 | folderView = new AccountView( view ); | 92 | folderView = new AccountView( view ); |
93 | folderView->header()->hide(); | 93 | folderView->header()->hide(); |
94 | folderView->setRootIsDecorated( true ); | 94 | folderView->setRootIsDecorated( true ); |
95 | folderView->addColumn( tr( "Mailbox" ) ); | 95 | folderView->addColumn( tr( "Mailbox" ) ); |
96 | 96 | ||
97 | layout->addWidget( folderView ); | 97 | layout->addWidget( folderView ); |
98 | 98 | ||
99 | mailView = new QListView( view ); | 99 | mailView = new QListView( view ); |
100 | mailView->addColumn( tr( "" ) ); | 100 | mailView->addColumn( tr( "" ) ); |
101 | mailView->addColumn( tr( "Subject" ),QListView::Manual ); | 101 | mailView->addColumn( tr( "Subject" ),QListView::Manual ); |
102 | mailView->addColumn( tr( "Sender" ),QListView::Manual ); | 102 | mailView->addColumn( tr( "Sender" ),QListView::Manual ); |
103 | mailView->addColumn( tr( "Size" ),QListView::Manual); | 103 | mailView->addColumn( tr( "Size" ),QListView::Manual); |
104 | mailView->addColumn( tr( "Date" )); | 104 | mailView->addColumn( tr( "Date" )); |
105 | mailView->setAllColumnsShowFocus(true); | 105 | mailView->setAllColumnsShowFocus(true); |
106 | mailView->setSorting(-1); | 106 | mailView->setSorting(-1); |
107 | 107 | ||
108 | statusWidget = new StatusWidget( wrapperBox ); | 108 | statusWidget = new StatusWidget( wrapperBox ); |
109 | statusWidget->hide(); | 109 | statusWidget->hide(); |
110 | 110 | ||
111 | layout->addWidget( mailView ); | 111 | layout->addWidget( mailView ); |
112 | layout->setStretchFactor( folderView, 1 ); | 112 | layout->setStretchFactor( folderView, 1 ); |
113 | layout->setStretchFactor( mailView, 2 ); | 113 | layout->setStretchFactor( mailView, 2 ); |
114 | 114 | ||
115 | slotAdjustLayout(); | 115 | slotAdjustLayout(); |
116 | 116 | ||
117 | QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); | 117 | QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); |
118 | QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); | 118 | QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); |
119 | 119 | ||
120 | connect( mailView, SIGNAL( mouseButtonClicked(int, QListViewItem *,const QPoint&,int ) ),this, | 120 | connect( mailView, SIGNAL( mouseButtonClicked(int,QListViewItem*,const QPoint&,int) ),this, |
121 | SLOT( mailLeftClicked( int, QListViewItem *,const QPoint&,int ) ) ); | 121 | SLOT( mailLeftClicked(int,QListViewItem*,const QPoint&,int) ) ); |
122 | connect( mailView, SIGNAL( mouseButtonPressed(int, QListViewItem *,const QPoint&,int ) ),this, | 122 | connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, |
123 | SLOT( mailHold( int, QListViewItem *,const QPoint&,int ) ) ); | 123 | SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); |
124 | connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); | 124 | connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); |
125 | connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); | 125 | connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); |
126 | connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); | 126 | connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); |
127 | // connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); | 127 | // connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); |
128 | connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); | 128 | connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); |
129 | // Added by Stefan Eilers to allow starting by addressbook.. | 129 | // Added by Stefan Eilers to allow starting by addressbook.. |
130 | // copied from old mail2 | 130 | // copied from old mail2 |
131 | #if !defined(QT_NO_COP) | 131 | #if !defined(QT_NO_COP) |
132 | connect( qApp, SIGNAL( appMessage( const QCString&, const QByteArray& ) ), | 132 | connect( qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ), |
133 | this, SLOT( appMessage( const QCString&, const QByteArray& ) ) ); | 133 | this, SLOT( appMessage(const QCString&,const QByteArray&) ) ); |
134 | #endif | 134 | #endif |
135 | 135 | ||
136 | QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); | 136 | QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); |
137 | } | 137 | } |
138 | 138 | ||
139 | MainWindow::~MainWindow() | 139 | MainWindow::~MainWindow() |
140 | { | 140 | { |
141 | } | 141 | } |
142 | 142 | ||
143 | void MainWindow::appMessage(const QCString &, const QByteArray &) | 143 | void MainWindow::appMessage(const QCString &, const QByteArray &) |
144 | { | 144 | { |
145 | qDebug("appMessage not reached"); | 145 | qDebug("appMessage not reached"); |
146 | } | 146 | } |
147 | 147 | ||
148 | void MainWindow::slotAdjustLayout() { | 148 | void MainWindow::slotAdjustLayout() { |
149 | 149 | ||
150 | QWidget *d = QApplication::desktop(); | 150 | QWidget *d = QApplication::desktop(); |
151 | 151 | ||
152 | if ( d->width() < d->height() ) { | 152 | if ( d->width() < d->height() ) { |
153 | layout->setDirection( QBoxLayout::TopToBottom ); | 153 | layout->setDirection( QBoxLayout::TopToBottom ); |
154 | } else { | 154 | } else { |
155 | layout->setDirection( QBoxLayout::LeftToRight ); | 155 | layout->setDirection( QBoxLayout::LeftToRight ); |
156 | } | 156 | } |
157 | } | 157 | } |
158 | 158 | ||
159 | void MainWindow::slotAdjustColumns() | 159 | void MainWindow::slotAdjustColumns() |
160 | { | 160 | { |
161 | bool hidden = folderView->isHidden(); | 161 | bool hidden = folderView->isHidden(); |
162 | if ( hidden ) folderView->show(); | 162 | if ( hidden ) folderView->show(); |
163 | folderView->setColumnWidth( 0, folderView->visibleWidth() ); | 163 | folderView->setColumnWidth( 0, folderView->visibleWidth() ); |
164 | if ( hidden ) folderView->hide(); | 164 | if ( hidden ) folderView->hide(); |
165 | 165 | ||
166 | mailView->setColumnWidth( 0, 10 ); | 166 | mailView->setColumnWidth( 0, 10 ); |
167 | mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 ); | 167 | mailView->setColumnWidth( 1, mailView->visibleWidth() - 130 ); |
168 | mailView->setColumnWidth( 2, 80 ); | 168 | mailView->setColumnWidth( 2, 80 ); |
169 | mailView->setColumnWidth( 3, 50 ); | 169 | mailView->setColumnWidth( 3, 50 ); |
170 | mailView->setColumnWidth( 4, 50 ); | 170 | mailView->setColumnWidth( 4, 50 ); |
171 | } | 171 | } |
172 | 172 | ||
173 | void MainWindow::slotEditSettings() | 173 | void MainWindow::slotEditSettings() |
174 | { | 174 | { |
175 | } | 175 | } |
176 | 176 | ||
177 | void MainWindow::slotShowFolders( bool ) | 177 | void MainWindow::slotShowFolders( bool ) |
178 | { | 178 | { |
179 | qDebug( "slotShowFolders not reached" ); | 179 | qDebug( "slotShowFolders not reached" ); |
180 | } | 180 | } |
181 | 181 | ||
182 | void MainWindow::refreshMailView(QList<RecMail>*) | 182 | void MainWindow::refreshMailView(QList<RecMail>*) |
183 | { | 183 | { |
184 | qDebug( "refreshMailView not reached" ); | 184 | qDebug( "refreshMailView not reached" ); |
185 | } | 185 | } |
186 | 186 | ||
187 | void MainWindow::mailLeftClicked(int, QListViewItem *,const QPoint&,int ) | 187 | void MainWindow::mailLeftClicked(int, QListViewItem *,const QPoint&,int ) |
188 | { | 188 | { |
189 | qDebug( "mailLeftClicked not reached" ); | 189 | qDebug( "mailLeftClicked not reached" ); |
190 | } | 190 | } |
191 | 191 | ||
192 | void MainWindow::displayMail() | 192 | void MainWindow::displayMail() |
193 | { | 193 | { |
194 | qDebug("displayMail not reached"); | 194 | qDebug("displayMail not reached"); |
195 | } | 195 | } |
196 | 196 | ||
197 | void MainWindow::slotDeleteMail() | 197 | void MainWindow::slotDeleteMail() |
198 | { | 198 | { |
199 | qDebug("deleteMail not reached"); | 199 | qDebug("deleteMail not reached"); |
200 | } | 200 | } |
201 | 201 | ||
202 | void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int ) | 202 | void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int ) |
203 | { | 203 | { |
204 | qDebug("mailHold not reached"); | 204 | qDebug("mailHold not reached"); |
205 | } | 205 | } |
206 | 206 | ||
207 | void MainWindow::slotSendQueued() | 207 | void MainWindow::slotSendQueued() |
208 | { | 208 | { |
209 | } | 209 | } |
210 | 210 | ||
211 | void MainWindow::slotEditAccounts() | 211 | void MainWindow::slotEditAccounts() |
212 | { | 212 | { |
213 | } | 213 | } |
214 | 214 | ||
215 | void MainWindow::slotComposeMail() | 215 | void MainWindow::slotComposeMail() |
216 | { | 216 | { |
217 | } | 217 | } |
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp index f015228..8636957 100644 --- a/noncore/net/mail/viewmail.cpp +++ b/noncore/net/mail/viewmail.cpp | |||
@@ -192,197 +192,197 @@ void ViewMail::slotShowHtml( bool state ) | |||
192 | { | 192 | { |
193 | m_showHtml = state; | 193 | m_showHtml = state; |
194 | setText(); | 194 | setText(); |
195 | } | 195 | } |
196 | 196 | ||
197 | void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int ) | 197 | void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int ) |
198 | { | 198 | { |
199 | if (!item ) | 199 | if (!item ) |
200 | return; | 200 | return; |
201 | 201 | ||
202 | if ( ( ( AttachItem* )item )->Partnumber() == -1 ) | 202 | if ( ( ( AttachItem* )item )->Partnumber() == -1 ) |
203 | { | 203 | { |
204 | setText(); | 204 | setText(); |
205 | return; | 205 | return; |
206 | } | 206 | } |
207 | QPopupMenu *menu = new QPopupMenu(); | 207 | QPopupMenu *menu = new QPopupMenu(); |
208 | int ret=0; | 208 | int ret=0; |
209 | 209 | ||
210 | if ( item->text( 0 ).left( 5 ) == "text/" || item->text(0)=="message/rfc822" ) | 210 | if ( item->text( 0 ).left( 5 ) == "text/" || item->text(0)=="message/rfc822" ) |
211 | { | 211 | { |
212 | menu->insertItem( tr( "Show Text" ), 1 ); | 212 | menu->insertItem( tr( "Show Text" ), 1 ); |
213 | } | 213 | } |
214 | menu->insertItem( tr( "Save Attachment" ), 0 ); | 214 | menu->insertItem( tr( "Save Attachment" ), 0 ); |
215 | menu->insertSeparator(1); | 215 | menu->insertSeparator(1); |
216 | 216 | ||
217 | ret = menu->exec( point, 0 ); | 217 | ret = menu->exec( point, 0 ); |
218 | 218 | ||
219 | switch(ret) | 219 | switch(ret) |
220 | { | 220 | { |
221 | case 0: | 221 | case 0: |
222 | { | 222 | { |
223 | MimeTypes types; | 223 | MimeTypes types; |
224 | types.insert( "all", "*" ); | 224 | types.insert( "all", "*" ); |
225 | QString str = Opie::OFileDialog::getSaveFileName( 1, | 225 | QString str = Opie::OFileDialog::getSaveFileName( 1, |
226 | "/", item->text( 2 ) , types, 0 ); | 226 | "/", item->text( 2 ) , types, 0 ); |
227 | 227 | ||
228 | if( !str.isEmpty() ) | 228 | if( !str.isEmpty() ) |
229 | { | 229 | { |
230 | encodedString*content = m_recMail.Wrapper()->fetchDecodedPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); | 230 | encodedString*content = m_recMail.Wrapper()->fetchDecodedPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); |
231 | if (content) | 231 | if (content) |
232 | { | 232 | { |
233 | QFile output(str); | 233 | QFile output(str); |
234 | output.open(IO_WriteOnly); | 234 | output.open(IO_WriteOnly); |
235 | output.writeBlock(content->Content(),content->Length()); | 235 | output.writeBlock(content->Content(),content->Length()); |
236 | output.close(); | 236 | output.close(); |
237 | delete content; | 237 | delete content; |
238 | } | 238 | } |
239 | } | 239 | } |
240 | } | 240 | } |
241 | break ; | 241 | break ; |
242 | 242 | ||
243 | case 1: | 243 | case 1: |
244 | if ( ( ( AttachItem* )item )->Partnumber() == -1 ) | 244 | if ( ( ( AttachItem* )item )->Partnumber() == -1 ) |
245 | { | 245 | { |
246 | setText(); | 246 | setText(); |
247 | } | 247 | } |
248 | else | 248 | else |
249 | { | 249 | { |
250 | if ( m_recMail.Wrapper() != 0l ) | 250 | if ( m_recMail.Wrapper() != 0l ) |
251 | { // make sure that there is a wrapper , even after delete or simular actions | 251 | { // make sure that there is a wrapper , even after delete or simular actions |
252 | browser->setText( m_recMail.Wrapper()->fetchTextPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) ); | 252 | browser->setText( m_recMail.Wrapper()->fetchTextPart( m_recMail, m_body.Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) ); |
253 | } | 253 | } |
254 | } | 254 | } |
255 | break; | 255 | break; |
256 | } | 256 | } |
257 | delete menu; | 257 | delete menu; |
258 | } | 258 | } |
259 | 259 | ||
260 | 260 | ||
261 | void ViewMail::setMail( RecMail mail ) | 261 | void ViewMail::setMail( RecMail mail ) |
262 | { | 262 | { |
263 | 263 | ||
264 | m_recMail = mail; | 264 | m_recMail = mail; |
265 | 265 | ||
266 | m_mail[0] = mail.getFrom(); | 266 | m_mail[0] = mail.getFrom(); |
267 | m_mail[1] = mail.getSubject(); | 267 | m_mail[1] = mail.getSubject(); |
268 | m_mail[3] = mail.getDate(); | 268 | m_mail[3] = mail.getDate(); |
269 | m_mail[4] = mail.Msgid(); | 269 | m_mail[4] = mail.Msgid(); |
270 | 270 | ||
271 | m_mail2[0] = mail.To(); | 271 | m_mail2[0] = mail.To(); |
272 | m_mail2[1] = mail.CC(); | 272 | m_mail2[1] = mail.CC(); |
273 | m_mail2[2] = mail.Bcc(); | 273 | m_mail2[2] = mail.Bcc(); |
274 | 274 | ||
275 | setText(); | 275 | setText(); |
276 | } | 276 | } |
277 | 277 | ||
278 | 278 | ||
279 | 279 | ||
280 | ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) | 280 | ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) |
281 | : ViewMailBase(parent, name, fl), _inLoop(false) | 281 | : ViewMailBase(parent, name, fl), _inLoop(false) |
282 | { | 282 | { |
283 | m_gotBody = false; | 283 | m_gotBody = false; |
284 | deleted = false; | 284 | deleted = false; |
285 | 285 | ||
286 | connect( reply, SIGNAL(activated()), SLOT(slotReply())); | 286 | connect( reply, SIGNAL(activated()), SLOT(slotReply())); |
287 | connect( forward, SIGNAL(activated()), SLOT(slotForward())); | 287 | connect( forward, SIGNAL(activated()), SLOT(slotForward())); |
288 | connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail( ) ) ); | 288 | connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail() ) ); |
289 | connect( showHtml, SIGNAL( toggled( bool ) ), SLOT( slotShowHtml( bool ) ) ); | 289 | connect( showHtml, SIGNAL( toggled(bool) ), SLOT( slotShowHtml(bool) ) ); |
290 | 290 | ||
291 | attachments->setEnabled(m_gotBody); | 291 | attachments->setEnabled(m_gotBody); |
292 | connect( attachments, SIGNAL( clicked ( QListViewItem *, const QPoint & , int ) ), SLOT( slotItemClicked( QListViewItem *, const QPoint & , int ) ) ); | 292 | connect( attachments, SIGNAL( clicked(QListViewItem*,const QPoint&, int) ), SLOT( slotItemClicked(QListViewItem*,const QPoint&, int) ) ); |
293 | 293 | ||
294 | readConfig(); | 294 | readConfig(); |
295 | attachments->setSorting(-1); | 295 | attachments->setSorting(-1); |
296 | } | 296 | } |
297 | 297 | ||
298 | void ViewMail::readConfig() | 298 | void ViewMail::readConfig() |
299 | { | 299 | { |
300 | Config cfg( "mail" ); | 300 | Config cfg( "mail" ); |
301 | cfg.setGroup( "Settings" ); | 301 | cfg.setGroup( "Settings" ); |
302 | m_showHtml = cfg.readBoolEntry( "showHtml", false ); | 302 | m_showHtml = cfg.readBoolEntry( "showHtml", false ); |
303 | showHtml->setOn( m_showHtml ); | 303 | showHtml->setOn( m_showHtml ); |
304 | } | 304 | } |
305 | 305 | ||
306 | void ViewMail::setText() | 306 | void ViewMail::setText() |
307 | { | 307 | { |
308 | 308 | ||
309 | QString toString; | 309 | QString toString; |
310 | QString ccString; | 310 | QString ccString; |
311 | QString bccString; | 311 | QString bccString; |
312 | 312 | ||
313 | for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) | 313 | for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) |
314 | { | 314 | { |
315 | toString += (*it); | 315 | toString += (*it); |
316 | } | 316 | } |
317 | for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it ) | 317 | for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it ) |
318 | { | 318 | { |
319 | ccString += (*it); | 319 | ccString += (*it); |
320 | } | 320 | } |
321 | for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) | 321 | for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) |
322 | { | 322 | { |
323 | bccString += (*it); | 323 | bccString += (*it); |
324 | } | 324 | } |
325 | 325 | ||
326 | setCaption( caption().arg( m_mail[0] ) ); | 326 | setCaption( caption().arg( m_mail[0] ) ); |
327 | 327 | ||
328 | m_mailHtml = "<html><body>" | 328 | m_mailHtml = "<html><body>" |
329 | "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>" | 329 | "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>" |
330 | "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>" | 330 | "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>" |
331 | "</td></tr><tr bgcolor=\"#EEEEE6\"><td>" | 331 | "</td></tr><tr bgcolor=\"#EEEEE6\"><td>" |
332 | "<b>" + tr( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>" | 332 | "<b>" + tr( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>" |
333 | "<b>" + tr( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" + | 333 | "<b>" + tr( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" + |
334 | tr( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>" | 334 | tr( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>" |
335 | "<b>" + tr( "Date" ) + ": </b> " + m_mail[3] + | 335 | "<b>" + tr( "Date" ) + ": </b> " + m_mail[3] + |
336 | "</td></tr></table><font face=fixed>"; | 336 | "</td></tr></table><font face=fixed>"; |
337 | 337 | ||
338 | if ( !m_showHtml ) | 338 | if ( !m_showHtml ) |
339 | { | 339 | { |
340 | browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" ); | 340 | browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" ); |
341 | } | 341 | } |
342 | else | 342 | else |
343 | { | 343 | { |
344 | browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" ); | 344 | browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" ); |
345 | } | 345 | } |
346 | // remove later in favor of a real handling | 346 | // remove later in favor of a real handling |
347 | m_gotBody = true; | 347 | m_gotBody = true; |
348 | } | 348 | } |
349 | 349 | ||
350 | 350 | ||
351 | ViewMail::~ViewMail() | 351 | ViewMail::~ViewMail() |
352 | { | 352 | { |
353 | m_recMail.Wrapper()->cleanMimeCache(); | 353 | m_recMail.Wrapper()->cleanMimeCache(); |
354 | hide(); | 354 | hide(); |
355 | } | 355 | } |
356 | 356 | ||
357 | void ViewMail::hide() | 357 | void ViewMail::hide() |
358 | { | 358 | { |
359 | QWidget::hide(); | 359 | QWidget::hide(); |
360 | 360 | ||
361 | if (_inLoop) | 361 | if (_inLoop) |
362 | { | 362 | { |
363 | _inLoop = false; | 363 | _inLoop = false; |
364 | qApp->exit_loop(); | 364 | qApp->exit_loop(); |
365 | 365 | ||
366 | } | 366 | } |
367 | 367 | ||
368 | } | 368 | } |
369 | 369 | ||
370 | void ViewMail::exec() | 370 | void ViewMail::exec() |
371 | { | 371 | { |
372 | show(); | 372 | show(); |
373 | 373 | ||
374 | if (!_inLoop) | 374 | if (!_inLoop) |
375 | { | 375 | { |
376 | _inLoop = true; | 376 | _inLoop = true; |
377 | qApp->enter_loop(); | 377 | qApp->enter_loop(); |
378 | } | 378 | } |
379 | 379 | ||
380 | } | 380 | } |
381 | 381 | ||
382 | QString ViewMail::deHtml(const QString &string) | 382 | QString ViewMail::deHtml(const QString &string) |
383 | { | 383 | { |
384 | QString string_ = string; | 384 | QString string_ = string; |
385 | string_.replace(QRegExp("&"), "&"); | 385 | string_.replace(QRegExp("&"), "&"); |
386 | string_.replace(QRegExp("<"), "<"); | 386 | string_.replace(QRegExp("<"), "<"); |
387 | string_.replace(QRegExp(">"), ">"); | 387 | string_.replace(QRegExp(">"), ">"); |
388 | string_.replace(QRegExp("\\n"), "<br>"); | 388 | string_.replace(QRegExp("\\n"), "<br>"); |
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp index 4064549..4c39569 100644 --- a/noncore/net/opieftp/opieftp.cpp +++ b/noncore/net/opieftp/opieftp.cpp | |||
@@ -83,333 +83,333 @@ OpieFtp::OpieFtp( QWidget* parent, const char* name, WFlags fl) | |||
83 | QPixmap pix(Resource::loadPixmap( "UnknownDocument" )); | 83 | QPixmap pix(Resource::loadPixmap( "UnknownDocument" )); |
84 | matrix.scale( .4, .4); | 84 | matrix.scale( .4, .4); |
85 | unknownXpm = pix.xForm(matrix); | 85 | unknownXpm = pix.xForm(matrix); |
86 | 86 | ||
87 | connectionMenu = new QPopupMenu( this ); | 87 | connectionMenu = new QPopupMenu( this ); |
88 | localMenu = new QPopupMenu( this ); | 88 | localMenu = new QPopupMenu( this ); |
89 | remoteMenu = new QPopupMenu( this ); | 89 | remoteMenu = new QPopupMenu( this ); |
90 | tabMenu = new QPopupMenu( this ); | 90 | tabMenu = new QPopupMenu( this ); |
91 | 91 | ||
92 | //#if 0 | 92 | //#if 0 |
93 | layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 ); | 93 | layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 ); |
94 | //#endif | 94 | //#endif |
95 | 95 | ||
96 | menuBar->insertItem( tr( "Connection" ), connectionMenu); | 96 | menuBar->insertItem( tr( "Connection" ), connectionMenu); |
97 | // menuBar->insertItem( tr( "Local" ), localMenu); | 97 | // menuBar->insertItem( tr( "Local" ), localMenu); |
98 | // menuBar->insertItem( tr( "Remote" ), remoteMenu); | 98 | // menuBar->insertItem( tr( "Remote" ), remoteMenu); |
99 | menuBar->insertItem( tr( "View" ), tabMenu); | 99 | menuBar->insertItem( tr( "View" ), tabMenu); |
100 | 100 | ||
101 | tabMenu->insertItem( tr( "Local" ), localMenu); | 101 | tabMenu->insertItem( tr( "Local" ), localMenu); |
102 | tabMenu->insertItem( tr( "Remote" ), remoteMenu); | 102 | tabMenu->insertItem( tr( "Remote" ), remoteMenu); |
103 | 103 | ||
104 | connectionMenu->insertItem( tr( "New" ), this, SLOT( newConnection() )); | 104 | connectionMenu->insertItem( tr( "New" ), this, SLOT( newConnection() )); |
105 | connectionMenu->insertItem( tr( "Connect" ), this, SLOT( connector() )); | 105 | connectionMenu->insertItem( tr( "Connect" ), this, SLOT( connector() )); |
106 | connectionMenu->insertItem( tr( "Disconnect" ), this, SLOT( disConnector() )); | 106 | connectionMenu->insertItem( tr( "Disconnect" ), this, SLOT( disConnector() )); |
107 | 107 | ||
108 | localMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); | 108 | localMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); |
109 | localMenu->insertSeparator(); | 109 | localMenu->insertSeparator(); |
110 | localMenu->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); | 110 | localMenu->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); |
111 | localMenu->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); | 111 | localMenu->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); |
112 | localMenu->insertItem( tr( "Rename" ), this, SLOT( localRename() )); | 112 | localMenu->insertItem( tr( "Rename" ), this, SLOT( localRename() )); |
113 | localMenu->insertSeparator(); | 113 | localMenu->insertSeparator(); |
114 | localMenu->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); | 114 | localMenu->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); |
115 | localMenu->setCheckable(TRUE); | 115 | localMenu->setCheckable(TRUE); |
116 | 116 | ||
117 | remoteMenu->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); | 117 | remoteMenu->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); |
118 | remoteMenu->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); | 118 | remoteMenu->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); |
119 | remoteMenu->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); | 119 | remoteMenu->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); |
120 | remoteMenu->insertSeparator(); | 120 | remoteMenu->insertSeparator(); |
121 | remoteMenu->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); | 121 | remoteMenu->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); |
122 | 122 | ||
123 | tabMenu->insertSeparator(); | 123 | tabMenu->insertSeparator(); |
124 | tabMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() )); | 124 | tabMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() )); |
125 | tabMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() )); | 125 | tabMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() )); |
126 | tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() )); | 126 | tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() )); |
127 | tabMenu->insertSeparator(); | 127 | tabMenu->insertSeparator(); |
128 | // tabMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); | 128 | // tabMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); |
129 | tabMenu->setCheckable(TRUE); | 129 | tabMenu->setCheckable(TRUE); |
130 | 130 | ||
131 | 131 | ||
132 | cdUpButton = new QToolButton( view,"cdUpButton"); | 132 | cdUpButton = new QToolButton( view,"cdUpButton"); |
133 | cdUpButton->setPixmap(Resource::loadPixmap("up")); | 133 | cdUpButton->setPixmap(Resource::loadPixmap("up")); |
134 | cdUpButton ->setFixedSize( QSize( 20, 20 ) ); | 134 | cdUpButton ->setFixedSize( QSize( 20, 20 ) ); |
135 | connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) ); | 135 | connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) ); |
136 | layout->addMultiCellWidget( cdUpButton, 0, 0, 3, 3 ); | 136 | layout->addMultiCellWidget( cdUpButton, 0, 0, 3, 3 ); |
137 | cdUpButton->hide(); | 137 | cdUpButton->hide(); |
138 | 138 | ||
139 | // docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",view,"docsButton"); | 139 | // docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",view,"docsButton"); |
140 | // docButton->setFixedSize( QSize( 20, 20 ) ); | 140 | // docButton->setFixedSize( QSize( 20, 20 ) ); |
141 | // connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); | 141 | // connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); |
142 | // docButton->setFlat(TRUE); | 142 | // docButton->setFlat(TRUE); |
143 | // layout->addMultiCellWidget( docButton, 0, 0, 6, 6 ); | 143 | // layout->addMultiCellWidget( docButton, 0, 0, 6, 6 ); |
144 | 144 | ||
145 | homeButton = new QToolButton(view,"homeButton"); | 145 | homeButton = new QToolButton(view,"homeButton"); |
146 | homeButton->setPixmap( Resource::loadPixmap("home")); | 146 | homeButton->setPixmap( Resource::loadPixmap("home")); |
147 | homeButton->setFixedSize( QSize( 20, 20 ) ); | 147 | homeButton->setFixedSize( QSize( 20, 20 ) ); |
148 | connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); | 148 | connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); |
149 | layout->addMultiCellWidget( homeButton, 0, 0, 4, 4); | 149 | layout->addMultiCellWidget( homeButton, 0, 0, 4, 4); |
150 | homeButton->hide(); | 150 | homeButton->hide(); |
151 | 151 | ||
152 | TabWidget = new QTabWidget( view, "TabWidget" ); | 152 | TabWidget = new QTabWidget( view, "TabWidget" ); |
153 | layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 ); | 153 | layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 ); |
154 | 154 | ||
155 | // TabWidget->setTabShape(QTabWidget::Triangular); | 155 | // TabWidget->setTabShape(QTabWidget::Triangular); |
156 | 156 | ||
157 | tab = new QWidget( TabWidget, "tab" ); | 157 | tab = new QWidget( TabWidget, "tab" ); |
158 | tabLayout = new QGridLayout( tab ); | 158 | tabLayout = new QGridLayout( tab ); |
159 | tabLayout->setSpacing( 2); | 159 | tabLayout->setSpacing( 2); |
160 | tabLayout->setMargin( 2); | 160 | tabLayout->setMargin( 2); |
161 | 161 | ||
162 | Local_View = new QListView( tab, "Local_View" ); | 162 | Local_View = new QListView( tab, "Local_View" ); |
163 | // Local_View->setResizePolicy( QListView::AutoOneFit ); | 163 | // Local_View->setResizePolicy( QListView::AutoOneFit ); |
164 | Local_View->addColumn( tr("File"),150); | 164 | Local_View->addColumn( tr("File"),150); |
165 | Local_View->addColumn( tr("Date"),-1); | 165 | Local_View->addColumn( tr("Date"),-1); |
166 | Local_View->setColumnAlignment(1,QListView::AlignRight); | 166 | Local_View->setColumnAlignment(1,QListView::AlignRight); |
167 | Local_View->addColumn( tr("Size"),-1); | 167 | Local_View->addColumn( tr("Size"),-1); |
168 | Local_View->setColumnAlignment(2,QListView::AlignRight); | 168 | Local_View->setColumnAlignment(2,QListView::AlignRight); |
169 | Local_View->setAllColumnsShowFocus(TRUE); | 169 | Local_View->setAllColumnsShowFocus(TRUE); |
170 | 170 | ||
171 | Local_View->setMultiSelection( TRUE); | 171 | Local_View->setMultiSelection( TRUE); |
172 | Local_View->setSelectionMode(QListView::Extended); | 172 | Local_View->setSelectionMode(QListView::Extended); |
173 | Local_View->setFocusPolicy(QWidget::ClickFocus); | 173 | Local_View->setFocusPolicy(QWidget::ClickFocus); |
174 | 174 | ||
175 | QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); | 175 | QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); |
176 | 176 | ||
177 | tabLayout->addWidget( Local_View, 0, 0 ); | 177 | tabLayout->addWidget( Local_View, 0, 0 ); |
178 | 178 | ||
179 | connect( Local_View, SIGNAL( clicked( QListViewItem*)), | 179 | connect( Local_View, SIGNAL( clicked(QListViewItem*)), |
180 | this,SLOT( localListClicked(QListViewItem *)) ); | 180 | this,SLOT( localListClicked(QListViewItem*)) ); |
181 | // connect( Local_View, SIGNAL( doubleClicked( QListViewItem*)), | 181 | // connect( Local_View, SIGNAL( doubleClicked(QListViewItem*)), |
182 | // this,SLOT( localListClicked(QListViewItem *)) ); | 182 | // this,SLOT( localListClicked(QListViewItem*)) ); |
183 | connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 183 | connect( Local_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), |
184 | this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); | 184 | this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) ); |
185 | 185 | ||
186 | TabWidget->insertTab( tab, tr( "Local" ) ); | 186 | TabWidget->insertTab( tab, tr( "Local" ) ); |
187 | 187 | ||
188 | tab_2 = new QWidget( TabWidget, "tab_2" ); | 188 | tab_2 = new QWidget( TabWidget, "tab_2" ); |
189 | tabLayout_2 = new QGridLayout( tab_2 ); | 189 | tabLayout_2 = new QGridLayout( tab_2 ); |
190 | tabLayout_2->setSpacing( 2); | 190 | tabLayout_2->setSpacing( 2); |
191 | tabLayout_2->setMargin( 2); | 191 | tabLayout_2->setMargin( 2); |
192 | 192 | ||
193 | Remote_View = new QListView( tab_2, "Remote_View" ); | 193 | Remote_View = new QListView( tab_2, "Remote_View" ); |
194 | Remote_View->addColumn( tr("File"),150); | 194 | Remote_View->addColumn( tr("File"),150); |
195 | Remote_View->addColumn( tr("Date"),-1); | 195 | Remote_View->addColumn( tr("Date"),-1); |
196 | // Remote_View->setColumnAlignment(1,QListView::AlignRight); | 196 | // Remote_View->setColumnAlignment(1,QListView::AlignRight); |
197 | Remote_View->addColumn( tr("Size"),-1); | 197 | Remote_View->addColumn( tr("Size"),-1); |
198 | Remote_View->setColumnAlignment(2,QListView::AlignRight); | 198 | Remote_View->setColumnAlignment(2,QListView::AlignRight); |
199 | Remote_View->setColumnAlignment(3,QListView::AlignCenter); | 199 | Remote_View->setColumnAlignment(3,QListView::AlignCenter); |
200 | Remote_View->addColumn( tr("Dir"),-1); | 200 | Remote_View->addColumn( tr("Dir"),-1); |
201 | Remote_View->setColumnAlignment(4,QListView::AlignRight); | 201 | Remote_View->setColumnAlignment(4,QListView::AlignRight); |
202 | Remote_View->setAllColumnsShowFocus(TRUE); | 202 | Remote_View->setAllColumnsShowFocus(TRUE); |
203 | 203 | ||
204 | Remote_View->setMultiSelection( FALSE); | 204 | Remote_View->setMultiSelection( FALSE); |
205 | Remote_View->setSelectionMode(QListView::Extended); | 205 | Remote_View->setSelectionMode(QListView::Extended); |
206 | Remote_View->setFocusPolicy(QWidget::ClickFocus); | 206 | Remote_View->setFocusPolicy(QWidget::ClickFocus); |
207 | 207 | ||
208 | QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); | 208 | QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); |
209 | 209 | ||
210 | connect( Remote_View, SIGNAL( clicked( QListViewItem*)), | 210 | connect( Remote_View, SIGNAL( clicked(QListViewItem*)), |
211 | this,SLOT( remoteListClicked(QListViewItem *)) ); | 211 | this,SLOT( remoteListClicked(QListViewItem*)) ); |
212 | connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 212 | connect( Remote_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), |
213 | this,SLOT( RemoteListPressed(int, QListViewItem *, const QPoint&, int)) ); | 213 | this,SLOT( RemoteListPressed(int,QListViewItem*,const QPoint&,int)) ); |
214 | 214 | ||
215 | tabLayout_2->addWidget( Remote_View, 0, 0 ); | 215 | tabLayout_2->addWidget( Remote_View, 0, 0 ); |
216 | 216 | ||
217 | TabWidget->insertTab( tab_2, tr( "Remote" ) ); | 217 | TabWidget->insertTab( tab_2, tr( "Remote" ) ); |
218 | 218 | ||
219 | tab_3 = new QWidget( TabWidget, "tab_3" ); | 219 | tab_3 = new QWidget( TabWidget, "tab_3" ); |
220 | tabLayout_3 = new QGridLayout( tab_3 ); | 220 | tabLayout_3 = new QGridLayout( tab_3 ); |
221 | tabLayout_3->setSpacing( 2); | 221 | tabLayout_3->setSpacing( 2); |
222 | tabLayout_3->setMargin( 2); | 222 | tabLayout_3->setMargin( 2); |
223 | 223 | ||
224 | TextLabel1 = new QLabel( tab_3, "TextLabel1" ); | 224 | TextLabel1 = new QLabel( tab_3, "TextLabel1" ); |
225 | TextLabel1->setText( tr( "Username" ) ); | 225 | TextLabel1->setText( tr( "Username" ) ); |
226 | tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 ); | 226 | tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 ); |
227 | 227 | ||
228 | UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" ); | 228 | UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" ); |
229 | UsernameComboBox->setEditable(TRUE); | 229 | UsernameComboBox->setEditable(TRUE); |
230 | tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 ); | 230 | tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 ); |
231 | 231 | ||
232 | connect( UsernameComboBox,SIGNAL(textChanged(const QString &)),this, | 232 | connect( UsernameComboBox,SIGNAL(textChanged(const QString&)),this, |
233 | SLOT( UsernameComboBoxEdited(const QString & ) )); | 233 | SLOT( UsernameComboBoxEdited(const QString&) )); |
234 | 234 | ||
235 | TextLabel2 = new QLabel( tab_3, "TextLabel2" ); | 235 | TextLabel2 = new QLabel( tab_3, "TextLabel2" ); |
236 | TextLabel2->setText( tr( "Password" ) ); | 236 | TextLabel2->setText( tr( "Password" ) ); |
237 | tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 ); | 237 | tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 ); |
238 | 238 | ||
239 | PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" ); | 239 | PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" ); |
240 | PasswordEdit->setEchoMode(QLineEdit::Password); | 240 | PasswordEdit->setEchoMode(QLineEdit::Password); |
241 | tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 ); | 241 | tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 ); |
242 | 242 | ||
243 | connect( PasswordEdit,SIGNAL(textChanged(const QString &)),this, | 243 | connect( PasswordEdit,SIGNAL(textChanged(const QString&)),this, |
244 | SLOT( PasswordEditEdited(const QString & ) )); | 244 | SLOT( PasswordEditEdited(const QString&) )); |
245 | 245 | ||
246 | //PasswordEdit->setFixedWidth(85); | 246 | //PasswordEdit->setFixedWidth(85); |
247 | TextLabel3 = new QLabel( tab_3, "TextLabel3" ); | 247 | TextLabel3 = new QLabel( tab_3, "TextLabel3" ); |
248 | TextLabel3->setText( tr( "Remote server" ) ); | 248 | TextLabel3->setText( tr( "Remote server" ) ); |
249 | tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); | 249 | tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); |
250 | 250 | ||
251 | ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" ); | 251 | ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" ); |
252 | ServerComboBox->setEditable(TRUE); | 252 | ServerComboBox->setEditable(TRUE); |
253 | tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 ); | 253 | tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 ); |
254 | 254 | ||
255 | connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int ) )); | 255 | connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int) )); |
256 | connect(ServerComboBox,SIGNAL(textChanged(const QString &)),this, | 256 | connect(ServerComboBox,SIGNAL(textChanged(const QString&)),this, |
257 | SLOT(serverComboEdited(const QString & ) )); | 257 | SLOT(serverComboEdited(const QString&) )); |
258 | 258 | ||
259 | QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" ); | 259 | QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" ); |
260 | TextLabel5->setText( tr( "Remote path" ) ); | 260 | TextLabel5->setText( tr( "Remote path" ) ); |
261 | tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 ); | 261 | tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 ); |
262 | 262 | ||
263 | 263 | ||
264 | remotePath = new QLineEdit( "/", tab_3, "remotePath" ); | 264 | remotePath = new QLineEdit( "/", tab_3, "remotePath" ); |
265 | tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 ); | 265 | tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 ); |
266 | TextLabel4 = new QLabel( tab_3, "TextLabel4" ); | 266 | TextLabel4 = new QLabel( tab_3, "TextLabel4" ); |
267 | TextLabel4->setText( tr( "Port" ) ); | 267 | TextLabel4->setText( tr( "Port" ) ); |
268 | tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 ); | 268 | tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 ); |
269 | 269 | ||
270 | PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" ); | 270 | PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" ); |
271 | PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows ); | 271 | PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows ); |
272 | PortSpinBox->setMaxValue(32786); | 272 | PortSpinBox->setMaxValue(32786); |
273 | tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1); | 273 | tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1); |
274 | 274 | ||
275 | serverListView = new QListBox( tab_3, "ServerListView" ); | 275 | serverListView = new QListBox( tab_3, "ServerListView" ); |
276 | tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5); | 276 | tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5); |
277 | 277 | ||
278 | connect( serverListView, SIGNAL( highlighted( const QString &)), | 278 | connect( serverListView, SIGNAL( highlighted(const QString&)), |
279 | this,SLOT( serverListClicked( const QString &) ) ); | 279 | this,SLOT( serverListClicked(const QString&) ) ); |
280 | 280 | ||
281 | connectServerBtn = new QPushButton( tr("Connect"), tab_3 , "ConnectButton" ); | 281 | connectServerBtn = new QPushButton( tr("Connect"), tab_3 , "ConnectButton" ); |
282 | tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1); | 282 | tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1); |
283 | connectServerBtn->setToggleButton(TRUE); | 283 | connectServerBtn->setToggleButton(TRUE); |
284 | connect(connectServerBtn,SIGNAL( toggled( bool)),SLOT( connectorBtnToggled(bool) )); | 284 | connect(connectServerBtn,SIGNAL( toggled(bool)),SLOT( connectorBtnToggled(bool) )); |
285 | 285 | ||
286 | newServerButton= new QPushButton( tr("Add"), tab_3 , "NewServerButton" ); | 286 | newServerButton= new QPushButton( tr("Add"), tab_3 , "NewServerButton" ); |
287 | tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2); | 287 | tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2); |
288 | connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() )); | 288 | connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() )); |
289 | 289 | ||
290 | QPushButton *deleteServerBtn; | 290 | QPushButton *deleteServerBtn; |
291 | deleteServerBtn = new QPushButton( tr("Delete"), tab_3 , "OpenButton" ); | 291 | deleteServerBtn = new QPushButton( tr("Delete"), tab_3 , "OpenButton" ); |
292 | tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3); | 292 | tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3); |
293 | 293 | ||
294 | connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer())); | 294 | connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer())); |
295 | 295 | ||
296 | 296 | ||
297 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); | 297 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); |
298 | tabLayout_3->addItem( spacer, 5, 0 ); | 298 | tabLayout_3->addItem( spacer, 5, 0 ); |
299 | 299 | ||
300 | TabWidget->insertTab( tab_3, tr( "Config" ) ); | 300 | TabWidget->insertTab( tab_3, tr( "Config" ) ); |
301 | 301 | ||
302 | #if 0 | 302 | #if 0 |
303 | connect(TabWidget,SIGNAL(currentChanged(QWidget *)), | 303 | connect(TabWidget,SIGNAL(currentChanged(QWidget*)), |
304 | this,SLOT(tabChanged(QWidget*))); | 304 | this,SLOT(tabChanged(QWidget*))); |
305 | #endif | 305 | #endif |
306 | 306 | ||
307 | currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); | 307 | currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); |
308 | currentDir.setPath( QDir::currentDirPath()); | 308 | currentDir.setPath( QDir::currentDirPath()); |
309 | // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 309 | // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
310 | 310 | ||
311 | currentPathCombo = new QComboBox( FALSE, view, "currentPathCombo" ); | 311 | currentPathCombo = new QComboBox( FALSE, view, "currentPathCombo" ); |
312 | layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4); | 312 | layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4); |
313 | currentPathCombo ->setFixedWidth(220); | 313 | currentPathCombo ->setFixedWidth(220); |
314 | currentPathCombo->setEditable(TRUE); | 314 | currentPathCombo->setEditable(TRUE); |
315 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); | 315 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); |
316 | 316 | ||
317 | #if 0 | 317 | #if 0 |
318 | connect( currentPathCombo, SIGNAL( activated( const QString & ) ), | 318 | connect( currentPathCombo, SIGNAL( activated(const QString&) ), |
319 | this, SLOT( currentPathComboActivated( const QString & ) ) ); | 319 | this, SLOT( currentPathComboActivated(const QString&) ) ); |
320 | 320 | ||
321 | connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), | 321 | connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), |
322 | this,SLOT(currentPathComboChanged())); | 322 | this,SLOT(currentPathComboChanged())); |
323 | #endif | 323 | #endif |
324 | ProgressBar = new QProgressBar( view, "ProgressBar" ); | 324 | ProgressBar = new QProgressBar( view, "ProgressBar" ); |
325 | layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4); | 325 | layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4); |
326 | ProgressBar->setMaximumHeight(10); | 326 | ProgressBar->setMaximumHeight(10); |
327 | filterStr="*"; | 327 | filterStr="*"; |
328 | b=FALSE; | 328 | b=FALSE; |
329 | #if 0 | 329 | #if 0 |
330 | populateLocalView(); | 330 | populateLocalView(); |
331 | #endif | 331 | #endif |
332 | readConfig(); | 332 | readConfig(); |
333 | 333 | ||
334 | // ServerComboBox->setCurrentItem(currentServerConfig); | 334 | // ServerComboBox->setCurrentItem(currentServerConfig); |
335 | 335 | ||
336 | TabWidget->setCurrentPage(2); | 336 | TabWidget->setCurrentPage(2); |
337 | qDebug("Constructor done"); | 337 | qDebug("Constructor done"); |
338 | } | 338 | } |
339 | 339 | ||
340 | OpieFtp::~OpieFtp() | 340 | OpieFtp::~OpieFtp() |
341 | { | 341 | { |
342 | } | 342 | } |
343 | 343 | ||
344 | void OpieFtp::cleanUp() | 344 | void OpieFtp::cleanUp() |
345 | { | 345 | { |
346 | if(conn) | 346 | if(conn) |
347 | FtpQuit(conn); | 347 | FtpQuit(conn); |
348 | QString sfile=QDir::homeDirPath(); | 348 | QString sfile=QDir::homeDirPath(); |
349 | if(sfile.right(1) != "/") | 349 | if(sfile.right(1) != "/") |
350 | sfile+="/._temp"; | 350 | sfile+="/._temp"; |
351 | else | 351 | else |
352 | sfile+="._temp"; | 352 | sfile+="._temp"; |
353 | QFile file( sfile); | 353 | QFile file( sfile); |
354 | if(file.exists()) | 354 | if(file.exists()) |
355 | file.remove(); | 355 | file.remove(); |
356 | Config cfg("opieftp"); | 356 | Config cfg("opieftp"); |
357 | cfg.setGroup("Server"); | 357 | cfg.setGroup("Server"); |
358 | cfg.writeEntry("currentServer", currentServerConfig); | 358 | cfg.writeEntry("currentServer", currentServerConfig); |
359 | 359 | ||
360 | exit(0); | 360 | exit(0); |
361 | } | 361 | } |
362 | 362 | ||
363 | void OpieFtp::tabChanged(QWidget *) | 363 | void OpieFtp::tabChanged(QWidget *) |
364 | { | 364 | { |
365 | if (TabWidget->currentPageIndex() == 0) { | 365 | if (TabWidget->currentPageIndex() == 0) { |
366 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); | 366 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); |
367 | tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); | 367 | tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); |
368 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); | 368 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); |
369 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); | 369 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); |
370 | if(cdUpButton->isHidden()) | 370 | if(cdUpButton->isHidden()) |
371 | cdUpButton->show(); | 371 | cdUpButton->show(); |
372 | if(homeButton->isHidden()) | 372 | if(homeButton->isHidden()) |
373 | homeButton->show(); | 373 | homeButton->show(); |
374 | 374 | ||
375 | } | 375 | } |
376 | if (TabWidget->currentPageIndex() == 1) { | 376 | if (TabWidget->currentPageIndex() == 1) { |
377 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); | 377 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); |
378 | tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); | 378 | tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); |
379 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); | 379 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); |
380 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); | 380 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); |
381 | if(cdUpButton->isHidden()) | 381 | if(cdUpButton->isHidden()) |
382 | cdUpButton->show(); | 382 | cdUpButton->show(); |
383 | homeButton->hide(); | 383 | homeButton->hide(); |
384 | 384 | ||
385 | } | 385 | } |
386 | if (TabWidget->currentPageIndex() == 2) { | 386 | if (TabWidget->currentPageIndex() == 2) { |
387 | tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); | 387 | tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); |
388 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); | 388 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); |
389 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); | 389 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); |
390 | cdUpButton->hide(); | 390 | cdUpButton->hide(); |
391 | homeButton->hide(); | 391 | homeButton->hide(); |
392 | } | 392 | } |
393 | } | 393 | } |
394 | 394 | ||
395 | void OpieFtp::newConnection() | 395 | void OpieFtp::newConnection() |
396 | { | 396 | { |
397 | UsernameComboBox->lineEdit()->setText(""); | 397 | UsernameComboBox->lineEdit()->setText(""); |
398 | PasswordEdit->setText( "" ); | 398 | PasswordEdit->setText( "" ); |
399 | ServerComboBox->lineEdit()->setText( ""); | 399 | ServerComboBox->lineEdit()->setText( ""); |
400 | remotePath->setText( currentRemoteDir = "/"); | 400 | remotePath->setText( currentRemoteDir = "/"); |
401 | PortSpinBox->setValue( 21); | 401 | PortSpinBox->setValue( 21); |
402 | TabWidget->setCurrentPage(2); | 402 | TabWidget->setCurrentPage(2); |
403 | } | 403 | } |
404 | 404 | ||
405 | void OpieFtp::serverComboEdited(const QString & ) | 405 | void OpieFtp::serverComboEdited(const QString & ) |
406 | { | 406 | { |
407 | // if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) { | 407 | // if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) { |
408 | // qDebug("ServerComboEdited"); | 408 | // qDebug("ServerComboEdited"); |
409 | // // currentServerConfig = -1; | 409 | // // currentServerConfig = -1; |
410 | // } | 410 | // } |
411 | } | 411 | } |
412 | 412 | ||
413 | void OpieFtp::UsernameComboBoxEdited(const QString &) { | 413 | void OpieFtp::UsernameComboBoxEdited(const QString &) { |
414 | // currentServerConfig = -1; | 414 | // currentServerConfig = -1; |
415 | } | 415 | } |
diff --git a/noncore/net/opieirc/ircchanneltab.cpp b/noncore/net/opieirc/ircchanneltab.cpp index b0771f6..667e977 100644 --- a/noncore/net/opieirc/ircchanneltab.cpp +++ b/noncore/net/opieirc/ircchanneltab.cpp | |||
@@ -1,127 +1,127 @@ | |||
1 | #include <qpe/resource.h> | 1 | #include <qpe/resource.h> |
2 | #include <qwhatsthis.h> | 2 | #include <qwhatsthis.h> |
3 | #include <qhbox.h> | 3 | #include <qhbox.h> |
4 | #include "ircchanneltab.h" | 4 | #include "ircchanneltab.h" |
5 | #include "ircservertab.h" | 5 | #include "ircservertab.h" |
6 | 6 | ||
7 | IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { | 7 | IRCChannelTab::IRCChannelTab(IRCChannel *channel, IRCServerTab *parentTab, MainWindow *mainWindow, QWidget *parent, const char *name, WFlags f) : IRCTab(parent, name, f) { |
8 | m_mainWindow = mainWindow; | 8 | m_mainWindow = mainWindow; |
9 | m_parentTab = parentTab; | 9 | m_parentTab = parentTab; |
10 | m_channel = channel; | 10 | m_channel = channel; |
11 | m_description->setText(tr("Talking on channel") + " <b>" + channel->channelname() + "</b>"); | 11 | m_description->setText(tr("Talking on channel") + " <b>" + channel->channelname() + "</b>"); |
12 | QHBox *hbox = new QHBox(this); | 12 | QHBox *hbox = new QHBox(this); |
13 | m_textview = new QTextView(hbox); | 13 | m_textview = new QTextView(hbox); |
14 | m_textview->setHScrollBarMode(QScrollView::AlwaysOff); | 14 | m_textview->setHScrollBarMode(QScrollView::AlwaysOff); |
15 | m_textview->setVScrollBarMode(QScrollView::AlwaysOn); | 15 | m_textview->setVScrollBarMode(QScrollView::AlwaysOn); |
16 | m_listVisible = TRUE; | 16 | m_listVisible = TRUE; |
17 | m_listButton = new QPushButton(">", m_textview); | 17 | m_listButton = new QPushButton(">", m_textview); |
18 | m_textview->setCornerWidget(m_listButton); | 18 | m_textview->setCornerWidget(m_listButton); |
19 | m_textview->setTextFormat(RichText); | 19 | m_textview->setTextFormat(RichText); |
20 | QWhatsThis::add(m_textview, tr("Channel discussion")); | 20 | QWhatsThis::add(m_textview, tr("Channel discussion")); |
21 | connect(m_listButton, SIGNAL(clicked()), this, SLOT(toggleList())); | 21 | connect(m_listButton, SIGNAL(clicked()), this, SLOT(toggleList())); |
22 | m_list = new IRCChannelList(m_channel, hbox); | 22 | m_list = new IRCChannelList(m_channel, hbox); |
23 | m_list->update(); | 23 | m_list->update(); |
24 | m_list->setMaximumWidth(LISTWIDTH); | 24 | m_list->setMaximumWidth(LISTWIDTH); |
25 | m_field = new IRCHistoryLineEdit(this); | 25 | m_field = new IRCHistoryLineEdit(this); |
26 | QWhatsThis::add(m_field, tr("Type your message here to participate in the channel discussion")); | 26 | QWhatsThis::add(m_field, tr("Type your message here to participate in the channel discussion")); |
27 | m_popup = new QPopupMenu(m_list); | 27 | m_popup = new QPopupMenu(m_list); |
28 | m_lines = 0; | 28 | m_lines = 0; |
29 | /* Required so that embedded-style "right" clicks work */ | 29 | /* Required so that embedded-style "right" clicks work */ |
30 | QPEApplication::setStylusOperation(m_list->viewport(), QPEApplication::RightOnHold); | 30 | QPEApplication::setStylusOperation(m_list->viewport(), QPEApplication::RightOnHold); |
31 | connect(m_list, SIGNAL(mouseButtonPressed(int, QListBoxItem *, const QPoint&)), this, SLOT(mouseButtonPressed(int, QListBoxItem *, const QPoint &))); | 31 | connect(m_list, SIGNAL(mouseButtonPressed(int,QListBoxItem*,const QPoint&)), this, SLOT(mouseButtonPressed(int,QListBoxItem*,const QPoint&))); |
32 | /* Construct the popup menu */ | 32 | /* Construct the popup menu */ |
33 | QPopupMenu *ctcpMenu = new QPopupMenu(m_list); | 33 | QPopupMenu *ctcpMenu = new QPopupMenu(m_list); |
34 | m_popup->insertItem(Resource::loadPixmap("opieirc/ctcp"), tr("CTCP"), ctcpMenu); | 34 | m_popup->insertItem(Resource::loadPixmap("opieirc/ctcp"), tr("CTCP"), ctcpMenu); |
35 | m_popup->insertItem(Resource::loadPixmap("opieirc/query"), tr("Query"), this, SLOT(popupQuery())); | 35 | m_popup->insertItem(Resource::loadPixmap("opieirc/query"), tr("Query"), this, SLOT(popupQuery())); |
36 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/ping"), tr("Ping"), this, SLOT(popupPing())); | 36 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/ping"), tr("Ping"), this, SLOT(popupPing())); |
37 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/version"), tr("Version"), this, SLOT(popupVersion())); | 37 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/version"), tr("Version"), this, SLOT(popupVersion())); |
38 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/whois"), tr("Whois"), this, SLOT(popupWhois())); | 38 | ctcpMenu->insertItem(Resource::loadPixmap("opieirc/whois"), tr("Whois"), this, SLOT(popupWhois())); |
39 | connect(m_mainWindow, SIGNAL(updateScroll()), this, SLOT(scrolling())); | 39 | connect(m_mainWindow, SIGNAL(updateScroll()), this, SLOT(scrolling())); |
40 | m_layout->add(hbox); | 40 | m_layout->add(hbox); |
41 | hbox->show(); | 41 | hbox->show(); |
42 | m_layout->add(m_field); | 42 | m_layout->add(m_field); |
43 | m_field->setFocus(); | 43 | m_field->setFocus(); |
44 | connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); | 44 | connect(m_field, SIGNAL(returnPressed()), this, SLOT(processCommand())); |
45 | settingsChanged(); | 45 | settingsChanged(); |
46 | } | 46 | } |
47 | 47 | ||
48 | void IRCChannelTab::scrolling(){ | 48 | void IRCChannelTab::scrolling(){ |
49 | m_textview->ensureVisible(0, m_textview->contentsHeight()); | 49 | m_textview->ensureVisible(0, m_textview->contentsHeight()); |
50 | } | 50 | } |
51 | 51 | ||
52 | void IRCChannelTab::appendText(QString text) { | 52 | void IRCChannelTab::appendText(QString text) { |
53 | /* not using append because it creates layout problems */ | 53 | /* not using append because it creates layout problems */ |
54 | QString txt = m_textview->text() + text + "\n"; | 54 | QString txt = m_textview->text() + text + "\n"; |
55 | if (m_maxLines > 0 && m_lines >= m_maxLines) { | 55 | if (m_maxLines > 0 && m_lines >= m_maxLines) { |
56 | int firstBreak = txt.find('\n'); | 56 | int firstBreak = txt.find('\n'); |
57 | if (firstBreak != -1) { | 57 | if (firstBreak != -1) { |
58 | txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1)); | 58 | txt = "<qt bgcolor=\"" + m_backgroundColor + "\"/>" + txt.right(txt.length() - (firstBreak + 1)); |
59 | } | 59 | } |
60 | } else { | 60 | } else { |
61 | m_lines++; | 61 | m_lines++; |
62 | } | 62 | } |
63 | m_textview->ensureVisible(0, m_textview->contentsHeight()); | 63 | m_textview->ensureVisible(0, m_textview->contentsHeight()); |
64 | m_textview->setText(txt); | 64 | m_textview->setText(txt); |
65 | m_textview->ensureVisible(0, m_textview->contentsHeight()); | 65 | m_textview->ensureVisible(0, m_textview->contentsHeight()); |
66 | emit changed(this); | 66 | emit changed(this); |
67 | } | 67 | } |
68 | 68 | ||
69 | IRCChannelTab::~IRCChannelTab() { | 69 | IRCChannelTab::~IRCChannelTab() { |
70 | m_parentTab->removeChannelTab(this); | 70 | m_parentTab->removeChannelTab(this); |
71 | } | 71 | } |
72 | 72 | ||
73 | void IRCChannelTab::processCommand() { | 73 | void IRCChannelTab::processCommand() { |
74 | QString text = m_field->text(); | 74 | QString text = m_field->text(); |
75 | if (text.length()>0) { | 75 | if (text.length()>0) { |
76 | if (session()->isSessionActive()) { | 76 | if (session()->isSessionActive()) { |
77 | if (text.startsWith("/") && !text.startsWith("//")) { | 77 | if (text.startsWith("/") && !text.startsWith("//")) { |
78 | /* Command mode */ | 78 | /* Command mode */ |
79 | m_parentTab->executeCommand(this, text);; | 79 | m_parentTab->executeCommand(this, text);; |
80 | } else { | 80 | } else { |
81 | if (text.startsWith("//")) | 81 | if (text.startsWith("//")) |
82 | text = text.right(text.length()-1); | 82 | text = text.right(text.length()-1); |
83 | session()->sendMessage(m_channel, m_field->text()); | 83 | session()->sendMessage(m_channel, m_field->text()); |
84 | appendText("<font color=\"" + m_textColor + "\"><</font><font color=\"" + m_selfColor + "\">"+m_parentTab->server()->nick()+"</font><font color=\"" + m_textColor + "\">> "+IRCOutput::toHTML(m_field->text())+"</font><br>"); | 84 | appendText("<font color=\"" + m_textColor + "\"><</font><font color=\"" + m_selfColor + "\">"+m_parentTab->server()->nick()+"</font><font color=\"" + m_textColor + "\">> "+IRCOutput::toHTML(m_field->text())+"</font><br>"); |
85 | } | 85 | } |
86 | } else { | 86 | } else { |
87 | appendText("<font color=\"" + m_errorColor + "\">"+tr("Disconnected")+"</font><br>"); | 87 | appendText("<font color=\"" + m_errorColor + "\">"+tr("Disconnected")+"</font><br>"); |
88 | } | 88 | } |
89 | } | 89 | } |
90 | m_field->clear(); | 90 | m_field->clear(); |
91 | } | 91 | } |
92 | 92 | ||
93 | void IRCChannelTab::settingsChanged() { | 93 | void IRCChannelTab::settingsChanged() { |
94 | m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); | 94 | m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); |
95 | m_lines = 0; | 95 | m_lines = 0; |
96 | } | 96 | } |
97 | 97 | ||
98 | void IRCChannelTab::toggleList() { | 98 | void IRCChannelTab::toggleList() { |
99 | if (m_listVisible) { | 99 | if (m_listVisible) { |
100 | m_list->setMaximumWidth(0); | 100 | m_list->setMaximumWidth(0); |
101 | m_listButton->setText("<"); | 101 | m_listButton->setText("<"); |
102 | } else { | 102 | } else { |
103 | m_list->setMaximumWidth(LISTWIDTH); | 103 | m_list->setMaximumWidth(LISTWIDTH); |
104 | m_listButton->setText(">"); | 104 | m_listButton->setText(">"); |
105 | } | 105 | } |
106 | m_listVisible = !m_listVisible; | 106 | m_listVisible = !m_listVisible; |
107 | } | 107 | } |
108 | 108 | ||
109 | void IRCChannelTab::mouseButtonPressed(int mouse, QListBoxItem *, const QPoint &point) { | 109 | void IRCChannelTab::mouseButtonPressed(int mouse, QListBoxItem *, const QPoint &point) { |
110 | switch (mouse) { | 110 | switch (mouse) { |
111 | case 1: | 111 | case 1: |
112 | break; | 112 | break; |
113 | case 2: | 113 | case 2: |
114 | m_popup->popup(point); | 114 | m_popup->popup(point); |
115 | break; | 115 | break; |
116 | }; | 116 | }; |
117 | } | 117 | } |
118 | 118 | ||
119 | void IRCChannelTab::popupQuery() { | 119 | void IRCChannelTab::popupQuery() { |
120 | if (m_list->currentItem() != -1) { | 120 | if (m_list->currentItem() != -1) { |
121 | IRCPerson *person = session()->getPerson(m_list->item(m_list->currentItem())->text()); | 121 | IRCPerson *person = session()->getPerson(m_list->item(m_list->currentItem())->text()); |
122 | if (person) { | 122 | if (person) { |
123 | IRCQueryTab *tab = m_parentTab->getTabForQuery(person); | 123 | IRCQueryTab *tab = m_parentTab->getTabForQuery(person); |
124 | if (!tab) { | 124 | if (!tab) { |
125 | tab = new IRCQueryTab(person, m_parentTab, m_mainWindow, (QWidget *)parent()); | 125 | tab = new IRCQueryTab(person, m_parentTab, m_mainWindow, (QWidget *)parent()); |
126 | m_parentTab->addQueryTab(tab); | 126 | m_parentTab->addQueryTab(tab); |
127 | m_mainWindow->addTab(tab); | 127 | m_mainWindow->addTab(tab); |
diff --git a/noncore/net/opieirc/ircsession.cpp b/noncore/net/opieirc/ircsession.cpp index 6404d71..3b176d0 100644 --- a/noncore/net/opieirc/ircsession.cpp +++ b/noncore/net/opieirc/ircsession.cpp | |||
@@ -1,105 +1,105 @@ | |||
1 | #include "ircsession.h" | 1 | #include "ircsession.h" |
2 | #include "ircmessageparser.h" | 2 | #include "ircmessageparser.h" |
3 | #include "ircversion.h" | 3 | #include "ircversion.h" |
4 | 4 | ||
5 | IRCSession::IRCSession(IRCServer *server) { | 5 | IRCSession::IRCSession(IRCServer *server) { |
6 | m_server = server; | 6 | m_server = server; |
7 | m_connection = new IRCConnection(m_server); | 7 | m_connection = new IRCConnection(m_server); |
8 | m_parser = new IRCMessageParser(this); | 8 | m_parser = new IRCMessageParser(this); |
9 | connect(m_connection, SIGNAL(messageArrived(IRCMessage *)), this, SLOT(handleMessage(IRCMessage *))); | 9 | connect(m_connection, SIGNAL(messageArrived(IRCMessage*)), this, SLOT(handleMessage(IRCMessage*))); |
10 | connect(m_parser, SIGNAL(outputReady(IRCOutput)), this, SIGNAL(outputReady(IRCOutput))); | 10 | connect(m_parser, SIGNAL(outputReady(IRCOutput)), this, SIGNAL(outputReady(IRCOutput))); |
11 | connect(m_connection, SIGNAL(outputReady(IRCOutput)), this, SIGNAL(outputReady(IRCOutput))); | 11 | connect(m_connection, SIGNAL(outputReady(IRCOutput)), this, SIGNAL(outputReady(IRCOutput))); |
12 | } | 12 | } |
13 | 13 | ||
14 | IRCSession::~IRCSession() { | 14 | IRCSession::~IRCSession() { |
15 | /* We want this to get deleted automatically */ | 15 | /* We want this to get deleted automatically */ |
16 | m_channels.setAutoDelete(TRUE); | 16 | m_channels.setAutoDelete(TRUE); |
17 | m_people.setAutoDelete(TRUE); | 17 | m_people.setAutoDelete(TRUE); |
18 | 18 | ||
19 | delete m_parser; | 19 | delete m_parser; |
20 | delete m_connection; | 20 | delete m_connection; |
21 | } | 21 | } |
22 | 22 | ||
23 | void IRCSession::beginSession() { | 23 | void IRCSession::beginSession() { |
24 | m_connection->doConnect(); | 24 | m_connection->doConnect(); |
25 | } | 25 | } |
26 | 26 | ||
27 | void IRCSession::join(QString channelname) { | 27 | void IRCSession::join(QString channelname) { |
28 | m_connection->sendLine("JOIN "+channelname); | 28 | m_connection->sendLine("JOIN "+channelname); |
29 | } | 29 | } |
30 | 30 | ||
31 | void IRCSession::quit(){ | 31 | void IRCSession::quit(){ |
32 | m_connection->sendLine("QUIT :[OI] I'm too good to need a reason"); | 32 | m_connection->sendLine("QUIT :[OI] I'm too good to need a reason"); |
33 | } | 33 | } |
34 | 34 | ||
35 | void IRCSession::quit(QString message){ | 35 | void IRCSession::quit(QString message){ |
36 | m_connection->sendLine("QUIT :" + message); | 36 | m_connection->sendLine("QUIT :" + message); |
37 | } | 37 | } |
38 | 38 | ||
39 | void IRCSession::topic(IRCChannel *channel, QString message){ | 39 | void IRCSession::topic(IRCChannel *channel, QString message){ |
40 | m_connection->sendLine("TOPIC :" + channel->channelname() + " " + message); | 40 | m_connection->sendLine("TOPIC :" + channel->channelname() + " " + message); |
41 | } | 41 | } |
42 | 42 | ||
43 | void IRCSession::mode(IRCChannel *channel, QString message){ | 43 | void IRCSession::mode(IRCChannel *channel, QString message){ |
44 | m_connection->sendLine("MODE " + channel->channelname() + " " + message); | 44 | m_connection->sendLine("MODE " + channel->channelname() + " " + message); |
45 | } | 45 | } |
46 | 46 | ||
47 | void IRCSession::mode(IRCPerson *person, QString message){ | 47 | void IRCSession::mode(IRCPerson *person, QString message){ |
48 | m_connection->sendLine("MODE " + person->nick() + " " + message); | 48 | m_connection->sendLine("MODE " + person->nick() + " " + message); |
49 | } | 49 | } |
50 | 50 | ||
51 | void IRCSession::mode(QString message){ | 51 | void IRCSession::mode(QString message){ |
52 | m_connection->sendLine("MODE " + message); | 52 | m_connection->sendLine("MODE " + message); |
53 | } | 53 | } |
54 | 54 | ||
55 | void IRCSession::raw(QString message){ | 55 | void IRCSession::raw(QString message){ |
56 | m_connection->sendLine(message); | 56 | m_connection->sendLine(message); |
57 | } | 57 | } |
58 | 58 | ||
59 | void IRCSession::kick(IRCChannel *channel, IRCPerson *person) { | 59 | void IRCSession::kick(IRCChannel *channel, IRCPerson *person) { |
60 | m_connection->sendLine("KICK "+ channel->channelname() + " " + person->nick() +" :0wn3d - no reason"); | 60 | m_connection->sendLine("KICK "+ channel->channelname() + " " + person->nick() +" :0wn3d - no reason"); |
61 | } | 61 | } |
62 | 62 | ||
63 | void IRCSession::op(IRCChannel *channel, IRCPerson *person) { | 63 | void IRCSession::op(IRCChannel *channel, IRCPerson *person) { |
64 | m_connection->sendLine("MODE "+ channel->channelname() + " +ooo " + person->nick()); | 64 | m_connection->sendLine("MODE "+ channel->channelname() + " +ooo " + person->nick()); |
65 | } | 65 | } |
66 | 66 | ||
67 | void IRCSession::kick(IRCChannel *channel, IRCPerson *person, QString message) { | 67 | void IRCSession::kick(IRCChannel *channel, IRCPerson *person, QString message) { |
68 | m_connection->sendLine("KICK "+ channel->channelname() + " " + person->nick() +" :" + message); | 68 | m_connection->sendLine("KICK "+ channel->channelname() + " " + person->nick() +" :" + message); |
69 | } | 69 | } |
70 | 70 | ||
71 | void IRCSession::sendMessage(IRCPerson *person, QString message) { | 71 | void IRCSession::sendMessage(IRCPerson *person, QString message) { |
72 | m_connection->sendLine("PRIVMSG " + person->nick() + " :" + message); | 72 | m_connection->sendLine("PRIVMSG " + person->nick() + " :" + message); |
73 | } | 73 | } |
74 | 74 | ||
75 | void IRCSession::sendMessage(IRCChannel *channel, QString message) { | 75 | void IRCSession::sendMessage(IRCChannel *channel, QString message) { |
76 | m_connection->sendLine("PRIVMSG " + channel->channelname() + " :" + message); | 76 | m_connection->sendLine("PRIVMSG " + channel->channelname() + " :" + message); |
77 | } | 77 | } |
78 | 78 | ||
79 | void IRCSession::sendAction(IRCChannel *channel, QString message) { | 79 | void IRCSession::sendAction(IRCChannel *channel, QString message) { |
80 | m_connection->sendLine("PRIVMSG " + channel->channelname() + " :\001ACTION " + message + "\001"); | 80 | m_connection->sendLine("PRIVMSG " + channel->channelname() + " :\001ACTION " + message + "\001"); |
81 | } | 81 | } |
82 | 82 | ||
83 | void IRCSession::sendAction(IRCPerson *person, QString message) { | 83 | void IRCSession::sendAction(IRCPerson *person, QString message) { |
84 | m_connection->sendLine("PRIVMSG " + person->nick() + " :\001ACTION " + message + "\001"); | 84 | m_connection->sendLine("PRIVMSG " + person->nick() + " :\001ACTION " + message + "\001"); |
85 | } | 85 | } |
86 | 86 | ||
87 | bool IRCSession::isSessionActive() { | 87 | bool IRCSession::isSessionActive() { |
88 | return m_connection->isConnected(); | 88 | return m_connection->isConnected(); |
89 | } | 89 | } |
90 | 90 | ||
91 | void IRCSession::endSession() { | 91 | void IRCSession::endSession() { |
92 | if (m_connection->isLoggedIn()) | 92 | if (m_connection->isLoggedIn()) |
93 | m_connection->sendLine("QUIT :" APP_VERSION); | 93 | m_connection->sendLine("QUIT :" APP_VERSION); |
94 | else | 94 | else |
95 | m_connection->close(); | 95 | m_connection->close(); |
96 | } | 96 | } |
97 | 97 | ||
98 | void IRCSession::part(IRCChannel *channel) { | 98 | void IRCSession::part(IRCChannel *channel) { |
99 | m_connection->sendLine("PART " + channel->channelname() + " :" + APP_VERSION); | 99 | m_connection->sendLine("PART " + channel->channelname() + " :" + APP_VERSION); |
100 | } | 100 | } |
101 | 101 | ||
102 | 102 | ||
103 | IRCChannel *IRCSession::getChannel(QString channelname) { | 103 | IRCChannel *IRCSession::getChannel(QString channelname) { |
104 | QListIterator<IRCChannel> it(m_channels); | 104 | QListIterator<IRCChannel> it(m_channels); |
105 | for (; it.current(); ++it) { | 105 | for (; it.current(); ++it) { |
diff --git a/noncore/net/opieirc/mainwindow.cpp b/noncore/net/opieirc/mainwindow.cpp index 7414154..0923a11 100644 --- a/noncore/net/opieirc/mainwindow.cpp +++ b/noncore/net/opieirc/mainwindow.cpp | |||
@@ -1,91 +1,91 @@ | |||
1 | #include <qmenubar.h> | 1 | #include <qmenubar.h> |
2 | #include <qpe/resource.h> | 2 | #include <qpe/resource.h> |
3 | #include <qwhatsthis.h> | 3 | #include <qwhatsthis.h> |
4 | 4 | ||
5 | #include "mainwindow.h" | 5 | #include "mainwindow.h" |
6 | #include "ircservertab.h" | 6 | #include "ircservertab.h" |
7 | #include "ircserverlist.h" | 7 | #include "ircserverlist.h" |
8 | #include "ircsettings.h" | 8 | #include "ircsettings.h" |
9 | 9 | ||
10 | MainWindow::MainWindow(QWidget *parent, const char *name, WFlags) : QMainWindow(parent, name, WStyle_ContextHelp) { | 10 | MainWindow::MainWindow(QWidget *parent, const char *name, WFlags) : QMainWindow(parent, name, WStyle_ContextHelp) { |
11 | setCaption(tr("IRC Client")); | 11 | setCaption(tr("IRC Client")); |
12 | m_tabWidget = new IRCTabWidget(this); | 12 | m_tabWidget = new IRCTabWidget(this); |
13 | QWhatsThis::add(m_tabWidget, tr("Server connections, channels, queries and other things will be placed here")); | 13 | QWhatsThis::add(m_tabWidget, tr("Server connections, channels, queries and other things will be placed here")); |
14 | connect(m_tabWidget, SIGNAL(currentChanged(QWidget *)), this, SLOT(selected(QWidget *))); | 14 | connect(m_tabWidget, SIGNAL(currentChanged(QWidget*)), this, SLOT(selected(QWidget*))); |
15 | setCentralWidget(m_tabWidget); | 15 | setCentralWidget(m_tabWidget); |
16 | setToolBarsMovable(FALSE); | 16 | setToolBarsMovable(FALSE); |
17 | QMenuBar *menuBar = new QMenuBar(this); | 17 | QMenuBar *menuBar = new QMenuBar(this); |
18 | QPopupMenu *irc = new QPopupMenu(this); | 18 | QPopupMenu *irc = new QPopupMenu(this); |
19 | menuBar->insertItem(tr("IRC"), irc); | 19 | menuBar->insertItem(tr("IRC"), irc); |
20 | QAction *a = new QAction(tr("New connection"), Resource::loadPixmap("pass"), QString::null, 0, this, 0); | 20 | QAction *a = new QAction(tr("New connection"), Resource::loadPixmap("pass"), QString::null, 0, this, 0); |
21 | connect(a, SIGNAL(activated()), this, SLOT(newConnection())); | 21 | connect(a, SIGNAL(activated()), this, SLOT(newConnection())); |
22 | a->setWhatsThis(tr("Create a new connection to an IRC server")); | 22 | a->setWhatsThis(tr("Create a new connection to an IRC server")); |
23 | a->addTo(irc); | 23 | a->addTo(irc); |
24 | a = new QAction(tr("Settings"), Resource::loadPixmap("SettingsIcon"), QString::null, 0, this, 0); | 24 | a = new QAction(tr("Settings"), Resource::loadPixmap("SettingsIcon"), QString::null, 0, this, 0); |
25 | a->setWhatsThis(tr("Configure OpieIRC's behavior and appearance")); | 25 | a->setWhatsThis(tr("Configure OpieIRC's behavior and appearance")); |
26 | connect(a, SIGNAL(activated()), this, SLOT(settings())); | 26 | connect(a, SIGNAL(activated()), this, SLOT(settings())); |
27 | a->addTo(irc); | 27 | a->addTo(irc); |
28 | loadSettings(); | 28 | loadSettings(); |
29 | } | 29 | } |
30 | 30 | ||
31 | /*IRCTabWidget MainWindow::getTabWidget(){ | 31 | /*IRCTabWidget MainWindow::getTabWidget(){ |
32 | return m_tabWidget; | 32 | return m_tabWidget; |
33 | } */ | 33 | } */ |
34 | 34 | ||
35 | void MainWindow::loadSettings() { | 35 | void MainWindow::loadSettings() { |
36 | Config config("OpieIRC"); | 36 | Config config("OpieIRC"); |
37 | config.setGroup("OpieIRC"); | 37 | config.setGroup("OpieIRC"); |
38 | IRCTab::m_backgroundColor = config.readEntry("BackgroundColor", "#FFFFFF"); | 38 | IRCTab::m_backgroundColor = config.readEntry("BackgroundColor", "#FFFFFF"); |
39 | IRCTab::m_textColor = config.readEntry("TextColor", "#000000"); | 39 | IRCTab::m_textColor = config.readEntry("TextColor", "#000000"); |
40 | IRCTab::m_errorColor = config.readEntry("ErrorColor", "#FF0000"); | 40 | IRCTab::m_errorColor = config.readEntry("ErrorColor", "#FF0000"); |
41 | IRCTab::m_selfColor = config.readEntry("SelfColor", "#CC0000"); | 41 | IRCTab::m_selfColor = config.readEntry("SelfColor", "#CC0000"); |
42 | IRCTab::m_otherColor = config.readEntry("OtherColor", "#0000BB"); | 42 | IRCTab::m_otherColor = config.readEntry("OtherColor", "#0000BB"); |
43 | IRCTab::m_serverColor = config.readEntry("ServerColor", "#0000FF"); | 43 | IRCTab::m_serverColor = config.readEntry("ServerColor", "#0000FF"); |
44 | IRCTab::m_notificationColor = config.readEntry("NotificationColor", "#AA3300"); | 44 | IRCTab::m_notificationColor = config.readEntry("NotificationColor", "#AA3300"); |
45 | IRCTab::m_maxLines = config.readNumEntry("Lines", 100); | 45 | IRCTab::m_maxLines = config.readNumEntry("Lines", 100); |
46 | } | 46 | } |
47 | 47 | ||
48 | void MainWindow::selected(QWidget *) { | 48 | void MainWindow::selected(QWidget *) { |
49 | m_tabWidget->setTabColor(m_tabWidget->currentPageIndex(), black); | 49 | m_tabWidget->setTabColor(m_tabWidget->currentPageIndex(), black); |
50 | emit updateScroll(); | 50 | emit updateScroll(); |
51 | } | 51 | } |
52 | 52 | ||
53 | void MainWindow::addTab(IRCTab *tab) { | 53 | void MainWindow::addTab(IRCTab *tab) { |
54 | connect(tab, SIGNAL(changed(IRCTab *)), this, SLOT(changeEvent(IRCTab *))); | 54 | connect(tab, SIGNAL(changed(IRCTab*)), this, SLOT(changeEvent(IRCTab*))); |
55 | m_tabWidget->addTab(tab, tab->title()); | 55 | m_tabWidget->addTab(tab, tab->title()); |
56 | m_tabWidget->showPage(tab); | 56 | m_tabWidget->showPage(tab); |
57 | tab->setID(m_tabWidget->currentPageIndex()); | 57 | tab->setID(m_tabWidget->currentPageIndex()); |
58 | m_tabs.append(tab); | 58 | m_tabs.append(tab); |
59 | } | 59 | } |
60 | 60 | ||
61 | void MainWindow::changeEvent(IRCTab *tab) { | 61 | void MainWindow::changeEvent(IRCTab *tab) { |
62 | if (tab->id() != m_tabWidget->currentPageIndex()) | 62 | if (tab->id() != m_tabWidget->currentPageIndex()) |
63 | m_tabWidget->setTabColor(tab->id(), blue); | 63 | m_tabWidget->setTabColor(tab->id(), blue); |
64 | } | 64 | } |
65 | 65 | ||
66 | void MainWindow::killTab(IRCTab *tab) { | 66 | void MainWindow::killTab(IRCTab *tab) { |
67 | m_tabWidget->removePage(tab); | 67 | m_tabWidget->removePage(tab); |
68 | m_tabs.remove(tab); | 68 | m_tabs.remove(tab); |
69 | /* there might be nicer ways to do this .. */ | 69 | /* there might be nicer ways to do this .. */ |
70 | delete tab; | 70 | delete tab; |
71 | } | 71 | } |
72 | 72 | ||
73 | void MainWindow::newConnection() { | 73 | void MainWindow::newConnection() { |
74 | IRCServerList list(this, "ServerList", TRUE); | 74 | IRCServerList list(this, "ServerList", TRUE); |
75 | if (list.exec() == QDialog::Accepted && list.hasServer()) { | 75 | if (list.exec() == QDialog::Accepted && list.hasServer()) { |
76 | IRCServerTab *serverTab = new IRCServerTab(list.server(), this, m_tabWidget); | 76 | IRCServerTab *serverTab = new IRCServerTab(list.server(), this, m_tabWidget); |
77 | addTab(serverTab); | 77 | addTab(serverTab); |
78 | serverTab->doConnect(); | 78 | serverTab->doConnect(); |
79 | } | 79 | } |
80 | } | 80 | } |
81 | 81 | ||
82 | void MainWindow::settings() { | 82 | void MainWindow::settings() { |
83 | IRCSettings settings(this, "Settings", TRUE); | 83 | IRCSettings settings(this, "Settings", TRUE); |
84 | if (settings.exec() == QDialog::Accepted) { | 84 | if (settings.exec() == QDialog::Accepted) { |
85 | QListIterator<IRCTab> it(m_tabs); | 85 | QListIterator<IRCTab> it(m_tabs); |
86 | for (; it.current(); ++it) { | 86 | for (; it.current(); ++it) { |
87 | /* Inform all tabs about the new settings */ | 87 | /* Inform all tabs about the new settings */ |
88 | it.current()->settingsChanged(); | 88 | it.current()->settingsChanged(); |
89 | } | 89 | } |
90 | } | 90 | } |
91 | } | 91 | } |
diff --git a/noncore/net/opietooth/lib/startdunconnection.cpp b/noncore/net/opietooth/lib/startdunconnection.cpp index 6b6d247..c3850eb 100644 --- a/noncore/net/opietooth/lib/startdunconnection.cpp +++ b/noncore/net/opietooth/lib/startdunconnection.cpp | |||
@@ -1,67 +1,67 @@ | |||
1 | 1 | ||
2 | #include "startdunconnection.h" | 2 | #include "startdunconnection.h" |
3 | 3 | ||
4 | using namespace OpieTooth; | 4 | using namespace OpieTooth; |
5 | 5 | ||
6 | 6 | ||
7 | StartDunConnection::StartDunConnection() { | 7 | StartDunConnection::StartDunConnection() { |
8 | m_dunConnect = 0l; | 8 | m_dunConnect = 0l; |
9 | setConnectionType(); | 9 | setConnectionType(); |
10 | } | 10 | } |
11 | 11 | ||
12 | StartDunConnection::~StartDunConnection() { | 12 | StartDunConnection::~StartDunConnection() { |
13 | delete m_dunConnect; | 13 | delete m_dunConnect; |
14 | } | 14 | } |
15 | 15 | ||
16 | StartDunConnection::StartDunConnection( QString mac ) { | 16 | StartDunConnection::StartDunConnection( QString mac ) { |
17 | m_dunConnect = 0l; | 17 | m_dunConnect = 0l; |
18 | m_mac = mac; | 18 | m_mac = mac; |
19 | setConnectionType(); | 19 | setConnectionType(); |
20 | } | 20 | } |
21 | 21 | ||
22 | void StartDunConnection::setName( QString name ) { | 22 | void StartDunConnection::setName( QString name ) { |
23 | m_name = name; | 23 | m_name = name; |
24 | } | 24 | } |
25 | 25 | ||
26 | QString StartDunConnection::name() { | 26 | QString StartDunConnection::name() { |
27 | return m_name; | 27 | return m_name; |
28 | } | 28 | } |
29 | 29 | ||
30 | void StartDunConnection::setConnectionType() { | 30 | void StartDunConnection::setConnectionType() { |
31 | m_connectionType = Pan; | 31 | m_connectionType = Pan; |
32 | } | 32 | } |
33 | 33 | ||
34 | StartConnection::ConnectionType StartDunConnection::type() { | 34 | StartConnection::ConnectionType StartDunConnection::type() { |
35 | return m_connectionType; | 35 | return m_connectionType; |
36 | } | 36 | } |
37 | 37 | ||
38 | void StartDunConnection::start() { | 38 | void StartDunConnection::start() { |
39 | m_dunConnect = new OProcess(); | 39 | m_dunConnect = new OProcess(); |
40 | *m_dunConnect << "dund" << "--listen" << "--connect" << m_mac; | 40 | *m_dunConnect << "dund" << "--listen" << "--connect" << m_mac; |
41 | 41 | ||
42 | connect( m_dunConnect, SIGNAL( processExited( OProcess* ) ) , | 42 | connect( m_dunConnect, SIGNAL( processExited(OProcess*) ) , |
43 | this, SLOT( slotExited( OProcess* ) ) ); | 43 | this, SLOT( slotExited(OProcess*) ) ); |
44 | connect( m_dunConnect, SIGNAL( receivedStdout( OProcess*, char*, int ) ), | 44 | connect( m_dunConnect, SIGNAL( receivedStdout(OProcess*,char*,int) ), |
45 | this, SLOT( slotStdOut( OProcess*, char*, int ) ) ); | 45 | this, SLOT( slotStdOut(OProcess*,char*,int) ) ); |
46 | if (!m_dunConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { | 46 | if (!m_dunConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { |
47 | qWarning( "could not start" ); | 47 | qWarning( "could not start" ); |
48 | delete m_dunConnect; | 48 | delete m_dunConnect; |
49 | } | 49 | } |
50 | } | 50 | } |
51 | 51 | ||
52 | 52 | ||
53 | void StartDunConnection::slotExited( OProcess* proc ) { | 53 | void StartDunConnection::slotExited( OProcess* proc ) { |
54 | delete m_dunConnect; | 54 | delete m_dunConnect; |
55 | } | 55 | } |
56 | 56 | ||
57 | void StartDunConnection::slotStdOut(OProcess* proc, char* chars, int len) | 57 | void StartDunConnection::slotStdOut(OProcess* proc, char* chars, int len) |
58 | {} | 58 | {} |
59 | 59 | ||
60 | 60 | ||
61 | void StartDunConnection::stop() { | 61 | void StartDunConnection::stop() { |
62 | if ( m_dunConnect ) { | 62 | if ( m_dunConnect ) { |
63 | delete m_dunConnect; | 63 | delete m_dunConnect; |
64 | m_dunConnect = 0l; | 64 | m_dunConnect = 0l; |
65 | } | 65 | } |
66 | } | 66 | } |
67 | 67 | ||
diff --git a/noncore/net/opietooth/lib/startpanconnection.cpp b/noncore/net/opietooth/lib/startpanconnection.cpp index 6e0ab7e..a42b407 100644 --- a/noncore/net/opietooth/lib/startpanconnection.cpp +++ b/noncore/net/opietooth/lib/startpanconnection.cpp | |||
@@ -1,82 +1,82 @@ | |||
1 | 1 | ||
2 | #include "startpanconnection.h" | 2 | #include "startpanconnection.h" |
3 | 3 | ||
4 | using namespace OpieTooth; | 4 | using namespace OpieTooth; |
5 | 5 | ||
6 | 6 | ||
7 | StartPanConnection::StartPanConnection() { | 7 | StartPanConnection::StartPanConnection() { |
8 | m_panConnect = 0l; | 8 | m_panConnect = 0l; |
9 | setConnectionType(); | 9 | setConnectionType(); |
10 | } | 10 | } |
11 | 11 | ||
12 | StartPanConnection::~StartPanConnection() { | 12 | StartPanConnection::~StartPanConnection() { |
13 | delete m_panConnect; | 13 | delete m_panConnect; |
14 | } | 14 | } |
15 | 15 | ||
16 | StartPanConnection::StartPanConnection( QString mac ) { | 16 | StartPanConnection::StartPanConnection( QString mac ) { |
17 | m_panConnect = 0l; | 17 | m_panConnect = 0l; |
18 | m_mac = mac; | 18 | m_mac = mac; |
19 | setConnectionType(); | 19 | setConnectionType(); |
20 | } | 20 | } |
21 | 21 | ||
22 | void StartPanConnection::setName( QString name ) { | 22 | void StartPanConnection::setName( QString name ) { |
23 | m_name = name; | 23 | m_name = name; |
24 | } | 24 | } |
25 | 25 | ||
26 | QString StartPanConnection::name() { | 26 | QString StartPanConnection::name() { |
27 | return m_name; | 27 | return m_name; |
28 | } | 28 | } |
29 | 29 | ||
30 | void StartPanConnection::setConnectionType() { | 30 | void StartPanConnection::setConnectionType() { |
31 | m_connectionType = Pan; | 31 | m_connectionType = Pan; |
32 | } | 32 | } |
33 | 33 | ||
34 | StartConnection::ConnectionType StartPanConnection::type() { | 34 | StartConnection::ConnectionType StartPanConnection::type() { |
35 | return m_connectionType; | 35 | return m_connectionType; |
36 | } | 36 | } |
37 | 37 | ||
38 | void StartPanConnection::start() { | 38 | void StartPanConnection::start() { |
39 | m_panConnect = new OProcess(); | 39 | m_panConnect = new OProcess(); |
40 | qDebug( "IM START " + m_mac ); | 40 | qDebug( "IM START " + m_mac ); |
41 | *m_panConnect << "pand" << "--connect" << m_mac; | 41 | *m_panConnect << "pand" << "--connect" << m_mac; |
42 | 42 | ||
43 | connect( m_panConnect, SIGNAL( processExited( OProcess* ) ) , | 43 | connect( m_panConnect, SIGNAL( processExited(OProcess*) ) , |
44 | this, SLOT( slotExited( OProcess* ) ) ); | 44 | this, SLOT( slotExited(OProcess*) ) ); |
45 | connect( m_panConnect, SIGNAL( receivedStdout( OProcess*, char*, int ) ), | 45 | connect( m_panConnect, SIGNAL( receivedStdout(OProcess*,char*,int) ), |
46 | this, SLOT( slotStdOut( OProcess*, char*, int ) ) ); | 46 | this, SLOT( slotStdOut(OProcess*,char*,int) ) ); |
47 | if (!m_panConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { | 47 | if (!m_panConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { |
48 | qWarning( "could not start" ); | 48 | qWarning( "could not start" ); |
49 | delete m_panConnect; | 49 | delete m_panConnect; |
50 | } | 50 | } |
51 | } | 51 | } |
52 | 52 | ||
53 | 53 | ||
54 | void StartPanConnection::slotExited( OProcess* proc ) { | 54 | void StartPanConnection::slotExited( OProcess* proc ) { |
55 | delete m_panConnect; | 55 | delete m_panConnect; |
56 | m_panConnect = 0l; | 56 | m_panConnect = 0l; |
57 | } | 57 | } |
58 | 58 | ||
59 | void StartPanConnection::slotStdOut(OProcess* proc, char* chars, int len) | 59 | void StartPanConnection::slotStdOut(OProcess* proc, char* chars, int len) |
60 | {} | 60 | {} |
61 | 61 | ||
62 | 62 | ||
63 | void StartPanConnection::stop() { | 63 | void StartPanConnection::stop() { |
64 | if ( m_panConnect ) { | 64 | if ( m_panConnect ) { |
65 | delete m_panConnect; | 65 | delete m_panConnect; |
66 | m_panConnect = 0l; | 66 | m_panConnect = 0l; |
67 | } | 67 | } |
68 | m_panConnect = new OProcess(); | 68 | m_panConnect = new OProcess(); |
69 | qDebug("IM STOP " + m_mac); | 69 | qDebug("IM STOP " + m_mac); |
70 | 70 | ||
71 | *m_panConnect << "pand" << "--kill" << m_mac; | 71 | *m_panConnect << "pand" << "--kill" << m_mac; |
72 | 72 | ||
73 | connect( m_panConnect, SIGNAL( processExited( OProcess* ) ) , | 73 | connect( m_panConnect, SIGNAL( processExited(OProcess*) ) , |
74 | this, SLOT( slotExited( OProcess* ) ) ); | 74 | this, SLOT( slotExited(OProcess*) ) ); |
75 | connect( m_panConnect, SIGNAL( receivedStdout( OProcess*, char*, int ) ), | 75 | connect( m_panConnect, SIGNAL( receivedStdout(OProcess*,char*,int) ), |
76 | this, SLOT( slotStdOut( OProcess*, char*, int ) ) ); | 76 | this, SLOT( slotStdOut(OProcess*,char*,int) ) ); |
77 | if (!m_panConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { | 77 | if (!m_panConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { |
78 | qWarning( "could not stop" ); | 78 | qWarning( "could not stop" ); |
79 | delete m_panConnect; | 79 | delete m_panConnect; |
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp index 0ea45d2..29030ab 100644 --- a/noncore/net/opietooth/manager/bluebase.cpp +++ b/noncore/net/opietooth/manager/bluebase.cpp | |||
@@ -1,177 +1,177 @@ | |||
1 | /* | 1 | /* |
2 | * bluebase.cpp * | 2 | * bluebase.cpp * |
3 | * --------------------- | 3 | * --------------------- |
4 | * | 4 | * |
5 | * copyright : (c) 2002 by Maximilian Reiß | 5 | * copyright : (c) 2002 by Maximilian Reiß |
6 | * email : max.reiss@gmx.de | 6 | * email : max.reiss@gmx.de |
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * (at your option) any later version. * | 14 | * (at your option) any later version. * |
15 | * * | 15 | * * |
16 | ***************************************************************************/ | 16 | ***************************************************************************/ |
17 | 17 | ||
18 | #include "bluebase.h" | 18 | #include "bluebase.h" |
19 | #include "scandialog.h" | 19 | #include "scandialog.h" |
20 | #include "hciconfwrapper.h" | 20 | #include "hciconfwrapper.h" |
21 | #include "devicehandler.h" | 21 | #include "devicehandler.h" |
22 | #include "btconnectionitem.h" | 22 | #include "btconnectionitem.h" |
23 | #include "rfcommassigndialogimpl.h" | 23 | #include "rfcommassigndialogimpl.h" |
24 | 24 | ||
25 | /* OPIE */ | 25 | /* OPIE */ |
26 | #include <qpe/qpeapplication.h> | 26 | #include <qpe/qpeapplication.h> |
27 | #include <qpe/resource.h> | 27 | #include <qpe/resource.h> |
28 | #include <qpe/config.h> | 28 | #include <qpe/config.h> |
29 | 29 | ||
30 | /* QT */ | 30 | /* QT */ |
31 | #include <qframe.h> | 31 | #include <qframe.h> |
32 | #include <qlabel.h> | 32 | #include <qlabel.h> |
33 | #include <qpushbutton.h> | 33 | #include <qpushbutton.h> |
34 | #include <qlayout.h> | 34 | #include <qlayout.h> |
35 | #include <qvariant.h> | 35 | #include <qvariant.h> |
36 | #include <qimage.h> | 36 | #include <qimage.h> |
37 | #include <qpixmap.h> | 37 | #include <qpixmap.h> |
38 | #include <qtabwidget.h> | 38 | #include <qtabwidget.h> |
39 | #include <qscrollview.h> | 39 | #include <qscrollview.h> |
40 | #include <qvbox.h> | 40 | #include <qvbox.h> |
41 | #include <qmessagebox.h> | 41 | #include <qmessagebox.h> |
42 | #include <qcheckbox.h> | 42 | #include <qcheckbox.h> |
43 | #include <qlineedit.h> | 43 | #include <qlineedit.h> |
44 | #include <qlistview.h> | 44 | #include <qlistview.h> |
45 | #include <qdir.h> | 45 | #include <qdir.h> |
46 | #include <qpopupmenu.h> | 46 | #include <qpopupmenu.h> |
47 | #include <qtimer.h> | 47 | #include <qtimer.h> |
48 | #include <qlist.h> | 48 | #include <qlist.h> |
49 | 49 | ||
50 | /* STD */ | 50 | /* STD */ |
51 | #include <remotedevice.h> | 51 | #include <remotedevice.h> |
52 | #include <services.h> | 52 | #include <services.h> |
53 | #include <stdlib.h> | 53 | #include <stdlib.h> |
54 | 54 | ||
55 | using namespace OpieTooth; | 55 | using namespace OpieTooth; |
56 | 56 | ||
57 | BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) | 57 | BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) |
58 | : BluetoothBase( parent, name, fl ) | 58 | : BluetoothBase( parent, name, fl ) |
59 | { | 59 | { |
60 | 60 | ||
61 | m_localDevice = new Manager( "hci0" ); | 61 | m_localDevice = new Manager( "hci0" ); |
62 | 62 | ||
63 | connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); | 63 | connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); |
64 | connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); | 64 | connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); |
65 | 65 | ||
66 | connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) ); | 66 | connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) ); |
67 | // not good since lib is async | 67 | // not good since lib is async |
68 | // connect( ListView2, SIGNAL( expanded ( QListViewItem* ) ), | 68 | // connect( ListView2, SIGNAL( expanded(QListViewItem*) ), |
69 | // this, SLOT( addServicesToDevice( QListViewItem * ) ) ); | 69 | // this, SLOT( addServicesToDevice(QListViewItem*) ) ); |
70 | connect( ListView2, SIGNAL( clicked( QListViewItem* )), | 70 | connect( ListView2, SIGNAL( clicked(QListViewItem*)), |
71 | this, SLOT( startServiceActionClicked( QListViewItem* ) ) ); | 71 | this, SLOT( startServiceActionClicked(QListViewItem*) ) ); |
72 | connect( ListView2, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int ) ), | 72 | connect( ListView2, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ), |
73 | this, SLOT(startServiceActionHold( QListViewItem *, const QPoint &, int) ) ); | 73 | this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) ); |
74 | connect( m_localDevice , SIGNAL( foundServices( const QString& , Services::ValueList ) ), | 74 | connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ), |
75 | this, SLOT( addServicesToDevice( const QString& , Services::ValueList ) ) ); | 75 | this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) ); |
76 | connect( m_localDevice, SIGNAL( available( const QString&, bool ) ), | 76 | connect( m_localDevice, SIGNAL( available(const QString&,bool) ), |
77 | this, SLOT( deviceActive( const QString& , bool ) ) ); | 77 | this, SLOT( deviceActive(const QString&,bool) ) ); |
78 | connect( m_localDevice, SIGNAL( connections( ConnectionState::ValueList ) ), | 78 | connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ), |
79 | this, SLOT( addConnectedDevices( ConnectionState::ValueList ) ) ); | 79 | this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) ); |
80 | connect( m_localDevice, SIGNAL( signalStrength( const QString&, const QString& ) ), | 80 | connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ), |
81 | this, SLOT( addSignalStrength( const QString&, const QString& ) ) ); | 81 | this, SLOT( addSignalStrength(const QString&,const QString&) ) ); |
82 | 82 | ||
83 | 83 | ||
84 | // let hold be rightButtonClicked() | 84 | // let hold be rightButtonClicked() |
85 | QPEApplication::setStylusOperation( ListView2->viewport(), QPEApplication::RightOnHold); | 85 | QPEApplication::setStylusOperation( ListView2->viewport(), QPEApplication::RightOnHold); |
86 | QPEApplication::setStylusOperation( ListView4->viewport(), QPEApplication::RightOnHold); | 86 | QPEApplication::setStylusOperation( ListView4->viewport(), QPEApplication::RightOnHold); |
87 | 87 | ||
88 | //Load all icons needed | 88 | //Load all icons needed |
89 | m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); | 89 | m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); |
90 | m_onPix = Resource::loadPixmap( "opietooth/connected" ); | 90 | m_onPix = Resource::loadPixmap( "opietooth/connected" ); |
91 | m_findPix = Resource::loadPixmap( "opietooth/find" ); | 91 | m_findPix = Resource::loadPixmap( "opietooth/find" ); |
92 | 92 | ||
93 | QPalette pal = this->palette(); | 93 | QPalette pal = this->palette(); |
94 | QColor col = pal.color( QPalette::Active, QColorGroup::Background ); | 94 | QColor col = pal.color( QPalette::Active, QColorGroup::Background ); |
95 | pal.setColor( QPalette::Active, QColorGroup::Button, col ); | 95 | pal.setColor( QPalette::Active, QColorGroup::Button, col ); |
96 | pal.setColor( QPalette::Inactive, QColorGroup::Button, col ); | 96 | pal.setColor( QPalette::Inactive, QColorGroup::Button, col ); |
97 | pal.setColor( QPalette::Normal, QColorGroup::Button, col ); | 97 | pal.setColor( QPalette::Normal, QColorGroup::Button, col ); |
98 | pal.setColor( QPalette::Disabled, QColorGroup::Button, col ); | 98 | pal.setColor( QPalette::Disabled, QColorGroup::Button, col ); |
99 | this->setPalette( pal ); | 99 | this->setPalette( pal ); |
100 | 100 | ||
101 | setCaption( tr( "Bluetooth Manager" ) ); | 101 | setCaption( tr( "Bluetooth Manager" ) ); |
102 | 102 | ||
103 | readConfig(); | 103 | readConfig(); |
104 | initGui(); | 104 | initGui(); |
105 | 105 | ||
106 | ListView2->setRootIsDecorated(true); | 106 | ListView2->setRootIsDecorated(true); |
107 | 107 | ||
108 | 108 | ||
109 | writeToHciConfig(); | 109 | writeToHciConfig(); |
110 | // search conncetions | 110 | // search conncetions |
111 | addConnectedDevices(); | 111 | addConnectedDevices(); |
112 | addSignalStrength(); | 112 | addSignalStrength(); |
113 | m_iconLoader = new BTIconLoader(); | 113 | m_iconLoader = new BTIconLoader(); |
114 | readSavedDevices(); | 114 | readSavedDevices(); |
115 | } | 115 | } |
116 | 116 | ||
117 | /** | 117 | /** |
118 | * Reads all options from the config file | 118 | * Reads all options from the config file |
119 | */ | 119 | */ |
120 | void BlueBase::readConfig() | 120 | void BlueBase::readConfig() |
121 | { | 121 | { |
122 | 122 | ||
123 | Config cfg( "bluetoothmanager" ); | 123 | Config cfg( "bluetoothmanager" ); |
124 | cfg.setGroup( "bluezsettings" ); | 124 | cfg.setGroup( "bluezsettings" ); |
125 | 125 | ||
126 | m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with | 126 | m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with |
127 | m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak | 127 | m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak |
128 | m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE ); | 128 | m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE ); |
129 | m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE ); | 129 | m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE ); |
130 | m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE ); | 130 | m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE ); |
131 | m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE ); | 131 | m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE ); |
132 | } | 132 | } |
133 | 133 | ||
134 | /** | 134 | /** |
135 | * Writes all options to the config file | 135 | * Writes all options to the config file |
136 | */ | 136 | */ |
137 | void BlueBase::writeConfig() | 137 | void BlueBase::writeConfig() |
138 | { | 138 | { |
139 | 139 | ||
140 | Config cfg( "bluetoothmanager" ); | 140 | Config cfg( "bluetoothmanager" ); |
141 | cfg.setGroup( "bluezsettings" ); | 141 | cfg.setGroup( "bluezsettings" ); |
142 | 142 | ||
143 | cfg.writeEntry( "name" , m_deviceName ); | 143 | cfg.writeEntry( "name" , m_deviceName ); |
144 | cfg.writeEntryCrypt( "passkey" , m_defaultPasskey ); | 144 | cfg.writeEntryCrypt( "passkey" , m_defaultPasskey ); |
145 | cfg.writeEntry( "useEncryption" , m_useEncryption ); | 145 | cfg.writeEntry( "useEncryption" , m_useEncryption ); |
146 | cfg.writeEntry( "enableAuthentification" , m_enableAuthentification ); | 146 | cfg.writeEntry( "enableAuthentification" , m_enableAuthentification ); |
147 | cfg.writeEntry( "enablePagescan" , m_enablePagescan ); | 147 | cfg.writeEntry( "enablePagescan" , m_enablePagescan ); |
148 | cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); | 148 | cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); |
149 | 149 | ||
150 | writeToHciConfig(); | 150 | writeToHciConfig(); |
151 | } | 151 | } |
152 | 152 | ||
153 | /** | 153 | /** |
154 | * Modify the hcid.conf file to our needs | 154 | * Modify the hcid.conf file to our needs |
155 | */ | 155 | */ |
156 | void BlueBase::writeToHciConfig() | 156 | void BlueBase::writeToHciConfig() |
157 | { | 157 | { |
158 | qWarning("writeToHciConfig"); | 158 | qWarning("writeToHciConfig"); |
159 | HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); | 159 | HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); |
160 | hciconf.load(); | 160 | hciconf.load(); |
161 | hciconf.setPinHelper( "/opt/QtPalmtop/bin/bluepin" ); | 161 | hciconf.setPinHelper( "/opt/QtPalmtop/bin/bluepin" ); |
162 | hciconf.setName( m_deviceName ); | 162 | hciconf.setName( m_deviceName ); |
163 | hciconf.setEncrypt( m_useEncryption ); | 163 | hciconf.setEncrypt( m_useEncryption ); |
164 | hciconf.setAuth( m_enableAuthentification ); | 164 | hciconf.setAuth( m_enableAuthentification ); |
165 | hciconf.setPscan( m_enablePagescan ); | 165 | hciconf.setPscan( m_enablePagescan ); |
166 | hciconf.setIscan( m_enableInquiryscan ); | 166 | hciconf.setIscan( m_enableInquiryscan ); |
167 | hciconf.save(); | 167 | hciconf.save(); |
168 | } | 168 | } |
169 | 169 | ||
170 | 170 | ||
171 | /** | 171 | /** |
172 | * Read the list of allready known devices | 172 | * Read the list of allready known devices |
173 | */ | 173 | */ |
174 | void BlueBase::readSavedDevices() | 174 | void BlueBase::readSavedDevices() |
175 | { | 175 | { |
176 | 176 | ||
177 | QValueList<RemoteDevice> loadedDevices; | 177 | QValueList<RemoteDevice> loadedDevices; |
@@ -544,145 +544,145 @@ void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) | |||
544 | 544 | ||
545 | if ( found == false ) | 545 | if ( found == false ) |
546 | { | 546 | { |
547 | connectionItem = new BTConnectionItem( ListView4, (*it) ); | 547 | connectionItem = new BTConnectionItem( ListView4, (*it) ); |
548 | 548 | ||
549 | if( m_deviceList.find((*it).mac()).data() ) | 549 | if( m_deviceList.find((*it).mac()).data() ) |
550 | { | 550 | { |
551 | connectionItem->setName( m_deviceList.find( (*it).mac()).data()->name() ); | 551 | connectionItem->setName( m_deviceList.find( (*it).mac()).data()->name() ); |
552 | } | 552 | } |
553 | } | 553 | } |
554 | 554 | ||
555 | } | 555 | } |
556 | 556 | ||
557 | QListViewItemIterator it2( ListView4 ); | 557 | QListViewItemIterator it2( ListView4 ); |
558 | for ( ; it2.current(); ++it2 ) | 558 | for ( ; it2.current(); ++it2 ) |
559 | { | 559 | { |
560 | bool found = false; | 560 | bool found = false; |
561 | for (it = connectionList.begin(); it != connectionList.end(); ++it) | 561 | for (it = connectionList.begin(); it != connectionList.end(); ++it) |
562 | { | 562 | { |
563 | if( ( ((BTConnectionItem*)it2.current())->connection().mac() ) == (*it).mac() ) | 563 | if( ( ((BTConnectionItem*)it2.current())->connection().mac() ) == (*it).mac() ) |
564 | { | 564 | { |
565 | found = true; | 565 | found = true; |
566 | } | 566 | } |
567 | } | 567 | } |
568 | 568 | ||
569 | if ( !found ) | 569 | if ( !found ) |
570 | { | 570 | { |
571 | delete it2.current(); | 571 | delete it2.current(); |
572 | } | 572 | } |
573 | 573 | ||
574 | } | 574 | } |
575 | 575 | ||
576 | 576 | ||
577 | } | 577 | } |
578 | else | 578 | else |
579 | { | 579 | { |
580 | ListView4->clear(); | 580 | ListView4->clear(); |
581 | ConnectionState con; | 581 | ConnectionState con; |
582 | con.setMac( tr("No connections found") ); | 582 | con.setMac( tr("No connections found") ); |
583 | connectionItem = new BTConnectionItem( ListView4 , con ); | 583 | connectionItem = new BTConnectionItem( ListView4 , con ); |
584 | } | 584 | } |
585 | 585 | ||
586 | // recall connection search after some time | 586 | // recall connection search after some time |
587 | QTimer::singleShot( 15000, this, SLOT( addConnectedDevices() ) ); | 587 | QTimer::singleShot( 15000, this, SLOT( addConnectedDevices() ) ); |
588 | } | 588 | } |
589 | 589 | ||
590 | 590 | ||
591 | /** | 591 | /** |
592 | * Find out if a device can currently be reached | 592 | * Find out if a device can currently be reached |
593 | * @param device | 593 | * @param device |
594 | */ | 594 | */ |
595 | void BlueBase::deviceActive( const RemoteDevice &device ) | 595 | void BlueBase::deviceActive( const RemoteDevice &device ) |
596 | { | 596 | { |
597 | // search by mac, async, gets a signal back | 597 | // search by mac, async, gets a signal back |
598 | // We should have a BTDeviceItem there or where does it get added to the map -zecke | 598 | // We should have a BTDeviceItem there or where does it get added to the map -zecke |
599 | m_localDevice->isAvailable( device.mac() ); | 599 | m_localDevice->isAvailable( device.mac() ); |
600 | } | 600 | } |
601 | 601 | ||
602 | 602 | ||
603 | /** | 603 | /** |
604 | * The signal catcher. Set the avail. status on device. | 604 | * The signal catcher. Set the avail. status on device. |
605 | * @param device - the mac address | 605 | * @param device - the mac address |
606 | * @param connected - if it is avail. or not | 606 | * @param connected - if it is avail. or not |
607 | */ | 607 | */ |
608 | void BlueBase::deviceActive( const QString& device, bool connected ) | 608 | void BlueBase::deviceActive( const QString& device, bool connected ) |
609 | { | 609 | { |
610 | qDebug("deviceActive slot"); | 610 | qDebug("deviceActive slot"); |
611 | 611 | ||
612 | QMap<QString,BTDeviceItem*>::Iterator it; | 612 | QMap<QString,BTDeviceItem*>::Iterator it; |
613 | 613 | ||
614 | it = m_deviceList.find( device ); | 614 | it = m_deviceList.find( device ); |
615 | if( it == m_deviceList.end() ) | 615 | if( it == m_deviceList.end() ) |
616 | return; | 616 | return; |
617 | 617 | ||
618 | BTDeviceItem* deviceItem = it.data(); | 618 | BTDeviceItem* deviceItem = it.data(); |
619 | 619 | ||
620 | 620 | ||
621 | if ( connected ) | 621 | if ( connected ) |
622 | { | 622 | { |
623 | deviceItem->setPixmap( 1, m_onPix ); | 623 | deviceItem->setPixmap( 1, m_onPix ); |
624 | } | 624 | } |
625 | else | 625 | else |
626 | { | 626 | { |
627 | deviceItem->setPixmap( 1, m_offPix ); | 627 | deviceItem->setPixmap( 1, m_offPix ); |
628 | } | 628 | } |
629 | m_deviceList.remove( it ); | 629 | m_deviceList.remove( it ); |
630 | } | 630 | } |
631 | 631 | ||
632 | 632 | ||
633 | /** | 633 | /** |
634 | * Open the "scan for devices" dialog | 634 | * Open the "scan for devices" dialog |
635 | */ | 635 | */ |
636 | void BlueBase::startScan() | 636 | void BlueBase::startScan() |
637 | { | 637 | { |
638 | ScanDialog *scan = new ScanDialog( this, "ScanDialog", | 638 | ScanDialog *scan = new ScanDialog( this, "ScanDialog", |
639 | true, WDestructiveClose ); | 639 | true, WDestructiveClose ); |
640 | QObject::connect( scan, SIGNAL( selectedDevices( const QValueList<RemoteDevice>& ) ), | 640 | QObject::connect( scan, SIGNAL( selectedDevices(const QValueList<RemoteDevice>&) ), |
641 | this, SLOT( addSearchedDevices( const QValueList<RemoteDevice>& ) ) ); | 641 | this, SLOT( addSearchedDevices(const QValueList<RemoteDevice>&) ) ); |
642 | 642 | ||
643 | QPEApplication::showDialog( scan ); | 643 | QPEApplication::showDialog( scan ); |
644 | } | 644 | } |
645 | 645 | ||
646 | 646 | ||
647 | /** | 647 | /** |
648 | * Set the informations about the local device in information Tab | 648 | * Set the informations about the local device in information Tab |
649 | */ | 649 | */ |
650 | void BlueBase::setInfo() | 650 | void BlueBase::setInfo() |
651 | { | 651 | { |
652 | StatusLabel->setText( status() ); | 652 | StatusLabel->setText( status() ); |
653 | } | 653 | } |
654 | 654 | ||
655 | 655 | ||
656 | /** | 656 | /** |
657 | * Decontructor | 657 | * Decontructor |
658 | */ | 658 | */ |
659 | BlueBase::~BlueBase() | 659 | BlueBase::~BlueBase() |
660 | { | 660 | { |
661 | writeSavedDevices(); | 661 | writeSavedDevices(); |
662 | delete m_iconLoader; | 662 | delete m_iconLoader; |
663 | } | 663 | } |
664 | 664 | ||
665 | 665 | ||
666 | /** | 666 | /** |
667 | * find searches the ListView for a BTDeviceItem containig | 667 | * find searches the ListView for a BTDeviceItem containig |
668 | * the same Device if found return true else false | 668 | * the same Device if found return true else false |
669 | * @param dev RemoteDevice to find | 669 | * @param dev RemoteDevice to find |
670 | * @return returns true if found | 670 | * @return returns true if found |
671 | */ | 671 | */ |
672 | bool BlueBase::find( const RemoteDevice& rem ) | 672 | bool BlueBase::find( const RemoteDevice& rem ) |
673 | { | 673 | { |
674 | QListViewItemIterator it( ListView2 ); | 674 | QListViewItemIterator it( ListView2 ); |
675 | BTListItem* item; | 675 | BTListItem* item; |
676 | BTDeviceItem* device; | 676 | BTDeviceItem* device; |
677 | for (; it.current(); ++it ) | 677 | for (; it.current(); ++it ) |
678 | { | 678 | { |
679 | item = (BTListItem*) it.current(); | 679 | item = (BTListItem*) it.current(); |
680 | if ( item->typeId() != BTListItem::Device ) | 680 | if ( item->typeId() != BTListItem::Device ) |
681 | continue; | 681 | continue; |
682 | 682 | ||
683 | device = (BTDeviceItem*)item; | 683 | device = (BTDeviceItem*)item; |
684 | if ( rem.equals( device->remoteDevice() ) ) | 684 | if ( rem.equals( device->remoteDevice() ) ) |
685 | return true; | 685 | return true; |
686 | } | 686 | } |
687 | return false; // not found | 687 | return false; // not found |
688 | } | 688 | } |
diff --git a/noncore/net/opietooth/manager/obexdialog.cpp b/noncore/net/opietooth/manager/obexdialog.cpp index 15973d4..46a0e3d 100644 --- a/noncore/net/opietooth/manager/obexdialog.cpp +++ b/noncore/net/opietooth/manager/obexdialog.cpp | |||
@@ -1,86 +1,86 @@ | |||
1 | 1 | ||
2 | #include "obexdialog.h" | 2 | #include "obexdialog.h" |
3 | #include <qpushbutton.h> | 3 | #include <qpushbutton.h> |
4 | #include <qmultilineedit.h> | 4 | #include <qmultilineedit.h> |
5 | #include <qlineedit.h> | 5 | #include <qlineedit.h> |
6 | #include <qlayout.h> | 6 | #include <qlayout.h> |
7 | #include <qlabel.h> | 7 | #include <qlabel.h> |
8 | #include <qfileinfo.h> | 8 | #include <qfileinfo.h> |
9 | 9 | ||
10 | #include <qpe/resource.h> | 10 | #include <qpe/resource.h> |
11 | 11 | ||
12 | #include <opie/oprocess.h> | 12 | #include <opie/oprocess.h> |
13 | #include <opie/ofiledialog.h> | 13 | #include <opie/ofiledialog.h> |
14 | 14 | ||
15 | using namespace OpieTooth; | 15 | using namespace OpieTooth; |
16 | 16 | ||
17 | ObexDialog::ObexDialog( QWidget* parent, const char* name, bool modal, WFlags fl, const QString& device ) | 17 | ObexDialog::ObexDialog( QWidget* parent, const char* name, bool modal, WFlags fl, const QString& device ) |
18 | : QDialog( parent, name, modal, fl ) { | 18 | : QDialog( parent, name, modal, fl ) { |
19 | 19 | ||
20 | if ( !name ) | 20 | if ( !name ) |
21 | setName( "ObexDialog" ); | 21 | setName( "ObexDialog" ); |
22 | setCaption( tr( "beam files " ) ) ; | 22 | setCaption( tr( "beam files " ) ) ; |
23 | 23 | ||
24 | m_device = device; | 24 | m_device = device; |
25 | 25 | ||
26 | layout = new QVBoxLayout( this ); | 26 | layout = new QVBoxLayout( this ); |
27 | 27 | ||
28 | QLabel* info = new QLabel( this ); | 28 | QLabel* info = new QLabel( this ); |
29 | info->setText( tr("Which file should be beamed?") ); | 29 | info->setText( tr("Which file should be beamed?") ); |
30 | 30 | ||
31 | cmdLine = new QLineEdit( this ); | 31 | cmdLine = new QLineEdit( this ); |
32 | 32 | ||
33 | QPushButton *browserButton; | 33 | QPushButton *browserButton; |
34 | browserButton = new QPushButton( Resource::loadIconSet("fileopen"),"",this,"BrowseButton"); | 34 | browserButton = new QPushButton( Resource::loadIconSet("fileopen"),"",this,"BrowseButton"); |
35 | connect( browserButton, SIGNAL(released() ), this , SLOT(browse() ) ); | 35 | connect( browserButton, SIGNAL(released() ), this , SLOT(browse() ) ); |
36 | 36 | ||
37 | chNameLine = new QLineEdit( this ); | 37 | chNameLine = new QLineEdit( this ); |
38 | 38 | ||
39 | sendButton = new QPushButton( this ); | 39 | sendButton = new QPushButton( this ); |
40 | sendButton->setText( tr( "Send" ) ); | 40 | sendButton->setText( tr( "Send" ) ); |
41 | 41 | ||
42 | layout->addWidget(info); | 42 | layout->addWidget(info); |
43 | layout->addWidget(cmdLine); | 43 | layout->addWidget(cmdLine); |
44 | layout->addWidget(browserButton); | 44 | layout->addWidget(browserButton); |
45 | layout->addWidget(chNameLine); | 45 | layout->addWidget(chNameLine); |
46 | layout->addWidget(sendButton); | 46 | layout->addWidget(sendButton); |
47 | 47 | ||
48 | connect( sendButton, SIGNAL( clicked() ), this, SLOT( sendData() ) ); | 48 | connect( sendButton, SIGNAL( clicked() ), this, SLOT( sendData() ) ); |
49 | 49 | ||
50 | } | 50 | } |
51 | 51 | ||
52 | ObexDialog::~ObexDialog() { | 52 | ObexDialog::~ObexDialog() { |
53 | } | 53 | } |
54 | 54 | ||
55 | void ObexDialog::browse() { | 55 | void ObexDialog::browse() { |
56 | 56 | ||
57 | MimeTypes types; | 57 | MimeTypes types; |
58 | QStringList all; | 58 | QStringList all; |
59 | all << "*/*"; | 59 | all << "*/*"; |
60 | types.insert("All Files", all ); | 60 | types.insert("All Files", all ); |
61 | 61 | ||
62 | QString str = OFileDialog::getOpenFileName( 1,"/","", types, 0 ); | 62 | QString str = OFileDialog::getOpenFileName( 1,"/","", types, 0 ); |
63 | cmdLine->setText( str ); | 63 | cmdLine->setText( str ); |
64 | 64 | ||
65 | } | 65 | } |
66 | 66 | ||
67 | void ObexDialog::sendData() { | 67 | void ObexDialog::sendData() { |
68 | QString fileURL = cmdLine->text(); | 68 | QString fileURL = cmdLine->text(); |
69 | QString file = QFileInfo( fileURL ).fileName(); | 69 | QString file = QFileInfo( fileURL ).fileName(); |
70 | QString modifiedName = chNameLine->text(); | 70 | QString modifiedName = chNameLine->text(); |
71 | 71 | ||
72 | // vom popupmenu beziehen | 72 | // vom popupmenu beziehen |
73 | OProcess* obexSend = new OProcess(); | 73 | OProcess* obexSend = new OProcess(); |
74 | if ( !modifiedName.isEmpty() ) { | 74 | if ( !modifiedName.isEmpty() ) { |
75 | *obexSend << "ussp-push" << m_device << fileURL << modifiedName; | 75 | *obexSend << "ussp-push" << m_device << fileURL << modifiedName; |
76 | } else { | 76 | } else { |
77 | *obexSend << "ussp-push" << m_device << fileURL << file; | 77 | *obexSend << "ussp-push" << m_device << fileURL << file; |
78 | } | 78 | } |
79 | if (!obexSend->start(OProcess::DontCare, OProcess::AllOutput) ) { | 79 | if (!obexSend->start(OProcess::DontCare, OProcess::AllOutput) ) { |
80 | qWarning("could not start"); | 80 | qWarning("could not start"); |
81 | delete obexSend; | 81 | delete obexSend; |
82 | } | 82 | } |
83 | 83 | ||
84 | 84 | ||
85 | 85 | ||
86 | } | 86 | } |
diff --git a/noncore/net/opietooth/manager/pppdialog.cpp b/noncore/net/opietooth/manager/pppdialog.cpp index 1f347ce..4e58552 100644 --- a/noncore/net/opietooth/manager/pppdialog.cpp +++ b/noncore/net/opietooth/manager/pppdialog.cpp | |||
@@ -1,68 +1,68 @@ | |||
1 | 1 | ||
2 | #include "pppdialog.h" | 2 | #include "pppdialog.h" |
3 | #include <qpushbutton.h> | 3 | #include <qpushbutton.h> |
4 | #include <qmultilineedit.h> | 4 | #include <qmultilineedit.h> |
5 | #include <qlineedit.h> | 5 | #include <qlineedit.h> |
6 | #include <qlayout.h> | 6 | #include <qlayout.h> |
7 | #include <qlabel.h> | 7 | #include <qlabel.h> |
8 | #include <opie/oprocess.h> | 8 | #include <opie/oprocess.h> |
9 | 9 | ||
10 | using namespace OpieTooth; | 10 | using namespace OpieTooth; |
11 | 11 | ||
12 | PPPDialog::PPPDialog( QWidget* parent, const char* name, bool modal, WFlags fl, const QString& device ) | 12 | PPPDialog::PPPDialog( QWidget* parent, const char* name, bool modal, WFlags fl, const QString& device ) |
13 | : QDialog( parent, name, modal, fl ) { | 13 | : QDialog( parent, name, modal, fl ) { |
14 | 14 | ||
15 | if ( !name ) | 15 | if ( !name ) |
16 | setName( "PPPDialog" ); | 16 | setName( "PPPDialog" ); |
17 | setCaption( tr( "ppp connection " ) ) ; | 17 | setCaption( tr( "ppp connection " ) ) ; |
18 | 18 | ||
19 | m_device = device; | 19 | m_device = device; |
20 | 20 | ||
21 | layout = new QVBoxLayout( this ); | 21 | layout = new QVBoxLayout( this ); |
22 | 22 | ||
23 | QLabel* info = new QLabel( this ); | 23 | QLabel* info = new QLabel( this ); |
24 | info->setText( tr("Enter an ppp script name:") ); | 24 | info->setText( tr("Enter an ppp script name:") ); |
25 | 25 | ||
26 | cmdLine = new QLineEdit( this ); | 26 | cmdLine = new QLineEdit( this ); |
27 | 27 | ||
28 | outPut = new QMultiLineEdit( this ); | 28 | outPut = new QMultiLineEdit( this ); |
29 | QFont outPut_font( outPut->font() ); | 29 | QFont outPut_font( outPut->font() ); |
30 | outPut_font.setPointSize( 8 ); | 30 | outPut_font.setPointSize( 8 ); |
31 | outPut->setFont( outPut_font ); | 31 | outPut->setFont( outPut_font ); |
32 | outPut->setWordWrap( QMultiLineEdit::WidgetWidth ); | 32 | outPut->setWordWrap( QMultiLineEdit::WidgetWidth ); |
33 | 33 | ||
34 | connectButton = new QPushButton( this ); | 34 | connectButton = new QPushButton( this ); |
35 | connectButton->setText( tr( "Connect" ) ); | 35 | connectButton->setText( tr( "Connect" ) ); |
36 | 36 | ||
37 | layout->addWidget(info); | 37 | layout->addWidget(info); |
38 | layout->addWidget(cmdLine); | 38 | layout->addWidget(cmdLine); |
39 | layout->addWidget(outPut); | 39 | layout->addWidget(outPut); |
40 | layout->addWidget(connectButton); | 40 | layout->addWidget(connectButton); |
41 | 41 | ||
42 | connect( connectButton, SIGNAL( clicked() ), this, SLOT( connectToDevice() ) ); | 42 | connect( connectButton, SIGNAL( clicked() ), this, SLOT( connectToDevice() ) ); |
43 | 43 | ||
44 | } | 44 | } |
45 | 45 | ||
46 | PPPDialog::~PPPDialog() { | 46 | PPPDialog::~PPPDialog() { |
47 | } | 47 | } |
48 | 48 | ||
49 | void PPPDialog::connectToDevice() { | 49 | void PPPDialog::connectToDevice() { |
50 | outPut->clear(); | 50 | outPut->clear(); |
51 | // vom popupmenu beziehen | 51 | // vom popupmenu beziehen |
52 | QString connectScript = "/etc/ppp/peers/" + cmdLine->text(); | 52 | QString connectScript = "/etc/ppp/peers/" + cmdLine->text(); |
53 | OProcess* pppDial = new OProcess(); | 53 | OProcess* pppDial = new OProcess(); |
54 | *pppDial << "pppd" << m_device << "call" << connectScript; | 54 | *pppDial << "pppd" << m_device << "call" << connectScript; |
55 | connect( pppDial, SIGNAL(receivedStdout(OProcess*, char*, int ) ), | 55 | connect( pppDial, SIGNAL(receivedStdout(OProcess*,char*,int) ), |
56 | this, SLOT(fillOutPut(OProcess*, char*, int ) ) ); | 56 | this, SLOT(fillOutPut(OProcess*,char*,int) ) ); |
57 | if (!pppDial->start(OProcess::DontCare, OProcess::AllOutput) ) { | 57 | if (!pppDial->start(OProcess::DontCare, OProcess::AllOutput) ) { |
58 | qWarning("could not start"); | 58 | qWarning("could not start"); |
59 | delete pppDial; | 59 | delete pppDial; |
60 | } | 60 | } |
61 | } | 61 | } |
62 | 62 | ||
63 | void PPPDialog::fillOutPut( OProcess* pppDial, char* cha, int len ) { | 63 | void PPPDialog::fillOutPut( OProcess* pppDial, char* cha, int len ) { |
64 | QCString str(cha, len ); | 64 | QCString str(cha, len ); |
65 | outPut->insertLine( str ); | 65 | outPut->insertLine( str ); |
66 | delete pppDial; | 66 | delete pppDial; |
67 | } | 67 | } |
68 | 68 | ||
diff --git a/noncore/net/opietooth/manager/scandialog.cpp b/noncore/net/opietooth/manager/scandialog.cpp index de4f742..c8ea3e3 100644 --- a/noncore/net/opietooth/manager/scandialog.cpp +++ b/noncore/net/opietooth/manager/scandialog.cpp | |||
@@ -1,161 +1,161 @@ | |||
1 | /* main.cpp | 1 | /* main.cpp |
2 | * | 2 | * |
3 | * --------------------- | 3 | * --------------------- |
4 | * | 4 | * |
5 | * copyright : (c) 2002 by Maximilian Reiß | 5 | * copyright : (c) 2002 by Maximilian Reiß |
6 | * email : max.reiss@gmx.de | 6 | * email : max.reiss@gmx.de |
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * (at your option) any later version. * | 14 | * (at your option) any later version. * |
15 | * * | 15 | * * |
16 | ***************************************************************************/ | 16 | ***************************************************************************/ |
17 | 17 | ||
18 | 18 | ||
19 | #include "scandialog.h" | 19 | #include "scandialog.h" |
20 | 20 | ||
21 | #include <qheader.h> | 21 | #include <qheader.h> |
22 | #include <qlistview.h> | 22 | #include <qlistview.h> |
23 | #include <qpushbutton.h> | 23 | #include <qpushbutton.h> |
24 | #include <qlayout.h> | 24 | #include <qlayout.h> |
25 | #include <qvariant.h> | 25 | #include <qvariant.h> |
26 | #include <qtooltip.h> | 26 | #include <qtooltip.h> |
27 | #include <qwhatsthis.h> | 27 | #include <qwhatsthis.h> |
28 | #include <qprogressbar.h> | 28 | #include <qprogressbar.h> |
29 | #include <qlist.h> | 29 | #include <qlist.h> |
30 | 30 | ||
31 | #include <manager.h> | 31 | #include <manager.h> |
32 | #include <device.h> | 32 | #include <device.h> |
33 | 33 | ||
34 | 34 | ||
35 | namespace OpieTooth { | 35 | namespace OpieTooth { |
36 | 36 | ||
37 | #include <remotedevice.h> | 37 | #include <remotedevice.h> |
38 | 38 | ||
39 | /** | 39 | /** |
40 | */ | 40 | */ |
41 | ScanDialog::ScanDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) | 41 | ScanDialog::ScanDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) |
42 | : QDialog( parent, name, modal, fl ) { | 42 | : QDialog( parent, name, modal, fl ) { |
43 | 43 | ||
44 | setCaption( tr( "Scan for devices" ) ); | 44 | setCaption( tr( "Scan for devices" ) ); |
45 | 45 | ||
46 | Layout11 = new QVBoxLayout( this ); | 46 | Layout11 = new QVBoxLayout( this ); |
47 | Layout11->setSpacing( 6 ); | 47 | Layout11->setSpacing( 6 ); |
48 | Layout11->setMargin( 0 ); | 48 | Layout11->setMargin( 0 ); |
49 | 49 | ||
50 | progress = new QProgressBar( this, "progbar"); | 50 | progress = new QProgressBar( this, "progbar"); |
51 | progress->setTotalSteps(20); | 51 | progress->setTotalSteps(20); |
52 | 52 | ||
53 | StartStopButton = new QPushButton( this, "StartButton" ); | 53 | StartStopButton = new QPushButton( this, "StartButton" ); |
54 | StartStopButton->setText( tr( "Start scan" ) ); | 54 | StartStopButton->setText( tr( "Start scan" ) ); |
55 | 55 | ||
56 | ListView1 = new QListView( this, "ListView1" ); | 56 | ListView1 = new QListView( this, "ListView1" ); |
57 | 57 | ||
58 | //ListView1->addColumn( tr( "Add" ) ); | 58 | //ListView1->addColumn( tr( "Add" ) ); |
59 | ListView1->addColumn( tr( "Add Device" ) ); | 59 | ListView1->addColumn( tr( "Add Device" ) ); |
60 | //ListView1->addColumn( tr( "Type" ) ); | 60 | //ListView1->addColumn( tr( "Type" ) ); |
61 | 61 | ||
62 | Layout11->addWidget( ListView1 ); | 62 | Layout11->addWidget( ListView1 ); |
63 | Layout11->addWidget( progress ); | 63 | Layout11->addWidget( progress ); |
64 | Layout11->addWidget( StartStopButton ); | 64 | Layout11->addWidget( StartStopButton ); |
65 | 65 | ||
66 | localDevice = new Manager( "hci0" ); | 66 | localDevice = new Manager( "hci0" ); |
67 | 67 | ||
68 | connect( StartStopButton, SIGNAL( clicked() ), this, SLOT( startSearch() ) ); | 68 | connect( StartStopButton, SIGNAL( clicked() ), this, SLOT( startSearch() ) ); |
69 | connect( localDevice, SIGNAL( foundDevices( const QString& , RemoteDevice::ValueList ) ), | 69 | connect( localDevice, SIGNAL( foundDevices(const QString&,RemoteDevice::ValueList) ), |
70 | this, SLOT( fillList( const QString& , RemoteDevice::ValueList ) ) ) ; | 70 | this, SLOT( fillList(const QString&,RemoteDevice::ValueList) ) ) ; |
71 | 71 | ||
72 | progressStat = 0; | 72 | progressStat = 0; |
73 | m_search = false; | 73 | m_search = false; |
74 | } | 74 | } |
75 | 75 | ||
76 | // hack, make cleaner later | 76 | // hack, make cleaner later |
77 | void ScanDialog::progressTimer() { | 77 | void ScanDialog::progressTimer() { |
78 | 78 | ||
79 | progressStat++; | 79 | progressStat++; |
80 | if ( progressStat++ < 20 && m_search ) { | 80 | if ( progressStat++ < 20 && m_search ) { |
81 | QTimer::singleShot( 2000, this, SLOT( progressTimer() ) ); | 81 | QTimer::singleShot( 2000, this, SLOT( progressTimer() ) ); |
82 | progress->setProgress( progressStat++ ); | 82 | progress->setProgress( progressStat++ ); |
83 | } | 83 | } |
84 | } | 84 | } |
85 | 85 | ||
86 | void ScanDialog::accept() { | 86 | void ScanDialog::accept() { |
87 | emitToManager(); | 87 | emitToManager(); |
88 | QDialog::accept(); | 88 | QDialog::accept(); |
89 | } | 89 | } |
90 | 90 | ||
91 | 91 | ||
92 | void ScanDialog::startSearch() { | 92 | void ScanDialog::startSearch() { |
93 | if ( m_search ) { | 93 | if ( m_search ) { |
94 | stopSearch(); | 94 | stopSearch(); |
95 | return; | 95 | return; |
96 | } | 96 | } |
97 | m_search = true; | 97 | m_search = true; |
98 | progress->setProgress(0); | 98 | progress->setProgress(0); |
99 | progressStat = 0; | 99 | progressStat = 0; |
100 | 100 | ||
101 | // empty list before a new scan | 101 | // empty list before a new scan |
102 | ListView1->clear(); | 102 | ListView1->clear(); |
103 | 103 | ||
104 | progressTimer(); | 104 | progressTimer(); |
105 | // when finished, it emmite foundDevices() | 105 | // when finished, it emmite foundDevices() |
106 | // checken ob initialisiert , qcop ans applet. | 106 | // checken ob initialisiert , qcop ans applet. |
107 | StartStopButton->setText( tr( "Stop scan" ) ); | 107 | StartStopButton->setText( tr( "Stop scan" ) ); |
108 | 108 | ||
109 | localDevice->searchDevices(); | 109 | localDevice->searchDevices(); |
110 | 110 | ||
111 | } | 111 | } |
112 | 112 | ||
113 | void ScanDialog::stopSearch() { | 113 | void ScanDialog::stopSearch() { |
114 | m_search = true; | 114 | m_search = true; |
115 | } | 115 | } |
116 | 116 | ||
117 | void ScanDialog::fillList(const QString&, RemoteDevice::ValueList deviceList) { | 117 | void ScanDialog::fillList(const QString&, RemoteDevice::ValueList deviceList) { |
118 | progress->setProgress(0); | 118 | progress->setProgress(0); |
119 | progressStat = 0; | 119 | progressStat = 0; |
120 | QCheckListItem * deviceItem; | 120 | QCheckListItem * deviceItem; |
121 | 121 | ||
122 | RemoteDevice::ValueList::Iterator it; | 122 | RemoteDevice::ValueList::Iterator it; |
123 | for( it = deviceList.begin(); it != deviceList.end(); ++it ) { | 123 | for( it = deviceList.begin(); it != deviceList.end(); ++it ) { |
124 | 124 | ||
125 | deviceItem = new QCheckListItem( ListView1, (*it).name(), QCheckListItem::CheckBox ); | 125 | deviceItem = new QCheckListItem( ListView1, (*it).name(), QCheckListItem::CheckBox ); |
126 | deviceItem->setText( 1, (*it).mac() ); | 126 | deviceItem->setText( 1, (*it).mac() ); |
127 | } | 127 | } |
128 | m_search = false; | 128 | m_search = false; |
129 | StartStopButton->setText( tr( "Start scan" ) ); | 129 | StartStopButton->setText( tr( "Start scan" ) ); |
130 | } | 130 | } |
131 | 131 | ||
132 | /** | 132 | /** |
133 | * Iterates trough the items, and collects the checked items. | 133 | * Iterates trough the items, and collects the checked items. |
134 | * Then it emits it, so the manager can connect to the signal to fill the listing. | 134 | * Then it emits it, so the manager can connect to the signal to fill the listing. |
135 | */ | 135 | */ |
136 | void ScanDialog::emitToManager() { | 136 | void ScanDialog::emitToManager() { |
137 | 137 | ||
138 | if (!ListView1) { | 138 | if (!ListView1) { |
139 | return; | 139 | return; |
140 | } | 140 | } |
141 | 141 | ||
142 | QValueList<RemoteDevice> deviceList; | 142 | QValueList<RemoteDevice> deviceList; |
143 | 143 | ||
144 | QListViewItemIterator it( ListView1 ); | 144 | QListViewItemIterator it( ListView1 ); |
145 | for ( ; it.current(); ++it ) { | 145 | for ( ; it.current(); ++it ) { |
146 | if ( ( (QCheckListItem*)it.current() )->isOn() ) { | 146 | if ( ( (QCheckListItem*)it.current() )->isOn() ) { |
147 | RemoteDevice device( it.current()->text(1), it.current()->text(0) ); | 147 | RemoteDevice device( it.current()->text(1), it.current()->text(0) ); |
148 | deviceList.append( device ); | 148 | deviceList.append( device ); |
149 | } | 149 | } |
150 | } | 150 | } |
151 | emit selectedDevices( deviceList ); | 151 | emit selectedDevices( deviceList ); |
152 | } | 152 | } |
153 | 153 | ||
154 | /** | 154 | /** |
155 | * Cleanup | 155 | * Cleanup |
156 | */ | 156 | */ |
157 | ScanDialog::~ScanDialog() { | 157 | ScanDialog::~ScanDialog() { |
158 | qWarning("delete scan dialog"); | 158 | qWarning("delete scan dialog"); |
159 | delete localDevice; | 159 | delete localDevice; |
160 | } | 160 | } |
161 | } | 161 | } |
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp index b39203b..8ae87fe 100644 --- a/noncore/settings/appearance2/appearance.cpp +++ b/noncore/settings/appearance2/appearance.cpp | |||
@@ -28,559 +28,559 @@ | |||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "appearance.h" | 30 | #include "appearance.h" |
31 | #include "editScheme.h" | 31 | #include "editScheme.h" |
32 | #include "stylelistitem.h" | 32 | #include "stylelistitem.h" |
33 | #include "decolistitem.h" | 33 | #include "decolistitem.h" |
34 | #include "colorlistitem.h" | 34 | #include "colorlistitem.h" |
35 | #include "exceptlistitem.h" | 35 | #include "exceptlistitem.h" |
36 | #include "sample.h" | 36 | #include "sample.h" |
37 | 37 | ||
38 | /* OPIE */ | 38 | /* OPIE */ |
39 | #include <opie2/odevice.h> | 39 | #include <opie2/odevice.h> |
40 | #include <opie2/ofiledialog.h> | 40 | #include <opie2/ofiledialog.h> |
41 | #include <opie2/otabwidget.h> | 41 | #include <opie2/otabwidget.h> |
42 | 42 | ||
43 | #include <qpe/config.h> | 43 | #include <qpe/config.h> |
44 | #include <qpe/global.h> | 44 | #include <qpe/global.h> |
45 | #include <qpe/qpeapplication.h> | 45 | #include <qpe/qpeapplication.h> |
46 | #include <qpe/qpemessagebox.h> | 46 | #include <qpe/qpemessagebox.h> |
47 | #include <qpe/qcopenvelope_qws.h> | 47 | #include <qpe/qcopenvelope_qws.h> |
48 | #include <qpe/qpestyle.h> | 48 | #include <qpe/qpestyle.h> |
49 | #include <qpe/lightstyle.h> | 49 | #include <qpe/lightstyle.h> |
50 | #include <qpe/styleinterface.h> | 50 | #include <qpe/styleinterface.h> |
51 | 51 | ||
52 | /* QT */ | 52 | /* QT */ |
53 | #include <qbuttongroup.h> | 53 | #include <qbuttongroup.h> |
54 | #include <qcheckbox.h> | 54 | #include <qcheckbox.h> |
55 | #include <qcombobox.h> | 55 | #include <qcombobox.h> |
56 | #include <qdialog.h> | 56 | #include <qdialog.h> |
57 | #include <qdir.h> | 57 | #include <qdir.h> |
58 | #include <qlabel.h> | 58 | #include <qlabel.h> |
59 | #include <qlayout.h> | 59 | #include <qlayout.h> |
60 | #include <qlineedit.h> | 60 | #include <qlineedit.h> |
61 | #include <qlistbox.h> | 61 | #include <qlistbox.h> |
62 | #include <qmessagebox.h> | 62 | #include <qmessagebox.h> |
63 | #include <qpushbutton.h> | 63 | #include <qpushbutton.h> |
64 | #include <qradiobutton.h> | 64 | #include <qradiobutton.h> |
65 | #if QT_VERSION >= 300 | 65 | #if QT_VERSION >= 300 |
66 | #include <qstylefactory.h> | 66 | #include <qstylefactory.h> |
67 | #endif | 67 | #endif |
68 | #include <qtoolbutton.h> | 68 | #include <qtoolbutton.h> |
69 | #include <qwindowsstyle.h> | 69 | #include <qwindowsstyle.h> |
70 | #include <qlistview.h> | 70 | #include <qlistview.h> |
71 | #include <qheader.h> | 71 | #include <qheader.h> |
72 | #include <qvbox.h> | 72 | #include <qvbox.h> |
73 | #include <qwhatsthis.h> | 73 | #include <qwhatsthis.h> |
74 | 74 | ||
75 | using namespace Opie; | 75 | using namespace Opie; |
76 | 76 | ||
77 | 77 | ||
78 | class DefaultWindowDecoration : public WindowDecorationInterface | 78 | class DefaultWindowDecoration : public WindowDecorationInterface |
79 | { | 79 | { |
80 | public: | 80 | public: |
81 | DefaultWindowDecoration() : ref(0) {} | 81 | DefaultWindowDecoration() : ref(0) {} |
82 | QString name() const | 82 | QString name() const |
83 | { | 83 | { |
84 | return "Default"; | 84 | return "Default"; |
85 | } | 85 | } |
86 | QPixmap icon() const | 86 | QPixmap icon() const |
87 | { | 87 | { |
88 | return QPixmap(); | 88 | return QPixmap(); |
89 | } | 89 | } |
90 | QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) | 90 | QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) |
91 | { | 91 | { |
92 | *iface = 0; | 92 | *iface = 0; |
93 | if ( uuid == IID_QUnknown ) | 93 | if ( uuid == IID_QUnknown ) |
94 | *iface = this; | 94 | *iface = this; |
95 | else if ( uuid == IID_WindowDecoration ) | 95 | else if ( uuid == IID_WindowDecoration ) |
96 | *iface = this; | 96 | *iface = this; |
97 | 97 | ||
98 | if ( *iface ) | 98 | if ( *iface ) |
99 | (*iface)->addRef(); | 99 | (*iface)->addRef(); |
100 | return QS_OK; | 100 | return QS_OK; |
101 | } | 101 | } |
102 | Q_REFCOUNT | 102 | Q_REFCOUNT |
103 | 103 | ||
104 | private: | 104 | private: |
105 | ulong ref; | 105 | ulong ref; |
106 | }; | 106 | }; |
107 | 107 | ||
108 | 108 | ||
109 | 109 | ||
110 | 110 | ||
111 | 111 | ||
112 | 112 | ||
113 | 113 | ||
114 | QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg ) | 114 | QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg ) |
115 | { | 115 | { |
116 | QWidget* tab = new QWidget( parent, "StyleTab" ); | 116 | QWidget* tab = new QWidget( parent, "StyleTab" ); |
117 | QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); | 117 | QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); |
118 | 118 | ||
119 | m_style_list = new QListBox( tab, "m_style_list" ); | 119 | m_style_list = new QListBox( tab, "m_style_list" ); |
120 | vertLayout->addWidget( m_style_list ); | 120 | vertLayout->addWidget( m_style_list ); |
121 | QWhatsThis::add( m_style_list, tr( "Styles control the way items such as buttons and scroll bars appear in all applications.\n\nClick here to select an available style." ) ); | 121 | QWhatsThis::add( m_style_list, tr( "Styles control the way items such as buttons and scroll bars appear in all applications.\n\nClick here to select an available style." ) ); |
122 | 122 | ||
123 | m_style_settings = new QPushButton ( tr( "Settings..." ), tab ); | 123 | m_style_settings = new QPushButton ( tr( "Settings..." ), tab ); |
124 | connect ( m_style_settings, SIGNAL( clicked ( )), this, SLOT( styleSettingsClicked ( ))); | 124 | connect ( m_style_settings, SIGNAL( clicked()), this, SLOT( styleSettingsClicked())); |
125 | vertLayout-> addWidget ( m_style_settings ); | 125 | vertLayout-> addWidget ( m_style_settings ); |
126 | QWhatsThis::add( m_style_settings, tr( "Click here to configure the currently selected style.\n\nNote: This option is not available for all styles." ) ); | 126 | QWhatsThis::add( m_style_settings, tr( "Click here to configure the currently selected style.\n\nNote: This option is not available for all styles." ) ); |
127 | 127 | ||
128 | QString s = cfg. readEntry ( "Style", "Light" ); | 128 | QString s = cfg. readEntry ( "Style", "Light" ); |
129 | 129 | ||
130 | 130 | ||
131 | #if QT_VERSION >= 300 | 131 | #if QT_VERSION >= 300 |
132 | m_style_list->insertStringList(QStyleFactory::styles()); | 132 | m_style_list->insertStringList(QStyleFactory::styles()); |
133 | #else | 133 | #else |
134 | m_style_list-> insertItem ( new StyleListItem ( "Windows", new QWindowsStyle ( ))); | 134 | m_style_list-> insertItem ( new StyleListItem ( "Windows", new QWindowsStyle ( ))); |
135 | m_style_list-> insertItem ( new StyleListItem ( "Light", new LightStyle ( ))); | 135 | m_style_list-> insertItem ( new StyleListItem ( "Light", new LightStyle ( ))); |
136 | m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( ))); | 136 | m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( ))); |
137 | #endif | 137 | #endif |
138 | 138 | ||
139 | { | 139 | { |
140 | QString path = QPEApplication::qpeDir ( ); | 140 | QString path = QPEApplication::qpeDir ( ); |
141 | path.append( "/plugins/styles/" ); | 141 | path.append( "/plugins/styles/" ); |
142 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); | 142 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); |
143 | 143 | ||
144 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | 144 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
145 | { | 145 | { |
146 | QString libstr = path; | 146 | QString libstr = path; |
147 | libstr.append( "/" ); | 147 | libstr.append( "/" ); |
148 | libstr.append( *it ); | 148 | libstr.append( *it ); |
149 | QLibrary *lib = new QLibrary ( libstr ); | 149 | QLibrary *lib = new QLibrary ( libstr ); |
150 | StyleInterface *iface; | 150 | StyleInterface *iface; |
151 | 151 | ||
152 | if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) | 152 | if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) |
153 | { | 153 | { |
154 | StyleListItem *slit = new StyleListItem ( lib, iface ); | 154 | StyleListItem *slit = new StyleListItem ( lib, iface ); |
155 | m_style_list-> insertItem ( slit ); | 155 | m_style_list-> insertItem ( slit ); |
156 | 156 | ||
157 | if ( slit-> key ( ) == s ) | 157 | if ( slit-> key ( ) == s ) |
158 | m_style_list-> setCurrentItem ( slit ); | 158 | m_style_list-> setCurrentItem ( slit ); |
159 | } | 159 | } |
160 | else | 160 | else |
161 | delete lib; | 161 | delete lib; |
162 | } | 162 | } |
163 | } | 163 | } |
164 | 164 | ||
165 | m_original_style = m_style_list-> currentItem ( ); | 165 | m_original_style = m_style_list-> currentItem ( ); |
166 | styleClicked ( m_original_style ); | 166 | styleClicked ( m_original_style ); |
167 | 167 | ||
168 | connect( m_style_list, SIGNAL( highlighted( int ) ), this, SLOT( styleClicked( int ) ) ); | 168 | connect( m_style_list, SIGNAL( highlighted(int) ), this, SLOT( styleClicked(int) ) ); |
169 | 169 | ||
170 | return tab; | 170 | return tab; |
171 | } | 171 | } |
172 | 172 | ||
173 | QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg ) | 173 | QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg ) |
174 | { | 174 | { |
175 | QWidget* tab = new QWidget( parent, "DecoTab" ); | 175 | QWidget* tab = new QWidget( parent, "DecoTab" ); |
176 | QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); | 176 | QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); |
177 | 177 | ||
178 | m_deco_list = new QListBox( tab, "m_deco_list" ); | 178 | m_deco_list = new QListBox( tab, "m_deco_list" ); |
179 | vertLayout->addWidget( m_deco_list ); | 179 | vertLayout->addWidget( m_deco_list ); |
180 | QWhatsThis::add( m_deco_list, tr( "Window decorations control the way the application title bar and its buttons appear.\n\nClick here to select an available decoration." ) ); | 180 | QWhatsThis::add( m_deco_list, tr( "Window decorations control the way the application title bar and its buttons appear.\n\nClick here to select an available decoration." ) ); |
181 | 181 | ||
182 | QString s = cfg. readEntry ( "Decoration", "libflat.so" ); | 182 | QString s = cfg. readEntry ( "Decoration", "libflat.so" ); |
183 | 183 | ||
184 | m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); | 184 | m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); |
185 | 185 | ||
186 | { | 186 | { |
187 | QString path = QPEApplication::qpeDir(); | 187 | QString path = QPEApplication::qpeDir(); |
188 | path.append( "/plugins/decorations/" ); | 188 | path.append( "/plugins/decorations/" ); |
189 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); | 189 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); |
190 | 190 | ||
191 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | 191 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
192 | { | 192 | { |
193 | QString libstr = path; | 193 | QString libstr = path; |
194 | libstr.append( "/" ); | 194 | libstr.append( "/" ); |
195 | libstr.append( *it ); | 195 | libstr.append( *it ); |
196 | QLibrary *lib = new QLibrary ( libstr ); | 196 | QLibrary *lib = new QLibrary ( libstr ); |
197 | WindowDecorationInterface *iface; | 197 | WindowDecorationInterface *iface; |
198 | 198 | ||
199 | if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) | 199 | if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) |
200 | { | 200 | { |
201 | DecoListItem *dlit = new DecoListItem ( lib, iface ); | 201 | DecoListItem *dlit = new DecoListItem ( lib, iface ); |
202 | m_deco_list-> insertItem ( dlit ); | 202 | m_deco_list-> insertItem ( dlit ); |
203 | 203 | ||
204 | if ( dlit-> key ( ) == s ) | 204 | if ( dlit-> key ( ) == s ) |
205 | m_deco_list-> setCurrentItem ( dlit ); | 205 | m_deco_list-> setCurrentItem ( dlit ); |
206 | } | 206 | } |
207 | else | 207 | else |
208 | delete lib; | 208 | delete lib; |
209 | } | 209 | } |
210 | } | 210 | } |
211 | 211 | ||
212 | m_original_deco = m_deco_list-> currentItem ( ); | 212 | m_original_deco = m_deco_list-> currentItem ( ); |
213 | if ( m_deco_list-> currentItem ( ) < 0 ) | 213 | if ( m_deco_list-> currentItem ( ) < 0 ) |
214 | m_deco_list-> setCurrentItem ( 0 ); | 214 | m_deco_list-> setCurrentItem ( 0 ); |
215 | decoClicked ( m_original_deco ); | 215 | decoClicked ( m_original_deco ); |
216 | 216 | ||
217 | connect( m_deco_list, SIGNAL( highlighted( int ) ), this, SLOT( decoClicked( int ) ) ); | 217 | connect( m_deco_list, SIGNAL( highlighted(int) ), this, SLOT( decoClicked(int) ) ); |
218 | 218 | ||
219 | return tab; | 219 | return tab; |
220 | } | 220 | } |
221 | 221 | ||
222 | QWidget *Appearance::createFontTab ( QWidget *parent, Config &cfg ) | 222 | QWidget *Appearance::createFontTab ( QWidget *parent, Config &cfg ) |
223 | { | 223 | { |
224 | QString familyStr = cfg. readEntry ( "FontFamily", "Helvetica" ); | 224 | QString familyStr = cfg. readEntry ( "FontFamily", "Helvetica" ); |
225 | QString styleStr = cfg. readEntry ( "FontStyle", "Regular" ); | 225 | QString styleStr = cfg. readEntry ( "FontStyle", "Regular" ); |
226 | int size = cfg. readNumEntry ( "FontSize", 10 ); | 226 | int size = cfg. readNumEntry ( "FontSize", 10 ); |
227 | 227 | ||
228 | m_fontselect = new OFontSelector ( false, parent, "FontTab" ); | 228 | m_fontselect = new OFontSelector ( false, parent, "FontTab" ); |
229 | m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); | 229 | m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); |
230 | QWhatsThis::add( m_fontselect, tr( "Select the desired name, style and size of the default font applications will use." ) ); | 230 | QWhatsThis::add( m_fontselect, tr( "Select the desired name, style and size of the default font applications will use." ) ); |
231 | 231 | ||
232 | connect( m_fontselect, SIGNAL( fontSelected ( const QFont & )), | 232 | connect( m_fontselect, SIGNAL( fontSelected(const QFont&)), |
233 | this, SLOT( fontClicked ( const QFont & ))); | 233 | this, SLOT( fontClicked(const QFont&))); |
234 | 234 | ||
235 | return m_fontselect; | 235 | return m_fontselect; |
236 | } | 236 | } |
237 | 237 | ||
238 | QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg ) | 238 | QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg ) |
239 | { | 239 | { |
240 | QWidget *tab = new QWidget( parent, "ColorTab" ); | 240 | QWidget *tab = new QWidget( parent, "ColorTab" ); |
241 | QGridLayout *gridLayout = new QGridLayout( tab, 0, 0, 3, 3 ); | 241 | QGridLayout *gridLayout = new QGridLayout( tab, 0, 0, 3, 3 ); |
242 | gridLayout->setRowStretch ( 3, 10 ); | 242 | gridLayout->setRowStretch ( 3, 10 ); |
243 | 243 | ||
244 | m_color_list = new QListBox ( tab ); | 244 | m_color_list = new QListBox ( tab ); |
245 | gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); | 245 | gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); |
246 | connect( m_color_list, SIGNAL( highlighted( int ) ), this, SLOT( colorClicked( int ) ) ); | 246 | connect( m_color_list, SIGNAL( highlighted(int) ), this, SLOT( colorClicked(int) ) ); |
247 | QWhatsThis::add( m_color_list, tr( "Color schemes are a collection of colors which are used for various parts of the display.\n\nClick here to select an available scheme." ) ); | 247 | QWhatsThis::add( m_color_list, tr( "Color schemes are a collection of colors which are used for various parts of the display.\n\nClick here to select an available scheme." ) ); |
248 | 248 | ||
249 | m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg )); | 249 | m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg )); |
250 | 250 | ||
251 | QString path = QPEApplication::qpeDir ( ); | 251 | QString path = QPEApplication::qpeDir ( ); |
252 | path.append( "/etc/colors/" ); | 252 | path.append( "/etc/colors/" ); |
253 | QStringList sl = QDir ( path ). entryList ( "*.scheme" ); | 253 | QStringList sl = QDir ( path ). entryList ( "*.scheme" ); |
254 | 254 | ||
255 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | 255 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
256 | { | 256 | { |
257 | QString name = (*it). left ((*it). find ( ".scheme" )); | 257 | QString name = (*it). left ((*it). find ( ".scheme" )); |
258 | QString pathstr = path; | 258 | QString pathstr = path; |
259 | pathstr.append( *it ); | 259 | pathstr.append( *it ); |
260 | Config config ( pathstr, Config::File ); | 260 | Config config ( pathstr, Config::File ); |
261 | config. setGroup ( "Colors" ); | 261 | config. setGroup ( "Colors" ); |
262 | 262 | ||
263 | m_color_list-> insertItem ( new ColorListItem ( name, config )); | 263 | m_color_list-> insertItem ( new ColorListItem ( name, config )); |
264 | } | 264 | } |
265 | 265 | ||
266 | m_color_list-> setCurrentItem ( 0 ); | 266 | m_color_list-> setCurrentItem ( 0 ); |
267 | 267 | ||
268 | QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); | 268 | QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); |
269 | tempButton->setText( tr( "Edit..." ) ); | 269 | tempButton->setText( tr( "Edit..." ) ); |
270 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) ); | 270 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) ); |
271 | gridLayout->addWidget( tempButton, 0, 1 ); | 271 | gridLayout->addWidget( tempButton, 0, 1 ); |
272 | QWhatsThis::add( tempButton, tr( "Click here to change the colors in the current color scheme." ) ); | 272 | QWhatsThis::add( tempButton, tr( "Click here to change the colors in the current color scheme." ) ); |
273 | 273 | ||
274 | tempButton = new QPushButton( tab, "deleteSchemeButton" ); | 274 | tempButton = new QPushButton( tab, "deleteSchemeButton" ); |
275 | tempButton->setText( tr( "Delete" ) ); | 275 | tempButton->setText( tr( "Delete" ) ); |
276 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) ); | 276 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) ); |
277 | gridLayout->addWidget( tempButton, 1, 1 ); | 277 | gridLayout->addWidget( tempButton, 1, 1 ); |
278 | QWhatsThis::add( tempButton, tr( "Click here to delete the color scheme selected in the list to the left." ) ); | 278 | QWhatsThis::add( tempButton, tr( "Click here to delete the color scheme selected in the list to the left." ) ); |
279 | 279 | ||
280 | tempButton = new QPushButton( tab, "saveSchemeButton" ); | 280 | tempButton = new QPushButton( tab, "saveSchemeButton" ); |
281 | tempButton->setText( tr( "Save" ) ); | 281 | tempButton->setText( tr( "Save" ) ); |
282 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) ); | 282 | connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) ); |
283 | gridLayout->addWidget( tempButton, 2, 1 ); | 283 | gridLayout->addWidget( tempButton, 2, 1 ); |
284 | QWhatsThis::add( tempButton, tr( "Click here to name and save the current color scheme." ) ); | 284 | QWhatsThis::add( tempButton, tr( "Click here to name and save the current color scheme." ) ); |
285 | 285 | ||
286 | return tab; | 286 | return tab; |
287 | } | 287 | } |
288 | 288 | ||
289 | QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) | 289 | QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) |
290 | { | 290 | { |
291 | QWidget *tab = new QWidget ( parent ); | 291 | QWidget *tab = new QWidget ( parent ); |
292 | QVBoxLayout *vertLayout = new QVBoxLayout( tab, 3, 3 ); | 292 | QVBoxLayout *vertLayout = new QVBoxLayout( tab, 3, 3 ); |
293 | 293 | ||
294 | QGridLayout *lay = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); | 294 | QGridLayout *lay = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); |
295 | 295 | ||
296 | m_force = new QCheckBox ( tr( "Force styling for all applications." ), tab ); | 296 | m_force = new QCheckBox ( tr( "Force styling for all applications." ), tab ); |
297 | m_force-> setChecked ( cfg. readBoolEntry ( "ForceStyle" )); | 297 | m_force-> setChecked ( cfg. readBoolEntry ( "ForceStyle" )); |
298 | lay-> addMultiCellWidget ( m_force, 0, 0, 0, 1 ); | 298 | lay-> addMultiCellWidget ( m_force, 0, 0, 0, 1 ); |
299 | QWhatsThis::add( m_force, tr( "Click here to allow all applications to use global appearance settings." ) ); | 299 | QWhatsThis::add( m_force, tr( "Click here to allow all applications to use global appearance settings." ) ); |
300 | 300 | ||
301 | QLabel *l = new QLabel ( tab ); | 301 | QLabel *l = new QLabel ( tab ); |
302 | l-> setText ( QString ( "<p>%1</p>" ). arg ( tr( "Disable styling for these applications ( <b>*</b> can be used as a wildcard):" ))); | 302 | l-> setText ( QString ( "<p>%1</p>" ). arg ( tr( "Disable styling for these applications ( <b>*</b> can be used as a wildcard):" ))); |
303 | lay-> addMultiCellWidget ( l, 1, 1, 0, 1 ); | 303 | lay-> addMultiCellWidget ( l, 1, 1, 0, 1 ); |
304 | QWhatsThis::add( l, tr( "If some applications do not display correctly with the global appearance settings, certain features can be turned off for that application.\n\nThis area allows you to select an application and which settings you wish to disable." ) ); | 304 | QWhatsThis::add( l, tr( "If some applications do not display correctly with the global appearance settings, certain features can be turned off for that application.\n\nThis area allows you to select an application and which settings you wish to disable." ) ); |
305 | 305 | ||
306 | m_except = new QListView ( tab ); | 306 | m_except = new QListView ( tab ); |
307 | m_except-> addColumn ( Resource::loadIconSet ( "appearance" ), "", 24 ); | 307 | m_except-> addColumn ( Resource::loadIconSet ( "appearance" ), "", 24 ); |
308 | m_except-> addColumn ( Resource::loadIconSet ( "font" ), "", 24 ); | 308 | m_except-> addColumn ( Resource::loadIconSet ( "font" ), "", 24 ); |
309 | m_except-> addColumn ( Resource::loadIconSet ( "appearance/deco" ), "", 24 ); | 309 | m_except-> addColumn ( Resource::loadIconSet ( "appearance/deco" ), "", 24 ); |
310 | m_except-> addColumn ( tr( "Binary file(s)" )); | 310 | m_except-> addColumn ( tr( "Binary file(s)" )); |
311 | m_except-> setColumnAlignment ( 0, AlignCenter ); | 311 | m_except-> setColumnAlignment ( 0, AlignCenter ); |
312 | m_except-> setColumnAlignment ( 1, AlignCenter ); | 312 | m_except-> setColumnAlignment ( 1, AlignCenter ); |
313 | m_except-> setColumnAlignment ( 2, AlignCenter ); | 313 | m_except-> setColumnAlignment ( 2, AlignCenter ); |
314 | m_except-> setAllColumnsShowFocus ( true ); | 314 | m_except-> setAllColumnsShowFocus ( true ); |
315 | m_except-> setMinimumHeight ( 30 ); | 315 | m_except-> setMinimumHeight ( 30 ); |
316 | m_except-> header ( )-> setClickEnabled ( false ); | 316 | m_except-> header ( )-> setClickEnabled ( false ); |
317 | m_except-> header ( )-> setResizeEnabled ( false ); | 317 | m_except-> header ( )-> setResizeEnabled ( false ); |
318 | m_except-> header ( )-> setMovingEnabled ( false ); | 318 | m_except-> header ( )-> setMovingEnabled ( false ); |
319 | m_except-> setSorting ( -1 ); | 319 | m_except-> setSorting ( -1 ); |
320 | lay-> addMultiCellWidget ( m_except, 2, 6, 0, 0 ); | 320 | lay-> addMultiCellWidget ( m_except, 2, 6, 0, 0 ); |
321 | QWhatsThis::add( m_except, tr( "If some applications do not display correctly with the global appearance settings, certain features can be turned off for that application.\n\nThis area allows you to select an application and which settings you wish to disable." ) ); | 321 | QWhatsThis::add( m_except, tr( "If some applications do not display correctly with the global appearance settings, certain features can be turned off for that application.\n\nThis area allows you to select an application and which settings you wish to disable." ) ); |
322 | 322 | ||
323 | connect ( m_except, SIGNAL( clicked ( QListViewItem *, const QPoint &, int )), this, SLOT( clickedExcept ( QListViewItem *, const QPoint &, int ))); | 323 | connect ( m_except, SIGNAL( clicked(QListViewItem*,const QPoint&,int)), this, SLOT( clickedExcept(QListViewItem*,const QPoint&,int))); |
324 | 324 | ||
325 | QToolButton *tb = new QToolButton ( tab ); | 325 | QToolButton *tb = new QToolButton ( tab ); |
326 | tb-> setIconSet ( Resource::loadIconSet ( "appearance/add" )); | 326 | tb-> setIconSet ( Resource::loadIconSet ( "appearance/add" )); |
327 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | 327 | tb-> setFocusPolicy ( QWidget::StrongFocus ); |
328 | lay-> addWidget ( tb, 2, 1 ); | 328 | lay-> addWidget ( tb, 2, 1 ); |
329 | connect ( tb, SIGNAL( clicked ( )), this, SLOT( addExcept ( ))); | 329 | connect ( tb, SIGNAL( clicked()), this, SLOT( addExcept())); |
330 | QWhatsThis::add( tb, tr( "Click here to add an application to the list above." ) ); | 330 | QWhatsThis::add( tb, tr( "Click here to add an application to the list above." ) ); |
331 | 331 | ||
332 | tb = new QToolButton ( tab ); | 332 | tb = new QToolButton ( tab ); |
333 | tb-> setIconSet ( Resource::loadIconSet ( "editdelete" )); | 333 | tb-> setIconSet ( Resource::loadIconSet ( "editdelete" )); |
334 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | 334 | tb-> setFocusPolicy ( QWidget::StrongFocus ); |
335 | lay-> addWidget ( tb, 3, 1 ); | 335 | lay-> addWidget ( tb, 3, 1 ); |
336 | connect ( tb, SIGNAL( clicked ( )), this, SLOT( delExcept ( ))); | 336 | connect ( tb, SIGNAL( clicked()), this, SLOT( delExcept())); |
337 | QWhatsThis::add( tb, tr( "Click here to delete the currently selected application." ) ); | 337 | QWhatsThis::add( tb, tr( "Click here to delete the currently selected application." ) ); |
338 | 338 | ||
339 | tb = new QToolButton ( tab ); | 339 | tb = new QToolButton ( tab ); |
340 | tb-> setIconSet ( Resource::loadIconSet ( "up" )); | 340 | tb-> setIconSet ( Resource::loadIconSet ( "up" )); |
341 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | 341 | tb-> setFocusPolicy ( QWidget::StrongFocus ); |
342 | lay-> addWidget ( tb, 4, 1 ); | 342 | lay-> addWidget ( tb, 4, 1 ); |
343 | connect ( tb, SIGNAL( clicked ( )), this, SLOT( upExcept ( ))); | 343 | connect ( tb, SIGNAL( clicked()), this, SLOT( upExcept())); |
344 | QWhatsThis::add( tb, tr( "Click here to move the currently selected application up in the list." ) ); | 344 | QWhatsThis::add( tb, tr( "Click here to move the currently selected application up in the list." ) ); |
345 | 345 | ||
346 | tb = new QToolButton ( tab ); | 346 | tb = new QToolButton ( tab ); |
347 | tb-> setIconSet ( Resource::loadIconSet ( "down" )); | 347 | tb-> setIconSet ( Resource::loadIconSet ( "down" )); |
348 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | 348 | tb-> setFocusPolicy ( QWidget::StrongFocus ); |
349 | lay-> addWidget ( tb, 5, 1 ); | 349 | lay-> addWidget ( tb, 5, 1 ); |
350 | connect ( tb, SIGNAL( clicked ( )), this, SLOT( downExcept ( ))); | 350 | connect ( tb, SIGNAL( clicked()), this, SLOT( downExcept())); |
351 | QWhatsThis::add( tb, tr( "Click here to move the currently selected application down in the list." ) ); | 351 | QWhatsThis::add( tb, tr( "Click here to move the currently selected application down in the list." ) ); |
352 | 352 | ||
353 | lay-> setRowStretch ( 6, 10 ); | 353 | lay-> setRowStretch ( 6, 10 ); |
354 | lay-> setColStretch ( 0, 10 ); | 354 | lay-> setColStretch ( 0, 10 ); |
355 | 355 | ||
356 | QStringList sl = cfg. readListEntry ( "NoStyle", ';' ); | 356 | QStringList sl = cfg. readListEntry ( "NoStyle", ';' ); |
357 | QListViewItem *lvit = 0; | 357 | QListViewItem *lvit = 0; |
358 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) | 358 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
359 | { | 359 | { |
360 | int fl = ( *it ). left ( 1 ). toInt ( 0, 32 ); | 360 | int fl = ( *it ). left ( 1 ). toInt ( 0, 32 ); |
361 | 361 | ||
362 | lvit = new ExceptListItem ( m_except, lvit, ( *it ). mid ( 1 ), fl & 0x01, fl & 0x02, fl & 0x04 ); | 362 | lvit = new ExceptListItem ( m_except, lvit, ( *it ). mid ( 1 ), fl & 0x01, fl & 0x02, fl & 0x04 ); |
363 | } | 363 | } |
364 | 364 | ||
365 | 365 | ||
366 | vertLayout-> addSpacing ( 3 ); | 366 | vertLayout-> addSpacing ( 3 ); |
367 | QFrame *f = new QFrame ( tab ); | 367 | QFrame *f = new QFrame ( tab ); |
368 | f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken ); | 368 | f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken ); |
369 | vertLayout-> addWidget ( f ); | 369 | vertLayout-> addWidget ( f ); |
370 | vertLayout-> addSpacing ( 3 ); | 370 | vertLayout-> addSpacing ( 3 ); |
371 | 371 | ||
372 | 372 | ||
373 | QGridLayout* gridLayout = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); | 373 | QGridLayout* gridLayout = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); |
374 | 374 | ||
375 | int style = cfg. readNumEntry ( "TabStyle", 2 ) - 1; | 375 | int style = cfg. readNumEntry ( "TabStyle", 2 ) - 1; |
376 | bool tabtop = ( cfg. readEntry ( "TabPosition", "Top" ) == "Top" ); | 376 | bool tabtop = ( cfg. readEntry ( "TabPosition", "Top" ) == "Top" ); |
377 | 377 | ||
378 | QLabel* label = new QLabel( tr( "Tab style:" ), tab ); | 378 | QLabel* label = new QLabel( tr( "Tab style:" ), tab ); |
379 | gridLayout-> addWidget ( label, 0, 0 ); | 379 | gridLayout-> addWidget ( label, 0, 0 ); |
380 | QWhatsThis::add( label, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) ); | 380 | QWhatsThis::add( label, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) ); |
381 | 381 | ||
382 | QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" ); | 382 | QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" ); |
383 | btngrp-> hide ( ); | 383 | btngrp-> hide ( ); |
384 | btngrp-> setExclusive ( true ); | 384 | btngrp-> setExclusive ( true ); |
385 | 385 | ||
386 | m_tabstyle_list = new QComboBox ( false, tab, "tabstyle" ); | 386 | m_tabstyle_list = new QComboBox ( false, tab, "tabstyle" ); |
387 | m_tabstyle_list-> insertItem ( tr( "Tabs" )); | 387 | m_tabstyle_list-> insertItem ( tr( "Tabs" )); |
388 | m_tabstyle_list-> insertItem ( tr( "Tabs w/icons" )); | 388 | m_tabstyle_list-> insertItem ( tr( "Tabs w/icons" )); |
389 | m_tabstyle_list-> insertItem ( tr( "Drop down list" )); | 389 | m_tabstyle_list-> insertItem ( tr( "Drop down list" )); |
390 | m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" )); | 390 | m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" )); |
391 | m_tabstyle_list-> setCurrentItem ( style ); | 391 | m_tabstyle_list-> setCurrentItem ( style ); |
392 | gridLayout-> addMultiCellWidget ( m_tabstyle_list, 0, 0, 1, 2 ); | 392 | gridLayout-> addMultiCellWidget ( m_tabstyle_list, 0, 0, 1, 2 ); |
393 | QWhatsThis::add( m_tabstyle_list, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) ); | 393 | QWhatsThis::add( m_tabstyle_list, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) ); |
394 | 394 | ||
395 | m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" ); | 395 | m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" ); |
396 | btngrp-> insert ( m_tabstyle_top ); | 396 | btngrp-> insert ( m_tabstyle_top ); |
397 | gridLayout-> addWidget( m_tabstyle_top, 1, 1 ); | 397 | gridLayout-> addWidget( m_tabstyle_top, 1, 1 ); |
398 | QWhatsThis::add( m_tabstyle_top, tr( "Click here so that tabs appear at the top of the window." ) ); | 398 | QWhatsThis::add( m_tabstyle_top, tr( "Click here so that tabs appear at the top of the window." ) ); |
399 | 399 | ||
400 | m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" ); | 400 | m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" ); |
401 | btngrp-> insert ( m_tabstyle_bottom ); | 401 | btngrp-> insert ( m_tabstyle_bottom ); |
402 | gridLayout-> addWidget( m_tabstyle_bottom, 1, 2 ); | 402 | gridLayout-> addWidget( m_tabstyle_bottom, 1, 2 ); |
403 | QWhatsThis::add( m_tabstyle_bottom, tr( "Click here so that tabs appear at the bottom of the window." ) ); | 403 | QWhatsThis::add( m_tabstyle_bottom, tr( "Click here so that tabs appear at the bottom of the window." ) ); |
404 | 404 | ||
405 | m_tabstyle_top-> setChecked ( tabtop ); | 405 | m_tabstyle_top-> setChecked ( tabtop ); |
406 | m_tabstyle_bottom-> setChecked ( !tabtop ); | 406 | m_tabstyle_bottom-> setChecked ( !tabtop ); |
407 | 407 | ||
408 | m_original_tabstyle = style; | 408 | m_original_tabstyle = style; |
409 | m_original_tabpos = tabtop; | 409 | m_original_tabpos = tabtop; |
410 | 410 | ||
411 | vertLayout-> addSpacing ( 3 ); | 411 | vertLayout-> addSpacing ( 3 ); |
412 | QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 ); | 412 | QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 ); |
413 | 413 | ||
414 | QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab ); | 414 | QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab ); |
415 | m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" ); | 415 | m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" ); |
416 | QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( ); | 416 | QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( ); |
417 | m_rotdir_ccw = new QRadioButton( tab, "rotdir_ccw" ); | 417 | m_rotdir_ccw = new QRadioButton( tab, "rotdir_ccw" ); |
418 | QImage ccwImage = cw1. convertToImage( ). mirror( 1, 0 ); | 418 | QImage ccwImage = cw1. convertToImage( ). mirror( 1, 0 ); |
419 | QPixmap ccw1; | 419 | QPixmap ccw1; |
420 | m_rotdir_flip = new QRadioButton( tab, "rotdir_flip" ); | 420 | m_rotdir_flip = new QRadioButton( tab, "rotdir_flip" ); |
421 | QPixmap flip1 = Resource::loadIconSet("pass"). pixmap( ); | 421 | QPixmap flip1 = Resource::loadIconSet("pass"). pixmap( ); |
422 | QButtonGroup* rotbtngrp = new QButtonGroup( tab, "rotbuttongroup" ); | 422 | QButtonGroup* rotbtngrp = new QButtonGroup( tab, "rotbuttongroup" ); |
423 | 423 | ||
424 | rotbtngrp-> hide ( ); | 424 | rotbtngrp-> hide ( ); |
425 | rotbtngrp-> setExclusive ( true ); | 425 | rotbtngrp-> setExclusive ( true ); |
426 | rotbtngrp-> insert ( m_rotdir_cw ); | 426 | rotbtngrp-> insert ( m_rotdir_cw ); |
427 | rotbtngrp-> insert ( m_rotdir_ccw ); | 427 | rotbtngrp-> insert ( m_rotdir_ccw ); |
428 | rotbtngrp-> insert ( m_rotdir_flip ); | 428 | rotbtngrp-> insert ( m_rotdir_flip ); |
429 | 429 | ||
430 | ccw1. convertFromImage( ccwImage ); | 430 | ccw1. convertFromImage( ccwImage ); |
431 | m_rotdir_cw-> setPixmap( cw1 ); | 431 | m_rotdir_cw-> setPixmap( cw1 ); |
432 | m_rotdir_ccw-> setPixmap( ccw1 ); | 432 | m_rotdir_ccw-> setPixmap( ccw1 ); |
433 | m_rotdir_flip-> setPixmap( flip1 ); | 433 | m_rotdir_flip-> setPixmap( flip1 ); |
434 | 434 | ||
435 | rotLay-> addWidget ( rotlabel, 0 ); | 435 | rotLay-> addWidget ( rotlabel, 0 ); |
436 | rotLay-> addWidget ( m_rotdir_cw, 0 ); | 436 | rotLay-> addWidget ( m_rotdir_cw, 0 ); |
437 | rotLay-> addWidget ( m_rotdir_ccw, 0 ); | 437 | rotLay-> addWidget ( m_rotdir_ccw, 0 ); |
438 | rotLay-> addWidget ( m_rotdir_flip, 0 ); | 438 | rotLay-> addWidget ( m_rotdir_flip, 0 ); |
439 | 439 | ||
440 | int rotDirection = cfg.readNumEntry( "rotatedir" ); | 440 | int rotDirection = cfg.readNumEntry( "rotatedir" ); |
441 | ODirection rot = CW; | 441 | ODirection rot = CW; |
442 | 442 | ||
443 | if (rotDirection == -1) | 443 | if (rotDirection == -1) |
444 | { | 444 | { |
445 | rot = ODevice::inst ( )-> direction ( ); | 445 | rot = ODevice::inst ( )-> direction ( ); |
446 | } | 446 | } |
447 | else | 447 | else |
448 | { | 448 | { |
449 | rot = (ODirection)rotDirection; | 449 | rot = (ODirection)rotDirection; |
450 | } | 450 | } |
451 | 451 | ||
452 | m_rotdir_cw-> setChecked ( rot == CW ); | 452 | m_rotdir_cw-> setChecked ( rot == CW ); |
453 | m_rotdir_ccw-> setChecked ( rot == CCW ); | 453 | m_rotdir_ccw-> setChecked ( rot == CCW ); |
454 | m_rotdir_flip-> setChecked ( rot == Flip ); | 454 | m_rotdir_flip-> setChecked ( rot == Flip ); |
455 | 455 | ||
456 | return tab; | 456 | return tab; |
457 | } | 457 | } |
458 | 458 | ||
459 | 459 | ||
460 | Appearance::Appearance( QWidget* parent, const char* name, WFlags ) | 460 | Appearance::Appearance( QWidget* parent, const char* name, WFlags ) |
461 | : QDialog ( parent, name, true, WStyle_ContextHelp ) | 461 | : QDialog ( parent, name, true, WStyle_ContextHelp ) |
462 | { | 462 | { |
463 | setCaption( tr( "Appearance Settings" ) ); | 463 | setCaption( tr( "Appearance Settings" ) ); |
464 | 464 | ||
465 | Config config( "qpe" ); | 465 | Config config( "qpe" ); |
466 | config.setGroup( "Appearance" ); | 466 | config.setGroup( "Appearance" ); |
467 | 467 | ||
468 | QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 ); | 468 | QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 ); |
469 | 469 | ||
470 | m_sample = new SampleWindow ( this ); | 470 | m_sample = new SampleWindow ( this ); |
471 | 471 | ||
472 | m_sample-> setDecoration ( new DefaultWindowDecoration ( ) ); | 472 | m_sample-> setDecoration ( new DefaultWindowDecoration ( ) ); |
473 | QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) ); | 473 | QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) ); |
474 | 474 | ||
475 | OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); | 475 | OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); |
476 | QWidget *styletab; | 476 | QWidget *styletab; |
477 | 477 | ||
478 | m_color_list = 0; | 478 | m_color_list = 0; |
479 | 479 | ||
480 | tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance", tr( "Style" )); | 480 | tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance", tr( "Style" )); |
481 | tw-> addTab ( createFontTab ( tw, config ), "font", tr( "Font" )); | 481 | tw-> addTab ( createFontTab ( tw, config ), "font", tr( "Font" )); |
482 | tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) ); | 482 | tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) ); |
483 | tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) ); | 483 | tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) ); |
484 | tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) ); | 484 | tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) ); |
485 | 485 | ||
486 | top-> addWidget ( tw, 10 ); | 486 | top-> addWidget ( tw, 10 ); |
487 | top-> addWidget ( m_sample, 1 ); | 487 | top-> addWidget ( m_sample, 1 ); |
488 | 488 | ||
489 | tw-> setCurrentTab ( styletab ); | 489 | tw-> setCurrentTab ( styletab ); |
490 | connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * ))); | 490 | connect ( tw, SIGNAL( currentChanged(QWidget*)), this, SLOT( tabChanged(QWidget*))); |
491 | 491 | ||
492 | m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; | 492 | m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; |
493 | } | 493 | } |
494 | 494 | ||
495 | Appearance::~Appearance() | 495 | Appearance::~Appearance() |
496 | {} | 496 | {} |
497 | 497 | ||
498 | void Appearance::tabChanged ( QWidget *w ) | 498 | void Appearance::tabChanged ( QWidget *w ) |
499 | { | 499 | { |
500 | if ( w == m_advtab ) | 500 | if ( w == m_advtab ) |
501 | { | 501 | { |
502 | m_sample-> hide ( ); | 502 | m_sample-> hide ( ); |
503 | updateGeometry ( ); // shouldn't be necessary ... | 503 | updateGeometry ( ); // shouldn't be necessary ... |
504 | } | 504 | } |
505 | else | 505 | else |
506 | m_sample-> show ( ); | 506 | m_sample-> show ( ); |
507 | } | 507 | } |
508 | 508 | ||
509 | void Appearance::accept ( ) | 509 | void Appearance::accept ( ) |
510 | { | 510 | { |
511 | bool newtabpos = m_tabstyle_top-> isChecked ( ); | 511 | bool newtabpos = m_tabstyle_top-> isChecked ( ); |
512 | int newtabstyle = m_tabstyle_list-> currentItem ( ); | 512 | int newtabstyle = m_tabstyle_list-> currentItem ( ); |
513 | 513 | ||
514 | Config config ( "qpe" ); | 514 | Config config ( "qpe" ); |
515 | config. setGroup ( "Appearance" ); | 515 | config. setGroup ( "Appearance" ); |
516 | 516 | ||
517 | if ( m_style_changed ) | 517 | if ( m_style_changed ) |
518 | { | 518 | { |
519 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); | 519 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); |
520 | if ( item ) | 520 | if ( item ) |
521 | config.writeEntry( "Style", item-> key ( )); | 521 | config.writeEntry( "Style", item-> key ( )); |
522 | } | 522 | } |
523 | 523 | ||
524 | if ( m_deco_changed ) | 524 | if ( m_deco_changed ) |
525 | { | 525 | { |
526 | DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); | 526 | DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); |
527 | if ( item ) | 527 | if ( item ) |
528 | config.writeEntry( "Decoration", item-> key ( )); | 528 | config.writeEntry( "Decoration", item-> key ( )); |
529 | } | 529 | } |
530 | 530 | ||
531 | if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) | 531 | if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) |
532 | { | 532 | { |
533 | config. writeEntry ( "TabStyle", newtabstyle + 1 ); | 533 | config. writeEntry ( "TabStyle", newtabstyle + 1 ); |
534 | config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); | 534 | config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); |
535 | } | 535 | } |
536 | 536 | ||
537 | if ( m_font_changed ) | 537 | if ( m_font_changed ) |
538 | { | 538 | { |
539 | config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); | 539 | config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); |
540 | config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); | 540 | config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); |
541 | config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); | 541 | config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); |
542 | } | 542 | } |
543 | 543 | ||
544 | 544 | ||
545 | if ( m_color_changed ) | 545 | if ( m_color_changed ) |
546 | { | 546 | { |
547 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); | 547 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); |
548 | 548 | ||
549 | if ( item ) | 549 | if ( item ) |
550 | item-> save ( config ); | 550 | item-> save ( config ); |
551 | } | 551 | } |
552 | 552 | ||
553 | ODirection rot; | 553 | ODirection rot; |
554 | if (m_rotdir_ccw-> isChecked ( )) | 554 | if (m_rotdir_ccw-> isChecked ( )) |
555 | { | 555 | { |
556 | rot = CCW; | 556 | rot = CCW; |
557 | } | 557 | } |
558 | else if (m_rotdir_cw-> isChecked ( )) | 558 | else if (m_rotdir_cw-> isChecked ( )) |
559 | { | 559 | { |
560 | rot = CW; | 560 | rot = CW; |
561 | } | 561 | } |
562 | else | 562 | else |
563 | { | 563 | { |
564 | rot = Flip; | 564 | rot = Flip; |
565 | } | 565 | } |
566 | config. writeEntry ( "rotatedir", (int)rot ); | 566 | config. writeEntry ( "rotatedir", (int)rot ); |
567 | 567 | ||
568 | m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated | 568 | m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated |
569 | 569 | ||
570 | QStringList sl; | 570 | QStringList sl; |
571 | QString exceptstr; | 571 | QString exceptstr; |
572 | for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) | 572 | for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) |
573 | { | 573 | { |
574 | int fl = 0; | 574 | int fl = 0; |
575 | fl |= ( it-> noStyle ( ) ? 0x01 : 0 ); | 575 | fl |= ( it-> noStyle ( ) ? 0x01 : 0 ); |
576 | fl |= ( it-> noFont ( ) ? 0x02 : 0 ); | 576 | fl |= ( it-> noFont ( ) ? 0x02 : 0 ); |
577 | fl |= ( it-> noDeco ( ) ? 0x04 : 0 ); | 577 | fl |= ( it-> noDeco ( ) ? 0x04 : 0 ); |
578 | exceptstr = QString::number ( fl, 32 ); | 578 | exceptstr = QString::number ( fl, 32 ); |
579 | exceptstr.append( it-> pattern ( )); | 579 | exceptstr.append( it-> pattern ( )); |
580 | sl << exceptstr; | 580 | sl << exceptstr; |
581 | } | 581 | } |
582 | config. writeEntry ( "NoStyle", sl, ';' ); | 582 | config. writeEntry ( "NoStyle", sl, ';' ); |
583 | config. writeEntry ( "ForceStyle", m_force-> isChecked ( )); | 583 | config. writeEntry ( "ForceStyle", m_force-> isChecked ( )); |
584 | 584 | ||
585 | config. write ( ); // need to flush the config info first | 585 | config. write ( ); // need to flush the config info first |
586 | Global::applyStyle ( ); | 586 | Global::applyStyle ( ); |
diff --git a/noncore/settings/appearance2/sample.cpp b/noncore/settings/appearance2/sample.cpp index b3a9d48..f6c4dca 100644 --- a/noncore/settings/appearance2/sample.cpp +++ b/noncore/settings/appearance2/sample.cpp | |||
@@ -1,220 +1,220 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. Copyright (c) 2002 Trolltech AS <info@trolltech.com> | 3 | =. Copyright (c) 2002 Trolltech AS <info@trolltech.com> |
4 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> | 4 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 <qvbox.h> | 29 | #include <qvbox.h> |
30 | #include <qpopupmenu.h> | 30 | #include <qpopupmenu.h> |
31 | #include <qpainter.h> | 31 | #include <qpainter.h> |
32 | #include <qmenubar.h> | 32 | #include <qmenubar.h> |
33 | #include <qcheckbox.h> | 33 | #include <qcheckbox.h> |
34 | #include <qpushbutton.h> | 34 | #include <qpushbutton.h> |
35 | #include <qscrollbar.h> | 35 | #include <qscrollbar.h> |
36 | #include <qlayout.h> | 36 | #include <qlayout.h> |
37 | #include <qwhatsthis.h> | 37 | #include <qwhatsthis.h> |
38 | #include <qpixmapcache.h> | 38 | #include <qpixmapcache.h> |
39 | #include <qtimer.h> | 39 | #include <qtimer.h> |
40 | #include <qobjectlist.h> | 40 | #include <qobjectlist.h> |
41 | #include <qcommonstyle.h> | 41 | #include <qcommonstyle.h> |
42 | 42 | ||
43 | #include "sample.h" | 43 | #include "sample.h" |
44 | 44 | ||
45 | 45 | ||
46 | class SampleText : public QWidget | 46 | class SampleText : public QWidget |
47 | { | 47 | { |
48 | public: | 48 | public: |
49 | SampleText( const QString &t, bool h, QWidget *parent ) | 49 | SampleText( const QString &t, bool h, QWidget *parent ) |
50 | : QWidget( parent ), hl(h), text(t) | 50 | : QWidget( parent ), hl(h), text(t) |
51 | { | 51 | { |
52 | if ( hl ) | 52 | if ( hl ) |
53 | setBackgroundMode( PaletteHighlight ); | 53 | setBackgroundMode( PaletteHighlight ); |
54 | else | 54 | else |
55 | setBackgroundMode( PaletteBase ); | 55 | setBackgroundMode( PaletteBase ); |
56 | } | 56 | } |
57 | 57 | ||
58 | QSize sizeHint() const | 58 | QSize sizeHint() const |
59 | { | 59 | { |
60 | QFontMetrics fm(font()); | 60 | QFontMetrics fm(font()); |
61 | return QSize( fm.width(text)+10, fm.height()+4 ); | 61 | return QSize( fm.width(text)+10, fm.height()+4 ); |
62 | } | 62 | } |
63 | 63 | ||
64 | void paintEvent( QPaintEvent * ) | 64 | void paintEvent( QPaintEvent * ) |
65 | { | 65 | { |
66 | QPainter p(this); | 66 | QPainter p(this); |
67 | if ( hl ) | 67 | if ( hl ) |
68 | p.setPen( colorGroup().highlightedText() ); | 68 | p.setPen( colorGroup().highlightedText() ); |
69 | else | 69 | else |
70 | p.setPen( colorGroup().text() ); | 70 | p.setPen( colorGroup().text() ); |
71 | p.drawText( rect(), AlignCenter, text ); | 71 | p.drawText( rect(), AlignCenter, text ); |
72 | } | 72 | } |
73 | 73 | ||
74 | private: | 74 | private: |
75 | bool hl; | 75 | bool hl; |
76 | QString text; | 76 | QString text; |
77 | }; | 77 | }; |
78 | 78 | ||
79 | 79 | ||
80 | SampleWindow::SampleWindow( QWidget *parent ) : QWidget(parent), iface(0) | 80 | SampleWindow::SampleWindow( QWidget *parent ) : QWidget(parent), iface(0) |
81 | { | 81 | { |
82 | init(); | 82 | init(); |
83 | } | 83 | } |
84 | 84 | ||
85 | QSize SampleWindow::sizeHint() const | 85 | QSize SampleWindow::sizeHint() const |
86 | { | 86 | { |
87 | return container->sizeHint() + QSize( 10, 35 ); | 87 | return container->sizeHint() + QSize( 10, 35 ); |
88 | } | 88 | } |
89 | 89 | ||
90 | void SampleWindow::setFont( const QFont &f ) | 90 | void SampleWindow::setFont( const QFont &f ) |
91 | { | 91 | { |
92 | QWidget::setFont( f ); | 92 | QWidget::setFont( f ); |
93 | popup->setFont( f ); | 93 | popup->setFont( f ); |
94 | QTimer::singleShot ( 0, this, SLOT( fixGeometry ( ))); | 94 | QTimer::singleShot ( 0, this, SLOT( fixGeometry())); |
95 | } | 95 | } |
96 | 96 | ||
97 | static void setStyleRecursive ( QWidget *w, QStyle *s ) | 97 | static void setStyleRecursive ( QWidget *w, QStyle *s ) |
98 | { | 98 | { |
99 | w->setStyle( s ); | 99 | w->setStyle( s ); |
100 | QObjectList *childObjects=(QObjectList*)w->children(); | 100 | QObjectList *childObjects=(QObjectList*)w->children(); |
101 | if ( childObjects ) { | 101 | if ( childObjects ) { |
102 | QObject * o; | 102 | QObject * o; |
103 | for(o=childObjects->first();o!=0;o=childObjects->next()) { | 103 | for(o=childObjects->first();o!=0;o=childObjects->next()) { |
104 | if( o->isWidgetType() ) { | 104 | if( o->isWidgetType() ) { |
105 | setStyleRecursive((QWidget *)o,s); | 105 | setStyleRecursive((QWidget *)o,s); |
106 | } | 106 | } |
107 | } | 107 | } |
108 | } | 108 | } |
109 | } | 109 | } |
110 | 110 | ||
111 | 111 | ||
112 | void SampleWindow::setStyle2 ( QStyle *sty, const QPalette &pal ) | 112 | void SampleWindow::setStyle2 ( QStyle *sty, const QPalette &pal ) |
113 | { | 113 | { |
114 | typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, QColorGroup &, bool, bool); | 114 | typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, QColorGroup &, bool, bool); |
115 | 115 | ||
116 | extern QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl); | 116 | extern QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl); |
117 | 117 | ||
118 | QPixmapCache::clear ( ); | 118 | QPixmapCache::clear ( ); |
119 | QPalette p = pal; // ette ( ); | 119 | QPalette p = pal; // ette ( ); |
120 | sty-> polish ( p ); | 120 | sty-> polish ( p ); |
121 | qt_set_draw_menu_bar_impl ( 0 ); | 121 | qt_set_draw_menu_bar_impl ( 0 ); |
122 | setStyleRecursive ( this, sty ); | 122 | setStyleRecursive ( this, sty ); |
123 | setPalette ( p ); | 123 | setPalette ( p ); |
124 | QTimer::singleShot ( 0, this, SLOT( fixGeometry ( ))); | 124 | QTimer::singleShot ( 0, this, SLOT( fixGeometry())); |
125 | } | 125 | } |
126 | 126 | ||
127 | 127 | ||
128 | void SampleWindow::setDecoration( WindowDecorationInterface *i ) | 128 | void SampleWindow::setDecoration( WindowDecorationInterface *i ) |
129 | { | 129 | { |
130 | iface = i; | 130 | iface = i; |
131 | wd.rect = QRect( 0, 0, 150, 75 ); | 131 | wd.rect = QRect( 0, 0, 150, 75 ); |
132 | wd.caption = tr("Sample"); | 132 | wd.caption = tr("Sample"); |
133 | wd.palette = palette(); | 133 | wd.palette = palette(); |
134 | wd.flags = WindowDecorationInterface::WindowData::Dialog | | 134 | wd.flags = WindowDecorationInterface::WindowData::Dialog | |
135 | WindowDecorationInterface::WindowData::Active; | 135 | WindowDecorationInterface::WindowData::Active; |
136 | wd.reserved = 1; | 136 | wd.reserved = 1; |
137 | 137 | ||
138 | th = iface->metric(WindowDecorationInterface::TitleHeight, &wd); | 138 | th = iface->metric(WindowDecorationInterface::TitleHeight, &wd); |
139 | tb = iface->metric(WindowDecorationInterface::TopBorder, &wd); | 139 | tb = iface->metric(WindowDecorationInterface::TopBorder, &wd); |
140 | lb = iface->metric(WindowDecorationInterface::LeftBorder, &wd); | 140 | lb = iface->metric(WindowDecorationInterface::LeftBorder, &wd); |
141 | rb = iface->metric(WindowDecorationInterface::RightBorder, &wd); | 141 | rb = iface->metric(WindowDecorationInterface::RightBorder, &wd); |
142 | bb = iface->metric(WindowDecorationInterface::BottomBorder, &wd); | 142 | bb = iface->metric(WindowDecorationInterface::BottomBorder, &wd); |
143 | 143 | ||
144 | int yoff = th + tb; | 144 | int yoff = th + tb; |
145 | int xoff = lb; | 145 | int xoff = lb; |
146 | 146 | ||
147 | wd.rect.setX( 0 ); | 147 | wd.rect.setX( 0 ); |
148 | wd.rect.setWidth( width() - lb - rb ); | 148 | wd.rect.setWidth( width() - lb - rb ); |
149 | wd.rect.setY( 0 ); | 149 | wd.rect.setY( 0 ); |
150 | wd.rect.setHeight( height() - yoff - bb ); | 150 | wd.rect.setHeight( height() - yoff - bb ); |
151 | 151 | ||
152 | container->setGeometry( xoff, yoff, wd.rect.width(), wd.rect.height() ); | 152 | container->setGeometry( xoff, yoff, wd.rect.width(), wd.rect.height() ); |
153 | setMinimumSize( container->sizeHint().width()+lb+rb, | 153 | setMinimumSize( container->sizeHint().width()+lb+rb, |
154 | container->sizeHint().height()+tb+th+bb ); | 154 | container->sizeHint().height()+tb+th+bb ); |
155 | } | 155 | } |
156 | 156 | ||
157 | void SampleWindow::paintEvent( QPaintEvent * ) | 157 | void SampleWindow::paintEvent( QPaintEvent * ) |
158 | { | 158 | { |
159 | if ( !iface ) | 159 | if ( !iface ) |
160 | return; | 160 | return; |
161 | 161 | ||
162 | QPainter p( this ); | 162 | QPainter p( this ); |
163 | 163 | ||
164 | p.translate( lb, th+tb ); | 164 | p.translate( lb, th+tb ); |
165 | 165 | ||
166 | iface->drawArea(WindowDecorationInterface::Border, &p, &wd); | 166 | iface->drawArea(WindowDecorationInterface::Border, &p, &wd); |
167 | iface->drawArea(WindowDecorationInterface::Title, &p, &wd); | 167 | iface->drawArea(WindowDecorationInterface::Title, &p, &wd); |
168 | 168 | ||
169 | p.setPen(palette().active().color(QColorGroup::HighlightedText)); | 169 | p.setPen(palette().active().color(QColorGroup::HighlightedText)); |
170 | QFont f( font() ); | 170 | QFont f( font() ); |
171 | f.setWeight( QFont::Bold ); | 171 | f.setWeight( QFont::Bold ); |
172 | p.setFont(f); | 172 | p.setFont(f); |
173 | iface->drawArea(WindowDecorationInterface::TitleText, &p, &wd); | 173 | iface->drawArea(WindowDecorationInterface::TitleText, &p, &wd); |
174 | 174 | ||
175 | QRect brect( 0, -th, iface->metric(WindowDecorationInterface::HelpWidth,&wd), th ); | 175 | QRect brect( 0, -th, iface->metric(WindowDecorationInterface::HelpWidth,&wd), th ); |
176 | iface->drawButton( WindowDecorationInterface::Help, &p, &wd, | 176 | iface->drawButton( WindowDecorationInterface::Help, &p, &wd, |
177 | brect.x(), brect.y(), brect.width(), brect.height(), (QWSButton::State)0 ); | 177 | brect.x(), brect.y(), brect.width(), brect.height(), (QWSButton::State)0 ); |
178 | brect.moveBy( wd.rect.width() - | 178 | brect.moveBy( wd.rect.width() - |
179 | iface->metric(WindowDecorationInterface::OKWidth,&wd) - | 179 | iface->metric(WindowDecorationInterface::OKWidth,&wd) - |
180 | iface->metric(WindowDecorationInterface::CloseWidth,&wd), 0 ); | 180 | iface->metric(WindowDecorationInterface::CloseWidth,&wd), 0 ); |
181 | iface->drawButton( WindowDecorationInterface::Close, &p, &wd, | 181 | iface->drawButton( WindowDecorationInterface::Close, &p, &wd, |
182 | brect.x(), brect.y(), brect.width(), brect.height(), (QWSButton::State)0 ); | 182 | brect.x(), brect.y(), brect.width(), brect.height(), (QWSButton::State)0 ); |
183 | brect.moveBy( iface->metric(WindowDecorationInterface::CloseWidth,&wd), 0 ); | 183 | brect.moveBy( iface->metric(WindowDecorationInterface::CloseWidth,&wd), 0 ); |
184 | iface->drawButton( WindowDecorationInterface::OK, &p, &wd, | 184 | iface->drawButton( WindowDecorationInterface::OK, &p, &wd, |
185 | brect.x(), brect.y(), brect.width(), brect.height(), (QWSButton::State)0 ); | 185 | brect.x(), brect.y(), brect.width(), brect.height(), (QWSButton::State)0 ); |
186 | } | 186 | } |
187 | 187 | ||
188 | void SampleWindow::init() | 188 | void SampleWindow::init() |
189 | { | 189 | { |
190 | container = new QVBox( this ); | 190 | container = new QVBox( this ); |
191 | popup = new QPopupMenu( this ); | 191 | popup = new QPopupMenu( this ); |
192 | popup->insertItem( tr("Normal Item"), 1 ); | 192 | popup->insertItem( tr("Normal Item"), 1 ); |
193 | popup->insertItem( tr("Disabled Item"), 2 ); | 193 | popup->insertItem( tr("Disabled Item"), 2 ); |
194 | popup->setItemEnabled(2, FALSE); | 194 | popup->setItemEnabled(2, FALSE); |
195 | QMenuBar *mb = new QMenuBar( container ); | 195 | QMenuBar *mb = new QMenuBar( container ); |
196 | mb->insertItem( tr("Menu"), popup ); | 196 | mb->insertItem( tr("Menu"), popup ); |
197 | QHBox *hb = new QHBox( container ); | 197 | QHBox *hb = new QHBox( container ); |
198 | QWidget *w = new QWidget( hb ); | 198 | QWidget *w = new QWidget( hb ); |
199 | (void)new QScrollBar( 0, 0, 0, 0, 0, Vertical, hb ); | 199 | (void)new QScrollBar( 0, 0, 0, 0, 0, Vertical, hb ); |
200 | 200 | ||
201 | QGridLayout *gl = new QGridLayout( w, 2, 2, 4 ); | 201 | QGridLayout *gl = new QGridLayout( w, 2, 2, 4 ); |
202 | SampleText *l = new SampleText( tr("Normal Text"), FALSE, w ); | 202 | SampleText *l = new SampleText( tr("Normal Text"), FALSE, w ); |
203 | gl->addWidget( l, 0, 0 ); | 203 | gl->addWidget( l, 0, 0 ); |
204 | 204 | ||
205 | l = new SampleText( tr("Highlighted Text"), TRUE, w ); | 205 | l = new SampleText( tr("Highlighted Text"), TRUE, w ); |
206 | gl->addWidget( l, 1, 0 ); | 206 | gl->addWidget( l, 1, 0 ); |
207 | 207 | ||
208 | QPushButton *pb = new QPushButton( tr("Button"), w ); | 208 | QPushButton *pb = new QPushButton( tr("Button"), w ); |
209 | gl->addWidget( pb, 0, 1 ); | 209 | gl->addWidget( pb, 0, 1 ); |
210 | pb->setFocusPolicy( NoFocus ); | 210 | pb->setFocusPolicy( NoFocus ); |
211 | 211 | ||
212 | QCheckBox *cb = new QCheckBox( tr("Check Box"), w ); | 212 | QCheckBox *cb = new QCheckBox( tr("Check Box"), w ); |
213 | gl->addWidget( cb, 1, 1 ); | 213 | gl->addWidget( cb, 1, 1 ); |
214 | cb->setFocusPolicy( NoFocus ); | 214 | cb->setFocusPolicy( NoFocus ); |
215 | cb->setChecked( TRUE ); | 215 | cb->setChecked( TRUE ); |
216 | 216 | ||
217 | QWhatsThis::add( this, tr("Sample window using the selected settings.") ); | 217 | QWhatsThis::add( this, tr("Sample window using the selected settings.") ); |
218 | } | 218 | } |
219 | 219 | ||
220 | bool SampleWindow::eventFilter( QObject *, QEvent *e ) | 220 | bool SampleWindow::eventFilter( QObject *, QEvent *e ) |
diff --git a/noncore/settings/aqpkg/inputdlg.cpp b/noncore/settings/aqpkg/inputdlg.cpp index 06e934c..30f0527 100644 --- a/noncore/settings/aqpkg/inputdlg.cpp +++ b/noncore/settings/aqpkg/inputdlg.cpp | |||
@@ -1,134 +1,134 @@ | |||
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 Andy Qua <andy.qua@blueyonder.co.uk> | 4 | =. Copyright (c) 2002 Andy Qua <andy.qua@blueyonder.co.uk> |
5 | .=l. Dan Williams <drw@handhelds.org> | 5 | .=l. Dan Williams <drw@handhelds.org> |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This file is free software; you can | 7 | _;:, .> :=|. This file 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 file is distributed in the hope that | 14 | .i_,=:_. -<s. This file 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 General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <qlayout.h> | 30 | #include <qlayout.h> |
31 | #include <qlabel.h> | 31 | #include <qlabel.h> |
32 | #include <qlineedit.h> | 32 | #include <qlineedit.h> |
33 | #include <qpushbutton.h> | 33 | #include <qpushbutton.h> |
34 | #include <qspinbox.h> | 34 | #include <qspinbox.h> |
35 | #include <qcombobox.h> | 35 | #include <qcombobox.h> |
36 | #include <qwidgetstack.h> | 36 | #include <qwidgetstack.h> |
37 | #include <qvalidator.h> | 37 | #include <qvalidator.h> |
38 | #include <qapplication.h> | 38 | #include <qapplication.h> |
39 | 39 | ||
40 | #include "inputdlg.h" | 40 | #include "inputdlg.h" |
41 | #include "global.h" | 41 | #include "global.h" |
42 | 42 | ||
43 | 43 | ||
44 | InputDialog :: InputDialog( const QString &label, QWidget* parent, const char* name, | 44 | InputDialog :: InputDialog( const QString &label, QWidget* parent, const char* name, |
45 | bool modal ) | 45 | bool modal ) |
46 | : QDialog( parent, name, modal ) | 46 | : QDialog( parent, name, modal ) |
47 | { | 47 | { |
48 | lineEdit = 0; | 48 | lineEdit = 0; |
49 | 49 | ||
50 | QVBoxLayout *vbox = new QVBoxLayout( this, 6, 6 ); | 50 | QVBoxLayout *vbox = new QVBoxLayout( this, 6, 6 ); |
51 | 51 | ||
52 | QLabel* l = new QLabel( label, this ); | 52 | QLabel* l = new QLabel( label, this ); |
53 | vbox->addWidget( l ); | 53 | vbox->addWidget( l ); |
54 | 54 | ||
55 | lineEdit = new QLineEdit( this ); | 55 | lineEdit = new QLineEdit( this ); |
56 | vbox->addWidget( lineEdit ); | 56 | vbox->addWidget( lineEdit ); |
57 | 57 | ||
58 | QHBoxLayout *hbox = new QHBoxLayout( 6 ); | 58 | QHBoxLayout *hbox = new QHBoxLayout( 6 ); |
59 | vbox->addLayout( hbox, AlignRight ); | 59 | vbox->addLayout( hbox, AlignRight ); |
60 | 60 | ||
61 | ok = new QPushButton( tr( "&OK" ), this ); | 61 | ok = new QPushButton( tr( "&OK" ), this ); |
62 | ok->setDefault( TRUE ); | 62 | ok->setDefault( TRUE ); |
63 | QPushButton *cancel = new QPushButton( tr( "&Cancel" ), this ); | 63 | QPushButton *cancel = new QPushButton( tr( "&Cancel" ), this ); |
64 | 64 | ||
65 | QSize bs( ok->sizeHint() ); | 65 | QSize bs( ok->sizeHint() ); |
66 | if ( cancel->sizeHint().width() > bs.width() ) | 66 | if ( cancel->sizeHint().width() > bs.width() ) |
67 | bs.setWidth( cancel->sizeHint().width() ); | 67 | bs.setWidth( cancel->sizeHint().width() ); |
68 | 68 | ||
69 | ok->setFixedSize( bs ); | 69 | ok->setFixedSize( bs ); |
70 | cancel->setFixedSize( bs ); | 70 | cancel->setFixedSize( bs ); |
71 | 71 | ||
72 | hbox->addWidget( new QWidget( this ) ); | 72 | hbox->addWidget( new QWidget( this ) ); |
73 | hbox->addWidget( ok ); | 73 | hbox->addWidget( ok ); |
74 | hbox->addWidget( cancel ); | 74 | hbox->addWidget( cancel ); |
75 | 75 | ||
76 | connect( lineEdit, SIGNAL( returnPressed() ), | 76 | connect( lineEdit, SIGNAL( returnPressed() ), |
77 | this, SLOT( tryAccept() ) ); | 77 | this, SLOT( tryAccept() ) ); |
78 | connect( lineEdit, SIGNAL( textChanged( const QString & ) ), | 78 | connect( lineEdit, SIGNAL( textChanged(const QString&) ), |
79 | this, SLOT( textChanged( const QString & ) ) ); | 79 | this, SLOT( textChanged(const QString&) ) ); |
80 | 80 | ||
81 | connect( ok, SIGNAL( clicked() ), this, SLOT( accept() ) ); | 81 | connect( ok, SIGNAL( clicked() ), this, SLOT( accept() ) ); |
82 | connect( cancel, SIGNAL( clicked() ), this, SLOT( reject() ) ); | 82 | connect( cancel, SIGNAL( clicked() ), this, SLOT( reject() ) ); |
83 | 83 | ||
84 | resize( QMAX( sizeHint().width(), 240 ), sizeHint().height() ); | 84 | resize( QMAX( sizeHint().width(), 240 ), sizeHint().height() ); |
85 | } | 85 | } |
86 | 86 | ||
87 | /*! | 87 | /*! |
88 | Destructor. | 88 | Destructor. |
89 | */ | 89 | */ |
90 | 90 | ||
91 | InputDialog::~InputDialog() | 91 | InputDialog::~InputDialog() |
92 | { | 92 | { |
93 | } | 93 | } |
94 | 94 | ||
95 | void InputDialog :: setText( const QString &text ) | 95 | void InputDialog :: setText( const QString &text ) |
96 | { | 96 | { |
97 | lineEdit->setText( text ); | 97 | lineEdit->setText( text ); |
98 | lineEdit->selectAll(); | 98 | lineEdit->selectAll(); |
99 | } | 99 | } |
100 | 100 | ||
101 | QString InputDialog :: getText() | 101 | QString InputDialog :: getText() |
102 | { | 102 | { |
103 | return lineEdit->text(); | 103 | return lineEdit->text(); |
104 | } | 104 | } |
105 | 105 | ||
106 | QString InputDialog::getText( const QString &caption, const QString &label, | 106 | QString InputDialog::getText( const QString &caption, const QString &label, |
107 | const QString &text, bool *ok, QWidget *parent, | 107 | const QString &text, bool *ok, QWidget *parent, |
108 | const char *name ) | 108 | const char *name ) |
109 | { | 109 | { |
110 | InputDialog *dlg = new InputDialog( label, parent, name, true ); | 110 | InputDialog *dlg = new InputDialog( label, parent, name, true ); |
111 | dlg->setCaption( caption ); | 111 | dlg->setCaption( caption ); |
112 | dlg->setText( text ); | 112 | dlg->setText( text ); |
113 | 113 | ||
114 | QString result; | 114 | QString result; |
115 | *ok = dlg->exec() == QDialog::Accepted; | 115 | *ok = dlg->exec() == QDialog::Accepted; |
116 | if ( *ok ) | 116 | if ( *ok ) |
117 | result = dlg->getText(); | 117 | result = dlg->getText(); |
118 | 118 | ||
119 | delete dlg; | 119 | delete dlg; |
120 | return result; | 120 | return result; |
121 | } | 121 | } |
122 | 122 | ||
123 | 123 | ||
124 | 124 | ||
125 | void InputDialog :: textChanged( const QString &s ) | 125 | void InputDialog :: textChanged( const QString &s ) |
126 | { | 126 | { |
127 | ok->setEnabled( !s.isEmpty() ); | 127 | ok->setEnabled( !s.isEmpty() ); |
128 | } | 128 | } |
129 | 129 | ||
130 | void InputDialog :: tryAccept() | 130 | void InputDialog :: tryAccept() |
131 | { | 131 | { |
132 | if ( !lineEdit->text().isEmpty() ) | 132 | if ( !lineEdit->text().isEmpty() ) |
133 | accept(); | 133 | accept(); |
134 | } | 134 | } |
diff --git a/noncore/settings/aqpkg/installdlgimpl.cpp b/noncore/settings/aqpkg/installdlgimpl.cpp index d927a36..d2babb4 100644 --- a/noncore/settings/aqpkg/installdlgimpl.cpp +++ b/noncore/settings/aqpkg/installdlgimpl.cpp | |||
@@ -79,321 +79,321 @@ InstallDlgImpl::InstallDlgImpl( const QList<InstallData> &packageList, DataManag | |||
79 | 79 | ||
80 | // Grab flags - Turn MAKE_LINKS on by default (if no flags found) | 80 | // Grab flags - Turn MAKE_LINKS on by default (if no flags found) |
81 | flags = cfg.readNumEntry( "installFlags", 0 ); | 81 | flags = cfg.readNumEntry( "installFlags", 0 ); |
82 | infoLevel = cfg.readNumEntry( "infoLevel", 1 ); | 82 | infoLevel = cfg.readNumEntry( "infoLevel", 1 ); |
83 | #else | 83 | #else |
84 | flags = 0; | 84 | flags = 0; |
85 | #endif | 85 | #endif |
86 | 86 | ||
87 | // Output text is read only | 87 | // Output text is read only |
88 | output->setReadOnly( true ); | 88 | output->setReadOnly( true ); |
89 | // QFont f( "helvetica" ); | 89 | // QFont f( "helvetica" ); |
90 | // f.setPointSize( 10 ); | 90 | // f.setPointSize( 10 ); |
91 | // output->setFont( f ); | 91 | // output->setFont( f ); |
92 | 92 | ||
93 | 93 | ||
94 | // setup destination data | 94 | // setup destination data |
95 | int defIndex = 0; | 95 | int defIndex = 0; |
96 | int i; | 96 | int i; |
97 | QListIterator<Destination> dit( dataMgr->getDestinationList() ); | 97 | QListIterator<Destination> dit( dataMgr->getDestinationList() ); |
98 | for ( i = 0; dit.current(); ++dit, ++i ) | 98 | for ( i = 0; dit.current(); ++dit, ++i ) |
99 | { | 99 | { |
100 | destination->insertItem( dit.current()->getDestinationName() ); | 100 | destination->insertItem( dit.current()->getDestinationName() ); |
101 | if ( dit.current()->getDestinationName() == defaultDest ) | 101 | if ( dit.current()->getDestinationName() == defaultDest ) |
102 | defIndex = i; | 102 | defIndex = i; |
103 | } | 103 | } |
104 | 104 | ||
105 | destination->setCurrentItem( defIndex ); | 105 | destination->setCurrentItem( defIndex ); |
106 | 106 | ||
107 | QListIterator<InstallData> it( packageList ); | 107 | QListIterator<InstallData> it( packageList ); |
108 | // setup package data | 108 | // setup package data |
109 | QString remove = tr( "Remove\n" ); | 109 | QString remove = tr( "Remove\n" ); |
110 | QString install = tr( "Install\n" ); | 110 | QString install = tr( "Install\n" ); |
111 | QString upgrade = tr( "Upgrade\n" ); | 111 | QString upgrade = tr( "Upgrade\n" ); |
112 | for ( ; it.current(); ++it ) | 112 | for ( ; it.current(); ++it ) |
113 | { | 113 | { |
114 | InstallData *item = it.current(); | 114 | InstallData *item = it.current(); |
115 | InstallData *newitem = new InstallData(); | 115 | InstallData *newitem = new InstallData(); |
116 | 116 | ||
117 | newitem->option = item->option; | 117 | newitem->option = item->option; |
118 | newitem->packageName = item->packageName; | 118 | newitem->packageName = item->packageName; |
119 | newitem->destination = item->destination; | 119 | newitem->destination = item->destination; |
120 | newitem->recreateLinks = item->recreateLinks; | 120 | newitem->recreateLinks = item->recreateLinks; |
121 | packages.append( newitem ); | 121 | packages.append( newitem ); |
122 | 122 | ||
123 | if ( item->option == "I" ) | 123 | if ( item->option == "I" ) |
124 | { | 124 | { |
125 | install.append( QString( " %1\n" ).arg( item->packageName ) ); | 125 | install.append( QString( " %1\n" ).arg( item->packageName ) ); |
126 | } | 126 | } |
127 | else if ( item->option == "D" ) | 127 | else if ( item->option == "D" ) |
128 | { | 128 | { |
129 | remove.append( QString( " %1\n" ).arg( item->packageName ) ); | 129 | remove.append( QString( " %1\n" ).arg( item->packageName ) ); |
130 | } | 130 | } |
131 | else if ( item->option == "U" || item->option == "R" ) | 131 | else if ( item->option == "U" || item->option == "R" ) |
132 | { | 132 | { |
133 | QString type; | 133 | QString type; |
134 | if ( item->option == "R" ) | 134 | if ( item->option == "R" ) |
135 | type = tr( "(ReInstall)" ); | 135 | type = tr( "(ReInstall)" ); |
136 | else | 136 | else |
137 | type = tr( "(Upgrade)" ); | 137 | type = tr( "(Upgrade)" ); |
138 | upgrade.append( QString( " %1 %2\n" ).arg( item->packageName ).arg( type ) ); | 138 | upgrade.append( QString( " %1 %2\n" ).arg( item->packageName ).arg( type ) ); |
139 | } | 139 | } |
140 | } | 140 | } |
141 | 141 | ||
142 | output->setText( QString( "%1\n%2\n%3\n" ).arg( remove ).arg( install ).arg( upgrade ) ); | 142 | output->setText( QString( "%1\n%2\n%3\n" ).arg( remove ).arg( install ).arg( upgrade ) ); |
143 | 143 | ||
144 | displayAvailableSpace( destination->currentText() ); | 144 | displayAvailableSpace( destination->currentText() ); |
145 | } | 145 | } |
146 | 146 | ||
147 | InstallDlgImpl::InstallDlgImpl( Ipkg *ipkg, QString initialText, const char *title ) | 147 | InstallDlgImpl::InstallDlgImpl( Ipkg *ipkg, QString initialText, const char *title ) |
148 | : QWidget( 0, 0, 0 ) | 148 | : QWidget( 0, 0, 0 ) |
149 | { | 149 | { |
150 | setCaption( title ); | 150 | setCaption( title ); |
151 | init( FALSE ); | 151 | init( FALSE ); |
152 | pIpkg = ipkg; | 152 | pIpkg = ipkg; |
153 | output->setText( initialText ); | 153 | output->setText( initialText ); |
154 | } | 154 | } |
155 | 155 | ||
156 | 156 | ||
157 | InstallDlgImpl::~InstallDlgImpl() | 157 | InstallDlgImpl::~InstallDlgImpl() |
158 | { | 158 | { |
159 | if ( pIpkg ) | 159 | if ( pIpkg ) |
160 | delete pIpkg; | 160 | delete pIpkg; |
161 | } | 161 | } |
162 | 162 | ||
163 | void InstallDlgImpl :: init( bool displayextrainfo ) | 163 | void InstallDlgImpl :: init( bool displayextrainfo ) |
164 | { | 164 | { |
165 | QGridLayout *layout = new QGridLayout( this ); | 165 | QGridLayout *layout = new QGridLayout( this ); |
166 | layout->setSpacing( 4 ); | 166 | layout->setSpacing( 4 ); |
167 | layout->setMargin( 4 ); | 167 | layout->setMargin( 4 ); |
168 | 168 | ||
169 | if ( displayextrainfo ) | 169 | if ( displayextrainfo ) |
170 | { | 170 | { |
171 | QLabel *label = new QLabel( tr( "Destination" ), this ); | 171 | QLabel *label = new QLabel( tr( "Destination" ), this ); |
172 | layout->addWidget( label, 0, 0 ); | 172 | layout->addWidget( label, 0, 0 ); |
173 | destination = new QComboBox( FALSE, this ); | 173 | destination = new QComboBox( FALSE, this ); |
174 | layout->addWidget( destination, 0, 1 ); | 174 | layout->addWidget( destination, 0, 1 ); |
175 | connect( destination, SIGNAL( highlighted( const QString & ) ), | 175 | connect( destination, SIGNAL( highlighted(const QString&) ), |
176 | this, SLOT( displayAvailableSpace( const QString & ) ) ); | 176 | this, SLOT( displayAvailableSpace(const QString&) ) ); |
177 | 177 | ||
178 | QLabel *label2 = new QLabel( tr( "Space Avail" ), this ); | 178 | QLabel *label2 = new QLabel( tr( "Space Avail" ), this ); |
179 | layout->addWidget( label2, 1, 0 ); | 179 | layout->addWidget( label2, 1, 0 ); |
180 | txtAvailableSpace = new QLabel( "", this ); | 180 | txtAvailableSpace = new QLabel( "", this ); |
181 | layout->addWidget( txtAvailableSpace, 1, 1 ); | 181 | layout->addWidget( txtAvailableSpace, 1, 1 ); |
182 | } | 182 | } |
183 | else | 183 | else |
184 | { | 184 | { |
185 | destination = 0x0; | 185 | destination = 0x0; |
186 | txtAvailableSpace = 0x0; | 186 | txtAvailableSpace = 0x0; |
187 | } | 187 | } |
188 | 188 | ||
189 | QGroupBox *GroupBox2 = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this ); | 189 | QGroupBox *GroupBox2 = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this ); |
190 | GroupBox2->layout()->setSpacing( 0 ); | 190 | GroupBox2->layout()->setSpacing( 0 ); |
191 | GroupBox2->layout()->setMargin( 4 ); | 191 | GroupBox2->layout()->setMargin( 4 ); |
192 | 192 | ||
193 | QVBoxLayout *GroupBox2Layout = new QVBoxLayout( GroupBox2->layout() ); | 193 | QVBoxLayout *GroupBox2Layout = new QVBoxLayout( GroupBox2->layout() ); |
194 | output = new QMultiLineEdit( GroupBox2 ); | 194 | output = new QMultiLineEdit( GroupBox2 ); |
195 | GroupBox2Layout->addWidget( output ); | 195 | GroupBox2Layout->addWidget( output ); |
196 | layout->addMultiCellWidget( GroupBox2, 2, 2, 0, 1 ); | 196 | layout->addMultiCellWidget( GroupBox2, 2, 2, 0, 1 ); |
197 | 197 | ||
198 | btnInstall = new QPushButton( Resource::loadPixmap( "aqpkg/apply" ), tr( "Start" ), this ); | 198 | btnInstall = new QPushButton( Resource::loadPixmap( "aqpkg/apply" ), tr( "Start" ), this ); |
199 | layout->addWidget( btnInstall, 3, 0 ); | 199 | layout->addWidget( btnInstall, 3, 0 ); |
200 | connect( btnInstall, SIGNAL( clicked() ), this, SLOT( installSelected() ) ); | 200 | connect( btnInstall, SIGNAL( clicked() ), this, SLOT( installSelected() ) ); |
201 | 201 | ||
202 | btnOptions = new QPushButton( Resource::loadPixmap( "SettingsIcon" ), tr( "Options" ), this ); | 202 | btnOptions = new QPushButton( Resource::loadPixmap( "SettingsIcon" ), tr( "Options" ), this ); |
203 | layout->addWidget( btnOptions, 3, 1 ); | 203 | layout->addWidget( btnOptions, 3, 1 ); |
204 | connect( btnOptions, SIGNAL( clicked() ), this, SLOT( optionsSelected() ) ); | 204 | connect( btnOptions, SIGNAL( clicked() ), this, SLOT( optionsSelected() ) ); |
205 | } | 205 | } |
206 | 206 | ||
207 | void InstallDlgImpl :: optionsSelected() | 207 | void InstallDlgImpl :: optionsSelected() |
208 | { | 208 | { |
209 | if ( btnOptions->text() == tr( "Options" ) ) | 209 | if ( btnOptions->text() == tr( "Options" ) ) |
210 | { | 210 | { |
211 | InstallOptionsDlgImpl opt( flags, infoLevel, this, "Option", true ); | 211 | InstallOptionsDlgImpl opt( flags, infoLevel, this, "Option", true ); |
212 | if ( opt.exec() == QDialog::Accepted ) | 212 | if ( opt.exec() == QDialog::Accepted ) |
213 | { | 213 | { |
214 | // set options selected from dialog | 214 | // set options selected from dialog |
215 | flags = opt.getFlags(); | 215 | flags = opt.getFlags(); |
216 | infoLevel = opt.getInfoLevel(); | 216 | infoLevel = opt.getInfoLevel(); |
217 | 217 | ||
218 | #ifdef QWS | 218 | #ifdef QWS |
219 | Config cfg( "aqpkg" ); | 219 | Config cfg( "aqpkg" ); |
220 | cfg.setGroup( "settings" ); | 220 | cfg.setGroup( "settings" ); |
221 | cfg.writeEntry( "installFlags", flags ); | 221 | cfg.writeEntry( "installFlags", flags ); |
222 | cfg.writeEntry( "infoLevel", infoLevel ); | 222 | cfg.writeEntry( "infoLevel", infoLevel ); |
223 | #endif | 223 | #endif |
224 | } | 224 | } |
225 | } | 225 | } |
226 | else // Save output | 226 | else // Save output |
227 | { | 227 | { |
228 | QMap<QString, QStringList> map; | 228 | QMap<QString, QStringList> map; |
229 | map.insert( tr( "All" ), QStringList() ); | 229 | map.insert( tr( "All" ), QStringList() ); |
230 | QStringList text; | 230 | QStringList text; |
231 | text << "text/*"; | 231 | text << "text/*"; |
232 | map.insert(tr( "Text" ), text ); | 232 | map.insert(tr( "Text" ), text ); |
233 | text << "*"; | 233 | text << "*"; |
234 | map.insert( tr( "All" ), text ); | 234 | map.insert( tr( "All" ), text ); |
235 | 235 | ||
236 | QString filename = Opie::OFileDialog::getSaveFileName( 2, "/", "ipkg-output", map ); | 236 | QString filename = Opie::OFileDialog::getSaveFileName( 2, "/", "ipkg-output", map ); |
237 | if( !filename.isEmpty() ) | 237 | if( !filename.isEmpty() ) |
238 | { | 238 | { |
239 | QString currentFileName = QFileInfo( filename ).fileName(); | 239 | QString currentFileName = QFileInfo( filename ).fileName(); |
240 | DocLnk doc; | 240 | DocLnk doc; |
241 | doc.setType( "text/plain" ); | 241 | doc.setType( "text/plain" ); |
242 | doc.setFile( filename ); | 242 | doc.setFile( filename ); |
243 | doc.setName( currentFileName ); | 243 | doc.setName( currentFileName ); |
244 | FileManager fm; | 244 | FileManager fm; |
245 | fm.saveFile( doc, output->text() ); | 245 | fm.saveFile( doc, output->text() ); |
246 | } | 246 | } |
247 | } | 247 | } |
248 | } | 248 | } |
249 | 249 | ||
250 | void InstallDlgImpl :: installSelected() | 250 | void InstallDlgImpl :: installSelected() |
251 | { | 251 | { |
252 | if ( btnInstall->text() == tr( "Abort" ) ) | 252 | if ( btnInstall->text() == tr( "Abort" ) ) |
253 | { | 253 | { |
254 | if ( pIpkg ) | 254 | if ( pIpkg ) |
255 | { | 255 | { |
256 | displayText( tr( "\n**** User Clicked ABORT ***" ) ); | 256 | displayText( tr( "\n**** User Clicked ABORT ***" ) ); |
257 | pIpkg->abort(); | 257 | pIpkg->abort(); |
258 | displayText( tr( "**** Process Aborted ****" ) ); | 258 | displayText( tr( "**** Process Aborted ****" ) ); |
259 | } | 259 | } |
260 | 260 | ||
261 | btnInstall->setText( tr( "Close" ) ); | 261 | btnInstall->setText( tr( "Close" ) ); |
262 | btnInstall->setIconSet( Resource::loadPixmap( "enter" ) ); | 262 | btnInstall->setIconSet( Resource::loadPixmap( "enter" ) ); |
263 | return; | 263 | return; |
264 | } | 264 | } |
265 | else if ( btnInstall->text() == tr( "Close" ) ) | 265 | else if ( btnInstall->text() == tr( "Close" ) ) |
266 | { | 266 | { |
267 | emit reloadData( this ); | 267 | emit reloadData( this ); |
268 | return; | 268 | return; |
269 | } | 269 | } |
270 | 270 | ||
271 | // Disable buttons | 271 | // Disable buttons |
272 | btnOptions->setEnabled( false ); | 272 | btnOptions->setEnabled( false ); |
273 | // btnInstall->setEnabled( false ); | 273 | // btnInstall->setEnabled( false ); |
274 | 274 | ||
275 | btnInstall->setText( tr( "Abort" ) ); | 275 | btnInstall->setText( tr( "Abort" ) ); |
276 | btnInstall->setIconSet( Resource::loadPixmap( "close" ) ); | 276 | btnInstall->setIconSet( Resource::loadPixmap( "close" ) ); |
277 | 277 | ||
278 | if ( pIpkg ) | 278 | if ( pIpkg ) |
279 | { | 279 | { |
280 | output->setText( "" ); | 280 | output->setText( "" ); |
281 | connect( pIpkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &))); | 281 | connect( pIpkg, SIGNAL(outputText(const QString&)), this, SLOT(displayText(const QString&))); |
282 | connect( pIpkg, SIGNAL(ipkgFinished()), this, SLOT(ipkgFinished())); | 282 | connect( pIpkg, SIGNAL(ipkgFinished()), this, SLOT(ipkgFinished())); |
283 | pIpkg->runIpkg(); | 283 | pIpkg->runIpkg(); |
284 | } | 284 | } |
285 | else | 285 | else |
286 | { | 286 | { |
287 | output->setText( "" ); | 287 | output->setText( "" ); |
288 | Destination *d = dataMgr->getDestination( destination->currentText() ); | 288 | Destination *d = dataMgr->getDestination( destination->currentText() ); |
289 | QString dest = d->getDestinationName(); | 289 | QString dest = d->getDestinationName(); |
290 | QString destDir = d->getDestinationPath(); | 290 | QString destDir = d->getDestinationPath(); |
291 | int instFlags = flags; | 291 | int instFlags = flags; |
292 | if ( d->linkToRoot() ) | 292 | if ( d->linkToRoot() ) |
293 | instFlags |= MAKE_LINKS; | 293 | instFlags |= MAKE_LINKS; |
294 | 294 | ||
295 | #ifdef QWS | 295 | #ifdef QWS |
296 | // Save settings | 296 | // Save settings |
297 | Config cfg( "aqpkg" ); | 297 | Config cfg( "aqpkg" ); |
298 | cfg.setGroup( "settings" ); | 298 | cfg.setGroup( "settings" ); |
299 | cfg.writeEntry( "dest", dest ); | 299 | cfg.writeEntry( "dest", dest ); |
300 | #endif | 300 | #endif |
301 | 301 | ||
302 | pIpkg = new Ipkg; | 302 | pIpkg = new Ipkg; |
303 | connect( pIpkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &))); | 303 | connect( pIpkg, SIGNAL(outputText(const QString&)), this, SLOT(displayText(const QString&))); |
304 | connect( pIpkg, SIGNAL(ipkgFinished()), this, SLOT(ipkgFinished())); | 304 | connect( pIpkg, SIGNAL(ipkgFinished()), this, SLOT(ipkgFinished())); |
305 | 305 | ||
306 | firstPackage = TRUE; | 306 | firstPackage = TRUE; |
307 | ipkgFinished(); | 307 | ipkgFinished(); |
308 | 308 | ||
309 | // First run through the remove list, then the install list then the upgrade list | 309 | // First run through the remove list, then the install list then the upgrade list |
310 | /* | 310 | /* |
311 | pIpkg->setOption( "remove" ); | 311 | pIpkg->setOption( "remove" ); |
312 | QListIterator<InstallData> it( removeList ); | 312 | QListIterator<InstallData> it( removeList ); |
313 | InstallData *idata; | 313 | InstallData *idata; |
314 | for ( ; it.current(); ++it ) | 314 | for ( ; it.current(); ++it ) |
315 | { | 315 | { |
316 | idata = it.current(); | 316 | idata = it.current(); |
317 | pIpkg->setDestination( idata->destination->getDestinationName() ); | 317 | pIpkg->setDestination( idata->destination->getDestinationName() ); |
318 | pIpkg->setDestinationDir( idata->destination->getDestinationPath() ); | 318 | pIpkg->setDestinationDir( idata->destination->getDestinationPath() ); |
319 | pIpkg->setPackage( idata->packageName ); | 319 | pIpkg->setPackage( idata->packageName ); |
320 | 320 | ||
321 | int tmpFlags = flags; | 321 | int tmpFlags = flags; |
322 | if ( idata->destination->linkToRoot() ) | 322 | if ( idata->destination->linkToRoot() ) |
323 | tmpFlags |= MAKE_LINKS; | 323 | tmpFlags |= MAKE_LINKS; |
324 | 324 | ||
325 | pIpkg->setFlags( tmpFlags, infoLevel ); | 325 | pIpkg->setFlags( tmpFlags, infoLevel ); |
326 | pIpkg->runIpkg(); | 326 | pIpkg->runIpkg(); |
327 | } | 327 | } |
328 | 328 | ||
329 | pIpkg->setOption( "install" ); | 329 | pIpkg->setOption( "install" ); |
330 | pIpkg->setDestination( dest ); | 330 | pIpkg->setDestination( dest ); |
331 | pIpkg->setDestinationDir( destDir ); | 331 | pIpkg->setDestinationDir( destDir ); |
332 | pIpkg->setFlags( instFlags, infoLevel ); | 332 | pIpkg->setFlags( instFlags, infoLevel ); |
333 | QListIterator<InstallData> it2( installList ); | 333 | QListIterator<InstallData> it2( installList ); |
334 | for ( ; it2.current(); ++it2 ) | 334 | for ( ; it2.current(); ++it2 ) |
335 | { | 335 | { |
336 | pIpkg->setPackage( it2.current()->packageName ); | 336 | pIpkg->setPackage( it2.current()->packageName ); |
337 | pIpkg->runIpkg(); | 337 | pIpkg->runIpkg(); |
338 | } | 338 | } |
339 | 339 | ||
340 | flags |= FORCE_REINSTALL; | 340 | flags |= FORCE_REINSTALL; |
341 | QListIterator<InstallData> it3( updateList ); | 341 | QListIterator<InstallData> it3( updateList ); |
342 | for ( ; it3.current() ; ++it3 ) | 342 | for ( ; it3.current() ; ++it3 ) |
343 | { | 343 | { |
344 | idata = it3.current(); | 344 | idata = it3.current(); |
345 | if ( idata->option == "R" ) | 345 | if ( idata->option == "R" ) |
346 | pIpkg->setOption( "reinstall" ); | 346 | pIpkg->setOption( "reinstall" ); |
347 | else | 347 | else |
348 | pIpkg->setOption( "upgrade" ); | 348 | pIpkg->setOption( "upgrade" ); |
349 | pIpkg->setDestination( idata->destination->getDestinationName() ); | 349 | pIpkg->setDestination( idata->destination->getDestinationName() ); |
350 | pIpkg->setDestinationDir( idata->destination->getDestinationPath() ); | 350 | pIpkg->setDestinationDir( idata->destination->getDestinationPath() ); |
351 | pIpkg->setPackage( idata->packageName ); | 351 | pIpkg->setPackage( idata->packageName ); |
352 | 352 | ||
353 | int tmpFlags = flags; | 353 | int tmpFlags = flags; |
354 | if ( idata->destination->linkToRoot() && idata->recreateLinks ) | 354 | if ( idata->destination->linkToRoot() && idata->recreateLinks ) |
355 | tmpFlags |= MAKE_LINKS; | 355 | tmpFlags |= MAKE_LINKS; |
356 | pIpkg->setFlags( tmpFlags, infoLevel ); | 356 | pIpkg->setFlags( tmpFlags, infoLevel ); |
357 | pIpkg->runIpkg(); | 357 | pIpkg->runIpkg(); |
358 | } | 358 | } |
359 | 359 | ||
360 | delete pIpkg; | 360 | delete pIpkg; |
361 | pIpkg = 0; | 361 | pIpkg = 0; |
362 | */ | 362 | */ |
363 | } | 363 | } |
364 | } | 364 | } |
365 | 365 | ||
366 | 366 | ||
367 | void InstallDlgImpl :: displayText(const QString &text ) | 367 | void InstallDlgImpl :: displayText(const QString &text ) |
368 | { | 368 | { |
369 | QString newtext = QString( "%1\n%2" ).arg( output->text() ).arg( text ); | 369 | QString newtext = QString( "%1\n%2" ).arg( output->text() ).arg( text ); |
370 | 370 | ||
371 | /* Set a max line count for the QMultiLineEdit, as users have reported | 371 | /* Set a max line count for the QMultiLineEdit, as users have reported |
372 | * performance issues when line count gets extreme. | 372 | * performance issues when line count gets extreme. |
373 | */ | 373 | */ |
374 | if(output->numLines() >= MAXLINES) | 374 | if(output->numLines() >= MAXLINES) |
375 | output->removeLine(0); | 375 | output->removeLine(0); |
376 | output->setText( newtext ); | 376 | output->setText( newtext ); |
377 | output->setCursorPosition( output->numLines(), 0 ); | 377 | output->setCursorPosition( output->numLines(), 0 ); |
378 | } | 378 | } |
379 | 379 | ||
380 | 380 | ||
381 | void InstallDlgImpl :: displayAvailableSpace( const QString &text ) | 381 | void InstallDlgImpl :: displayAvailableSpace( const QString &text ) |
382 | { | 382 | { |
383 | Destination *d = dataMgr->getDestination( text ); | 383 | Destination *d = dataMgr->getDestination( text ); |
384 | QString destDir = d->getDestinationPath(); | 384 | QString destDir = d->getDestinationPath(); |
385 | 385 | ||
386 | long blockSize = 0; | 386 | long blockSize = 0; |
387 | long totalBlocks = 0; | 387 | long totalBlocks = 0; |
388 | long availBlocks = 0; | 388 | long availBlocks = 0; |
389 | QString space; | 389 | QString space; |
390 | if ( Utils::getStorageSpace( (const char *)destDir, &blockSize, &totalBlocks, &availBlocks ) ) | 390 | if ( Utils::getStorageSpace( (const char *)destDir, &blockSize, &totalBlocks, &availBlocks ) ) |
391 | { | 391 | { |
392 | long mult = blockSize / 1024; | 392 | long mult = blockSize / 1024; |
393 | long div = 1024 / blockSize; | 393 | long div = 1024 / blockSize; |
394 | 394 | ||
395 | if ( !mult ) mult = 1; | 395 | if ( !mult ) mult = 1; |
396 | if ( !div ) div = 1; | 396 | if ( !div ) div = 1; |
397 | long avail = availBlocks * mult / div; | 397 | long avail = availBlocks * mult / div; |
398 | 398 | ||
399 | space = tr( "%1 Kb" ).arg( avail ); | 399 | space = tr( "%1 Kb" ).arg( avail ); |
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp index 3761b67..866afed 100644 --- a/noncore/settings/aqpkg/ipkg.cpp +++ b/noncore/settings/aqpkg/ipkg.cpp | |||
@@ -195,200 +195,200 @@ void Ipkg :: removeStatusEntry() | |||
195 | tempstr = tr("package - "); | 195 | tempstr = tr("package - "); |
196 | tempstr.append( package ); | 196 | tempstr.append( package ); |
197 | emit outputText( tempstr ); | 197 | emit outputText( tempstr ); |
198 | 198 | ||
199 | QFile readFile( statusFile ); | 199 | QFile readFile( statusFile ); |
200 | QFile writeFile( outStatusFile ); | 200 | QFile writeFile( outStatusFile ); |
201 | 201 | ||
202 | if ( !readFile.open( IO_ReadOnly ) ) | 202 | if ( !readFile.open( IO_ReadOnly ) ) |
203 | { | 203 | { |
204 | tempstr = tr("Couldn't open status file - "); | 204 | tempstr = tr("Couldn't open status file - "); |
205 | tempstr.append( statusFile ); | 205 | tempstr.append( statusFile ); |
206 | emit outputText( tempstr ); | 206 | emit outputText( tempstr ); |
207 | return; | 207 | return; |
208 | } | 208 | } |
209 | 209 | ||
210 | if ( !writeFile.open( IO_WriteOnly ) ) | 210 | if ( !writeFile.open( IO_WriteOnly ) ) |
211 | { | 211 | { |
212 | tempstr = tr("Couldn't create tempory status file - "); | 212 | tempstr = tr("Couldn't create tempory status file - "); |
213 | tempstr.append( outStatusFile ); | 213 | tempstr.append( outStatusFile ); |
214 | emit outputText( tempstr ); | 214 | emit outputText( tempstr ); |
215 | return; | 215 | return; |
216 | } | 216 | } |
217 | 217 | ||
218 | int i = 0; | 218 | int i = 0; |
219 | 219 | ||
220 | QTextStream readStream( &readFile ); | 220 | QTextStream readStream( &readFile ); |
221 | QTextStream writeStream( &writeFile ); | 221 | QTextStream writeStream( &writeFile ); |
222 | QString line; | 222 | QString line; |
223 | 223 | ||
224 | char k[21]; | 224 | char k[21]; |
225 | char v[1001]; | 225 | char v[1001]; |
226 | QString key; | 226 | QString key; |
227 | QString value; | 227 | QString value; |
228 | 228 | ||
229 | while ( !readStream.atEnd() ) | 229 | while ( !readStream.atEnd() ) |
230 | { | 230 | { |
231 | //read new line | 231 | //read new line |
232 | line = readStream.readLine(); | 232 | line = readStream.readLine(); |
233 | 233 | ||
234 | if ( line.contains( ":", TRUE ) ) | 234 | if ( line.contains( ":", TRUE ) ) |
235 | { | 235 | { |
236 | //grep key and value from line | 236 | //grep key and value from line |
237 | k[0] = '\0'; | 237 | k[0] = '\0'; |
238 | v[0] = '\0'; | 238 | v[0] = '\0'; |
239 | sscanf( line, "%[^:]: %[^\n]", k, v ); | 239 | sscanf( line, "%[^:]: %[^\n]", k, v ); |
240 | key = k; | 240 | key = k; |
241 | value = v; | 241 | value = v; |
242 | key = key.stripWhiteSpace(); | 242 | key = key.stripWhiteSpace(); |
243 | value = value.stripWhiteSpace(); | 243 | value = value.stripWhiteSpace(); |
244 | } else { | 244 | } else { |
245 | key = ""; | 245 | key = ""; |
246 | value = ""; | 246 | value = ""; |
247 | } | 247 | } |
248 | 248 | ||
249 | if ( key == "Package" && value == package ) | 249 | if ( key == "Package" && value == package ) |
250 | { | 250 | { |
251 | //skip lines from the deleted package | 251 | //skip lines from the deleted package |
252 | while ( ( !readStream.atEnd() ) && ( line.stripWhiteSpace() != "" ) ) | 252 | while ( ( !readStream.atEnd() ) && ( line.stripWhiteSpace() != "" ) ) |
253 | { | 253 | { |
254 | line = readStream.readLine(); | 254 | line = readStream.readLine(); |
255 | } | 255 | } |
256 | } else { | 256 | } else { |
257 | 257 | ||
258 | //write other lines into the tempfile | 258 | //write other lines into the tempfile |
259 | writeStream << line << "\n"; | 259 | writeStream << line << "\n"; |
260 | 260 | ||
261 | // Improve UI responsiveness | 261 | // Improve UI responsiveness |
262 | i++; | 262 | i++; |
263 | if ( ( i % 50 ) == 0 ) | 263 | if ( ( i % 50 ) == 0 ) |
264 | qApp->processEvents(); | 264 | qApp->processEvents(); |
265 | } | 265 | } |
266 | } | 266 | } |
267 | 267 | ||
268 | readFile.close(); | 268 | readFile.close(); |
269 | writeFile.close(); | 269 | writeFile.close(); |
270 | 270 | ||
271 | // Remove old status file and put tmp stats file in its place | 271 | // Remove old status file and put tmp stats file in its place |
272 | remove( statusFile ); | 272 | remove( statusFile ); |
273 | rename( outStatusFile, statusFile ); | 273 | rename( outStatusFile, statusFile ); |
274 | } | 274 | } |
275 | 275 | ||
276 | int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) | 276 | int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) |
277 | { | 277 | { |
278 | // If one is already running - should never be but just to be safe | 278 | // If one is already running - should never be but just to be safe |
279 | if ( proc ) | 279 | if ( proc ) |
280 | { | 280 | { |
281 | delete proc; | 281 | delete proc; |
282 | proc = 0; | 282 | proc = 0; |
283 | } | 283 | } |
284 | 284 | ||
285 | // OK we're gonna use OProcess to run this thing | 285 | // OK we're gonna use OProcess to run this thing |
286 | proc = new OProcess(); | 286 | proc = new OProcess(); |
287 | aborted = false; | 287 | aborted = false; |
288 | 288 | ||
289 | 289 | ||
290 | // Connect up our slots | 290 | // Connect up our slots |
291 | connect(proc, SIGNAL(processExited(OProcess *)), | 291 | connect(proc, SIGNAL(processExited(OProcess*)), |
292 | this, SLOT( processFinished())); | 292 | this, SLOT( processFinished())); |
293 | 293 | ||
294 | connect(proc, SIGNAL(receivedStdout(OProcess *, char *, int)), | 294 | connect(proc, SIGNAL(receivedStdout(OProcess*,char*,int)), |
295 | this, SLOT(commandStdout(OProcess *, char *, int))); | 295 | this, SLOT(commandStdout(OProcess*,char*,int))); |
296 | 296 | ||
297 | connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)), | 297 | connect(proc, SIGNAL(receivedStderr(OProcess*,char*,int)), |
298 | this, SLOT(commandStderr(OProcess *, char *, int))); | 298 | this, SLOT(commandStderr(OProcess*,char*,int))); |
299 | 299 | ||
300 | for ( QStringList::Iterator it = cmd.begin(); it != cmd.end(); ++it ) | 300 | for ( QStringList::Iterator it = cmd.begin(); it != cmd.end(); ++it ) |
301 | { | 301 | { |
302 | *proc << (*it).latin1(); | 302 | *proc << (*it).latin1(); |
303 | } | 303 | } |
304 | 304 | ||
305 | // Start the process going | 305 | // Start the process going |
306 | finished = false; | 306 | finished = false; |
307 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) | 307 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) |
308 | { | 308 | { |
309 | emit outputText( tr("Couldn't start ipkg process" ) ); | 309 | emit outputText( tr("Couldn't start ipkg process" ) ); |
310 | } | 310 | } |
311 | } | 311 | } |
312 | 312 | ||
313 | void Ipkg::commandStdout(OProcess*, char *buffer, int buflen) | 313 | void Ipkg::commandStdout(OProcess*, char *buffer, int buflen) |
314 | { | 314 | { |
315 | QString lineStr = buffer; | 315 | QString lineStr = buffer; |
316 | if ( lineStr[buflen-1] == '\n' ) | 316 | if ( lineStr[buflen-1] == '\n' ) |
317 | buflen --; | 317 | buflen --; |
318 | lineStr = lineStr.left( buflen ); | 318 | lineStr = lineStr.left( buflen ); |
319 | emit outputText( lineStr ); | 319 | emit outputText( lineStr ); |
320 | 320 | ||
321 | // check if we are installing dependant packages | 321 | // check if we are installing dependant packages |
322 | if ( option == "install" || option == "reinstall" ) | 322 | if ( option == "install" || option == "reinstall" ) |
323 | { | 323 | { |
324 | // Need to keep track of any dependant packages that get installed | 324 | // Need to keep track of any dependant packages that get installed |
325 | // so that we can create links to them as necessary | 325 | // so that we can create links to them as necessary |
326 | if ( lineStr.startsWith( "Installing " ) ) | 326 | if ( lineStr.startsWith( "Installing " ) ) |
327 | { | 327 | { |
328 | int start = lineStr.find( " " ) + 1; | 328 | int start = lineStr.find( " " ) + 1; |
329 | int end = lineStr.find( " ", start ); | 329 | int end = lineStr.find( " ", start ); |
330 | QString *package = new QString( lineStr.mid( start, end-start ) ); | 330 | QString *package = new QString( lineStr.mid( start, end-start ) ); |
331 | dependantPackages->append( package ); | 331 | dependantPackages->append( package ); |
332 | } | 332 | } |
333 | } | 333 | } |
334 | else if ( option == "remove" && !( flags & FORCE_DEPENDS ) && | 334 | else if ( option == "remove" && !( flags & FORCE_DEPENDS ) && |
335 | lineStr.find( "is depended upon by packages:" ) != -1 ) | 335 | lineStr.find( "is depended upon by packages:" ) != -1 ) |
336 | { | 336 | { |
337 | // Ipkg should send this to STDERR, but doesn't - so trap here | 337 | // Ipkg should send this to STDERR, but doesn't - so trap here |
338 | error = true; | 338 | error = true; |
339 | } | 339 | } |
340 | 340 | ||
341 | buffer[0] = '\0'; | 341 | buffer[0] = '\0'; |
342 | } | 342 | } |
343 | 343 | ||
344 | void Ipkg::commandStderr(OProcess*, char *buffer, int buflen) | 344 | void Ipkg::commandStderr(OProcess*, char *buffer, int buflen) |
345 | { | 345 | { |
346 | QString lineStr = buffer; | 346 | QString lineStr = buffer; |
347 | if ( lineStr[buflen-1] == '\n' ) | 347 | if ( lineStr[buflen-1] == '\n' ) |
348 | buflen --; | 348 | buflen --; |
349 | lineStr=lineStr.left( buflen ); | 349 | lineStr=lineStr.left( buflen ); |
350 | emit outputText( lineStr ); | 350 | emit outputText( lineStr ); |
351 | buffer[0] = '\0'; | 351 | buffer[0] = '\0'; |
352 | error = true; | 352 | error = true; |
353 | } | 353 | } |
354 | 354 | ||
355 | void Ipkg::processFinished() | 355 | void Ipkg::processFinished() |
356 | { | 356 | { |
357 | // Finally, if we are removing a package, remove its entry from the <destdir>/usr/lib/ipkg/status file | 357 | // Finally, if we are removing a package, remove its entry from the <destdir>/usr/lib/ipkg/status file |
358 | // to workaround an ipkg bug which stops reinstall to a different location | 358 | // to workaround an ipkg bug which stops reinstall to a different location |
359 | 359 | ||
360 | if ( !error && option == "remove" ) | 360 | if ( !error && option == "remove" ) |
361 | removeStatusEntry(); | 361 | removeStatusEntry(); |
362 | 362 | ||
363 | delete proc; | 363 | delete proc; |
364 | proc = 0; | 364 | proc = 0; |
365 | finished = true; | 365 | finished = true; |
366 | 366 | ||
367 | emit ipkgFinished(); | 367 | emit ipkgFinished(); |
368 | } | 368 | } |
369 | 369 | ||
370 | 370 | ||
371 | void Ipkg :: abort() | 371 | void Ipkg :: abort() |
372 | { | 372 | { |
373 | if ( proc ) | 373 | if ( proc ) |
374 | { | 374 | { |
375 | proc->kill(); | 375 | proc->kill(); |
376 | aborted = true; | 376 | aborted = true; |
377 | } | 377 | } |
378 | } | 378 | } |
379 | 379 | ||
380 | void Ipkg :: linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ) | 380 | void Ipkg :: linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ) |
381 | { | 381 | { |
382 | if ( dest == "root" || dest == "/" ) | 382 | if ( dest == "root" || dest == "/" ) |
383 | return; | 383 | return; |
384 | 384 | ||
385 | qApp->processEvents(); | 385 | qApp->processEvents(); |
386 | QStringList *fileList = getList( packFileName, destDir ); | 386 | QStringList *fileList = getList( packFileName, destDir ); |
387 | qApp->processEvents(); | 387 | qApp->processEvents(); |
388 | processFileList( fileList, destDir ); | 388 | processFileList( fileList, destDir ); |
389 | delete fileList; | 389 | delete fileList; |
390 | } | 390 | } |
391 | 391 | ||
392 | QStringList* Ipkg :: getList( const QString &packageFilename, const QString &destDir ) | 392 | QStringList* Ipkg :: getList( const QString &packageFilename, const QString &destDir ) |
393 | { | 393 | { |
394 | QString packageFileDir = destDir; | 394 | QString packageFileDir = destDir; |
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index 6f5c712..6b31cd1 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp | |||
@@ -7,402 +7,402 @@ | |||
7 | _;:, .> :=|. This file is free software; you can | 7 | _;:, .> :=|. This file 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 file is distributed in the hope that | 14 | .i_,=:_. -<s. This file 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 General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "categoryfilterimpl.h" | 30 | #include "categoryfilterimpl.h" |
31 | #include "datamgr.h" | 31 | #include "datamgr.h" |
32 | #include "global.h" | 32 | #include "global.h" |
33 | #include "inputdlg.h" | 33 | #include "inputdlg.h" |
34 | #include "ipkg.h" | 34 | #include "ipkg.h" |
35 | #include "installdlgimpl.h" | 35 | #include "installdlgimpl.h" |
36 | #include "letterpushbutton.h" | 36 | #include "letterpushbutton.h" |
37 | #include "mainwin.h" | 37 | #include "mainwin.h" |
38 | #include "packagewin.h" | 38 | #include "packagewin.h" |
39 | #include "settingsimpl.h" | 39 | #include "settingsimpl.h" |
40 | #include "utils.h" | 40 | #include "utils.h" |
41 | 41 | ||
42 | /* OPIE */ | 42 | /* OPIE */ |
43 | #include <qpe/qcopenvelope_qws.h> | 43 | #include <qpe/qcopenvelope_qws.h> |
44 | #include <qpe/qpeapplication.h> | 44 | #include <qpe/qpeapplication.h> |
45 | #include <qpe/config.h> | 45 | #include <qpe/config.h> |
46 | #include <qpe/resource.h> | 46 | #include <qpe/resource.h> |
47 | 47 | ||
48 | /* QT */ | 48 | /* QT */ |
49 | #include <qmenubar.h> | 49 | #include <qmenubar.h> |
50 | #include <qtoolbar.h> | 50 | #include <qtoolbar.h> |
51 | #include <qaction.h> | 51 | #include <qaction.h> |
52 | #include <qcombobox.h> | 52 | #include <qcombobox.h> |
53 | #include <qfile.h> | 53 | #include <qfile.h> |
54 | #include <qlabel.h> | 54 | #include <qlabel.h> |
55 | #include <qlayout.h> | 55 | #include <qlayout.h> |
56 | #include <qlineedit.h> | 56 | #include <qlineedit.h> |
57 | #include <qlistview.h> | 57 | #include <qlistview.h> |
58 | #include <qmenubar.h> | 58 | #include <qmenubar.h> |
59 | #include <qmessagebox.h> | 59 | #include <qmessagebox.h> |
60 | #include <qpopupmenu.h> | 60 | #include <qpopupmenu.h> |
61 | #include <qprogressbar.h> | 61 | #include <qprogressbar.h> |
62 | #include <qtimer.h> | 62 | #include <qtimer.h> |
63 | #include <qwhatsthis.h> | 63 | #include <qwhatsthis.h> |
64 | #include <qwidgetstack.h> | 64 | #include <qwidgetstack.h> |
65 | 65 | ||
66 | /* STD */ | 66 | /* STD */ |
67 | #include <linux/limits.h> | 67 | #include <linux/limits.h> |
68 | #include <unistd.h> | 68 | #include <unistd.h> |
69 | 69 | ||
70 | extern int compareVersions( const char *v1, const char *v2 ); | 70 | extern int compareVersions( const char *v1, const char *v2 ); |
71 | 71 | ||
72 | MainWindow :: MainWindow( QWidget* parent, const char* name, WFlags fl ) | 72 | MainWindow :: MainWindow( QWidget* parent, const char* name, WFlags fl ) |
73 | :QMainWindow( parent, name, fl || WStyle_ContextHelp ) | 73 | :QMainWindow( parent, name, fl || WStyle_ContextHelp ) |
74 | { | 74 | { |
75 | // Disable suspend mode | 75 | // Disable suspend mode |
76 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend; | 76 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend; |
77 | 77 | ||
78 | LOCAL_SERVER = QObject::tr( "Installed packages" ); | 78 | LOCAL_SERVER = QObject::tr( "Installed packages" ); |
79 | LOCAL_IPKGS = QObject::tr( "Local packages" ); | 79 | LOCAL_IPKGS = QObject::tr( "Local packages" ); |
80 | 80 | ||
81 | setCaption( tr( "AQPkg - Package Manager" ) ); | 81 | setCaption( tr( "AQPkg - Package Manager" ) ); |
82 | 82 | ||
83 | // Create UI widgets | 83 | // Create UI widgets |
84 | initMainWidget(); | 84 | initMainWidget(); |
85 | initProgressWidget(); | 85 | initProgressWidget(); |
86 | 86 | ||
87 | // Build menu and tool bars | 87 | // Build menu and tool bars |
88 | setToolBarsMovable( FALSE ); | 88 | setToolBarsMovable( FALSE ); |
89 | 89 | ||
90 | QToolBar *bar = new QToolBar( this ); | 90 | QToolBar *bar = new QToolBar( this ); |
91 | bar->setHorizontalStretchable( TRUE ); | 91 | bar->setHorizontalStretchable( TRUE ); |
92 | QMenuBar *mb = new QMenuBar( bar ); | 92 | QMenuBar *mb = new QMenuBar( bar ); |
93 | mb->setMargin( 0 ); | 93 | mb->setMargin( 0 ); |
94 | bar = new QToolBar( this ); | 94 | bar = new QToolBar( this ); |
95 | 95 | ||
96 | // Find toolbar | 96 | // Find toolbar |
97 | findBar = new QToolBar( this ); | 97 | findBar = new QToolBar( this ); |
98 | addToolBar( findBar, QMainWindow::Top, true ); | 98 | addToolBar( findBar, QMainWindow::Top, true ); |
99 | findBar->setHorizontalStretchable( true ); | 99 | findBar->setHorizontalStretchable( true ); |
100 | findEdit = new QLineEdit( findBar ); | 100 | findEdit = new QLineEdit( findBar ); |
101 | QWhatsThis::add( findEdit, tr( "Type the text to search for here." ) ); | 101 | QWhatsThis::add( findEdit, tr( "Type the text to search for here." ) ); |
102 | findBar->setStretchableWidget( findEdit ); | 102 | findBar->setStretchableWidget( findEdit ); |
103 | connect( findEdit, SIGNAL( textChanged( const QString & ) ), this, SLOT( findPackage( const QString & ) ) ); | 103 | connect( findEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( findPackage(const QString&) ) ); |
104 | 104 | ||
105 | // Quick jump toolbar | 105 | // Quick jump toolbar |
106 | jumpBar = new QToolBar( this ); | 106 | jumpBar = new QToolBar( this ); |
107 | addToolBar( jumpBar, QMainWindow::Top, true ); | 107 | addToolBar( jumpBar, QMainWindow::Top, true ); |
108 | jumpBar->setHorizontalStretchable( true ); | 108 | jumpBar->setHorizontalStretchable( true ); |
109 | QWidget *w = new QWidget( jumpBar ); | 109 | QWidget *w = new QWidget( jumpBar ); |
110 | jumpBar->setStretchableWidget( w ); | 110 | jumpBar->setStretchableWidget( w ); |
111 | 111 | ||
112 | QGridLayout *layout = new QGridLayout( w ); | 112 | QGridLayout *layout = new QGridLayout( w ); |
113 | 113 | ||
114 | char text[2]; | 114 | char text[2]; |
115 | text[1] = '\0'; | 115 | text[1] = '\0'; |
116 | for ( int i = 0 ; i < 26 ; ++i ) | 116 | for ( int i = 0 ; i < 26 ; ++i ) |
117 | { | 117 | { |
118 | text[0] = 'A' + i; | 118 | text[0] = 'A' + i; |
119 | LetterPushButton *b = new LetterPushButton( text, w ); | 119 | LetterPushButton *b = new LetterPushButton( text, w ); |
120 | connect( b, SIGNAL( released( QString ) ), this, SLOT( letterPushed( QString ) ) ); | 120 | connect( b, SIGNAL( released(QString) ), this, SLOT( letterPushed(QString) ) ); |
121 | layout->addWidget( b, i / 13, i % 13); | 121 | layout->addWidget( b, i / 13, i % 13); |
122 | } | 122 | } |
123 | 123 | ||
124 | QAction *a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, w, 0 ); | 124 | QAction *a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, w, 0 ); |
125 | a->setWhatsThis( tr( "Click here to hide the Quick Jump toolbar." ) ); | 125 | a->setWhatsThis( tr( "Click here to hide the Quick Jump toolbar." ) ); |
126 | connect( a, SIGNAL( activated() ), this, SLOT( hideJumpBar() ) ); | 126 | connect( a, SIGNAL( activated() ), this, SLOT( hideJumpBar() ) ); |
127 | a->addTo( jumpBar ); | 127 | a->addTo( jumpBar ); |
128 | jumpBar->hide(); | 128 | jumpBar->hide(); |
129 | 129 | ||
130 | // Packages menu | 130 | // Packages menu |
131 | QPopupMenu *popup = new QPopupMenu( this ); | 131 | QPopupMenu *popup = new QPopupMenu( this ); |
132 | 132 | ||
133 | a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "aqpkg/update" ), QString::null, 0, this, 0 ); | 133 | a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "aqpkg/update" ), QString::null, 0, this, 0 ); |
134 | a->setWhatsThis( tr( "Click here to update package lists from servers." ) ); | 134 | a->setWhatsThis( tr( "Click here to update package lists from servers." ) ); |
135 | connect( a, SIGNAL( activated() ), this, SLOT( updateServer() ) ); | 135 | connect( a, SIGNAL( activated() ), this, SLOT( updateServer() ) ); |
136 | a->addTo( popup ); | 136 | a->addTo( popup ); |
137 | a->addTo( bar ); | 137 | a->addTo( bar ); |
138 | 138 | ||
139 | actionUpgrade = new QAction( tr( "Upgrade" ), Resource::loadPixmap( "aqpkg/upgrade" ), QString::null, 0, this, 0 ); | 139 | actionUpgrade = new QAction( tr( "Upgrade" ), Resource::loadPixmap( "aqpkg/upgrade" ), QString::null, 0, this, 0 ); |
140 | actionUpgrade->setWhatsThis( tr( "Click here to upgrade all installed packages if a newer version is available." ) ); | 140 | actionUpgrade->setWhatsThis( tr( "Click here to upgrade all installed packages if a newer version is available." ) ); |
141 | connect( actionUpgrade, SIGNAL( activated() ), this, SLOT( upgradePackages() ) ); | 141 | connect( actionUpgrade, SIGNAL( activated() ), this, SLOT( upgradePackages() ) ); |
142 | actionUpgrade->addTo( popup ); | 142 | actionUpgrade->addTo( popup ); |
143 | actionUpgrade->addTo( bar ); | 143 | actionUpgrade->addTo( bar ); |
144 | 144 | ||
145 | iconDownload = Resource::loadPixmap( "aqpkg/download" ); | 145 | iconDownload = Resource::loadPixmap( "aqpkg/download" ); |
146 | iconRemove = Resource::loadPixmap( "aqpkg/remove" ); | 146 | iconRemove = Resource::loadPixmap( "aqpkg/remove" ); |
147 | actionDownload = new QAction( tr( "Download" ), iconDownload, QString::null, 0, this, 0 ); | 147 | actionDownload = new QAction( tr( "Download" ), iconDownload, QString::null, 0, this, 0 ); |
148 | actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) ); | 148 | actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) ); |
149 | connect( actionDownload, SIGNAL( activated() ), this, SLOT( downloadPackage() ) ); | 149 | connect( actionDownload, SIGNAL( activated() ), this, SLOT( downloadPackage() ) ); |
150 | actionDownload->addTo( popup ); | 150 | actionDownload->addTo( popup ); |
151 | actionDownload->addTo( bar ); | 151 | actionDownload->addTo( bar ); |
152 | 152 | ||
153 | a = new QAction( tr( "Apply changes" ), Resource::loadPixmap( "aqpkg/apply" ), QString::null, 0, this, 0 ); | 153 | a = new QAction( tr( "Apply changes" ), Resource::loadPixmap( "aqpkg/apply" ), QString::null, 0, this, 0 ); |
154 | a->setWhatsThis( tr( "Click here to install, remove or upgrade currently selected package(s)." ) ); | 154 | a->setWhatsThis( tr( "Click here to install, remove or upgrade currently selected package(s)." ) ); |
155 | connect( a, SIGNAL( activated() ), this, SLOT( applyChanges() ) ); | 155 | connect( a, SIGNAL( activated() ), this, SLOT( applyChanges() ) ); |
156 | a->addTo( popup ); | 156 | a->addTo( popup ); |
157 | a->addTo( bar ); | 157 | a->addTo( bar ); |
158 | 158 | ||
159 | popup->insertSeparator(); | 159 | popup->insertSeparator(); |
160 | 160 | ||
161 | a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); | 161 | a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); |
162 | a->setWhatsThis( tr( "Click here to configure this application." ) ); | 162 | a->setWhatsThis( tr( "Click here to configure this application." ) ); |
163 | connect( a, SIGNAL( activated() ), this, SLOT( displaySettings() ) ); | 163 | connect( a, SIGNAL( activated() ), this, SLOT( displaySettings() ) ); |
164 | a->addTo( popup ); | 164 | a->addTo( popup ); |
165 | mb->insertItem( tr( "Actions" ), popup ); | 165 | mb->insertItem( tr( "Actions" ), popup ); |
166 | 166 | ||
167 | // View menu | 167 | // View menu |
168 | popup = new QPopupMenu( this ); | 168 | popup = new QPopupMenu( this ); |
169 | 169 | ||
170 | actionUninstalled = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 ); | 170 | actionUninstalled = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 ); |
171 | actionUninstalled->setToggleAction( TRUE ); | 171 | actionUninstalled->setToggleAction( TRUE ); |
172 | actionUninstalled->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) ); | 172 | actionUninstalled->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) ); |
173 | connect( actionUninstalled, SIGNAL( activated() ), this, SLOT( filterUninstalledPackages() ) ); | 173 | connect( actionUninstalled, SIGNAL( activated() ), this, SLOT( filterUninstalledPackages() ) ); |
174 | actionUninstalled->addTo( popup ); | 174 | actionUninstalled->addTo( popup ); |
175 | 175 | ||
176 | actionInstalled = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 ); | 176 | actionInstalled = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 ); |
177 | actionInstalled->setToggleAction( TRUE ); | 177 | actionInstalled->setToggleAction( TRUE ); |
178 | actionInstalled->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) ); | 178 | actionInstalled->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) ); |
179 | connect( actionInstalled, SIGNAL( activated() ), this, SLOT( filterInstalledPackages() ) ); | 179 | connect( actionInstalled, SIGNAL( activated() ), this, SLOT( filterInstalledPackages() ) ); |
180 | actionInstalled->addTo( popup ); | 180 | actionInstalled->addTo( popup ); |
181 | 181 | ||
182 | actionUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 ); | 182 | actionUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 ); |
183 | actionUpdated->setToggleAction( TRUE ); | 183 | actionUpdated->setToggleAction( TRUE ); |
184 | actionUpdated->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) ); | 184 | actionUpdated->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) ); |
185 | connect( actionUpdated, SIGNAL( activated() ), this, SLOT( filterUpgradedPackages() ) ); | 185 | connect( actionUpdated, SIGNAL( activated() ), this, SLOT( filterUpgradedPackages() ) ); |
186 | actionUpdated->addTo( popup ); | 186 | actionUpdated->addTo( popup ); |
187 | 187 | ||
188 | popup->insertSeparator(); | 188 | popup->insertSeparator(); |
189 | 189 | ||
190 | actionFilter = new QAction( tr( "Filter by category" ), Resource::loadPixmap( "aqpkg/filter" ), QString::null, 0, this, 0 ); | 190 | actionFilter = new QAction( tr( "Filter by category" ), Resource::loadPixmap( "aqpkg/filter" ), QString::null, 0, this, 0 ); |
191 | actionFilter->setToggleAction( TRUE ); | 191 | actionFilter->setToggleAction( TRUE ); |
192 | actionFilter->setWhatsThis( tr( "Click here to list packages belonging to one category." ) ); | 192 | actionFilter->setWhatsThis( tr( "Click here to list packages belonging to one category." ) ); |
193 | connect( actionFilter, SIGNAL( activated() ), this, SLOT( filterCategory() ) ); | 193 | connect( actionFilter, SIGNAL( activated() ), this, SLOT( filterCategory() ) ); |
194 | actionFilter->addTo( popup ); | 194 | actionFilter->addTo( popup ); |
195 | 195 | ||
196 | a = new QAction( tr( "Set filter category" ), QString::null, 0, this, 0 ); | 196 | a = new QAction( tr( "Set filter category" ), QString::null, 0, this, 0 ); |
197 | a->setWhatsThis( tr( "Click here to change package category to used filter." ) ); | 197 | a->setWhatsThis( tr( "Click here to change package category to used filter." ) ); |
198 | connect( a, SIGNAL( activated() ), this, SLOT( setFilterCategory() ) ); | 198 | connect( a, SIGNAL( activated() ), this, SLOT( setFilterCategory() ) ); |
199 | a->addTo( popup ); | 199 | a->addTo( popup ); |
200 | 200 | ||
201 | popup->insertSeparator(); | 201 | popup->insertSeparator(); |
202 | 202 | ||
203 | a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); | 203 | a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); |
204 | a->setWhatsThis( tr( "Click here to search for text in package names." ) ); | 204 | a->setWhatsThis( tr( "Click here to search for text in package names." ) ); |
205 | connect( a, SIGNAL( activated() ), this, SLOT( displayFindBar() ) ); | 205 | connect( a, SIGNAL( activated() ), this, SLOT( displayFindBar() ) ); |
206 | a->addTo( popup ); | 206 | a->addTo( popup ); |
207 | 207 | ||
208 | actionFindNext = new QAction( tr( "Find next" ), Resource::loadIconSet( "next" ), QString::null, 0, this, 0 ); | 208 | actionFindNext = new QAction( tr( "Find next" ), Resource::loadIconSet( "next" ), QString::null, 0, this, 0 ); |
209 | actionFindNext->setEnabled( FALSE ); | 209 | actionFindNext->setEnabled( FALSE ); |
210 | actionFindNext->setWhatsThis( tr( "Click here to find the next package name containing the text you are searching for." ) ); | 210 | actionFindNext->setWhatsThis( tr( "Click here to find the next package name containing the text you are searching for." ) ); |
211 | connect( actionFindNext, SIGNAL( activated() ), this, SLOT( repeatFind() ) ); | 211 | connect( actionFindNext, SIGNAL( activated() ), this, SLOT( repeatFind() ) ); |
212 | actionFindNext->addTo( popup ); | 212 | actionFindNext->addTo( popup ); |
213 | actionFindNext->addTo( findBar ); | 213 | actionFindNext->addTo( findBar ); |
214 | 214 | ||
215 | 215 | ||
216 | popup->insertSeparator(); | 216 | popup->insertSeparator(); |
217 | 217 | ||
218 | a = new QAction( tr( "Quick Jump keypad" ), Resource::loadPixmap( "aqpkg/keyboard" ), QString::null, 0, this, 0 ); | 218 | a = new QAction( tr( "Quick Jump keypad" ), Resource::loadPixmap( "aqpkg/keyboard" ), QString::null, 0, this, 0 ); |
219 | a->setWhatsThis( tr( "Click here to display/hide keypad to allow quick movement through the package list." ) ); | 219 | a->setWhatsThis( tr( "Click here to display/hide keypad to allow quick movement through the package list." ) ); |
220 | connect( a, SIGNAL( activated() ), this, SLOT( displayJumpBar() ) ); | 220 | connect( a, SIGNAL( activated() ), this, SLOT( displayJumpBar() ) ); |
221 | a->addTo( popup ); | 221 | a->addTo( popup ); |
222 | 222 | ||
223 | mb->insertItem( tr( "View" ), popup ); | 223 | mb->insertItem( tr( "View" ), popup ); |
224 | 224 | ||
225 | // Finish find toolbar creation | 225 | // Finish find toolbar creation |
226 | a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); | 226 | a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); |
227 | a->setWhatsThis( tr( "Click here to hide the find toolbar." ) ); | 227 | a->setWhatsThis( tr( "Click here to hide the find toolbar." ) ); |
228 | connect( a, SIGNAL( activated() ), this, SLOT( hideFindBar() ) ); | 228 | connect( a, SIGNAL( activated() ), this, SLOT( hideFindBar() ) ); |
229 | a->addTo( findBar ); | 229 | a->addTo( findBar ); |
230 | findBar->hide(); | 230 | findBar->hide(); |
231 | 231 | ||
232 | // Create widget stack and add UI widgets | 232 | // Create widget stack and add UI widgets |
233 | stack = new QWidgetStack( this ); | 233 | stack = new QWidgetStack( this ); |
234 | stack->addWidget( progressWindow, 2 ); | 234 | stack->addWidget( progressWindow, 2 ); |
235 | stack->addWidget( networkPkgWindow, 1 ); | 235 | stack->addWidget( networkPkgWindow, 1 ); |
236 | setCentralWidget( stack ); | 236 | setCentralWidget( stack ); |
237 | stack->raiseWidget( progressWindow ); | 237 | stack->raiseWidget( progressWindow ); |
238 | 238 | ||
239 | // Delayed call to finish initialization | 239 | // Delayed call to finish initialization |
240 | QTimer::singleShot( 100, this, SLOT( init() ) ); | 240 | QTimer::singleShot( 100, this, SLOT( init() ) ); |
241 | } | 241 | } |
242 | 242 | ||
243 | MainWindow :: ~MainWindow() | 243 | MainWindow :: ~MainWindow() |
244 | { | 244 | { |
245 | delete mgr; | 245 | delete mgr; |
246 | 246 | ||
247 | // Reenable suspend mode | 247 | // Reenable suspend mode |
248 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; | 248 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; |
249 | } | 249 | } |
250 | 250 | ||
251 | void MainWindow :: initMainWidget() | 251 | void MainWindow :: initMainWidget() |
252 | { | 252 | { |
253 | networkPkgWindow = new QWidget( this ); | 253 | networkPkgWindow = new QWidget( this ); |
254 | 254 | ||
255 | QLabel *l = new QLabel( tr( "Servers:" ), networkPkgWindow ); | 255 | QLabel *l = new QLabel( tr( "Servers:" ), networkPkgWindow ); |
256 | 256 | ||
257 | serversList = new QComboBox( networkPkgWindow ); | 257 | serversList = new QComboBox( networkPkgWindow ); |
258 | connect( serversList, SIGNAL(activated(int)), this, SLOT(serverSelected(int)) ); | 258 | connect( serversList, SIGNAL(activated(int)), this, SLOT(serverSelected(int)) ); |
259 | QWhatsThis::add( serversList, tr( "Click here to select a package feed." ) ); | 259 | QWhatsThis::add( serversList, tr( "Click here to select a package feed." ) ); |
260 | 260 | ||
261 | installedIcon = Resource::loadPixmap( "installed" ); | 261 | installedIcon = Resource::loadPixmap( "installed" ); |
262 | updatedIcon = Resource::loadPixmap( "aqpkg/updated" ); | 262 | updatedIcon = Resource::loadPixmap( "aqpkg/updated" ); |
263 | 263 | ||
264 | packagesList = new QListView( networkPkgWindow ); | 264 | packagesList = new QListView( networkPkgWindow ); |
265 | packagesList->addColumn( tr( "Packages" ), 225 ); | 265 | packagesList->addColumn( tr( "Packages" ), 225 ); |
266 | QWhatsThis::add( packagesList, tr( "This is a listing of all packages for the server feed selected above.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nClick inside the box at the left to select a package." ) ); | 266 | QWhatsThis::add( packagesList, tr( "This is a listing of all packages for the server feed selected above.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nClick inside the box at the left to select a package." ) ); |
267 | QPEApplication::setStylusOperation( packagesList->viewport(), QPEApplication::RightOnHold ); | 267 | QPEApplication::setStylusOperation( packagesList->viewport(), QPEApplication::RightOnHold ); |
268 | connect( packagesList, SIGNAL(rightButtonPressed(QListViewItem *,const QPoint &,int)), | 268 | connect( packagesList, SIGNAL(rightButtonPressed(QListViewItem*,const QPoint&,int)), |
269 | this, SLOT(slotDisplayPackage(QListViewItem *)) ); | 269 | this, SLOT(slotDisplayPackage(QListViewItem*)) ); |
270 | 270 | ||
271 | QVBoxLayout *vbox = new QVBoxLayout( networkPkgWindow, 0, -1 ); | 271 | QVBoxLayout *vbox = new QVBoxLayout( networkPkgWindow, 0, -1 ); |
272 | QHBoxLayout *hbox1 = new QHBoxLayout( vbox, -1 ); | 272 | QHBoxLayout *hbox1 = new QHBoxLayout( vbox, -1 ); |
273 | hbox1->addWidget( l ); | 273 | hbox1->addWidget( l ); |
274 | hbox1->addWidget( serversList ); | 274 | hbox1->addWidget( serversList ); |
275 | 275 | ||
276 | vbox->addWidget( packagesList ); | 276 | vbox->addWidget( packagesList ); |
277 | 277 | ||
278 | downloadEnabled = TRUE; | 278 | downloadEnabled = TRUE; |
279 | } | 279 | } |
280 | 280 | ||
281 | void MainWindow :: initProgressWidget() | 281 | void MainWindow :: initProgressWidget() |
282 | { | 282 | { |
283 | progressWindow = new QWidget( this ); | 283 | progressWindow = new QWidget( this ); |
284 | 284 | ||
285 | QVBoxLayout *layout = new QVBoxLayout( progressWindow, 4, 4 ); | 285 | QVBoxLayout *layout = new QVBoxLayout( progressWindow, 4, 4 ); |
286 | 286 | ||
287 | m_status = new QLabel( progressWindow ); | 287 | m_status = new QLabel( progressWindow ); |
288 | m_status->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); | 288 | m_status->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); |
289 | layout->addWidget( m_status ); | 289 | layout->addWidget( m_status ); |
290 | 290 | ||
291 | m_progress = new QProgressBar( progressWindow ); | 291 | m_progress = new QProgressBar( progressWindow ); |
292 | layout->addWidget( m_progress ); | 292 | layout->addWidget( m_progress ); |
293 | } | 293 | } |
294 | 294 | ||
295 | void MainWindow :: init() | 295 | void MainWindow :: init() |
296 | { | 296 | { |
297 | #ifdef QWS | 297 | #ifdef QWS |
298 | // read download directory from config file | 298 | // read download directory from config file |
299 | Config cfg( "aqpkg" ); | 299 | Config cfg( "aqpkg" ); |
300 | cfg.setGroup( "settings" ); | 300 | cfg.setGroup( "settings" ); |
301 | currentlySelectedServer = cfg.readEntry( "selectedServer", "local" ); | 301 | currentlySelectedServer = cfg.readEntry( "selectedServer", "local" ); |
302 | // showJumpTo = cfg.readBoolEntry( "showJumpTo", "true" ); | 302 | // showJumpTo = cfg.readBoolEntry( "showJumpTo", "true" ); |
303 | 303 | ||
304 | #endif | 304 | #endif |
305 | 305 | ||
306 | stack->raiseWidget( progressWindow ); | 306 | stack->raiseWidget( progressWindow ); |
307 | 307 | ||
308 | mgr = new DataManager(); | 308 | mgr = new DataManager(); |
309 | connect( mgr, SIGNAL( progressSetSteps( int ) ), this, SLOT( setProgressSteps( int ) ) ); | 309 | connect( mgr, SIGNAL( progressSetSteps(int) ), this, SLOT( setProgressSteps(int) ) ); |
310 | connect( mgr, SIGNAL( progressSetMessage( const QString & ) ), | 310 | connect( mgr, SIGNAL( progressSetMessage(const QString&) ), |
311 | this, SLOT( setProgressMessage( const QString & ) ) ); | 311 | this, SLOT( setProgressMessage(const QString&) ) ); |
312 | connect( mgr, SIGNAL( progressUpdate( int ) ), this, SLOT( updateProgress( int ) ) ); | 312 | connect( mgr, SIGNAL( progressUpdate(int) ), this, SLOT( updateProgress(int) ) ); |
313 | mgr->loadServers(); | 313 | mgr->loadServers(); |
314 | 314 | ||
315 | showUninstalledPkgs = false; | 315 | showUninstalledPkgs = false; |
316 | showInstalledPkgs = false; | 316 | showInstalledPkgs = false; |
317 | showUpgradedPkgs = false; | 317 | showUpgradedPkgs = false; |
318 | categoryFilterEnabled = false; | 318 | categoryFilterEnabled = false; |
319 | 319 | ||
320 | updateData(); | 320 | updateData(); |
321 | 321 | ||
322 | stack->raiseWidget( networkPkgWindow ); | 322 | stack->raiseWidget( networkPkgWindow ); |
323 | } | 323 | } |
324 | 324 | ||
325 | void MainWindow :: setDocument( const QString &doc ) | 325 | void MainWindow :: setDocument( const QString &doc ) |
326 | { | 326 | { |
327 | // Remove path from package | 327 | // Remove path from package |
328 | QString package = Utils::getPackageNameFromIpkFilename( doc ); | 328 | QString package = Utils::getPackageNameFromIpkFilename( doc ); |
329 | 329 | ||
330 | // First select local server | 330 | // First select local server |
331 | for ( int i = 0 ; i < serversList->count() ; ++i ) | 331 | for ( int i = 0 ; i < serversList->count() ; ++i ) |
332 | { | 332 | { |
333 | if ( serversList->text( i ) == LOCAL_IPKGS ) | 333 | if ( serversList->text( i ) == LOCAL_IPKGS ) |
334 | { | 334 | { |
335 | serversList->setCurrentItem( i ); | 335 | serversList->setCurrentItem( i ); |
336 | break; | 336 | break; |
337 | } | 337 | } |
338 | } | 338 | } |
339 | serverSelected( 0 ); | 339 | serverSelected( 0 ); |
340 | 340 | ||
341 | // Now set the check box of the selected package | 341 | // Now set the check box of the selected package |
342 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); | 342 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); |
343 | item != 0 ; | 343 | item != 0 ; |
344 | item = (QCheckListItem *)item->nextSibling() ) | 344 | item = (QCheckListItem *)item->nextSibling() ) |
345 | { | 345 | { |
346 | if ( item->text().startsWith( package ) ) | 346 | if ( item->text().startsWith( package ) ) |
347 | { | 347 | { |
348 | item->setOn( true ); | 348 | item->setOn( true ); |
349 | break; | 349 | break; |
350 | } | 350 | } |
351 | } | 351 | } |
352 | } | 352 | } |
353 | 353 | ||
354 | void MainWindow :: displaySettings() | 354 | void MainWindow :: displaySettings() |
355 | { | 355 | { |
356 | SettingsImpl *dlg = new SettingsImpl( mgr, this, "Settings", true ); | 356 | SettingsImpl *dlg = new SettingsImpl( mgr, this, "Settings", true ); |
357 | if ( dlg->showDlg() ) | 357 | if ( dlg->showDlg() ) |
358 | { | 358 | { |
359 | stack->raiseWidget( progressWindow ); | 359 | stack->raiseWidget( progressWindow ); |
360 | updateData(); | 360 | updateData(); |
361 | stack->raiseWidget( networkPkgWindow ); | 361 | stack->raiseWidget( networkPkgWindow ); |
362 | } | 362 | } |
363 | delete dlg; | 363 | delete dlg; |
364 | } | 364 | } |
365 | 365 | ||
366 | void MainWindow :: closeEvent( QCloseEvent *e ) | 366 | void MainWindow :: closeEvent( QCloseEvent *e ) |
367 | { | 367 | { |
368 | // If install dialog is visible, return to main view, otherwise close app | 368 | // If install dialog is visible, return to main view, otherwise close app |
369 | QWidget *widget = stack->visibleWidget(); | 369 | QWidget *widget = stack->visibleWidget(); |
370 | 370 | ||
371 | if ( widget != networkPkgWindow && widget != progressWindow ) | 371 | if ( widget != networkPkgWindow && widget != progressWindow ) |
372 | { | 372 | { |
373 | if ( widget ) delete widget; | 373 | if ( widget ) delete widget; |
374 | stack->raiseWidget( networkPkgWindow ); | 374 | stack->raiseWidget( networkPkgWindow ); |
375 | e->ignore(); | 375 | e->ignore(); |
376 | } | 376 | } |
377 | else | 377 | else |
378 | { | 378 | { |
379 | e->accept(); | 379 | e->accept(); |
380 | } | 380 | } |
381 | } | 381 | } |
382 | 382 | ||
383 | void MainWindow :: displayFindBar() | 383 | void MainWindow :: displayFindBar() |
384 | { | 384 | { |
385 | findBar->show(); | 385 | findBar->show(); |
386 | findEdit->setFocus(); | 386 | findEdit->setFocus(); |
387 | } | 387 | } |
388 | 388 | ||
389 | void MainWindow :: displayJumpBar() | 389 | void MainWindow :: displayJumpBar() |
390 | { | 390 | { |
391 | jumpBar->show(); | 391 | jumpBar->show(); |
392 | } | 392 | } |
393 | 393 | ||
394 | void MainWindow :: repeatFind() | 394 | void MainWindow :: repeatFind() |
395 | { | 395 | { |
396 | searchForPackage( findEdit->text() ); | 396 | searchForPackage( findEdit->text() ); |
397 | } | 397 | } |
398 | 398 | ||
399 | void MainWindow :: findPackage( const QString &text ) | 399 | void MainWindow :: findPackage( const QString &text ) |
400 | { | 400 | { |
401 | actionFindNext->setEnabled( !text.isEmpty() ); | 401 | actionFindNext->setEnabled( !text.isEmpty() ); |
402 | searchForPackage( text ); | 402 | searchForPackage( text ); |
403 | } | 403 | } |
404 | 404 | ||
405 | void MainWindow :: hideFindBar() | 405 | void MainWindow :: hideFindBar() |
406 | { | 406 | { |
407 | findBar->hide(); | 407 | findBar->hide(); |
408 | } | 408 | } |
@@ -677,411 +677,411 @@ void MainWindow :: serverSelected( int, bool raiseProgress ) | |||
677 | 677 | ||
678 | // If the local server, only display installed packages | 678 | // If the local server, only display installed packages |
679 | if ( serverName == LOCAL_SERVER && !package->isInstalled() ) | 679 | if ( serverName == LOCAL_SERVER && !package->isInstalled() ) |
680 | continue; | 680 | continue; |
681 | 681 | ||
682 | 682 | ||
683 | QCheckListItem *item = new QCheckListItem( packagesList, package->getPackageName(), | 683 | QCheckListItem *item = new QCheckListItem( packagesList, package->getPackageName(), |
684 | QCheckListItem::CheckBox ); | 684 | QCheckListItem::CheckBox ); |
685 | 685 | ||
686 | if ( package->isInstalled() ) | 686 | if ( package->isInstalled() ) |
687 | { | 687 | { |
688 | // If a different version of package is available, show update available icon | 688 | // If a different version of package is available, show update available icon |
689 | // Otherwise, show installed icon | 689 | // Otherwise, show installed icon |
690 | if ( package->getNewVersionAvailable()) | 690 | if ( package->getNewVersionAvailable()) |
691 | { | 691 | { |
692 | 692 | ||
693 | item->setPixmap( 0, updatedIcon ); | 693 | item->setPixmap( 0, updatedIcon ); |
694 | } | 694 | } |
695 | else | 695 | else |
696 | { | 696 | { |
697 | item->setPixmap( 0, installedIcon ); | 697 | item->setPixmap( 0, installedIcon ); |
698 | } | 698 | } |
699 | } | 699 | } |
700 | else | 700 | else |
701 | { | 701 | { |
702 | item->setPixmap( 0, nullIcon ); | 702 | item->setPixmap( 0, nullIcon ); |
703 | } | 703 | } |
704 | 704 | ||
705 | packagesList->insertItem( item ); | 705 | packagesList->insertItem( item ); |
706 | } | 706 | } |
707 | 707 | ||
708 | // If the local server or the local ipkgs server disable the download button | 708 | // If the local server or the local ipkgs server disable the download button |
709 | if ( serverName == LOCAL_SERVER ) | 709 | if ( serverName == LOCAL_SERVER ) |
710 | { | 710 | { |
711 | downloadEnabled = TRUE; | 711 | downloadEnabled = TRUE; |
712 | actionUpgrade->setEnabled( FALSE ); | 712 | actionUpgrade->setEnabled( FALSE ); |
713 | } | 713 | } |
714 | else if ( serverName == LOCAL_IPKGS ) | 714 | else if ( serverName == LOCAL_IPKGS ) |
715 | { | 715 | { |
716 | downloadEnabled = FALSE; | 716 | downloadEnabled = FALSE; |
717 | actionUpgrade->setEnabled( FALSE ); | 717 | actionUpgrade->setEnabled( FALSE ); |
718 | } | 718 | } |
719 | else | 719 | else |
720 | { | 720 | { |
721 | downloadEnabled = TRUE; | 721 | downloadEnabled = TRUE; |
722 | actionUpgrade->setEnabled( TRUE ); | 722 | actionUpgrade->setEnabled( TRUE ); |
723 | } | 723 | } |
724 | enableDownload( downloadEnabled ); | 724 | enableDownload( downloadEnabled ); |
725 | 725 | ||
726 | // Display this widget once everything is done | 726 | // Display this widget once everything is done |
727 | if ( doProgress && raiseProgress ) | 727 | if ( doProgress && raiseProgress ) |
728 | { | 728 | { |
729 | stack->raiseWidget( networkPkgWindow ); | 729 | stack->raiseWidget( networkPkgWindow ); |
730 | } | 730 | } |
731 | } | 731 | } |
732 | 732 | ||
733 | void MainWindow :: searchForPackage( const QString &text ) | 733 | void MainWindow :: searchForPackage( const QString &text ) |
734 | { | 734 | { |
735 | if ( !text.isEmpty() ) | 735 | if ( !text.isEmpty() ) |
736 | { | 736 | { |
737 | // look through package list for text startng at current position | 737 | // look through package list for text startng at current position |
738 | QCheckListItem *start = (QCheckListItem *)packagesList->currentItem(); | 738 | QCheckListItem *start = (QCheckListItem *)packagesList->currentItem(); |
739 | 739 | ||
740 | if ( start == 0 ) | 740 | if ( start == 0 ) |
741 | start = (QCheckListItem *)packagesList->firstChild(); | 741 | start = (QCheckListItem *)packagesList->firstChild(); |
742 | 742 | ||
743 | for ( QCheckListItem *item = start; item != 0 ; | 743 | for ( QCheckListItem *item = start; item != 0 ; |
744 | item = (QCheckListItem *)item->nextSibling() ) | 744 | item = (QCheckListItem *)item->nextSibling() ) |
745 | { | 745 | { |
746 | if ( item->text().lower().find( text ) != -1 ) | 746 | if ( item->text().lower().find( text ) != -1 ) |
747 | { | 747 | { |
748 | packagesList->ensureItemVisible( item ); | 748 | packagesList->ensureItemVisible( item ); |
749 | packagesList->setCurrentItem( item ); | 749 | packagesList->setCurrentItem( item ); |
750 | break; | 750 | break; |
751 | } | 751 | } |
752 | } | 752 | } |
753 | } | 753 | } |
754 | } | 754 | } |
755 | 755 | ||
756 | void MainWindow :: updateServer() | 756 | void MainWindow :: updateServer() |
757 | { | 757 | { |
758 | QString serverName = serversList->currentText(); | 758 | QString serverName = serversList->currentText(); |
759 | 759 | ||
760 | // Update the current server | 760 | // Update the current server |
761 | // Display dialog | 761 | // Display dialog |
762 | 762 | ||
763 | // Disable buttons to stop silly people clicking lots on them :) | 763 | // Disable buttons to stop silly people clicking lots on them :) |
764 | 764 | ||
765 | // First, write out ipkg_conf file so that ipkg can use it | 765 | // First, write out ipkg_conf file so that ipkg can use it |
766 | mgr->writeOutIpkgConf(); | 766 | mgr->writeOutIpkgConf(); |
767 | 767 | ||
768 | Ipkg *ipkg = new Ipkg; | 768 | Ipkg *ipkg = new Ipkg; |
769 | ipkg->setOption( "update" ); | 769 | ipkg->setOption( "update" ); |
770 | 770 | ||
771 | InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Refreshing server package lists" ), | 771 | InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Refreshing server package lists" ), |
772 | tr( "Update lists" ) ); | 772 | tr( "Update lists" ) ); |
773 | connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); | 773 | connect( dlg, SIGNAL( reloadData(InstallDlgImpl*) ), this, SLOT( reloadData(InstallDlgImpl*) ) ); |
774 | reloadDocuments = FALSE; | 774 | reloadDocuments = FALSE; |
775 | stack->addWidget( dlg, 3 ); | 775 | stack->addWidget( dlg, 3 ); |
776 | stack->raiseWidget( dlg ); | 776 | stack->raiseWidget( dlg ); |
777 | 777 | ||
778 | // delete progDlg; | 778 | // delete progDlg; |
779 | } | 779 | } |
780 | 780 | ||
781 | void MainWindow :: upgradePackages() | 781 | void MainWindow :: upgradePackages() |
782 | { | 782 | { |
783 | // We're gonna do an upgrade of all packages | 783 | // We're gonna do an upgrade of all packages |
784 | // First warn user that this isn't recommended | 784 | // First warn user that this isn't recommended |
785 | // TODO - ODevice???? | 785 | // TODO - ODevice???? |
786 | QString text = tr( "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n" ); | 786 | QString text = tr( "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n" ); |
787 | QMessageBox warn( tr( "Warning" ), text, QMessageBox::Warning, | 787 | QMessageBox warn( tr( "Warning" ), text, QMessageBox::Warning, |
788 | QMessageBox::Yes, | 788 | QMessageBox::Yes, |
789 | QMessageBox::No | QMessageBox::Escape | QMessageBox::Default , | 789 | QMessageBox::No | QMessageBox::Escape | QMessageBox::Default , |
790 | 0, this ); | 790 | 0, this ); |
791 | warn.adjustSize(); | 791 | warn.adjustSize(); |
792 | 792 | ||
793 | if ( warn.exec() == QMessageBox::Yes ) | 793 | if ( warn.exec() == QMessageBox::Yes ) |
794 | { | 794 | { |
795 | // First, write out ipkg_conf file so that ipkg can use it | 795 | // First, write out ipkg_conf file so that ipkg can use it |
796 | mgr->writeOutIpkgConf(); | 796 | mgr->writeOutIpkgConf(); |
797 | 797 | ||
798 | // Now run upgrade | 798 | // Now run upgrade |
799 | Ipkg *ipkg = new Ipkg; | 799 | Ipkg *ipkg = new Ipkg; |
800 | ipkg->setOption( "upgrade" ); | 800 | ipkg->setOption( "upgrade" ); |
801 | 801 | ||
802 | InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Upgrading installed packages" ), | 802 | InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Upgrading installed packages" ), |
803 | tr ( "Upgrade" ) ); | 803 | tr ( "Upgrade" ) ); |
804 | connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); | 804 | connect( dlg, SIGNAL( reloadData(InstallDlgImpl*) ), this, SLOT( reloadData(InstallDlgImpl*) ) ); |
805 | reloadDocuments = TRUE; | 805 | reloadDocuments = TRUE; |
806 | stack->addWidget( dlg, 3 ); | 806 | stack->addWidget( dlg, 3 ); |
807 | stack->raiseWidget( dlg ); | 807 | stack->raiseWidget( dlg ); |
808 | } | 808 | } |
809 | } | 809 | } |
810 | 810 | ||
811 | void MainWindow :: downloadPackage() | 811 | void MainWindow :: downloadPackage() |
812 | { | 812 | { |
813 | bool doUpdate = true; | 813 | bool doUpdate = true; |
814 | if ( downloadEnabled ) | 814 | if ( downloadEnabled ) |
815 | { | 815 | { |
816 | // See if any packages are selected | 816 | // See if any packages are selected |
817 | bool found = false; | 817 | bool found = false; |
818 | if ( serversList->currentText() != LOCAL_SERVER ) | 818 | if ( serversList->currentText() != LOCAL_SERVER ) |
819 | { | 819 | { |
820 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); | 820 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); |
821 | item != 0 && !found; | 821 | item != 0 && !found; |
822 | item = (QCheckListItem *)item->nextSibling() ) | 822 | item = (QCheckListItem *)item->nextSibling() ) |
823 | { | 823 | { |
824 | if ( item->isOn() ) | 824 | if ( item->isOn() ) |
825 | found = true; | 825 | found = true; |
826 | } | 826 | } |
827 | } | 827 | } |
828 | 828 | ||
829 | // If user selected some packages then download the and store the locally | 829 | // If user selected some packages then download the and store the locally |
830 | // otherwise, display dialog asking user what package to download from an http server | 830 | // otherwise, display dialog asking user what package to download from an http server |
831 | // and whether to install it | 831 | // and whether to install it |
832 | if ( found ) | 832 | if ( found ) |
833 | downloadSelectedPackages(); | 833 | downloadSelectedPackages(); |
834 | else | 834 | else |
835 | downloadRemotePackage(); | 835 | downloadRemotePackage(); |
836 | 836 | ||
837 | } | 837 | } |
838 | else | 838 | else |
839 | { | 839 | { |
840 | doUpdate = false; | 840 | doUpdate = false; |
841 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); | 841 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); |
842 | item != 0 ; | 842 | item != 0 ; |
843 | item = (QCheckListItem *)item->nextSibling() ) | 843 | item = (QCheckListItem *)item->nextSibling() ) |
844 | { | 844 | { |
845 | if ( item->isOn() ) | 845 | if ( item->isOn() ) |
846 | { | 846 | { |
847 | QString name = item->text(); | 847 | QString name = item->text(); |
848 | int pos = name.find( "*" ); | 848 | int pos = name.find( "*" ); |
849 | name.truncate( pos ); | 849 | name.truncate( pos ); |
850 | 850 | ||
851 | // if (there is a (installed), remove it | 851 | // if (there is a (installed), remove it |
852 | pos = name.find( "(installed)" ); | 852 | pos = name.find( "(installed)" ); |
853 | if ( pos > 0 ) | 853 | if ( pos > 0 ) |
854 | name.truncate( pos - 1 ); | 854 | name.truncate( pos - 1 ); |
855 | 855 | ||
856 | Package *p = mgr->getServer( serversList->currentText() )->getPackage( name ); | 856 | Package *p = mgr->getServer( serversList->currentText() )->getPackage( name ); |
857 | 857 | ||
858 | QString msgtext; | 858 | QString msgtext; |
859 | msgtext = tr( "Are you sure you wish to delete\n%1?" ).arg( (const char *)p->getPackageName() ); | 859 | msgtext = tr( "Are you sure you wish to delete\n%1?" ).arg( (const char *)p->getPackageName() ); |
860 | if ( QMessageBox::information( this, tr( "Are you sure?" ), | 860 | if ( QMessageBox::information( this, tr( "Are you sure?" ), |
861 | msgtext, tr( "No" ), tr( "Yes" ) ) == 1 ) | 861 | msgtext, tr( "No" ), tr( "Yes" ) ) == 1 ) |
862 | { | 862 | { |
863 | doUpdate = true; | 863 | doUpdate = true; |
864 | QFile f( p->getFilename() ); | 864 | QFile f( p->getFilename() ); |
865 | f.remove(); | 865 | f.remove(); |
866 | } | 866 | } |
867 | } | 867 | } |
868 | } | 868 | } |
869 | } | 869 | } |
870 | 870 | ||
871 | if ( doUpdate ) | 871 | if ( doUpdate ) |
872 | { | 872 | { |
873 | reloadData( 0x0 ); | 873 | reloadData( 0x0 ); |
874 | } | 874 | } |
875 | } | 875 | } |
876 | 876 | ||
877 | void MainWindow :: downloadSelectedPackages() | 877 | void MainWindow :: downloadSelectedPackages() |
878 | { | 878 | { |
879 | // First, write out ipkg_conf file so that ipkg can use it | 879 | // First, write out ipkg_conf file so that ipkg can use it |
880 | mgr->writeOutIpkgConf(); | 880 | mgr->writeOutIpkgConf(); |
881 | 881 | ||
882 | // Display dialog to user asking where to download the files to | 882 | // Display dialog to user asking where to download the files to |
883 | bool ok = FALSE; | 883 | bool ok = FALSE; |
884 | QString dir = ""; | 884 | QString dir = ""; |
885 | #ifdef QWS | 885 | #ifdef QWS |
886 | // read download directory from config file | 886 | // read download directory from config file |
887 | Config cfg( "aqpkg" ); | 887 | Config cfg( "aqpkg" ); |
888 | cfg.setGroup( "settings" ); | 888 | cfg.setGroup( "settings" ); |
889 | dir = cfg.readEntry( "downloadDir", "/home/root/Documents/application/ipkg" ); | 889 | dir = cfg.readEntry( "downloadDir", "/home/root/Documents/application/ipkg" ); |
890 | #endif | 890 | #endif |
891 | 891 | ||
892 | QString text = InputDialog::getText( tr( "Download to where" ), tr( "Enter path to download to" ), dir, &ok, this ); | 892 | QString text = InputDialog::getText( tr( "Download to where" ), tr( "Enter path to download to" ), dir, &ok, this ); |
893 | if ( ok && !text.isEmpty() ) | 893 | if ( ok && !text.isEmpty() ) |
894 | dir = text; // user entered something and pressed ok | 894 | dir = text; // user entered something and pressed ok |
895 | else | 895 | else |
896 | return; // user entered nothing or pressed cancel | 896 | return; // user entered nothing or pressed cancel |
897 | 897 | ||
898 | #ifdef QWS | 898 | #ifdef QWS |
899 | // Store download directory in config file | 899 | // Store download directory in config file |
900 | cfg.writeEntry( "downloadDir", dir ); | 900 | cfg.writeEntry( "downloadDir", dir ); |
901 | #endif | 901 | #endif |
902 | 902 | ||
903 | // Get starting directory | 903 | // Get starting directory |
904 | char initDir[PATH_MAX]; | 904 | char initDir[PATH_MAX]; |
905 | getcwd( initDir, PATH_MAX ); | 905 | getcwd( initDir, PATH_MAX ); |
906 | 906 | ||
907 | // Download each package | 907 | // Download each package |
908 | Ipkg ipkg; | 908 | Ipkg ipkg; |
909 | connect( &ipkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &))); | 909 | connect( &ipkg, SIGNAL(outputText(const QString&)), this, SLOT(displayText(const QString&))); |
910 | 910 | ||
911 | ipkg.setOption( "download" ); | 911 | ipkg.setOption( "download" ); |
912 | ipkg.setRuntimeDirectory( dir ); | 912 | ipkg.setRuntimeDirectory( dir ); |
913 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); | 913 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); |
914 | item != 0 ; | 914 | item != 0 ; |
915 | item = (QCheckListItem *)item->nextSibling() ) | 915 | item = (QCheckListItem *)item->nextSibling() ) |
916 | { | 916 | { |
917 | if ( item->isOn() ) | 917 | if ( item->isOn() ) |
918 | { | 918 | { |
919 | ipkg.setPackage( item->text() ); | 919 | ipkg.setPackage( item->text() ); |
920 | ipkg.runIpkg( ); | 920 | ipkg.runIpkg( ); |
921 | } | 921 | } |
922 | } | 922 | } |
923 | } | 923 | } |
924 | 924 | ||
925 | void MainWindow :: downloadRemotePackage() | 925 | void MainWindow :: downloadRemotePackage() |
926 | { | 926 | { |
927 | // Display dialog | 927 | // Display dialog |
928 | bool ok; | 928 | bool ok; |
929 | QString package = InputDialog::getText( tr( "Install Remote Package" ), tr( "Enter package location" ), "http://", &ok, this ); | 929 | QString package = InputDialog::getText( tr( "Install Remote Package" ), tr( "Enter package location" ), "http://", &ok, this ); |
930 | if ( !ok || package.isEmpty() ) | 930 | if ( !ok || package.isEmpty() ) |
931 | return; | 931 | return; |
932 | // DownloadRemoteDlgImpl dlg( this, "Install", true ); | 932 | // DownloadRemoteDlgImpl dlg( this, "Install", true ); |
933 | // if ( dlg.exec() == QDialog::Rejected ) | 933 | // if ( dlg.exec() == QDialog::Rejected ) |
934 | // return; | 934 | // return; |
935 | 935 | ||
936 | // grab details from dialog | 936 | // grab details from dialog |
937 | // QString package = dlg.getPackageLocation(); | 937 | // QString package = dlg.getPackageLocation(); |
938 | 938 | ||
939 | InstallData *item = new InstallData(); | 939 | InstallData *item = new InstallData(); |
940 | item->option = "I"; | 940 | item->option = "I"; |
941 | item->packageName = package; | 941 | item->packageName = package; |
942 | QList<InstallData> workingPackages; | 942 | QList<InstallData> workingPackages; |
943 | workingPackages.setAutoDelete( TRUE ); | 943 | workingPackages.setAutoDelete( TRUE ); |
944 | workingPackages.append( item ); | 944 | workingPackages.append( item ); |
945 | 945 | ||
946 | InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Download" ) ); | 946 | InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Download" ) ); |
947 | connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); | 947 | connect( dlg, SIGNAL( reloadData(InstallDlgImpl*) ), this, SLOT( reloadData(InstallDlgImpl*) ) ); |
948 | reloadDocuments = TRUE; | 948 | reloadDocuments = TRUE; |
949 | stack->addWidget( dlg, 3 ); | 949 | stack->addWidget( dlg, 3 ); |
950 | stack->raiseWidget( dlg ); | 950 | stack->raiseWidget( dlg ); |
951 | } | 951 | } |
952 | 952 | ||
953 | 953 | ||
954 | void MainWindow :: applyChanges() | 954 | void MainWindow :: applyChanges() |
955 | { | 955 | { |
956 | stickyOption = ""; | 956 | stickyOption = ""; |
957 | 957 | ||
958 | // First, write out ipkg_conf file so that ipkg can use it | 958 | // First, write out ipkg_conf file so that ipkg can use it |
959 | mgr->writeOutIpkgConf(); | 959 | mgr->writeOutIpkgConf(); |
960 | 960 | ||
961 | // Now for each selected item | 961 | // Now for each selected item |
962 | // deal with it | 962 | // deal with it |
963 | 963 | ||
964 | QList<InstallData> workingPackages; | 964 | QList<InstallData> workingPackages; |
965 | workingPackages.setAutoDelete( TRUE ); | 965 | workingPackages.setAutoDelete( TRUE ); |
966 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); | 966 | for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); |
967 | item != 0 ; | 967 | item != 0 ; |
968 | item = (QCheckListItem *)item->nextSibling() ) | 968 | item = (QCheckListItem *)item->nextSibling() ) |
969 | { | 969 | { |
970 | if ( item->isOn() ) | 970 | if ( item->isOn() ) |
971 | { | 971 | { |
972 | InstallData *instdata = dealWithItem( item ); | 972 | InstallData *instdata = dealWithItem( item ); |
973 | if ( instdata ) | 973 | if ( instdata ) |
974 | workingPackages.append( instdata ); | 974 | workingPackages.append( instdata ); |
975 | else | 975 | else |
976 | return; | 976 | return; |
977 | } | 977 | } |
978 | } | 978 | } |
979 | 979 | ||
980 | if ( workingPackages.count() == 0 ) | 980 | if ( workingPackages.count() == 0 ) |
981 | { | 981 | { |
982 | // Nothing to do | 982 | // Nothing to do |
983 | QMessageBox::information( this, tr( "Nothing to do" ), | 983 | QMessageBox::information( this, tr( "Nothing to do" ), |
984 | tr( "No packages selected" ), tr( "OK" ) ); | 984 | tr( "No packages selected" ), tr( "OK" ) ); |
985 | 985 | ||
986 | return; | 986 | return; |
987 | } | 987 | } |
988 | 988 | ||
989 | // do the stuff | 989 | // do the stuff |
990 | InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Apply changes" ) ); | 990 | InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Apply changes" ) ); |
991 | connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); | 991 | connect( dlg, SIGNAL( reloadData(InstallDlgImpl*) ), this, SLOT( reloadData(InstallDlgImpl*) ) ); |
992 | reloadDocuments = TRUE; | 992 | reloadDocuments = TRUE; |
993 | stack->addWidget( dlg, 3 ); | 993 | stack->addWidget( dlg, 3 ); |
994 | stack->raiseWidget( dlg ); | 994 | stack->raiseWidget( dlg ); |
995 | } | 995 | } |
996 | 996 | ||
997 | // decide what to do - either remove, upgrade or install | 997 | // decide what to do - either remove, upgrade or install |
998 | // Current rules: | 998 | // Current rules: |
999 | // If not installed - install | 999 | // If not installed - install |
1000 | // If installed and different version available - upgrade | 1000 | // If installed and different version available - upgrade |
1001 | // If installed and version up to date - remove | 1001 | // If installed and version up to date - remove |
1002 | InstallData *MainWindow :: dealWithItem( QCheckListItem *item ) | 1002 | InstallData *MainWindow :: dealWithItem( QCheckListItem *item ) |
1003 | { | 1003 | { |
1004 | QString name = item->text(); | 1004 | QString name = item->text(); |
1005 | 1005 | ||
1006 | // Get package | 1006 | // Get package |
1007 | Server *s = mgr->getServer( serversList->currentText() ); | 1007 | Server *s = mgr->getServer( serversList->currentText() ); |
1008 | Package *p = s->getPackage( name ); | 1008 | Package *p = s->getPackage( name ); |
1009 | 1009 | ||
1010 | // If the package has a filename then it is a local file | 1010 | // If the package has a filename then it is a local file |
1011 | if ( p->isPackageStoredLocally() ) | 1011 | if ( p->isPackageStoredLocally() ) |
1012 | name = p->getFilename(); | 1012 | name = p->getFilename(); |
1013 | 1013 | ||
1014 | QString option; | 1014 | QString option; |
1015 | QString dest = "root"; | 1015 | QString dest = "root"; |
1016 | if ( !p->isInstalled() ) | 1016 | if ( !p->isInstalled() ) |
1017 | { | 1017 | { |
1018 | InstallData *newitem = new InstallData(); | 1018 | InstallData *newitem = new InstallData(); |
1019 | newitem->option = "I"; | 1019 | newitem->option = "I"; |
1020 | newitem->packageName = name; | 1020 | newitem->packageName = name; |
1021 | return newitem; | 1021 | return newitem; |
1022 | } | 1022 | } |
1023 | else | 1023 | else |
1024 | { | 1024 | { |
1025 | InstallData *newitem = new InstallData(); | 1025 | InstallData *newitem = new InstallData(); |
1026 | newitem->option = "D"; | 1026 | newitem->option = "D"; |
1027 | // If local file, remove using package name, not filename | 1027 | // If local file, remove using package name, not filename |
1028 | if ( p->isPackageStoredLocally() ) | 1028 | if ( p->isPackageStoredLocally() ) |
1029 | name = item->text(); | 1029 | name = item->text(); |
1030 | 1030 | ||
1031 | if ( !p->isPackageStoredLocally() ) | 1031 | if ( !p->isPackageStoredLocally() ) |
1032 | newitem->packageName = p->getInstalledPackageName(); | 1032 | newitem->packageName = p->getInstalledPackageName(); |
1033 | else | 1033 | else |
1034 | newitem->packageName = name; | 1034 | newitem->packageName = name; |
1035 | 1035 | ||
1036 | if ( p->getInstalledTo() ) | 1036 | if ( p->getInstalledTo() ) |
1037 | { | 1037 | { |
1038 | newitem->destination = p->getInstalledTo(); | 1038 | newitem->destination = p->getInstalledTo(); |
1039 | } | 1039 | } |
1040 | else | 1040 | else |
1041 | { | 1041 | { |
1042 | newitem->destination = p->getLocalPackage()->getInstalledTo(); | 1042 | newitem->destination = p->getLocalPackage()->getInstalledTo(); |
1043 | } | 1043 | } |
1044 | 1044 | ||
1045 | // Now see if version is newer or not | 1045 | // Now see if version is newer or not |
1046 | int val = compareVersions( p->getInstalledVersion(), p->getVersion() ); | 1046 | int val = compareVersions( p->getInstalledVersion(), p->getVersion() ); |
1047 | 1047 | ||
1048 | // If the version requested is older and user selected a local ipk file, then reinstall the file | 1048 | // If the version requested is older and user selected a local ipk file, then reinstall the file |
1049 | if ( p->isPackageStoredLocally() && val == -1 ) | 1049 | if ( p->isPackageStoredLocally() && val == -1 ) |
1050 | val = 0; | 1050 | val = 0; |
1051 | 1051 | ||
1052 | if ( val == -2 ) | 1052 | if ( val == -2 ) |
1053 | { | 1053 | { |
1054 | // Error - should handle | 1054 | // Error - should handle |
1055 | } | 1055 | } |
1056 | else if ( val == -1 ) | 1056 | else if ( val == -1 ) |
1057 | { | 1057 | { |
1058 | // Version available is older - remove only | 1058 | // Version available is older - remove only |
1059 | newitem->option = "D"; | 1059 | newitem->option = "D"; |
1060 | // If local file, remove using package name, not filename | 1060 | // If local file, remove using package name, not filename |
1061 | if ( p->isPackageStoredLocally() ) | 1061 | if ( p->isPackageStoredLocally() ) |
1062 | name = item->text(); | 1062 | name = item->text(); |
1063 | } | 1063 | } |
1064 | else | 1064 | else |
1065 | { | 1065 | { |
1066 | QString caption; | 1066 | QString caption; |
1067 | QString text; | 1067 | QString text; |
1068 | QString secondButton; | 1068 | QString secondButton; |
1069 | QString secondOption; | 1069 | QString secondOption; |
1070 | if ( val == 0 ) | 1070 | if ( val == 0 ) |
1071 | { | 1071 | { |
1072 | // Version available is the same - option to remove or reinstall | 1072 | // Version available is the same - option to remove or reinstall |
1073 | caption = tr( "Do you wish to remove or reinstall\n%1?" ); | 1073 | caption = tr( "Do you wish to remove or reinstall\n%1?" ); |
1074 | text = tr( "Remove or ReInstall" ); | 1074 | text = tr( "Remove or ReInstall" ); |
1075 | secondButton = tr( "ReInstall" ); | 1075 | secondButton = tr( "ReInstall" ); |
1076 | secondOption = "R"; // Internal action code, do not translate | 1076 | secondOption = "R"; // Internal action code, do not translate |
1077 | } | 1077 | } |
1078 | else if ( val == 1 ) | 1078 | else if ( val == 1 ) |
1079 | { | 1079 | { |
1080 | // Version available is newer - option to remove or upgrade | 1080 | // Version available is newer - option to remove or upgrade |
1081 | caption = tr( "Do you wish to remove or upgrade\n%1?" ); | 1081 | caption = tr( "Do you wish to remove or upgrade\n%1?" ); |
1082 | text = tr( "Remove or Upgrade" ); | 1082 | text = tr( "Remove or Upgrade" ); |
1083 | secondButton = tr( "Upgrade" ); | 1083 | secondButton = tr( "Upgrade" ); |
1084 | secondOption = "U"; // Internal action code, do not translate | 1084 | secondOption = "U"; // Internal action code, do not translate |
1085 | } | 1085 | } |
1086 | 1086 | ||
1087 | // Sticky option not implemented yet, but will eventually allow | 1087 | // Sticky option not implemented yet, but will eventually allow |
diff --git a/noncore/settings/aqpkg/settingsimpl.cpp b/noncore/settings/aqpkg/settingsimpl.cpp index 6e9dd99..b9dbb6e 100644 --- a/noncore/settings/aqpkg/settingsimpl.cpp +++ b/noncore/settings/aqpkg/settingsimpl.cpp | |||
@@ -18,251 +18,251 @@ | |||
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "settingsimpl.h" | 30 | #include "settingsimpl.h" |
31 | #include "global.h" | 31 | #include "global.h" |
32 | 32 | ||
33 | /* OPIE */ | 33 | /* OPIE */ |
34 | #include <opie2/otabwidget.h> | 34 | #include <opie2/otabwidget.h> |
35 | #ifdef QWS | 35 | #ifdef QWS |
36 | #include <qpe/config.h> | 36 | #include <qpe/config.h> |
37 | #include <qpe/resource.h> | 37 | #include <qpe/resource.h> |
38 | #endif | 38 | #endif |
39 | #include <qpe/qpeapplication.h> | 39 | #include <qpe/qpeapplication.h> |
40 | 40 | ||
41 | /* QT */ | 41 | /* QT */ |
42 | #include <qcheckbox.h> | 42 | #include <qcheckbox.h> |
43 | #include <qgroupbox.h> | 43 | #include <qgroupbox.h> |
44 | #include <qlabel.h> | 44 | #include <qlabel.h> |
45 | #include <qlayout.h> | 45 | #include <qlayout.h> |
46 | #include <qlineedit.h> | 46 | #include <qlineedit.h> |
47 | #include <qlistbox.h> | 47 | #include <qlistbox.h> |
48 | #include <qpushbutton.h> | 48 | #include <qpushbutton.h> |
49 | 49 | ||
50 | /* STD */ | 50 | /* STD */ |
51 | #include <fstream> | 51 | #include <fstream> |
52 | #include <algorithm> | 52 | #include <algorithm> |
53 | using namespace std; | 53 | using namespace std; |
54 | 54 | ||
55 | SettingsImpl :: SettingsImpl( DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl ) | 55 | SettingsImpl :: SettingsImpl( DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl ) |
56 | : QDialog( parent, name, modal, fl ) | 56 | : QDialog( parent, name, modal, fl ) |
57 | { | 57 | { |
58 | setCaption( tr( "Configuration" ) ); | 58 | setCaption( tr( "Configuration" ) ); |
59 | 59 | ||
60 | // Setup layout to make everything pretty | 60 | // Setup layout to make everything pretty |
61 | QVBoxLayout *layout = new QVBoxLayout( this ); | 61 | QVBoxLayout *layout = new QVBoxLayout( this ); |
62 | layout->setMargin( 2 ); | 62 | layout->setMargin( 2 ); |
63 | layout->setSpacing( 4 ); | 63 | layout->setSpacing( 4 ); |
64 | 64 | ||
65 | // Setup tabs for all info | 65 | // Setup tabs for all info |
66 | Opie::OTabWidget *tabwidget = new Opie::OTabWidget( this ); | 66 | Opie::OTabWidget *tabwidget = new Opie::OTabWidget( this ); |
67 | layout->addWidget( tabwidget ); | 67 | layout->addWidget( tabwidget ); |
68 | 68 | ||
69 | tabwidget->addTab( initServerTab(), "aqpkg/servertab", tr( "Servers" ) ); | 69 | tabwidget->addTab( initServerTab(), "aqpkg/servertab", tr( "Servers" ) ); |
70 | tabwidget->addTab( initDestinationTab(), "aqpkg/desttab", tr( "Destinations" ) ); | 70 | tabwidget->addTab( initDestinationTab(), "aqpkg/desttab", tr( "Destinations" ) ); |
71 | tabwidget->addTab( initProxyTab(), "aqpkg/proxytab", tr( "Proxies" ) ); | 71 | tabwidget->addTab( initProxyTab(), "aqpkg/proxytab", tr( "Proxies" ) ); |
72 | tabwidget->setCurrentTab( tr( "Servers" ) ); | 72 | tabwidget->setCurrentTab( tr( "Servers" ) ); |
73 | 73 | ||
74 | dataMgr = dataManager; | 74 | dataMgr = dataManager; |
75 | setupData(); | 75 | setupData(); |
76 | changed = false; | 76 | changed = false; |
77 | newserver = false; | 77 | newserver = false; |
78 | newdestination = false; | 78 | newdestination = false; |
79 | } | 79 | } |
80 | 80 | ||
81 | SettingsImpl :: ~SettingsImpl() | 81 | SettingsImpl :: ~SettingsImpl() |
82 | { | 82 | { |
83 | } | 83 | } |
84 | 84 | ||
85 | bool SettingsImpl :: showDlg() | 85 | bool SettingsImpl :: showDlg() |
86 | { | 86 | { |
87 | QPEApplication::execDialog( this ); | 87 | QPEApplication::execDialog( this ); |
88 | if ( changed ) | 88 | if ( changed ) |
89 | dataMgr->writeOutIpkgConf(); | 89 | dataMgr->writeOutIpkgConf(); |
90 | 90 | ||
91 | return changed; | 91 | return changed; |
92 | } | 92 | } |
93 | 93 | ||
94 | QWidget *SettingsImpl :: initServerTab() | 94 | QWidget *SettingsImpl :: initServerTab() |
95 | { | 95 | { |
96 | QWidget *control = new QWidget( this ); | 96 | QWidget *control = new QWidget( this ); |
97 | 97 | ||
98 | QVBoxLayout *vb = new QVBoxLayout( control ); | 98 | QVBoxLayout *vb = new QVBoxLayout( control ); |
99 | 99 | ||
100 | QScrollView *sv = new QScrollView( control ); | 100 | QScrollView *sv = new QScrollView( control ); |
101 | vb->addWidget( sv, 0, 0 ); | 101 | vb->addWidget( sv, 0, 0 ); |
102 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 102 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
103 | sv->setFrameStyle( QFrame::NoFrame ); | 103 | sv->setFrameStyle( QFrame::NoFrame ); |
104 | 104 | ||
105 | QWidget *container = new QWidget( sv->viewport() ); | 105 | QWidget *container = new QWidget( sv->viewport() ); |
106 | sv->addChild( container ); | 106 | sv->addChild( container ); |
107 | 107 | ||
108 | QGridLayout *layout = new QGridLayout( container ); | 108 | QGridLayout *layout = new QGridLayout( container ); |
109 | layout->setSpacing( 2 ); | 109 | layout->setSpacing( 2 ); |
110 | layout->setMargin( 4 ); | 110 | layout->setMargin( 4 ); |
111 | 111 | ||
112 | servers = new QListBox( container ); | 112 | servers = new QListBox( container ); |
113 | servers->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); | 113 | servers->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); |
114 | connect( servers, SIGNAL( highlighted( int ) ), this, SLOT( editServer( int ) ) ); | 114 | connect( servers, SIGNAL( highlighted(int) ), this, SLOT( editServer(int) ) ); |
115 | layout->addMultiCellWidget( servers, 0, 0, 0, 1 ); | 115 | layout->addMultiCellWidget( servers, 0, 0, 0, 1 ); |
116 | 116 | ||
117 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), container ); | 117 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), container ); |
118 | connect( btn, SIGNAL( clicked() ), this, SLOT( newServer() ) ); | 118 | connect( btn, SIGNAL( clicked() ), this, SLOT( newServer() ) ); |
119 | layout->addWidget( btn, 1, 0 ); | 119 | layout->addWidget( btn, 1, 0 ); |
120 | 120 | ||
121 | btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container ); | 121 | btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container ); |
122 | connect( btn, SIGNAL( clicked() ), this, SLOT( removeServer() ) ); | 122 | connect( btn, SIGNAL( clicked() ), this, SLOT( removeServer() ) ); |
123 | layout->addWidget( btn, 1, 1 ); | 123 | layout->addWidget( btn, 1, 1 ); |
124 | 124 | ||
125 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Server" ), container ); | 125 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Server" ), container ); |
126 | grpbox->layout()->setSpacing( 2 ); | 126 | grpbox->layout()->setSpacing( 2 ); |
127 | grpbox->layout()->setMargin( 4 ); | 127 | grpbox->layout()->setMargin( 4 ); |
128 | layout->addMultiCellWidget( grpbox, 2, 2, 0, 1 ); | 128 | layout->addMultiCellWidget( grpbox, 2, 2, 0, 1 ); |
129 | 129 | ||
130 | QGridLayout *grplayout = new QGridLayout( grpbox->layout() ); | 130 | QGridLayout *grplayout = new QGridLayout( grpbox->layout() ); |
131 | 131 | ||
132 | QLabel *label = new QLabel( tr( "Name:" ), grpbox ); | 132 | QLabel *label = new QLabel( tr( "Name:" ), grpbox ); |
133 | grplayout->addWidget( label, 0, 0 ); | 133 | grplayout->addWidget( label, 0, 0 ); |
134 | servername = new QLineEdit( grpbox ); | 134 | servername = new QLineEdit( grpbox ); |
135 | grplayout->addWidget( servername, 0, 1 ); | 135 | grplayout->addWidget( servername, 0, 1 ); |
136 | 136 | ||
137 | label = new QLabel( tr( "Address:" ), grpbox ); | 137 | label = new QLabel( tr( "Address:" ), grpbox ); |
138 | grplayout->addWidget( label, 1, 0 ); | 138 | grplayout->addWidget( label, 1, 0 ); |
139 | serverurl = new QLineEdit( grpbox ); | 139 | serverurl = new QLineEdit( grpbox ); |
140 | grplayout->addWidget( serverurl, 1, 1 ); | 140 | grplayout->addWidget( serverurl, 1, 1 ); |
141 | 141 | ||
142 | active = new QCheckBox( tr( "Active Server" ), grpbox ); | 142 | active = new QCheckBox( tr( "Active Server" ), grpbox ); |
143 | grplayout->addMultiCellWidget( active, 2, 2, 0, 1 ); | 143 | grplayout->addMultiCellWidget( active, 2, 2, 0, 1 ); |
144 | 144 | ||
145 | btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), grpbox ); | 145 | btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), grpbox ); |
146 | connect( btn, SIGNAL( clicked() ), this, SLOT( changeServerDetails() ) ); | 146 | connect( btn, SIGNAL( clicked() ), this, SLOT( changeServerDetails() ) ); |
147 | grplayout->addMultiCellWidget( btn, 3, 3, 0, 1 ); | 147 | grplayout->addMultiCellWidget( btn, 3, 3, 0, 1 ); |
148 | 148 | ||
149 | return control; | 149 | return control; |
150 | } | 150 | } |
151 | 151 | ||
152 | QWidget *SettingsImpl :: initDestinationTab() | 152 | QWidget *SettingsImpl :: initDestinationTab() |
153 | { | 153 | { |
154 | QWidget *control = new QWidget( this ); | 154 | QWidget *control = new QWidget( this ); |
155 | 155 | ||
156 | QVBoxLayout *vb = new QVBoxLayout( control ); | 156 | QVBoxLayout *vb = new QVBoxLayout( control ); |
157 | 157 | ||
158 | QScrollView *sv = new QScrollView( control ); | 158 | QScrollView *sv = new QScrollView( control ); |
159 | vb->addWidget( sv, 0, 0 ); | 159 | vb->addWidget( sv, 0, 0 ); |
160 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 160 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
161 | sv->setFrameStyle( QFrame::NoFrame ); | 161 | sv->setFrameStyle( QFrame::NoFrame ); |
162 | 162 | ||
163 | QWidget *container = new QWidget( sv->viewport() ); | 163 | QWidget *container = new QWidget( sv->viewport() ); |
164 | sv->addChild( container ); | 164 | sv->addChild( container ); |
165 | 165 | ||
166 | QGridLayout *layout = new QGridLayout( container ); | 166 | QGridLayout *layout = new QGridLayout( container ); |
167 | layout->setSpacing( 2 ); | 167 | layout->setSpacing( 2 ); |
168 | layout->setMargin( 4 ); | 168 | layout->setMargin( 4 ); |
169 | 169 | ||
170 | destinations = new QListBox( container ); | 170 | destinations = new QListBox( container ); |
171 | destinations->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); | 171 | destinations->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); |
172 | connect( destinations, SIGNAL( highlighted( int ) ), this, SLOT( editDestination( int ) ) ); | 172 | connect( destinations, SIGNAL( highlighted(int) ), this, SLOT( editDestination(int) ) ); |
173 | layout->addMultiCellWidget( destinations, 0, 0, 0, 1 ); | 173 | layout->addMultiCellWidget( destinations, 0, 0, 0, 1 ); |
174 | 174 | ||
175 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), container ); | 175 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), container ); |
176 | connect( btn, SIGNAL( clicked() ), this, SLOT( newDestination() ) ); | 176 | connect( btn, SIGNAL( clicked() ), this, SLOT( newDestination() ) ); |
177 | layout->addWidget( btn, 1, 0 ); | 177 | layout->addWidget( btn, 1, 0 ); |
178 | 178 | ||
179 | btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container ); | 179 | btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container ); |
180 | connect( btn, SIGNAL( clicked() ), this, SLOT( removeDestination() ) ); | 180 | connect( btn, SIGNAL( clicked() ), this, SLOT( removeDestination() ) ); |
181 | layout->addWidget( btn, 1, 1 ); | 181 | layout->addWidget( btn, 1, 1 ); |
182 | 182 | ||
183 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Destination" ), container ); | 183 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Destination" ), container ); |
184 | grpbox->layout()->setSpacing( 2 ); | 184 | grpbox->layout()->setSpacing( 2 ); |
185 | grpbox->layout()->setMargin( 4 ); | 185 | grpbox->layout()->setMargin( 4 ); |
186 | layout->addMultiCellWidget( grpbox, 2, 2, 0, 1 ); | 186 | layout->addMultiCellWidget( grpbox, 2, 2, 0, 1 ); |
187 | 187 | ||
188 | QGridLayout *grplayout = new QGridLayout( grpbox->layout() ); | 188 | QGridLayout *grplayout = new QGridLayout( grpbox->layout() ); |
189 | 189 | ||
190 | QLabel *label = new QLabel( tr( "Name:" ), grpbox ); | 190 | QLabel *label = new QLabel( tr( "Name:" ), grpbox ); |
191 | grplayout->addWidget( label, 0, 0 ); | 191 | grplayout->addWidget( label, 0, 0 ); |
192 | destinationname = new QLineEdit( grpbox ); | 192 | destinationname = new QLineEdit( grpbox ); |
193 | grplayout->addWidget( destinationname, 0, 1 ); | 193 | grplayout->addWidget( destinationname, 0, 1 ); |
194 | 194 | ||
195 | label = new QLabel( tr( "Location:" ), grpbox ); | 195 | label = new QLabel( tr( "Location:" ), grpbox ); |
196 | grplayout->addWidget( label, 1, 0 ); | 196 | grplayout->addWidget( label, 1, 0 ); |
197 | destinationurl = new QLineEdit( grpbox ); | 197 | destinationurl = new QLineEdit( grpbox ); |
198 | grplayout->addWidget( destinationurl, 1, 1 ); | 198 | grplayout->addWidget( destinationurl, 1, 1 ); |
199 | 199 | ||
200 | linkToRoot = new QCheckBox( tr( "Link to root" ), grpbox ); | 200 | linkToRoot = new QCheckBox( tr( "Link to root" ), grpbox ); |
201 | grplayout->addMultiCellWidget( linkToRoot, 2, 2, 0, 1 ); | 201 | grplayout->addMultiCellWidget( linkToRoot, 2, 2, 0, 1 ); |
202 | 202 | ||
203 | btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), grpbox ); | 203 | btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), grpbox ); |
204 | connect( btn, SIGNAL( clicked() ), this, SLOT( changeDestinationDetails() ) ); | 204 | connect( btn, SIGNAL( clicked() ), this, SLOT( changeDestinationDetails() ) ); |
205 | grplayout->addMultiCellWidget( btn, 3, 3, 0, 1 ); | 205 | grplayout->addMultiCellWidget( btn, 3, 3, 0, 1 ); |
206 | 206 | ||
207 | return control; | 207 | return control; |
208 | } | 208 | } |
209 | 209 | ||
210 | QWidget *SettingsImpl :: initProxyTab() | 210 | QWidget *SettingsImpl :: initProxyTab() |
211 | { | 211 | { |
212 | QWidget *control = new QWidget( this ); | 212 | QWidget *control = new QWidget( this ); |
213 | 213 | ||
214 | QVBoxLayout *vb = new QVBoxLayout( control ); | 214 | QVBoxLayout *vb = new QVBoxLayout( control ); |
215 | 215 | ||
216 | QScrollView *sv = new QScrollView( control ); | 216 | QScrollView *sv = new QScrollView( control ); |
217 | vb->addWidget( sv, 0, 0 ); | 217 | vb->addWidget( sv, 0, 0 ); |
218 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 218 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
219 | sv->setFrameStyle( QFrame::NoFrame ); | 219 | sv->setFrameStyle( QFrame::NoFrame ); |
220 | 220 | ||
221 | QWidget *container = new QWidget( sv->viewport() ); | 221 | QWidget *container = new QWidget( sv->viewport() ); |
222 | sv->addChild( container ); | 222 | sv->addChild( container ); |
223 | 223 | ||
224 | QGridLayout *layout = new QGridLayout( container ); | 224 | QGridLayout *layout = new QGridLayout( container ); |
225 | layout->setSpacing( 2 ); | 225 | layout->setSpacing( 2 ); |
226 | layout->setMargin( 4 ); | 226 | layout->setMargin( 4 ); |
227 | 227 | ||
228 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "HTTP Proxy" ), container ); | 228 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "HTTP Proxy" ), container ); |
229 | grpbox->layout()->setSpacing( 2 ); | 229 | grpbox->layout()->setSpacing( 2 ); |
230 | grpbox->layout()->setMargin( 4 ); | 230 | grpbox->layout()->setMargin( 4 ); |
231 | layout->addMultiCellWidget( grpbox, 0, 0, 0, 1 ); | 231 | layout->addMultiCellWidget( grpbox, 0, 0, 0, 1 ); |
232 | QVBoxLayout *grplayout = new QVBoxLayout( grpbox->layout() ); | 232 | QVBoxLayout *grplayout = new QVBoxLayout( grpbox->layout() ); |
233 | txtHttpProxy = new QLineEdit( grpbox ); | 233 | txtHttpProxy = new QLineEdit( grpbox ); |
234 | grplayout->addWidget( txtHttpProxy ); | 234 | grplayout->addWidget( txtHttpProxy ); |
235 | chkHttpProxyEnabled = new QCheckBox( tr( "Enabled" ), grpbox ); | 235 | chkHttpProxyEnabled = new QCheckBox( tr( "Enabled" ), grpbox ); |
236 | grplayout->addWidget( chkHttpProxyEnabled ); | 236 | grplayout->addWidget( chkHttpProxyEnabled ); |
237 | 237 | ||
238 | grpbox = new QGroupBox( 0, Qt::Vertical, tr( "FTP Proxy" ), container ); | 238 | grpbox = new QGroupBox( 0, Qt::Vertical, tr( "FTP Proxy" ), container ); |
239 | grpbox->layout()->setSpacing( 2 ); | 239 | grpbox->layout()->setSpacing( 2 ); |
240 | grpbox->layout()->setMargin( 4 ); | 240 | grpbox->layout()->setMargin( 4 ); |
241 | layout->addMultiCellWidget( grpbox, 1, 1, 0, 1 ); | 241 | layout->addMultiCellWidget( grpbox, 1, 1, 0, 1 ); |
242 | grplayout = new QVBoxLayout( grpbox->layout() ); | 242 | grplayout = new QVBoxLayout( grpbox->layout() ); |
243 | txtFtpProxy = new QLineEdit( grpbox ); | 243 | txtFtpProxy = new QLineEdit( grpbox ); |
244 | grplayout->addWidget( txtFtpProxy ); | 244 | grplayout->addWidget( txtFtpProxy ); |
245 | chkFtpProxyEnabled = new QCheckBox( tr( "Enabled" ), grpbox ); | 245 | chkFtpProxyEnabled = new QCheckBox( tr( "Enabled" ), grpbox ); |
246 | grplayout->addWidget( chkFtpProxyEnabled ); | 246 | grplayout->addWidget( chkFtpProxyEnabled ); |
247 | 247 | ||
248 | QLabel *label = new QLabel( tr( "Username:" ), container ); | 248 | QLabel *label = new QLabel( tr( "Username:" ), container ); |
249 | layout->addWidget( label, 2, 0 ); | 249 | layout->addWidget( label, 2, 0 ); |
250 | txtUsername = new QLineEdit( container ); | 250 | txtUsername = new QLineEdit( container ); |
251 | layout->addWidget( txtUsername, 2, 1 ); | 251 | layout->addWidget( txtUsername, 2, 1 ); |
252 | 252 | ||
253 | label = new QLabel( tr( "Password:" ), container ); | 253 | label = new QLabel( tr( "Password:" ), container ); |
254 | layout->addWidget( label, 3, 0 ); | 254 | layout->addWidget( label, 3, 0 ); |
255 | txtPassword = new QLineEdit( container ); | 255 | txtPassword = new QLineEdit( container ); |
256 | layout->addWidget( txtPassword, 3, 1 ); | 256 | layout->addWidget( txtPassword, 3, 1 ); |
257 | 257 | ||
258 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), container ); | 258 | QPushButton *btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), container ); |
259 | connect( btn, SIGNAL( clicked() ), this, SLOT( proxyApplyChanges() ) ); | 259 | connect( btn, SIGNAL( clicked() ), this, SLOT( proxyApplyChanges() ) ); |
260 | layout->addMultiCellWidget( btn, 4, 4, 0, 1 ); | 260 | layout->addMultiCellWidget( btn, 4, 4, 0, 1 ); |
261 | 261 | ||
262 | return control; | 262 | return control; |
263 | } | 263 | } |
264 | 264 | ||
265 | void SettingsImpl :: setupData() | 265 | void SettingsImpl :: setupData() |
266 | { | 266 | { |
267 | // add servers | 267 | // add servers |
268 | QString serverName; | 268 | QString serverName; |
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp index 977c283..6b83bc9 100644 --- a/noncore/settings/backup/backuprestore.cpp +++ b/noncore/settings/backup/backuprestore.cpp | |||
@@ -1,151 +1,151 @@ | |||
1 | 1 | ||
2 | #include "backuprestore.h" | 2 | #include "backuprestore.h" |
3 | #include "errordialog.h" | 3 | #include "errordialog.h" |
4 | 4 | ||
5 | /* OPIE */ | 5 | /* OPIE */ |
6 | #include <opie2/ostorageinfo.h> | 6 | #include <opie2/ostorageinfo.h> |
7 | #include <qpe/qpeapplication.h> | 7 | #include <qpe/qpeapplication.h> |
8 | 8 | ||
9 | /* QT */ | 9 | /* QT */ |
10 | #include <qapplication.h> | 10 | #include <qapplication.h> |
11 | #include <qmultilineedit.h> | 11 | #include <qmultilineedit.h> |
12 | #include <qdir.h> | 12 | #include <qdir.h> |
13 | #include <qfile.h> | 13 | #include <qfile.h> |
14 | #include <qfileinfo.h> | 14 | #include <qfileinfo.h> |
15 | #include <qlistview.h> | 15 | #include <qlistview.h> |
16 | #include <qpushbutton.h> | 16 | #include <qpushbutton.h> |
17 | #include <qheader.h> | 17 | #include <qheader.h> |
18 | #include <qpe/resource.h> | 18 | #include <qpe/resource.h> |
19 | #include <qpe/config.h> | 19 | #include <qpe/config.h> |
20 | #include <qmessagebox.h> | 20 | #include <qmessagebox.h> |
21 | #include <qcombobox.h> | 21 | #include <qcombobox.h> |
22 | #include <qlist.h> | 22 | #include <qlist.h> |
23 | #include <stdlib.h> | 23 | #include <stdlib.h> |
24 | #include <qregexp.h> | 24 | #include <qregexp.h> |
25 | #include <qtextstream.h> | 25 | #include <qtextstream.h> |
26 | #include <qtextview.h> | 26 | #include <qtextview.h> |
27 | 27 | ||
28 | /* STD */ | 28 | /* STD */ |
29 | #include <errno.h> | 29 | #include <errno.h> |
30 | #include <stdlib.h> | 30 | #include <stdlib.h> |
31 | #include <unistd.h> | 31 | #include <unistd.h> |
32 | #include <sys/stat.h> | 32 | #include <sys/stat.h> |
33 | #include <dirent.h> | 33 | #include <dirent.h> |
34 | 34 | ||
35 | #define HEADER_NAME 0 | 35 | #define HEADER_NAME 0 |
36 | #define HEADER_BACKUP 1 | 36 | #define HEADER_BACKUP 1 |
37 | #define BACKUP_LOCATION 2 | 37 | #define BACKUP_LOCATION 2 |
38 | 38 | ||
39 | #define EXTENSION ".bck" | 39 | #define EXTENSION ".bck" |
40 | 40 | ||
41 | const QString tempFileName = "/tmp/backup.err"; | 41 | const QString tempFileName = "/tmp/backup.err"; |
42 | 42 | ||
43 | 43 | ||
44 | BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) | 44 | BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) |
45 | : BackupAndRestoreBase(parent, name, fl) | 45 | : BackupAndRestoreBase(parent, name, fl) |
46 | { | 46 | { |
47 | backupList->header()->hide(); | 47 | backupList->header()->hide(); |
48 | restoreList->header()->hide(); | 48 | restoreList->header()->hide(); |
49 | connect(backupButton, SIGNAL(clicked()), | 49 | connect(backupButton, SIGNAL(clicked()), |
50 | this, SLOT(backup())); | 50 | this, SLOT(backup())); |
51 | connect(restoreButton, SIGNAL(clicked()), | 51 | connect(restoreButton, SIGNAL(clicked()), |
52 | this, SLOT(restore())); | 52 | this, SLOT(restore())); |
53 | connect(backupList, SIGNAL(clicked( QListViewItem * )), | 53 | connect(backupList, SIGNAL(clicked(QListViewItem*)), |
54 | this, SLOT(selectItem(QListViewItem*))); | 54 | this, SLOT(selectItem(QListViewItem*))); |
55 | connect(restoreSource, SIGNAL(activated( int )), | 55 | connect(restoreSource, SIGNAL(activated(int)), |
56 | this, SLOT(sourceDirChanged(int))); | 56 | this, SLOT(sourceDirChanged(int))); |
57 | connect(updateList, SIGNAL(clicked()), | 57 | connect(updateList, SIGNAL(clicked()), |
58 | this, SLOT( fileListUpdate())); | 58 | this, SLOT( fileListUpdate())); |
59 | 59 | ||
60 | //add directorys for backing up | 60 | //add directorys for backing up |
61 | applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/"); | 61 | applicationSettings = new QListViewItem(backupList, "Application Settings", "", "Settings/"); |
62 | selectItem(applicationSettings); | 62 | selectItem(applicationSettings); |
63 | applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/"); | 63 | applicationSettings = new QListViewItem(backupList, "Application Data", "", "Applications/"); |
64 | selectItem(applicationSettings); | 64 | selectItem(applicationSettings); |
65 | documents= new QListViewItem(backupList, "Documents", "", "Documents/"); | 65 | documents= new QListViewItem(backupList, "Documents", "", "Documents/"); |
66 | selectItem(documents); | 66 | selectItem(documents); |
67 | 67 | ||
68 | scanForApplicationSettings(); | 68 | scanForApplicationSettings(); |
69 | 69 | ||
70 | OStorageInfo storage; | 70 | OStorageInfo storage; |
71 | 71 | ||
72 | backupLocations.insert( "Documents", QDir::homeDirPath() + "/Documents" ); | 72 | backupLocations.insert( "Documents", QDir::homeDirPath() + "/Documents" ); |
73 | if ( storage.hasCf() ) | 73 | if ( storage.hasCf() ) |
74 | { | 74 | { |
75 | backupLocations.insert( "CF", storage.cfPath() ); | 75 | backupLocations.insert( "CF", storage.cfPath() ); |
76 | qDebug( "Cf Path: " + storage.cfPath() ); | 76 | qDebug( "Cf Path: " + storage.cfPath() ); |
77 | } | 77 | } |
78 | if ( storage.hasSd() ) | 78 | if ( storage.hasSd() ) |
79 | { | 79 | { |
80 | backupLocations.insert( "SD", storage.sdPath() ); | 80 | backupLocations.insert( "SD", storage.sdPath() ); |
81 | qDebug( " Sd Path: " + storage.sdPath() ); | 81 | qDebug( " Sd Path: " + storage.sdPath() ); |
82 | } | 82 | } |
83 | if ( storage.hasMmc() ) | 83 | if ( storage.hasMmc() ) |
84 | { | 84 | { |
85 | backupLocations.insert( "MMC", storage.mmcPath() ); | 85 | backupLocations.insert( "MMC", storage.mmcPath() ); |
86 | qDebug( "Mmc Path: " + storage.mmcPath() ); | 86 | qDebug( "Mmc Path: " + storage.mmcPath() ); |
87 | } | 87 | } |
88 | 88 | ||
89 | Config config("BackupAndRestore"); | 89 | Config config("BackupAndRestore"); |
90 | //read last locations | 90 | //read last locations |
91 | config.setGroup("LastLocation"); | 91 | config.setGroup("LastLocation"); |
92 | QString lastStoreLocation = config.readEntry( "LastStoreLocation", "" ); | 92 | QString lastStoreLocation = config.readEntry( "LastStoreLocation", "" ); |
93 | QString lastRestoreLocation = config.readEntry( "LastRestoreLocation", "" ); | 93 | QString lastRestoreLocation = config.readEntry( "LastRestoreLocation", "" ); |
94 | int locationIndex = 0; | 94 | int locationIndex = 0; |
95 | 95 | ||
96 | QMap<QString, QString>::Iterator it; | 96 | QMap<QString, QString>::Iterator it; |
97 | for( it = backupLocations.begin(); it != backupLocations.end(); ++it ) | 97 | for( it = backupLocations.begin(); it != backupLocations.end(); ++it ) |
98 | { | 98 | { |
99 | storeToLocation->insertItem(it.key()); | 99 | storeToLocation->insertItem(it.key()); |
100 | restoreSource->insertItem(it.key()); | 100 | restoreSource->insertItem(it.key()); |
101 | 101 | ||
102 | //check for last locations | 102 | //check for last locations |
103 | if ( it.key() == lastStoreLocation ) | 103 | if ( it.key() == lastStoreLocation ) |
104 | storeToLocation->setCurrentItem( locationIndex ); | 104 | storeToLocation->setCurrentItem( locationIndex ); |
105 | if ( it.key() == lastRestoreLocation ) | 105 | if ( it.key() == lastRestoreLocation ) |
106 | restoreSource->setCurrentItem( locationIndex ); | 106 | restoreSource->setCurrentItem( locationIndex ); |
107 | locationIndex++; | 107 | locationIndex++; |
108 | } | 108 | } |
109 | 109 | ||
110 | // Read the list of items to ignore. | 110 | // Read the list of items to ignore. |
111 | QList<QString> dontBackupList; | 111 | QList<QString> dontBackupList; |
112 | dontBackupList.setAutoDelete(true); | 112 | dontBackupList.setAutoDelete(true); |
113 | config.setGroup("DontBackup"); | 113 | config.setGroup("DontBackup"); |
114 | int total = config.readNumEntry("Total", 0); | 114 | int total = config.readNumEntry("Total", 0); |
115 | for(int i = 0; i < total; i++) | 115 | for(int i = 0; i < total; i++) |
116 | { | 116 | { |
117 | dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), ""))); | 117 | dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), ""))); |
118 | } | 118 | } |
119 | 119 | ||
120 | QList<QListViewItem> list; | 120 | QList<QListViewItem> list; |
121 | getAllItems(backupList->firstChild(), list); | 121 | getAllItems(backupList->firstChild(), list); |
122 | 122 | ||
123 | for(uint i = 0; i < list.count(); i++) | 123 | for(uint i = 0; i < list.count(); i++) |
124 | { | 124 | { |
125 | QString text = list.at(i)->text(HEADER_NAME); | 125 | QString text = list.at(i)->text(HEADER_NAME); |
126 | for(uint i2 = 0; i2 < dontBackupList.count(); i2++) | 126 | for(uint i2 = 0; i2 < dontBackupList.count(); i2++) |
127 | { | 127 | { |
128 | if(*dontBackupList.at(i2) == text) | 128 | if(*dontBackupList.at(i2) == text) |
129 | { | 129 | { |
130 | selectItem(list.at(i)); | 130 | selectItem(list.at(i)); |
131 | break; | 131 | break; |
132 | } | 132 | } |
133 | } | 133 | } |
134 | } | 134 | } |
135 | QPEApplication::showWidget( this ); | 135 | QPEApplication::showWidget( this ); |
136 | } | 136 | } |
137 | 137 | ||
138 | BackupAndRestore::~BackupAndRestore() | 138 | BackupAndRestore::~BackupAndRestore() |
139 | { | 139 | { |
140 | QList<QListViewItem> list; | 140 | QList<QListViewItem> list; |
141 | getAllItems(backupList->firstChild(), list); | 141 | getAllItems(backupList->firstChild(), list); |
142 | 142 | ||
143 | Config config("BackupAndRestore"); | 143 | Config config("BackupAndRestore"); |
144 | config.setGroup("DontBackup"); | 144 | config.setGroup("DontBackup"); |
145 | config.clearGroup(); | 145 | config.clearGroup(); |
146 | 146 | ||
147 | int count = 0; | 147 | int count = 0; |
148 | for(uint i = 0; i < list.count(); i++) | 148 | for(uint i = 0; i < list.count(); i++) |
149 | { | 149 | { |
150 | if(list.at(i)->text(HEADER_BACKUP) == "") | 150 | if(list.at(i)->text(HEADER_BACKUP) == "") |
151 | { | 151 | { |
diff --git a/noncore/settings/netsystemtime/mainwindow.cpp b/noncore/settings/netsystemtime/mainwindow.cpp index 7df41d4..c995d6e 100644 --- a/noncore/settings/netsystemtime/mainwindow.cpp +++ b/noncore/settings/netsystemtime/mainwindow.cpp | |||
@@ -1,199 +1,199 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. | 3 | =. |
4 | .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> | 4 | .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 "mainwindow.h" | 29 | #include "mainwindow.h" |
30 | #include "timetabwidget.h" | 30 | #include "timetabwidget.h" |
31 | #include "formattabwidget.h" | 31 | #include "formattabwidget.h" |
32 | #include "settingstabwidget.h" | 32 | #include "settingstabwidget.h" |
33 | #include "ntptabwidget.h" | 33 | #include "ntptabwidget.h" |
34 | #include "predicttabwidget.h" | 34 | #include "predicttabwidget.h" |
35 | 35 | ||
36 | #include <qpe/config.h> | 36 | #include <qpe/config.h> |
37 | #include <qpe/datebookdb.h> | 37 | #include <qpe/datebookdb.h> |
38 | #include <qpe/qpeapplication.h> | 38 | #include <qpe/qpeapplication.h> |
39 | #include <qpe/qpedialog.h> | 39 | #include <qpe/qpedialog.h> |
40 | 40 | ||
41 | #if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) | 41 | #if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) |
42 | #include <qpe/qcopenvelope_qws.h> | 42 | #include <qpe/qcopenvelope_qws.h> |
43 | #endif | 43 | #endif |
44 | 44 | ||
45 | #include <qlayout.h> | 45 | #include <qlayout.h> |
46 | #include <qmessagebox.h> | 46 | #include <qmessagebox.h> |
47 | #include <qsocket.h> | 47 | #include <qsocket.h> |
48 | #include <qstring.h> | 48 | #include <qstring.h> |
49 | #include <qtimer.h> | 49 | #include <qtimer.h> |
50 | 50 | ||
51 | MainWindow::MainWindow( QWidget *parent , const char *name, bool modal, WFlags f ) | 51 | MainWindow::MainWindow( QWidget *parent , const char *name, bool modal, WFlags f ) |
52 | : QDialog( 0x0, 0x0, TRUE, 0 ) | 52 | : QDialog( 0x0, 0x0, TRUE, 0 ) |
53 | { | 53 | { |
54 | setCaption( tr( "SystemTime" ) ); | 54 | setCaption( tr( "SystemTime" ) ); |
55 | 55 | ||
56 | QVBoxLayout *layout = new QVBoxLayout( this ); | 56 | QVBoxLayout *layout = new QVBoxLayout( this ); |
57 | layout->setMargin( 2 ); | 57 | layout->setMargin( 2 ); |
58 | layout->setSpacing( 4 ); | 58 | layout->setSpacing( 4 ); |
59 | 59 | ||
60 | // Create main tabbed control | 60 | // Create main tabbed control |
61 | mainWidget = new OTabWidget( this ); | 61 | mainWidget = new OTabWidget( this ); |
62 | 62 | ||
63 | // Default object pointers to null | 63 | // Default object pointers to null |
64 | ntpProcess = 0x0; | 64 | ntpProcess = 0x0; |
65 | ntpTab = 0x0; | 65 | ntpTab = 0x0; |
66 | 66 | ||
67 | // Add tab widgets | 67 | // Add tab widgets |
68 | mainWidget->addTab( timeTab = new TimeTabWidget( mainWidget ), "netsystemtime/DateTime", tr( "Time" ) ); | 68 | mainWidget->addTab( timeTab = new TimeTabWidget( mainWidget ), "netsystemtime/DateTime", tr( "Time" ) ); |
69 | mainWidget->addTab( formatTab = new FormatTabWidget( mainWidget ), "netsystemtime/formattab", tr( "Format" ) ); | 69 | mainWidget->addTab( formatTab = new FormatTabWidget( mainWidget ), "netsystemtime/formattab", tr( "Format" ) ); |
70 | mainWidget->addTab( settingsTab = new SettingsTabWidget( mainWidget ), "SettingsIcon", tr( "Settings" ) ); | 70 | mainWidget->addTab( settingsTab = new SettingsTabWidget( mainWidget ), "SettingsIcon", tr( "Settings" ) ); |
71 | mainWidget->addTab( predictTab = new PredictTabWidget( mainWidget ), "netsystemtime/predicttab", tr( "Predict" ) ); | 71 | mainWidget->addTab( predictTab = new PredictTabWidget( mainWidget ), "netsystemtime/predicttab", tr( "Predict" ) ); |
72 | Config config( "ntp" ); | 72 | Config config( "ntp" ); |
73 | config.setGroup( "settings" ); | 73 | config.setGroup( "settings" ); |
74 | slotDisplayNTPTab( config.readBoolEntry( "displayNtpTab", FALSE ) ); | 74 | slotDisplayNTPTab( config.readBoolEntry( "displayNtpTab", FALSE ) ); |
75 | slotDisplayPredictTab( config.readBoolEntry( "displayPredictTab", FALSE ) ); | 75 | slotDisplayPredictTab( config.readBoolEntry( "displayPredictTab", FALSE ) ); |
76 | 76 | ||
77 | mainWidget->setCurrentTab( tr( "Time" ) ); | 77 | mainWidget->setCurrentTab( tr( "Time" ) ); |
78 | layout->addWidget( mainWidget ); | 78 | layout->addWidget( mainWidget ); |
79 | 79 | ||
80 | connect( qApp, SIGNAL(appMessage(const QCString&, const QByteArray&)), | 80 | connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)), |
81 | this, SLOT(slotQCopReceive(const QCString&, const QByteArray&)) ); | 81 | this, SLOT(slotQCopReceive(const QCString&,const QByteArray&)) ); |
82 | 82 | ||
83 | 83 | ||
84 | // Create NTP socket | 84 | // Create NTP socket |
85 | ntpSock = new QSocket( this ); | 85 | ntpSock = new QSocket( this ); |
86 | connect( ntpSock, SIGNAL(error(int)),SLOT(slotCheckNtp(int)) ); | 86 | connect( ntpSock, SIGNAL(error(int)),SLOT(slotCheckNtp(int)) ); |
87 | slotProbeNTPServer(); | 87 | slotProbeNTPServer(); |
88 | 88 | ||
89 | // Create timer for automatic time lookups | 89 | // Create timer for automatic time lookups |
90 | ntpTimer = new QTimer( this ); | 90 | ntpTimer = new QTimer( this ); |
91 | 91 | ||
92 | // Connect everything together | 92 | // Connect everything together |
93 | connect( timeTab, SIGNAL(getNTPTime()), this, SLOT(slotGetNTPTime()) ); | 93 | connect( timeTab, SIGNAL(getNTPTime()), this, SLOT(slotGetNTPTime()) ); |
94 | connect( timeTab, SIGNAL(tzChanged(const QString &)), predictTab, SLOT(slotTZChanged(const QString &)) ); | 94 | connect( timeTab, SIGNAL(tzChanged(const QString&)), predictTab, SLOT(slotTZChanged(const QString&)) ); |
95 | connect( timeTab, SIGNAL(getPredictedTime()), predictTab, SLOT(slotSetPredictedTime()) ); | 95 | connect( timeTab, SIGNAL(getPredictedTime()), predictTab, SLOT(slotSetPredictedTime()) ); |
96 | connect( formatTab, SIGNAL(show12HourTime(int)), timeTab, SLOT(slotUse12HourTime( int )) ); | 96 | connect( formatTab, SIGNAL(show12HourTime(int)), timeTab, SLOT(slotUse12HourTime(int)) ); |
97 | connect( formatTab, SIGNAL(dateFormatChanged(const DateFormat &)), | 97 | connect( formatTab, SIGNAL(dateFormatChanged(const DateFormat&)), |
98 | timeTab, SLOT(slotDateFormatChanged(const DateFormat &)) ); | 98 | timeTab, SLOT(slotDateFormatChanged(const DateFormat&)) ); |
99 | connect( formatTab, SIGNAL(weekStartChanged(int)), timeTab, SLOT(slotWeekStartChanged(int)) ); | 99 | connect( formatTab, SIGNAL(weekStartChanged(int)), timeTab, SLOT(slotWeekStartChanged(int)) ); |
100 | connect( settingsTab, SIGNAL(ntpDelayChanged(int)), this, SLOT(slotNTPDelayChanged(int)) ); | 100 | connect( settingsTab, SIGNAL(ntpDelayChanged(int)), this, SLOT(slotNTPDelayChanged(int)) ); |
101 | connect( settingsTab, SIGNAL(displayNTPTab(bool)), this, SLOT(slotDisplayNTPTab(bool)) ); | 101 | connect( settingsTab, SIGNAL(displayNTPTab(bool)), this, SLOT(slotDisplayNTPTab(bool)) ); |
102 | connect( settingsTab, SIGNAL(displayPredictTab(bool)), this, SLOT(slotDisplayPredictTab(bool)) ); | 102 | connect( settingsTab, SIGNAL(displayPredictTab(bool)), this, SLOT(slotDisplayPredictTab(bool)) ); |
103 | connect( predictTab, SIGNAL(setTime(const QDateTime &)), this, SLOT(slotSetTime(const QDateTime &)) ); | 103 | connect( predictTab, SIGNAL(setTime(const QDateTime&)), this, SLOT(slotSetTime(const QDateTime&)) ); |
104 | 104 | ||
105 | // Do initial time server check | 105 | // Do initial time server check |
106 | slotNTPDelayChanged( config.readNumEntry( "ntpRefreshFreq", 1440 ) ); | 106 | slotNTPDelayChanged( config.readNumEntry( "ntpRefreshFreq", 1440 ) ); |
107 | slotCheckNtp( -1 ); | 107 | slotCheckNtp( -1 ); |
108 | 108 | ||
109 | // Display app | 109 | // Display app |
110 | //showMaximized(); | 110 | //showMaximized(); |
111 | (void)new QPEDialogListener(this); | 111 | (void)new QPEDialogListener(this); |
112 | } | 112 | } |
113 | 113 | ||
114 | MainWindow::~MainWindow() | 114 | MainWindow::~MainWindow() |
115 | { | 115 | { |
116 | if ( ntpProcess ) | 116 | if ( ntpProcess ) |
117 | delete ntpProcess; | 117 | delete ntpProcess; |
118 | } | 118 | } |
119 | 119 | ||
120 | void MainWindow::accept() | 120 | void MainWindow::accept() |
121 | { | 121 | { |
122 | // Turn off the screensaver (Note: needs to be encased in { } so that it deconstructs and sends) | 122 | // Turn off the screensaver (Note: needs to be encased in { } so that it deconstructs and sends) |
123 | { | 123 | { |
124 | QCopEnvelope disableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); | 124 | QCopEnvelope disableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); |
125 | disableScreenSaver << 0 << 0 << 0; | 125 | disableScreenSaver << 0 << 0 << 0; |
126 | } | 126 | } |
127 | 127 | ||
128 | // Update the systemtime | 128 | // Update the systemtime |
129 | timeTab->saveSettings( TRUE ); | 129 | timeTab->saveSettings( TRUE ); |
130 | 130 | ||
131 | // Save format options | 131 | // Save format options |
132 | formatTab->saveSettings( TRUE ); | 132 | formatTab->saveSettings( TRUE ); |
133 | 133 | ||
134 | // Save settings options | 134 | // Save settings options |
135 | settingsTab->saveSettings(); | 135 | settingsTab->saveSettings(); |
136 | 136 | ||
137 | // Since time has changed quickly load in the DateBookDB to allow the alarm server to get a better | 137 | // Since time has changed quickly load in the DateBookDB to allow the alarm server to get a better |
138 | // grip on itself (example re-trigger alarms for when we travel back in time). | 138 | // grip on itself (example re-trigger alarms for when we travel back in time). |
139 | DateBookDB db; | 139 | DateBookDB db; |
140 | 140 | ||
141 | // Turn back on the screensaver | 141 | // Turn back on the screensaver |
142 | QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); | 142 | QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); |
143 | enableScreenSaver << -1 << -1 << -1; | 143 | enableScreenSaver << -1 << -1 << -1; |
144 | 144 | ||
145 | // Exit app | 145 | // Exit app |
146 | qApp->quit(); | 146 | qApp->quit(); |
147 | } | 147 | } |
148 | 148 | ||
149 | void MainWindow::reject() | 149 | void MainWindow::reject() |
150 | { | 150 | { |
151 | // Reset time settings | 151 | // Reset time settings |
152 | timeTab->saveSettings( FALSE ); | 152 | timeTab->saveSettings( FALSE ); |
153 | 153 | ||
154 | // Send notifications but do not save settings | 154 | // Send notifications but do not save settings |
155 | formatTab->saveSettings( FALSE ); | 155 | formatTab->saveSettings( FALSE ); |
156 | 156 | ||
157 | // Exit app | 157 | // Exit app |
158 | qApp->quit(); | 158 | qApp->quit(); |
159 | } | 159 | } |
160 | 160 | ||
161 | void MainWindow::runNTP() | 161 | void MainWindow::runNTP() |
162 | { | 162 | { |
163 | if ( !ntpDelayElapsed() && ntpInteractive ) | 163 | if ( !ntpDelayElapsed() && ntpInteractive ) |
164 | { | 164 | { |
165 | QString msg = tr( "You asked for a delay of %1 minutes, but only %2 minutes elapsed since last lookup.<br>Continue?" ).arg( QString::number( ntpDelay ) ).arg( QString::number( _lookupDiff / 60 ) ); | 165 | QString msg = tr( "You asked for a delay of %1 minutes, but only %2 minutes elapsed since last lookup.<br>Continue?" ).arg( QString::number( ntpDelay ) ).arg( QString::number( _lookupDiff / 60 ) ); |
166 | 166 | ||
167 | switch ( | 167 | switch ( |
168 | QMessageBox::warning( this, tr( "Continue?" ), msg, QMessageBox::Yes, QMessageBox::No ) | 168 | QMessageBox::warning( this, tr( "Continue?" ), msg, QMessageBox::Yes, QMessageBox::No ) |
169 | ) | 169 | ) |
170 | { | 170 | { |
171 | case QMessageBox::Yes: break; | 171 | case QMessageBox::Yes: break; |
172 | case QMessageBox::No: return; | 172 | case QMessageBox::No: return; |
173 | default: return; | 173 | default: return; |
174 | } | 174 | } |
175 | } | 175 | } |
176 | 176 | ||
177 | QString srv = settingsTab->ntpServer(); | 177 | QString srv = settingsTab->ntpServer(); |
178 | 178 | ||
179 | // Send information to time server tab if enabled | 179 | // Send information to time server tab if enabled |
180 | if ( ntpTabEnabled ) | 180 | if ( ntpTabEnabled ) |
181 | { | 181 | { |
182 | ntpTab->setStartTime( QDateTime::currentDateTime().toString() ); | 182 | ntpTab->setStartTime( QDateTime::currentDateTime().toString() ); |
183 | QString output = tr( "Running:\nntpdate " ); | 183 | QString output = tr( "Running:\nntpdate " ); |
184 | output.append( srv ); | 184 | output.append( srv ); |
185 | ntpTab->addNtpOutput( output ); | 185 | ntpTab->addNtpOutput( output ); |
186 | } | 186 | } |
187 | 187 | ||
188 | if ( !ntpProcess ) | 188 | if ( !ntpProcess ) |
189 | { | 189 | { |
190 | ntpProcess = new OProcess(); | 190 | ntpProcess = new OProcess(); |
191 | connect( ntpProcess, SIGNAL(receivedStdout(OProcess*,char*,int)), | 191 | connect( ntpProcess, SIGNAL(receivedStdout(OProcess*,char*,int)), |
192 | this, SLOT(slotNtpOutput(OProcess*,char*,int)) ); | 192 | this, SLOT(slotNtpOutput(OProcess*,char*,int)) ); |
193 | connect( ntpProcess, SIGNAL(processExited(OProcess*)), | 193 | connect( ntpProcess, SIGNAL(processExited(OProcess*)), |
194 | this, SLOT(slotNtpFinished(OProcess*)) ); | 194 | this, SLOT(slotNtpFinished(OProcess*)) ); |
195 | } | 195 | } |
196 | 196 | ||
197 | else | 197 | else |
198 | ntpProcess->clearArguments(); | 198 | ntpProcess->clearArguments(); |
199 | 199 | ||
diff --git a/noncore/settings/netsystemtime/settingstabwidget.cpp b/noncore/settings/netsystemtime/settingstabwidget.cpp index 2a7e28d..ad80e05 100644 --- a/noncore/settings/netsystemtime/settingstabwidget.cpp +++ b/noncore/settings/netsystemtime/settingstabwidget.cpp | |||
@@ -1,159 +1,159 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. | 3 | =. |
4 | .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> | 4 | .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 "settingstabwidget.h" | 29 | #include "settingstabwidget.h" |
30 | 30 | ||
31 | #include <qpe/config.h> | 31 | #include <qpe/config.h> |
32 | #include <qpe/qpeapplication.h> | 32 | #include <qpe/qpeapplication.h> |
33 | 33 | ||
34 | #include <qcheckbox.h> | 34 | #include <qcheckbox.h> |
35 | #include <qcombobox.h> | 35 | #include <qcombobox.h> |
36 | #include <qlabel.h> | 36 | #include <qlabel.h> |
37 | #include <qlayout.h> | 37 | #include <qlayout.h> |
38 | #include <qscrollview.h> | 38 | #include <qscrollview.h> |
39 | #include <qspinbox.h> | 39 | #include <qspinbox.h> |
40 | 40 | ||
41 | SettingsTabWidget::SettingsTabWidget( QWidget *parent ) | 41 | SettingsTabWidget::SettingsTabWidget( QWidget *parent ) |
42 | : QWidget( parent, 0x0, 0 ) | 42 | : QWidget( parent, 0x0, 0 ) |
43 | { | 43 | { |
44 | QVBoxLayout *tmpvb = new QVBoxLayout( this ); | 44 | QVBoxLayout *tmpvb = new QVBoxLayout( this ); |
45 | QScrollView *sv = new QScrollView( this ); | 45 | QScrollView *sv = new QScrollView( this ); |
46 | tmpvb->addWidget( sv, 0, 0 ); | 46 | tmpvb->addWidget( sv, 0, 0 ); |
47 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 47 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
48 | sv->setFrameStyle( QFrame::NoFrame ); | 48 | sv->setFrameStyle( QFrame::NoFrame ); |
49 | QWidget *container = new QWidget( sv->viewport() ); | 49 | QWidget *container = new QWidget( sv->viewport() ); |
50 | sv->addChild( container ); | 50 | sv->addChild( container ); |
51 | 51 | ||
52 | QGridLayout *layout = new QGridLayout( container ); | 52 | QGridLayout *layout = new QGridLayout( container ); |
53 | layout->setMargin( 2 ); | 53 | layout->setMargin( 2 ); |
54 | layout->setSpacing( 4 ); | 54 | layout->setSpacing( 4 ); |
55 | 55 | ||
56 | // Time server selector | 56 | // Time server selector |
57 | layout->addWidget( new QLabel( tr( "Time server" ), container ), 0, 0 ); | 57 | layout->addWidget( new QLabel( tr( "Time server" ), container ), 0, 0 ); |
58 | cbTimeServer = new QComboBox( TRUE, container ); | 58 | cbTimeServer = new QComboBox( TRUE, container ); |
59 | layout->addMultiCellWidget( cbTimeServer, 1, 1, 0, 1 ); | 59 | layout->addMultiCellWidget( cbTimeServer, 1, 1, 0, 1 ); |
60 | 60 | ||
61 | // Lookup delay selector | 61 | // Lookup delay selector |
62 | layout->addWidget( new QLabel( tr( "minutes between time updates" ), container ), 2, 1 ); | 62 | layout->addWidget( new QLabel( tr( "minutes between time updates" ), container ), 2, 1 ); |
63 | sbNtpDelay = new QSpinBox( 1, 9999999, 1, container ); | 63 | sbNtpDelay = new QSpinBox( 1, 9999999, 1, container ); |
64 | sbNtpDelay->setWrapping( TRUE ); | 64 | sbNtpDelay->setWrapping( TRUE ); |
65 | sbNtpDelay->setMaximumWidth( 50 ); | 65 | sbNtpDelay->setMaximumWidth( 50 ); |
66 | connect( sbNtpDelay, SIGNAL(valueChanged(int)), this, SIGNAL(ntpDelayChanged(int)) ); | 66 | connect( sbNtpDelay, SIGNAL(valueChanged(int)), this, SIGNAL(ntpDelayChanged(int)) ); |
67 | layout->addWidget( sbNtpDelay, 2, 0 ); | 67 | layout->addWidget( sbNtpDelay, 2, 0 ); |
68 | 68 | ||
69 | // Prediction delay selector | 69 | // Prediction delay selector |
70 | layout->addWidget( new QLabel( tr( "minutes between prediction updates" ), container ), 3, 1 ); | 70 | layout->addWidget( new QLabel( tr( "minutes between prediction updates" ), container ), 3, 1 ); |
71 | sbPredictDelay = new QSpinBox( 42, 9999999, 1, container ); | 71 | sbPredictDelay = new QSpinBox( 42, 9999999, 1, container ); |
72 | sbPredictDelay->setWrapping( TRUE ); | 72 | sbPredictDelay->setWrapping( TRUE ); |
73 | sbPredictDelay->setMaximumWidth( 50 ); | 73 | sbPredictDelay->setMaximumWidth( 50 ); |
74 | layout->addWidget( sbPredictDelay, 3, 0 ); | 74 | layout->addWidget( sbPredictDelay, 3, 0 ); |
75 | 75 | ||
76 | // Space filler | 76 | // Space filler |
77 | layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ), 4, 0 ); | 77 | layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ), 4, 0 ); |
78 | 78 | ||
79 | // Display time server information selector | 79 | // Display time server information selector |
80 | chNtpTab = new QCheckBox( tr( "Display time server information" ), container ); | 80 | chNtpTab = new QCheckBox( tr( "Display time server information" ), container ); |
81 | connect( chNtpTab, SIGNAL( toggled( bool ) ), this, SIGNAL( displayNTPTab( bool ) ) ); | 81 | connect( chNtpTab, SIGNAL( toggled(bool) ), this, SIGNAL( displayNTPTab(bool) ) ); |
82 | layout->addMultiCellWidget( chNtpTab, 5, 5, 0, 1 ); | 82 | layout->addMultiCellWidget( chNtpTab, 5, 5, 0, 1 ); |
83 | 83 | ||
84 | // Display time prediction information selector | 84 | // Display time prediction information selector |
85 | chPredictTab = new QCheckBox( tr( "Display time prediction information" ), container ); | 85 | chPredictTab = new QCheckBox( tr( "Display time prediction information" ), container ); |
86 | connect( chPredictTab, SIGNAL( toggled( bool ) ), this, SIGNAL( displayPredictTab( bool ) ) ); | 86 | connect( chPredictTab, SIGNAL( toggled(bool) ), this, SIGNAL( displayPredictTab(bool) ) ); |
87 | layout->addMultiCellWidget( chPredictTab, 6, 6, 0, 1 ); | 87 | layout->addMultiCellWidget( chPredictTab, 6, 6, 0, 1 ); |
88 | 88 | ||
89 | // Space filler | 89 | // Space filler |
90 | layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ), 7, 0 ); | 90 | layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ), 7, 0 ); |
91 | 91 | ||
92 | // Initialize values | 92 | // Initialize values |
93 | QString ntpSrvsFile = QPEApplication::qpeDir(); | 93 | QString ntpSrvsFile = QPEApplication::qpeDir(); |
94 | ntpSrvsFile.append( "etc/ntpservers" ); | 94 | ntpSrvsFile.append( "etc/ntpservers" ); |
95 | Config ntpSrvs( ntpSrvsFile, Config::File ); | 95 | Config ntpSrvs( ntpSrvsFile, Config::File ); |
96 | ntpSrvs.setGroup( "servers" ); | 96 | ntpSrvs.setGroup( "servers" ); |
97 | int srvCount = ntpSrvs.readNumEntry( "count", 0 ); | 97 | int srvCount = ntpSrvs.readNumEntry( "count", 0 ); |
98 | for ( int i = 0; i < srvCount; i++ ) | 98 | for ( int i = 0; i < srvCount; i++ ) |
99 | { | 99 | { |
100 | ntpSrvs.setGroup( QString::number( i ) ); | 100 | ntpSrvs.setGroup( QString::number( i ) ); |
101 | cbTimeServer->insertItem( ntpSrvs.readEntry( "name" ) ); | 101 | cbTimeServer->insertItem( ntpSrvs.readEntry( "name" ) ); |
102 | } | 102 | } |
103 | if ( srvCount==0 ) | 103 | if ( srvCount==0 ) |
104 | cbTimeServer->insertItem( "time.fu-berlin.de" ); | 104 | cbTimeServer->insertItem( "time.fu-berlin.de" ); |
105 | 105 | ||
106 | Config config( "ntp" ); | 106 | Config config( "ntp" ); |
107 | config.setGroup( "settings" ); | 107 | config.setGroup( "settings" ); |
108 | sbPredictDelay->setValue( config.readNumEntry( "minLookupDiff", 720 ) ); | 108 | sbPredictDelay->setValue( config.readNumEntry( "minLookupDiff", 720 ) ); |
109 | sbNtpDelay->setValue( config.readNumEntry( "ntpRefreshFreq", 1440 ) ); | 109 | sbNtpDelay->setValue( config.readNumEntry( "ntpRefreshFreq", 1440 ) ); |
110 | cbTimeServer->setCurrentItem( config.readNumEntry( "ntpServer", 0 ) ); | 110 | cbTimeServer->setCurrentItem( config.readNumEntry( "ntpServer", 0 ) ); |
111 | chNtpTab->setChecked( config.readBoolEntry( "displayNtpTab", FALSE ) ); | 111 | chNtpTab->setChecked( config.readBoolEntry( "displayNtpTab", FALSE ) ); |
112 | chPredictTab->setChecked( config.readBoolEntry( "displayPredictTab", FALSE ) ); | 112 | chPredictTab->setChecked( config.readBoolEntry( "displayPredictTab", FALSE ) ); |
113 | } | 113 | } |
114 | 114 | ||
115 | SettingsTabWidget::~SettingsTabWidget() | 115 | SettingsTabWidget::~SettingsTabWidget() |
116 | { | 116 | { |
117 | } | 117 | } |
118 | 118 | ||
119 | void SettingsTabWidget::saveSettings() | 119 | void SettingsTabWidget::saveSettings() |
120 | { | 120 | { |
121 | int srvCount = cbTimeServer->count(); | 121 | int srvCount = cbTimeServer->count(); |
122 | bool serversChanged = TRUE; | 122 | bool serversChanged = TRUE; |
123 | int curSrv = cbTimeServer->currentItem(); | 123 | int curSrv = cbTimeServer->currentItem(); |
124 | QString edit = cbTimeServer->currentText(); | 124 | QString edit = cbTimeServer->currentText(); |
125 | for ( int i = 0; i < srvCount; i++ ) | 125 | for ( int i = 0; i < srvCount; i++ ) |
126 | { | 126 | { |
127 | if ( edit == cbTimeServer->text( i ) ) | 127 | if ( edit == cbTimeServer->text( i ) ) |
128 | serversChanged = FALSE; | 128 | serversChanged = FALSE; |
129 | } | 129 | } |
130 | if ( serversChanged ) | 130 | if ( serversChanged ) |
131 | { | 131 | { |
132 | QString ntpSrvsFile = QPEApplication::qpeDir(); | 132 | QString ntpSrvsFile = QPEApplication::qpeDir(); |
133 | ntpSrvsFile.append( "etc/ntpservers" ); | 133 | ntpSrvsFile.append( "etc/ntpservers" ); |
134 | Config ntpSrvs( ntpSrvsFile, Config::File ); | 134 | Config ntpSrvs( ntpSrvsFile, Config::File ); |
135 | ntpSrvs.setGroup( "servers" ); | 135 | ntpSrvs.setGroup( "servers" ); |
136 | ntpSrvs.writeEntry( "count", ++srvCount ); | 136 | ntpSrvs.writeEntry( "count", ++srvCount ); |
137 | ntpSrvs.setGroup( "0" ); | 137 | ntpSrvs.setGroup( "0" ); |
138 | ntpSrvs.writeEntry( "name", edit ); | 138 | ntpSrvs.writeEntry( "name", edit ); |
139 | curSrv = 0; | 139 | curSrv = 0; |
140 | for ( int i = 1; i < srvCount; i++ ) | 140 | for ( int i = 1; i < srvCount; i++ ) |
141 | { | 141 | { |
142 | // qDebug( "ntpSrvs[%i/%i]=%s", i, srvCount, cbTimeServer->text( i ).latin1() ); | 142 | // qDebug( "ntpSrvs[%i/%i]=%s", i, srvCount, cbTimeServer->text( i ).latin1() ); |
143 | ntpSrvs.setGroup( QString::number( i ) ); | 143 | ntpSrvs.setGroup( QString::number( i ) ); |
144 | ntpSrvs.writeEntry( "name", cbTimeServer->text( i-1 ) ); | 144 | ntpSrvs.writeEntry( "name", cbTimeServer->text( i-1 ) ); |
145 | } | 145 | } |
146 | } | 146 | } |
147 | Config config( "ntp", Config::User ); | 147 | Config config( "ntp", Config::User ); |
148 | config.setGroup( "settings" ); | 148 | config.setGroup( "settings" ); |
149 | config.writeEntry( "ntpServer", curSrv ); | 149 | config.writeEntry( "ntpServer", curSrv ); |
150 | config.writeEntry( "minLookupDiff", sbPredictDelay->value() ); | 150 | config.writeEntry( "minLookupDiff", sbPredictDelay->value() ); |
151 | config.writeEntry( "ntpRefreshFreq", sbNtpDelay->value() ); | 151 | config.writeEntry( "ntpRefreshFreq", sbNtpDelay->value() ); |
152 | config.writeEntry( "displayNtpTab", chNtpTab->isChecked() ); | 152 | config.writeEntry( "displayNtpTab", chNtpTab->isChecked() ); |
153 | config.writeEntry( "displayPredictTab", chPredictTab->isChecked() ); | 153 | config.writeEntry( "displayPredictTab", chPredictTab->isChecked() ); |
154 | } | 154 | } |
155 | 155 | ||
156 | QString SettingsTabWidget::ntpServer() | 156 | QString SettingsTabWidget::ntpServer() |
157 | { | 157 | { |
158 | return cbTimeServer->currentText(); | 158 | return cbTimeServer->currentText(); |
159 | } | 159 | } |
diff --git a/noncore/settings/netsystemtime/timetabwidget.cpp b/noncore/settings/netsystemtime/timetabwidget.cpp index 6f24462..1ea460e 100644 --- a/noncore/settings/netsystemtime/timetabwidget.cpp +++ b/noncore/settings/netsystemtime/timetabwidget.cpp | |||
@@ -9,193 +9,193 @@ | |||
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 "timetabwidget.h" | 29 | #include "timetabwidget.h" |
30 | 30 | ||
31 | #include <qpe/config.h> | 31 | #include <qpe/config.h> |
32 | #include <qpe/datebookmonth.h> | 32 | #include <qpe/datebookmonth.h> |
33 | #include <qpe/global.h> | 33 | #include <qpe/global.h> |
34 | #include <qpe/resource.h> | 34 | #include <qpe/resource.h> |
35 | #include <qpe/tzselect.h> | 35 | #include <qpe/tzselect.h> |
36 | 36 | ||
37 | #if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) | 37 | #if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) |
38 | #include <qpe/qcopenvelope_qws.h> | 38 | #include <qpe/qcopenvelope_qws.h> |
39 | #endif | 39 | #endif |
40 | 40 | ||
41 | #include <qcombobox.h> | 41 | #include <qcombobox.h> |
42 | #include <qdatetime.h> | 42 | #include <qdatetime.h> |
43 | #include <qframe.h> | 43 | #include <qframe.h> |
44 | #include <qlabel.h> | 44 | #include <qlabel.h> |
45 | #include <qlayout.h> | 45 | #include <qlayout.h> |
46 | #include <qpushbutton.h> | 46 | #include <qpushbutton.h> |
47 | #include <qscrollview.h> | 47 | #include <qscrollview.h> |
48 | #include <qspinbox.h> | 48 | #include <qspinbox.h> |
49 | 49 | ||
50 | #include <stdlib.h> | 50 | #include <stdlib.h> |
51 | #include <sys/time.h> | 51 | #include <sys/time.h> |
52 | 52 | ||
53 | static const int ValueAM = 0; | 53 | static const int ValueAM = 0; |
54 | static const int ValuePM = 1; | 54 | static const int ValuePM = 1; |
55 | 55 | ||
56 | TimeTabWidget::TimeTabWidget( QWidget *parent ) | 56 | TimeTabWidget::TimeTabWidget( QWidget *parent ) |
57 | : QWidget( parent, 0x0, 0 ) | 57 | : QWidget( parent, 0x0, 0 ) |
58 | { | 58 | { |
59 | // Synchronize HW clock to systemtime | 59 | // Synchronize HW clock to systemtime |
60 | // This app will update systemtime | 60 | // This app will update systemtime |
61 | // - if Cancel is clicked, will reset systemtime to HW clock's time | 61 | // - if Cancel is clicked, will reset systemtime to HW clock's time |
62 | // - if Ok is clicked, will leave systemtime as is | 62 | // - if Ok is clicked, will leave systemtime as is |
63 | system("/sbin/hwclock --systohc --utc"); | 63 | system("/sbin/hwclock --systohc --utc"); |
64 | 64 | ||
65 | QVBoxLayout *tmpvb = new QVBoxLayout( this ); | 65 | QVBoxLayout *tmpvb = new QVBoxLayout( this ); |
66 | QScrollView *sv = new QScrollView( this ); | 66 | QScrollView *sv = new QScrollView( this ); |
67 | tmpvb->addWidget( sv, 0, 0 ); | 67 | tmpvb->addWidget( sv, 0, 0 ); |
68 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 68 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
69 | sv->setFrameStyle( QFrame::NoFrame ); | 69 | sv->setFrameStyle( QFrame::NoFrame ); |
70 | QWidget *container = new QWidget( sv->viewport() ); | 70 | QWidget *container = new QWidget( sv->viewport() ); |
71 | sv->addChild( container ); | 71 | sv->addChild( container ); |
72 | 72 | ||
73 | QGridLayout *layout = new QGridLayout( container ); | 73 | QGridLayout *layout = new QGridLayout( container ); |
74 | layout->setMargin( 2 ); | 74 | layout->setMargin( 2 ); |
75 | layout->setSpacing( 4 ); | 75 | layout->setSpacing( 4 ); |
76 | 76 | ||
77 | // Hours | 77 | // Hours |
78 | layout->addMultiCellWidget( new QLabel( tr( "Hour" ), container ), 1, 1, 0, 1 ); | 78 | layout->addMultiCellWidget( new QLabel( tr( "Hour" ), container ), 1, 1, 0, 1 ); |
79 | sbHour = new QSpinBox( container ); | 79 | sbHour = new QSpinBox( container ); |
80 | sbHour->setWrapping( TRUE ); | 80 | sbHour->setWrapping( TRUE ); |
81 | layout->addMultiCellWidget( sbHour, 2, 2, 0, 1 ); | 81 | layout->addMultiCellWidget( sbHour, 2, 2, 0, 1 ); |
82 | 82 | ||
83 | // Minutes | 83 | // Minutes |
84 | layout->addMultiCellWidget( new QLabel( tr( "Minute" ), container ), 1, 1, 2, 3 ); | 84 | layout->addMultiCellWidget( new QLabel( tr( "Minute" ), container ), 1, 1, 2, 3 ); |
85 | sbMin = new QSpinBox( container ); | 85 | sbMin = new QSpinBox( container ); |
86 | sbMin->setWrapping( TRUE ); | 86 | sbMin->setWrapping( TRUE ); |
87 | sbMin->setMinValue( 0 ); | 87 | sbMin->setMinValue( 0 ); |
88 | sbMin->setMaxValue( 59 ); | 88 | sbMin->setMaxValue( 59 ); |
89 | layout->addMultiCellWidget( sbMin, 2, 2, 2, 3 ); | 89 | layout->addMultiCellWidget( sbMin, 2, 2, 2, 3 ); |
90 | 90 | ||
91 | // AM/PM | 91 | // AM/PM |
92 | cbAmpm = new QComboBox( container ); | 92 | cbAmpm = new QComboBox( container ); |
93 | cbAmpm->insertItem( tr( "AM" ), ValueAM ); | 93 | cbAmpm->insertItem( tr( "AM" ), ValueAM ); |
94 | cbAmpm->insertItem( tr( "PM" ), ValuePM ); | 94 | cbAmpm->insertItem( tr( "PM" ), ValuePM ); |
95 | layout->addMultiCellWidget( cbAmpm, 2, 2, 4, 5 ); | 95 | layout->addMultiCellWidget( cbAmpm, 2, 2, 4, 5 ); |
96 | 96 | ||
97 | // Date | 97 | // Date |
98 | layout->addWidget( new QLabel( tr( "Date" ), container ), 4, 0 ); | 98 | layout->addWidget( new QLabel( tr( "Date" ), container ), 4, 0 ); |
99 | btnDate = new DateButton( TRUE, container ); | 99 | btnDate = new DateButton( TRUE, container ); |
100 | layout->addMultiCellWidget( btnDate, 4, 4, 1, 5 ); | 100 | layout->addMultiCellWidget( btnDate, 4, 4, 1, 5 ); |
101 | 101 | ||
102 | // Timezone | 102 | // Timezone |
103 | layout->addMultiCellWidget( new QLabel( tr( "Time zone" ), container ), 6, 6, 0, 1 ); | 103 | layout->addMultiCellWidget( new QLabel( tr( "Time zone" ), container ), 6, 6, 0, 1 ); |
104 | selTimeZone = new TimeZoneSelector( container ); | 104 | selTimeZone = new TimeZoneSelector( container ); |
105 | connect( selTimeZone, SIGNAL(signalNewTz(const QString &)), this, SLOT(slotTZChanged(const QString &)) ); | 105 | connect( selTimeZone, SIGNAL(signalNewTz(const QString&)), this, SLOT(slotTZChanged(const QString&)) ); |
106 | layout->addMultiCellWidget( selTimeZone, 6, 6, 2, 5 ); | 106 | layout->addMultiCellWidget( selTimeZone, 6, 6, 2, 5 ); |
107 | 107 | ||
108 | // Space filler | 108 | // Space filler |
109 | layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ), 7, 0 ); | 109 | layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ), 7, 0 ); |
110 | 110 | ||
111 | // Set NTP time button | 111 | // Set NTP time button |
112 | QPushButton *pb = new QPushButton( Resource::loadPixmap( "netsystemtime/ntptab" ), | 112 | QPushButton *pb = new QPushButton( Resource::loadPixmap( "netsystemtime/ntptab" ), |
113 | tr( "Get time from the network" ), container ); | 113 | tr( "Get time from the network" ), container ); |
114 | connect( pb, SIGNAL(clicked()), this, SIGNAL(getNTPTime()) ); | 114 | connect( pb, SIGNAL(clicked()), this, SIGNAL(getNTPTime()) ); |
115 | layout->addMultiCellWidget( pb, 8, 8, 0, 5 ); | 115 | layout->addMultiCellWidget( pb, 8, 8, 0, 5 ); |
116 | 116 | ||
117 | // Set predicted time button | 117 | // Set predicted time button |
118 | pb = new QPushButton( Resource::loadPixmap( "netsystemtime/predicttab" ), tr( "Set predicted time" ), | 118 | pb = new QPushButton( Resource::loadPixmap( "netsystemtime/predicttab" ), tr( "Set predicted time" ), |
119 | container ); | 119 | container ); |
120 | connect( pb, SIGNAL(clicked()), this, SIGNAL(getPredictedTime()) ); | 120 | connect( pb, SIGNAL(clicked()), this, SIGNAL(getPredictedTime()) ); |
121 | layout->addMultiCellWidget( pb, 9, 9, 0, 5 ); | 121 | layout->addMultiCellWidget( pb, 9, 9, 0, 5 ); |
122 | 122 | ||
123 | // Space filler at bottom of widget | 123 | // Space filler at bottom of widget |
124 | layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ), 10, 0 ); | 124 | layout->addItem( new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ), 10, 0 ); |
125 | 125 | ||
126 | // Initialize values | 126 | // Initialize values |
127 | Config config( "locale" ); | 127 | Config config( "locale" ); |
128 | config.setGroup( "Location" ); | 128 | config.setGroup( "Location" ); |
129 | selTimeZone->setCurrentZone( config.readEntry( "Timezone", "America/New_York" ) ); | 129 | selTimeZone->setCurrentZone( config.readEntry( "Timezone", "America/New_York" ) ); |
130 | use12HourTime = FALSE; | 130 | use12HourTime = FALSE; |
131 | setDateTime( QDateTime::currentDateTime() ); | 131 | setDateTime( QDateTime::currentDateTime() ); |
132 | } | 132 | } |
133 | 133 | ||
134 | TimeTabWidget::~TimeTabWidget() | 134 | TimeTabWidget::~TimeTabWidget() |
135 | { | 135 | { |
136 | } | 136 | } |
137 | 137 | ||
138 | void TimeTabWidget::saveSettings( bool commit ) | 138 | void TimeTabWidget::saveSettings( bool commit ) |
139 | { | 139 | { |
140 | if ( commit ) | 140 | if ( commit ) |
141 | { | 141 | { |
142 | // Set timezone and announce to world | 142 | // Set timezone and announce to world |
143 | QString tz = selTimeZone->currentZone(); | 143 | QString tz = selTimeZone->currentZone(); |
144 | Config config("locale"); | 144 | Config config("locale"); |
145 | config.setGroup( "Location" ); | 145 | config.setGroup( "Location" ); |
146 | config.writeEntry( "Timezone", tz ); | 146 | config.writeEntry( "Timezone", tz ); |
147 | setenv( "TZ", tz, 1 ); | 147 | setenv( "TZ", tz, 1 ); |
148 | QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" ); | 148 | QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" ); |
149 | setTimeZone << tz; | 149 | setTimeZone << tz; |
150 | 150 | ||
151 | // If controls have a valid date & time, update systemtime | 151 | // If controls have a valid date & time, update systemtime |
152 | int hour = sbHour->value(); | 152 | int hour = sbHour->value(); |
153 | if ( use12HourTime && cbAmpm->currentItem() == ValuePM ) | 153 | if ( use12HourTime && cbAmpm->currentItem() == ValuePM ) |
154 | hour += 12; | 154 | hour += 12; |
155 | QDateTime dt( btnDate->date(), QTime ( hour, sbMin->value(), QTime::currentTime().second() ) ); | 155 | QDateTime dt( btnDate->date(), QTime ( hour, sbMin->value(), QTime::currentTime().second() ) ); |
156 | setSystemTime( dt ); | 156 | setSystemTime( dt ); |
157 | } | 157 | } |
158 | else | 158 | else |
159 | { | 159 | { |
160 | // Reset systemtime to hardware clock (i.e. undo any changes made by this app) | 160 | // Reset systemtime to hardware clock (i.e. undo any changes made by this app) |
161 | system("/sbin/hwclock --hctosys --utc"); | 161 | system("/sbin/hwclock --hctosys --utc"); |
162 | } | 162 | } |
163 | } | 163 | } |
164 | 164 | ||
165 | void TimeTabWidget::setDateTime( const QDateTime &dt ) | 165 | void TimeTabWidget::setDateTime( const QDateTime &dt ) |
166 | { | 166 | { |
167 | // Set time | 167 | // Set time |
168 | QTime t = dt.time(); | 168 | QTime t = dt.time(); |
169 | if( use12HourTime ) | 169 | if( use12HourTime ) |
170 | { | 170 | { |
171 | int show_hour = t.hour(); | 171 | int show_hour = t.hour(); |
172 | if ( t.hour() >= 12 ) | 172 | if ( t.hour() >= 12 ) |
173 | { | 173 | { |
174 | show_hour -= 12; | 174 | show_hour -= 12; |
175 | cbAmpm->setCurrentItem( ValuePM ); | 175 | cbAmpm->setCurrentItem( ValuePM ); |
176 | } | 176 | } |
177 | else | 177 | else |
178 | { | 178 | { |
179 | cbAmpm->setCurrentItem( ValueAM ); | 179 | cbAmpm->setCurrentItem( ValueAM ); |
180 | } | 180 | } |
181 | if ( show_hour == 0 ) | 181 | if ( show_hour == 0 ) |
182 | show_hour = 12; | 182 | show_hour = 12; |
183 | sbHour->setValue( show_hour ); | 183 | sbHour->setValue( show_hour ); |
184 | } | 184 | } |
185 | else | 185 | else |
186 | { | 186 | { |
187 | sbHour->setValue( t.hour() ); | 187 | sbHour->setValue( t.hour() ); |
188 | } | 188 | } |
189 | sbMin->setValue( t.minute() ); | 189 | sbMin->setValue( t.minute() ); |
190 | 190 | ||
191 | // Set date | 191 | // Set date |
192 | btnDate->setDate( dt.date() ); | 192 | btnDate->setDate( dt.date() ); |
193 | } | 193 | } |
194 | 194 | ||
195 | void TimeTabWidget::setSystemTime( const QDateTime &dt ) | 195 | void TimeTabWidget::setSystemTime( const QDateTime &dt ) |
196 | { | 196 | { |
197 | // Set system clock | 197 | // Set system clock |
198 | if ( dt.isValid() ) | 198 | if ( dt.isValid() ) |
199 | { | 199 | { |
200 | struct timeval myTv; | 200 | struct timeval myTv; |
201 | int t = TimeConversion::toUTC( dt ); | 201 | int t = TimeConversion::toUTC( dt ); |
diff --git a/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp b/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp index 698dfd3..ff65424 100644 --- a/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp +++ b/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp | |||
@@ -1,104 +1,104 @@ | |||
1 | 1 | ||
2 | #include "interfaceinformationimp.h" | 2 | #include "interfaceinformationimp.h" |
3 | #include "interfaceadvanced.h" | 3 | #include "interfaceadvanced.h" |
4 | 4 | ||
5 | /* OPIE */ | 5 | /* OPIE */ |
6 | #include <qpe/config.h> | 6 | #include <qpe/config.h> |
7 | #include <qpe/qpeapplication.h> | 7 | #include <qpe/qpeapplication.h> |
8 | 8 | ||
9 | /* QT */ | 9 | /* QT */ |
10 | #include <qcheckbox.h> | 10 | #include <qcheckbox.h> |
11 | #include <qpushbutton.h> | 11 | #include <qpushbutton.h> |
12 | #include <qlabel.h> | 12 | #include <qlabel.h> |
13 | #include <qgroupbox.h> | 13 | #include <qgroupbox.h> |
14 | #include <qmessagebox.h> | 14 | #include <qmessagebox.h> |
15 | 15 | ||
16 | 16 | ||
17 | #ifdef QWS | 17 | #ifdef QWS |
18 | #else | 18 | #else |
19 | #define showMaximized show | 19 | #define showMaximized show |
20 | #endif | 20 | #endif |
21 | 21 | ||
22 | /** | 22 | /** |
23 | * Constructor for the InterfaceInformationImp class. This class pretty much | 23 | * Constructor for the InterfaceInformationImp class. This class pretty much |
24 | * just display's information about the interface that is passed to it. | 24 | * just display's information about the interface that is passed to it. |
25 | */ | 25 | */ |
26 | InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *name, Interface *i, WFlags f):InterfaceInformation(parent, name, f), interface(i) | 26 | InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *name, Interface *i, WFlags f):InterfaceInformation(parent, name, f), interface(i) |
27 | { | 27 | { |
28 | connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *))); | 28 | connect(i, SIGNAL(updateInterface(Interface*)), this, SLOT(updateInterface(Interface*))); |
29 | connect(i, SIGNAL(updateMessage(const QString &)), this, SLOT(showMessage(const QString &))); | 29 | connect(i, SIGNAL(updateMessage(const QString&)), this, SLOT(showMessage(const QString&))); |
30 | updateInterface(interface); | 30 | updateInterface(interface); |
31 | connect(startButton, SIGNAL(clicked()), interface, SLOT(start())); | 31 | connect(startButton, SIGNAL(clicked()), interface, SLOT(start())); |
32 | connect(stopButton, SIGNAL(clicked()), interface, SLOT(stop())); | 32 | connect(stopButton, SIGNAL(clicked()), interface, SLOT(stop())); |
33 | connect(restartButton, SIGNAL(clicked()), interface, SLOT(restart())); | 33 | connect(restartButton, SIGNAL(clicked()), interface, SLOT(restart())); |
34 | connect(refreshButton, SIGNAL(clicked()), interface, SLOT(refresh())); | 34 | connect(refreshButton, SIGNAL(clicked()), interface, SLOT(refresh())); |
35 | connect(advancedButton, SIGNAL(clicked()), this, SLOT(advanced())); | 35 | connect(advancedButton, SIGNAL(clicked()), this, SLOT(advanced())); |
36 | Config cfg("networksettings", Config::User); | 36 | Config cfg("networksettings", Config::User); |
37 | cfg.setGroup("interface"); | 37 | cfg.setGroup("interface"); |
38 | CheckBoxSilent->setChecked( cfg.readBoolEntry("silent", false) ); | 38 | CheckBoxSilent->setChecked( cfg.readBoolEntry("silent", false) ); |
39 | } | 39 | } |
40 | 40 | ||
41 | InterfaceInformationImp::~InterfaceInformationImp() | 41 | InterfaceInformationImp::~InterfaceInformationImp() |
42 | { | 42 | { |
43 | Config cfg("networksettings", Config::User); | 43 | Config cfg("networksettings", Config::User); |
44 | cfg.setGroup("interface"); | 44 | cfg.setGroup("interface"); |
45 | cfg.writeEntry("silent", CheckBoxSilent->isChecked() ); | 45 | cfg.writeEntry("silent", CheckBoxSilent->isChecked() ); |
46 | } | 46 | } |
47 | 47 | ||
48 | /** | 48 | /** |
49 | * Update the interface information and buttons. | 49 | * Update the interface information and buttons. |
50 | * @param Intarface *i the interface to update (should be the one we already | 50 | * @param Intarface *i the interface to update (should be the one we already |
51 | * know about). | 51 | * know about). |
52 | */ | 52 | */ |
53 | void InterfaceInformationImp::updateInterface(Interface *) | 53 | void InterfaceInformationImp::updateInterface(Interface *) |
54 | { | 54 | { |
55 | if(interface->getStatus()) | 55 | if(interface->getStatus()) |
56 | { | 56 | { |
57 | startButton->setEnabled(false); | 57 | startButton->setEnabled(false); |
58 | stopButton->setEnabled(true); | 58 | stopButton->setEnabled(true); |
59 | restartButton->setEnabled(true); | 59 | restartButton->setEnabled(true); |
60 | } | 60 | } |
61 | else | 61 | else |
62 | { | 62 | { |
63 | startButton->setEnabled(true); | 63 | startButton->setEnabled(true); |
64 | stopButton->setEnabled(false); | 64 | stopButton->setEnabled(false); |
65 | restartButton->setEnabled(false); | 65 | restartButton->setEnabled(false); |
66 | } | 66 | } |
67 | macAddressLabel->setText(interface->getMacAddress()); | 67 | macAddressLabel->setText(interface->getMacAddress()); |
68 | ipAddressLabel->setText(interface->getIp()); | 68 | ipAddressLabel->setText(interface->getIp()); |
69 | subnetMaskLabel->setText(interface->getSubnetMask()); | 69 | subnetMaskLabel->setText(interface->getSubnetMask()); |
70 | broadcastLabel->setText(interface->getBroadcast()); | 70 | broadcastLabel->setText(interface->getBroadcast()); |
71 | } | 71 | } |
72 | 72 | ||
73 | /** | 73 | /** |
74 | * Create the advanced widget. Fill it with the current interface's information. | 74 | * Create the advanced widget. Fill it with the current interface's information. |
75 | * Display it. | 75 | * Display it. |
76 | */ | 76 | */ |
77 | void InterfaceInformationImp::advanced() | 77 | void InterfaceInformationImp::advanced() |
78 | { | 78 | { |
79 | InterfaceAdvanced *a = new InterfaceAdvanced(this, "InterfaceAdvanced", Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog); | 79 | InterfaceAdvanced *a = new InterfaceAdvanced(this, "InterfaceAdvanced", Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog); |
80 | a->interfaceName->setText(interface->getInterfaceName()); | 80 | a->interfaceName->setText(interface->getInterfaceName()); |
81 | a->macAddressLabel->setText(interface->getMacAddress()); | 81 | a->macAddressLabel->setText(interface->getMacAddress()); |
82 | a->ipAddressLabel->setText(interface->getIp()); | 82 | a->ipAddressLabel->setText(interface->getIp()); |
83 | a->subnetMaskLabel->setText(interface->getSubnetMask()); | 83 | a->subnetMaskLabel->setText(interface->getSubnetMask()); |
84 | a->broadcastLabel->setText(interface->getBroadcast()); | 84 | a->broadcastLabel->setText(interface->getBroadcast()); |
85 | a->dhcpServerLabel->setText(interface->getDhcpServerIp()); | 85 | a->dhcpServerLabel->setText(interface->getDhcpServerIp()); |
86 | a->leaseObtainedLabel->setText(interface->getLeaseObtained()); | 86 | a->leaseObtainedLabel->setText(interface->getLeaseObtained()); |
87 | a->leaseExpiresLabel->setText(interface->getLeaseExpires()); | 87 | a->leaseExpiresLabel->setText(interface->getLeaseExpires()); |
88 | a->dhcpInformation->setEnabled(interface->isDhcp()); | 88 | a->dhcpInformation->setEnabled(interface->isDhcp()); |
89 | QPEApplication::showWidget( a ); | 89 | QPEApplication::showWidget( a ); |
90 | } | 90 | } |
91 | 91 | ||
92 | /** | 92 | /** |
93 | * Messages from the interface if start/stop went as planned. | 93 | * Messages from the interface if start/stop went as planned. |
94 | * Purly for user feedback. | 94 | * Purly for user feedback. |
95 | * @param message the message to display. | 95 | * @param message the message to display. |
96 | */ | 96 | */ |
97 | void InterfaceInformationImp::showMessage(const QString &message) | 97 | void InterfaceInformationImp::showMessage(const QString &message) |
98 | { | 98 | { |
99 | if (CheckBoxSilent->isChecked()) return; | 99 | if (CheckBoxSilent->isChecked()) return; |
100 | QMessageBox::information(this, "Message", message, QMessageBox::Ok); | 100 | QMessageBox::information(this, "Message", message, QMessageBox::Ok); |
101 | } | 101 | } |
102 | 102 | ||
103 | // infoimp.cpp | 103 | // infoimp.cpp |
104 | 104 | ||
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp index b0a1dd9..1e16b97 100644 --- a/noncore/settings/networksettings/mainwindowimp.cpp +++ b/noncore/settings/networksettings/mainwindowimp.cpp | |||
@@ -4,365 +4,365 @@ | |||
4 | #include "interfaceinformationimp.h" | 4 | #include "interfaceinformationimp.h" |
5 | #include "interfacesetupimp.h" | 5 | #include "interfacesetupimp.h" |
6 | #include "interfaces.h" | 6 | #include "interfaces.h" |
7 | #include "module.h" | 7 | #include "module.h" |
8 | 8 | ||
9 | /* OPIE */ | 9 | /* OPIE */ |
10 | #include <qpe/qcopenvelope_qws.h> | 10 | #include <qpe/qcopenvelope_qws.h> |
11 | #include <qpe/qpeapplication.h> | 11 | #include <qpe/qpeapplication.h> |
12 | #include <qpe/config.h> | 12 | #include <qpe/config.h> |
13 | #include <qpe/qlibrary.h> | 13 | #include <qpe/qlibrary.h> |
14 | #include <qpe/resource.h> | 14 | #include <qpe/resource.h> |
15 | 15 | ||
16 | /* QT */ | 16 | /* QT */ |
17 | #include <qpushbutton.h> | 17 | #include <qpushbutton.h> |
18 | #include <qlistbox.h> | 18 | #include <qlistbox.h> |
19 | #include <qlineedit.h> | 19 | #include <qlineedit.h> |
20 | #include <qlistview.h> | 20 | #include <qlistview.h> |
21 | #include <qheader.h> | 21 | #include <qheader.h> |
22 | #include <qlabel.h> | 22 | #include <qlabel.h> |
23 | #include <qtabwidget.h> // in order to disable the profiles tab | 23 | #include <qtabwidget.h> // in order to disable the profiles tab |
24 | #include <qmessagebox.h> | 24 | #include <qmessagebox.h> |
25 | 25 | ||
26 | 26 | ||
27 | #if QT_VERSION < 300 | 27 | #if QT_VERSION < 300 |
28 | #include <qlist.h> | 28 | #include <qlist.h> |
29 | #else | 29 | #else |
30 | #include <qptrlist.h> | 30 | #include <qptrlist.h> |
31 | #endif | 31 | #endif |
32 | #include <qdir.h> | 32 | #include <qdir.h> |
33 | #include <qfile.h> | 33 | #include <qfile.h> |
34 | #include <qtextstream.h> | 34 | #include <qtextstream.h> |
35 | #include <qregexp.h> | 35 | #include <qregexp.h> |
36 | 36 | ||
37 | /* STD */ | 37 | /* STD */ |
38 | #include <net/if.h> | 38 | #include <net/if.h> |
39 | #include <sys/ioctl.h> | 39 | #include <sys/ioctl.h> |
40 | #include <sys/socket.h> | 40 | #include <sys/socket.h> |
41 | 41 | ||
42 | #define DEFAULT_SCHEME "/var/lib/pcmcia/scheme" | 42 | #define DEFAULT_SCHEME "/var/lib/pcmcia/scheme" |
43 | #define _PROCNETDEV "/proc/net/dev" | 43 | #define _PROCNETDEV "/proc/net/dev" |
44 | 44 | ||
45 | MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWindow(parent, name, Qt::WStyle_ContextHelp), advancedUserMode(true), scheme(DEFAULT_SCHEME) | 45 | MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWindow(parent, name, Qt::WStyle_ContextHelp), advancedUserMode(true), scheme(DEFAULT_SCHEME) |
46 | { | 46 | { |
47 | connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked())); | 47 | connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked())); |
48 | connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked())); | 48 | connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked())); |
49 | connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked())); | 49 | connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked())); |
50 | connect(configureConnectionButton, SIGNAL(clicked()), this, SLOT(configureClicked())); | 50 | connect(configureConnectionButton, SIGNAL(clicked()), this, SLOT(configureClicked())); |
51 | 51 | ||
52 | connect(newProfileButton, SIGNAL(clicked()), this, SLOT(addProfile())); | 52 | connect(newProfileButton, SIGNAL(clicked()), this, SLOT(addProfile())); |
53 | connect(removeProfileButton, SIGNAL(clicked()), this, SLOT(removeProfile())); | 53 | connect(removeProfileButton, SIGNAL(clicked()), this, SLOT(removeProfile())); |
54 | connect(setCurrentProfileButton, SIGNAL(clicked()), this, SLOT(changeProfile())); | 54 | connect(setCurrentProfileButton, SIGNAL(clicked()), this, SLOT(changeProfile())); |
55 | 55 | ||
56 | connect(newProfile, SIGNAL(textChanged(const QString&)), this, SLOT(newProfileChanged(const QString&))); | 56 | connect(newProfile, SIGNAL(textChanged(const QString&)), this, SLOT(newProfileChanged(const QString&))); |
57 | 57 | ||
58 | //FIXME: disable profiles for the moment: | 58 | //FIXME: disable profiles for the moment: |
59 | tabWidget->setTabEnabled( tab, false ); | 59 | tabWidget->setTabEnabled( tab, false ); |
60 | 60 | ||
61 | // Load connections. | 61 | // Load connections. |
62 | // /usr/local/kde/lib/libinterfaces.la | 62 | // /usr/local/kde/lib/libinterfaces.la |
63 | #ifdef QWS | 63 | #ifdef QWS |
64 | loadModules(QPEApplication::qpeDir() + "plugins/networksettings"); | 64 | loadModules(QPEApplication::qpeDir() + "plugins/networksettings"); |
65 | #else | 65 | #else |
66 | loader = KLibLoader::self(); | 66 | loader = KLibLoader::self(); |
67 | loadModules(QString("/usr/")+KStandardDirs::kde_default("lib")); | 67 | loadModules(QString("/usr/")+KStandardDirs::kde_default("lib")); |
68 | #endif | 68 | #endif |
69 | getAllInterfaces(); | 69 | getAllInterfaces(); |
70 | 70 | ||
71 | Interfaces i; | 71 | Interfaces i; |
72 | QStringList list = i.getInterfaceList(); | 72 | QStringList list = i.getInterfaceList(); |
73 | QMap<QString, Interface*>::Iterator it; | 73 | QMap<QString, Interface*>::Iterator it; |
74 | for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni ) | 74 | for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni ) |
75 | { | 75 | { |
76 | /* | 76 | /* |
77 | * we skipped it in getAllInterfaces now | 77 | * we skipped it in getAllInterfaces now |
78 | * we need to ignore it as well | 78 | * we need to ignore it as well |
79 | */ | 79 | */ |
80 | if (m_handledIfaces.contains( *ni) ) | 80 | if (m_handledIfaces.contains( *ni) ) |
81 | { | 81 | { |
82 | qDebug("Not up iface handled by module"); | 82 | qDebug("Not up iface handled by module"); |
83 | continue; | 83 | continue; |
84 | } | 84 | } |
85 | bool found = false; | 85 | bool found = false; |
86 | for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ) | 86 | for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ) |
87 | { | 87 | { |
88 | if(it.key() == (*ni)) | 88 | if(it.key() == (*ni)) |
89 | found = true; | 89 | found = true; |
90 | } | 90 | } |
91 | if(!found) | 91 | if(!found) |
92 | { | 92 | { |
93 | if(!(*ni).contains("_")) | 93 | if(!(*ni).contains("_")) |
94 | { | 94 | { |
95 | Interface *i = new Interface(this, *ni, false); | 95 | Interface *i = new Interface(this, *ni, false); |
96 | i->setAttached(false); | 96 | i->setAttached(false); |
97 | i->setHardwareName(tr("Disconnected")); | 97 | i->setHardwareName(tr("Disconnected")); |
98 | interfaceNames.insert(i->getInterfaceName(), i); | 98 | interfaceNames.insert(i->getInterfaceName(), i); |
99 | updateInterface(i); | 99 | updateInterface(i); |
100 | connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *))); | 100 | connect(i, SIGNAL(updateInterface(Interface*)), this, SLOT(updateInterface(Interface*))); |
101 | } | 101 | } |
102 | } | 102 | } |
103 | } | 103 | } |
104 | 104 | ||
105 | //getInterfaceList(); | 105 | //getInterfaceList(); |
106 | connectionList->header()->hide(); | 106 | connectionList->header()->hide(); |
107 | 107 | ||
108 | Config cfg("NetworkSetup"); | 108 | Config cfg("NetworkSetup"); |
109 | profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All")); | 109 | profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All")); |
110 | for ( QStringList::Iterator it = profiles.begin(); | 110 | for ( QStringList::Iterator it = profiles.begin(); |
111 | it != profiles.end(); ++it) | 111 | it != profiles.end(); ++it) |
112 | profilesList->insertItem((*it)); | 112 | profilesList->insertItem((*it)); |
113 | currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All")); | 113 | currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All")); |
114 | advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false); | 114 | advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false); |
115 | scheme = cfg.readEntry("SchemeFile", DEFAULT_SCHEME); | 115 | scheme = cfg.readEntry("SchemeFile", DEFAULT_SCHEME); |
116 | 116 | ||
117 | QFile file(scheme); | 117 | QFile file(scheme); |
118 | if ( file.open(IO_ReadOnly) ) | 118 | if ( file.open(IO_ReadOnly) ) |
119 | { // file opened successfully | 119 | { // file opened successfully |
120 | QTextStream stream( &file ); // use a text stream | 120 | QTextStream stream( &file ); // use a text stream |
121 | while ( !stream.eof() ) | 121 | while ( !stream.eof() ) |
122 | { // until end of file... | 122 | { // until end of file... |
123 | QString line = stream.readLine(); // line of text excluding '\n' | 123 | QString line = stream.readLine(); // line of text excluding '\n' |
124 | if(line.contains("SCHEME")) | 124 | if(line.contains("SCHEME")) |
125 | { | 125 | { |
126 | line = line.mid(7, line.length()); | 126 | line = line.mid(7, line.length()); |
127 | currentProfileLabel->setText(line); | 127 | currentProfileLabel->setText(line); |
128 | break; | 128 | break; |
129 | } | 129 | } |
130 | } | 130 | } |
131 | file.close(); | 131 | file.close(); |
132 | } | 132 | } |
133 | makeChannel(); | 133 | makeChannel(); |
134 | } | 134 | } |
135 | 135 | ||
136 | /** | 136 | /** |
137 | * Deconstructor. Save profiles. Delete loaded libraries. | 137 | * Deconstructor. Save profiles. Delete loaded libraries. |
138 | */ | 138 | */ |
139 | MainWindowImp::~MainWindowImp() | 139 | MainWindowImp::~MainWindowImp() |
140 | { | 140 | { |
141 | // Save profiles. | 141 | // Save profiles. |
142 | Config cfg("NetworkSetup"); | 142 | Config cfg("NetworkSetup"); |
143 | cfg.setGroup("General"); | 143 | cfg.setGroup("General"); |
144 | cfg.writeEntry("Profiles", profiles.join(" ")); | 144 | cfg.writeEntry("Profiles", profiles.join(" ")); |
145 | 145 | ||
146 | // Delete all interfaces that don't have owners. | 146 | // Delete all interfaces that don't have owners. |
147 | QMap<Interface*, QListViewItem*>::Iterator iIt; | 147 | QMap<Interface*, QListViewItem*>::Iterator iIt; |
148 | for( iIt = items.begin(); iIt != items.end(); ++iIt ) | 148 | for( iIt = items.begin(); iIt != items.end(); ++iIt ) |
149 | { | 149 | { |
150 | if(iIt.key()->getModuleOwner() == NULL) | 150 | if(iIt.key()->getModuleOwner() == NULL) |
151 | delete iIt.key(); | 151 | delete iIt.key(); |
152 | } | 152 | } |
153 | 153 | ||
154 | #ifdef QWS | 154 | #ifdef QWS |
155 | // Delete Modules and Libraries | 155 | // Delete Modules and Libraries |
156 | QMap<Module*, QLibrary*>::Iterator it; | 156 | QMap<Module*, QLibrary*>::Iterator it; |
157 | for( it = libraries.begin(); it != libraries.end(); ++it ) | 157 | for( it = libraries.begin(); it != libraries.end(); ++it ) |
158 | { | 158 | { |
159 | delete it.key(); | 159 | delete it.key(); |
160 | // I wonder why I can't delete the libraries | 160 | // I wonder why I can't delete the libraries |
161 | // What fucking shit this is. | 161 | // What fucking shit this is. |
162 | //delete it.data(); | 162 | //delete it.data(); |
163 | } | 163 | } |
164 | #else | 164 | #else |
165 | // klibloader automaticly deletes the libraries for us... | 165 | // klibloader automaticly deletes the libraries for us... |
166 | #endif | 166 | #endif |
167 | } | 167 | } |
168 | 168 | ||
169 | /** | 169 | /** |
170 | * Query the kernel for all of the interfaces. | 170 | * Query the kernel for all of the interfaces. |
171 | */ | 171 | */ |
172 | void MainWindowImp::getAllInterfaces() | 172 | void MainWindowImp::getAllInterfaces() |
173 | { | 173 | { |
174 | int sockfd = socket(PF_INET, SOCK_DGRAM, 0); | 174 | int sockfd = socket(PF_INET, SOCK_DGRAM, 0); |
175 | if(sockfd == -1) | 175 | if(sockfd == -1) |
176 | return; | 176 | return; |
177 | 177 | ||
178 | struct ifreq ifr; | 178 | struct ifreq ifr; |
179 | QStringList ifaces; | 179 | QStringList ifaces; |
180 | QFile procFile(QString(_PROCNETDEV)); | 180 | QFile procFile(QString(_PROCNETDEV)); |
181 | int result; | 181 | int result; |
182 | Interface *i; | 182 | Interface *i; |
183 | 183 | ||
184 | if (! procFile.exists()) | 184 | if (! procFile.exists()) |
185 | { | 185 | { |
186 | struct ifreq ifrs[100]; | 186 | struct ifreq ifrs[100]; |
187 | struct ifconf ifc; | 187 | struct ifconf ifc; |
188 | ifc.ifc_len = sizeof(ifrs); | 188 | ifc.ifc_len = sizeof(ifrs); |
189 | ifc.ifc_req = ifrs; | 189 | ifc.ifc_req = ifrs; |
190 | result = ioctl(sockfd, SIOCGIFCONF, &ifc); | 190 | result = ioctl(sockfd, SIOCGIFCONF, &ifc); |
191 | 191 | ||
192 | for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++) | 192 | for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++) |
193 | { | 193 | { |
194 | struct ifreq *pifr = &ifrs[i]; | 194 | struct ifreq *pifr = &ifrs[i]; |
195 | 195 | ||
196 | ifaces += pifr->ifr_name; | 196 | ifaces += pifr->ifr_name; |
197 | } | 197 | } |
198 | } | 198 | } |
199 | else | 199 | else |
200 | { | 200 | { |
201 | procFile.open(IO_ReadOnly); | 201 | procFile.open(IO_ReadOnly); |
202 | QString line; | 202 | QString line; |
203 | QTextStream procTs(&procFile); | 203 | QTextStream procTs(&procFile); |
204 | int loc = -1; | 204 | int loc = -1; |
205 | 205 | ||
206 | procTs.readLine(); // eat a line | 206 | procTs.readLine(); // eat a line |
207 | procTs.readLine(); // eat a line | 207 | procTs.readLine(); // eat a line |
208 | while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) | 208 | while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) |
209 | { | 209 | { |
210 | if((loc = line.find(":")) != -1) | 210 | if((loc = line.find(":")) != -1) |
211 | { | 211 | { |
212 | ifaces += line.left(loc); | 212 | ifaces += line.left(loc); |
213 | } | 213 | } |
214 | } | 214 | } |
215 | } | 215 | } |
216 | 216 | ||
217 | for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) | 217 | for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) |
218 | { | 218 | { |
219 | int flags = 0; | 219 | int flags = 0; |
220 | if ( m_handledIfaces.contains( (*it) ) ) | 220 | if ( m_handledIfaces.contains( (*it) ) ) |
221 | { | 221 | { |
222 | qDebug(" %s is handled by a module", (*it).latin1() ); | 222 | qDebug(" %s is handled by a module", (*it).latin1() ); |
223 | continue; | 223 | continue; |
224 | } | 224 | } |
225 | // int family; | 225 | // int family; |
226 | i = NULL; | 226 | i = NULL; |
227 | 227 | ||
228 | strcpy(ifr.ifr_name, (*it).latin1()); | 228 | strcpy(ifr.ifr_name, (*it).latin1()); |
229 | 229 | ||
230 | struct ifreq ifcopy; | 230 | struct ifreq ifcopy; |
231 | ifcopy = ifr; | 231 | ifcopy = ifr; |
232 | result = ioctl(sockfd, SIOCGIFFLAGS, &ifcopy); | 232 | result = ioctl(sockfd, SIOCGIFFLAGS, &ifcopy); |
233 | flags = ifcopy.ifr_flags; | 233 | flags = ifcopy.ifr_flags; |
234 | i = new Interface(this, ifr.ifr_name, false); | 234 | i = new Interface(this, ifr.ifr_name, false); |
235 | i->setAttached(true); | 235 | i->setAttached(true); |
236 | if ((flags & IFF_UP) == IFF_UP) | 236 | if ((flags & IFF_UP) == IFF_UP) |
237 | i->setStatus(true); | 237 | i->setStatus(true); |
238 | else | 238 | else |
239 | i->setStatus(false); | 239 | i->setStatus(false); |
240 | 240 | ||
241 | if ((flags & IFF_BROADCAST) == IFF_BROADCAST) | 241 | if ((flags & IFF_BROADCAST) == IFF_BROADCAST) |
242 | i->setHardwareName("Ethernet"); | 242 | i->setHardwareName("Ethernet"); |
243 | else if ((flags & IFF_POINTOPOINT) == IFF_POINTOPOINT) | 243 | else if ((flags & IFF_POINTOPOINT) == IFF_POINTOPOINT) |
244 | i->setHardwareName("Point to Point"); | 244 | i->setHardwareName("Point to Point"); |
245 | else if ((flags & IFF_MULTICAST) == IFF_MULTICAST) | 245 | else if ((flags & IFF_MULTICAST) == IFF_MULTICAST) |
246 | i->setHardwareName("Multicast"); | 246 | i->setHardwareName("Multicast"); |
247 | else if ((flags & IFF_LOOPBACK) == IFF_LOOPBACK) | 247 | else if ((flags & IFF_LOOPBACK) == IFF_LOOPBACK) |
248 | i->setHardwareName("Loopback"); | 248 | i->setHardwareName("Loopback"); |
249 | else | 249 | else |
250 | i->setHardwareName("Unknown"); | 250 | i->setHardwareName("Unknown"); |
251 | 251 | ||
252 | qWarning("Adding interface %s to interfaceNames\n", ifr.ifr_name); | 252 | qWarning("Adding interface %s to interfaceNames\n", ifr.ifr_name); |
253 | interfaceNames.insert(i->getInterfaceName(), i); | 253 | interfaceNames.insert(i->getInterfaceName(), i); |
254 | updateInterface(i); | 254 | updateInterface(i); |
255 | connect(i, SIGNAL(updateInterface(Interface *)), | 255 | connect(i, SIGNAL(updateInterface(Interface*)), |
256 | this, SLOT(updateInterface(Interface *))); | 256 | this, SLOT(updateInterface(Interface*))); |
257 | } | 257 | } |
258 | // now lets ask the plugins too ;) | 258 | // now lets ask the plugins too ;) |
259 | QMap<Module*, QLibrary*>::Iterator it; | 259 | QMap<Module*, QLibrary*>::Iterator it; |
260 | QList<Interface> ilist; | 260 | QList<Interface> ilist; |
261 | for( it = libraries.begin(); it != libraries.end(); ++it ) | 261 | for( it = libraries.begin(); it != libraries.end(); ++it ) |
262 | { | 262 | { |
263 | if(it.key()) | 263 | if(it.key()) |
264 | { | 264 | { |
265 | ilist = it.key()->getInterfaces(); | 265 | ilist = it.key()->getInterfaces(); |
266 | for( i = ilist.first(); i != 0; i = ilist.next() ) | 266 | for( i = ilist.first(); i != 0; i = ilist.next() ) |
267 | { | 267 | { |
268 | qWarning("Adding interface %s to interfaceNames\n", i->getInterfaceName().latin1() ); | 268 | qWarning("Adding interface %s to interfaceNames\n", i->getInterfaceName().latin1() ); |
269 | interfaceNames.insert(i->getInterfaceName(), i); | 269 | interfaceNames.insert(i->getInterfaceName(), i); |
270 | updateInterface(i); | 270 | updateInterface(i); |
271 | connect(i, SIGNAL(updateInterface(Interface *)), | 271 | connect(i, SIGNAL(updateInterface(Interface*)), |
272 | this, SLOT(updateInterface(Interface *))); | 272 | this, SLOT(updateInterface(Interface*))); |
273 | } | 273 | } |
274 | } | 274 | } |
275 | } | 275 | } |
276 | } | 276 | } |
277 | 277 | ||
278 | /** | 278 | /** |
279 | * Load all modules that are found in the path | 279 | * Load all modules that are found in the path |
280 | * @param path a directory that is scaned for any plugins that can be loaded | 280 | * @param path a directory that is scaned for any plugins that can be loaded |
281 | * and attempts to load them | 281 | * and attempts to load them |
282 | */ | 282 | */ |
283 | void MainWindowImp::loadModules(const QString &path) | 283 | void MainWindowImp::loadModules(const QString &path) |
284 | { | 284 | { |
285 | #ifdef DEBUG | 285 | #ifdef DEBUG |
286 | qDebug("MainWindowImp::loadModules: %s", path.latin1()); | 286 | qDebug("MainWindowImp::loadModules: %s", path.latin1()); |
287 | #endif | 287 | #endif |
288 | QDir d(path); | 288 | QDir d(path); |
289 | if(!d.exists()) | 289 | if(!d.exists()) |
290 | return; | 290 | return; |
291 | 291 | ||
292 | // Don't want sym links | 292 | // Don't want sym links |
293 | d.setFilter( QDir::Files | QDir::NoSymLinks ); | 293 | d.setFilter( QDir::Files | QDir::NoSymLinks ); |
294 | const QFileInfoList *list = d.entryInfoList(); | 294 | const QFileInfoList *list = d.entryInfoList(); |
295 | QFileInfoListIterator it( *list ); | 295 | QFileInfoListIterator it( *list ); |
296 | QFileInfo *fi; | 296 | QFileInfo *fi; |
297 | while ( (fi=it.current()) ) | 297 | while ( (fi=it.current()) ) |
298 | { | 298 | { |
299 | #ifdef QWS | 299 | #ifdef QWS |
300 | if(fi->fileName().contains(".so")) | 300 | if(fi->fileName().contains(".so")) |
301 | { | 301 | { |
302 | #else | 302 | #else |
303 | if(fi->fileName().contains(".so") && fi->fileName().contains("networksettings_")) | 303 | if(fi->fileName().contains(".so") && fi->fileName().contains("networksettings_")) |
304 | { | 304 | { |
305 | #endif | 305 | #endif |
306 | loadPlugin(path + "/" + fi->fileName()); | 306 | loadPlugin(path + "/" + fi->fileName()); |
307 | qDebug("loaded plugin: >%s< ",QString(path + "/" + fi->fileName()).latin1()); | 307 | qDebug("loaded plugin: >%s< ",QString(path + "/" + fi->fileName()).latin1()); |
308 | } | 308 | } |
309 | ++it; | 309 | ++it; |
310 | } | 310 | } |
311 | } | 311 | } |
312 | 312 | ||
313 | /** | 313 | /** |
314 | * Attempt to load a function and resolve a function. | 314 | * Attempt to load a function and resolve a function. |
315 | * @param pluginFileName - the name of the file in which to attempt to load | 315 | * @param pluginFileName - the name of the file in which to attempt to load |
316 | * @param resolveString - function pointer to resolve | 316 | * @param resolveString - function pointer to resolve |
317 | * @return pointer to the function with name resolveString or NULL | 317 | * @return pointer to the function with name resolveString or NULL |
318 | */ | 318 | */ |
319 | Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString &resolveString) | 319 | Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString &resolveString) |
320 | { | 320 | { |
321 | #ifdef DEBUG | 321 | #ifdef DEBUG |
322 | qDebug("MainWindowImp::loadPlugin: %s: resolving %s", pluginFileName.latin1(), resolveString.latin1()); | 322 | qDebug("MainWindowImp::loadPlugin: %s: resolving %s", pluginFileName.latin1(), resolveString.latin1()); |
323 | #endif | 323 | #endif |
324 | #ifdef QWS | 324 | #ifdef QWS |
325 | QLibrary *lib = new QLibrary(pluginFileName); | 325 | QLibrary *lib = new QLibrary(pluginFileName); |
326 | void *functionPointer = lib->resolve(resolveString); | 326 | void *functionPointer = lib->resolve(resolveString); |
327 | if( !functionPointer ) | 327 | if( !functionPointer ) |
328 | { | 328 | { |
329 | #ifdef DEBUG | 329 | #ifdef DEBUG |
330 | qDebug("MainWindowImp::loadPlugin: Warning: %s is not a plugin", pluginFileName.latin1()); | 330 | qDebug("MainWindowImp::loadPlugin: Warning: %s is not a plugin", pluginFileName.latin1()); |
331 | #endif | 331 | #endif |
332 | delete lib; | 332 | delete lib; |
333 | return NULL; | 333 | return NULL; |
334 | } | 334 | } |
335 | // Try to get an object. | 335 | // Try to get an object. |
336 | Module *object = ((Module* (*)()) functionPointer)(); | 336 | Module *object = ((Module* (*)()) functionPointer)(); |
337 | if(object == NULL) | 337 | if(object == NULL) |
338 | { | 338 | { |
339 | #ifdef DEBUG | 339 | #ifdef DEBUG |
340 | qDebug("MainWindowImp: Couldn't create object, but did load library!"); | 340 | qDebug("MainWindowImp: Couldn't create object, but did load library!"); |
341 | #endif | 341 | #endif |
342 | delete lib; | 342 | delete lib; |
343 | return NULL; | 343 | return NULL; |
344 | } | 344 | } |
345 | 345 | ||
346 | m_handledIfaces += object->handledInterfaceNames(); | 346 | m_handledIfaces += object->handledInterfaceNames(); |
347 | // Store for deletion later | 347 | // Store for deletion later |
348 | libraries.insert(object, lib); | 348 | libraries.insert(object, lib); |
349 | return object; | 349 | return object; |
350 | 350 | ||
351 | #else | 351 | #else |
352 | QLibrary *lib = loader->library(pluginFileName); | 352 | QLibrary *lib = loader->library(pluginFileName); |
353 | if( !lib || !lib->hasSymbol(resolveString) ) | 353 | if( !lib || !lib->hasSymbol(resolveString) ) |
354 | { | 354 | { |
355 | qDebug(QString("MainWindowImp::loadPlugin: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1()); | 355 | qDebug(QString("MainWindowImp::loadPlugin: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1()); |
356 | return NULL; | 356 | return NULL; |
357 | } | 357 | } |
358 | // Try to get an object. | 358 | // Try to get an object. |
359 | Module *object = ((Module* (*)()) lib->symbol(resolveString))(); | 359 | Module *object = ((Module* (*)()) lib->symbol(resolveString))(); |
360 | if(object == NULL) | 360 | if(object == NULL) |
361 | { | 361 | { |
362 | #ifdef DEBUG | 362 | #ifdef DEBUG |
363 | qDebug("MainWindowImp: Couldn't create object, but did load library!"); | 363 | qDebug("MainWindowImp: Couldn't create object, but did load library!"); |
364 | #endif | 364 | #endif |
365 | return NULL; | 365 | return NULL; |
366 | } | 366 | } |
367 | #ifdef DEBUG | 367 | #ifdef DEBUG |
368 | qDebug("MainWindowImp::loadPlugin:: Found object, storing."); | 368 | qDebug("MainWindowImp::loadPlugin:: Found object, storing."); |
@@ -619,130 +619,130 @@ void MainWindowImp::removeProfile() | |||
619 | { | 619 | { |
620 | if(profilesList->count() <= 1) | 620 | if(profilesList->count() <= 1) |
621 | { | 621 | { |
622 | QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", QMessageBox::Ok); | 622 | QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", QMessageBox::Ok); |
623 | return; | 623 | return; |
624 | } | 624 | } |
625 | QString profileToRemove = profilesList->currentText(); | 625 | QString profileToRemove = profilesList->currentText(); |
626 | if(profileToRemove == "All") | 626 | if(profileToRemove == "All") |
627 | { | 627 | { |
628 | QMessageBox::information(this, "Can't remove.","Can't remove default.", QMessageBox::Ok); | 628 | QMessageBox::information(this, "Can't remove.","Can't remove default.", QMessageBox::Ok); |
629 | return; | 629 | return; |
630 | } | 630 | } |
631 | // Can't remove the curent profile | 631 | // Can't remove the curent profile |
632 | if(profileToRemove == currentProfileLabel->text()) | 632 | if(profileToRemove == currentProfileLabel->text()) |
633 | { | 633 | { |
634 | QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), QMessageBox::Ok); | 634 | QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), QMessageBox::Ok); |
635 | return; | 635 | return; |
636 | 636 | ||
637 | } | 637 | } |
638 | 638 | ||
639 | if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) | 639 | if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) |
640 | { | 640 | { |
641 | profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), "")); | 641 | profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), "")); |
642 | profilesList->clear(); | 642 | profilesList->clear(); |
643 | for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) | 643 | for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) |
644 | profilesList->insertItem((*it)); | 644 | profilesList->insertItem((*it)); |
645 | 645 | ||
646 | // Remove any interface settings and mappings. | 646 | // Remove any interface settings and mappings. |
647 | Interfaces interfaces; | 647 | Interfaces interfaces; |
648 | // Go through them one by one | 648 | // Go through them one by one |
649 | QMap<Interface*, QListViewItem*>::Iterator it; | 649 | QMap<Interface*, QListViewItem*>::Iterator it; |
650 | for( it = items.begin(); it != items.end(); ++it ) | 650 | for( it = items.begin(); it != items.end(); ++it ) |
651 | { | 651 | { |
652 | QString interfaceName = it.key()->getInterfaceName(); | 652 | QString interfaceName = it.key()->getInterfaceName(); |
653 | qDebug(interfaceName.latin1()); | 653 | qDebug(interfaceName.latin1()); |
654 | if(interfaces.setInterface(interfaceName + "_" + profileToRemove)) | 654 | if(interfaces.setInterface(interfaceName + "_" + profileToRemove)) |
655 | { | 655 | { |
656 | interfaces.removeInterface(); | 656 | interfaces.removeInterface(); |
657 | if(interfaces.setMapping(interfaceName)) | 657 | if(interfaces.setMapping(interfaceName)) |
658 | { | 658 | { |
659 | if(profilesList->count() == 1) | 659 | if(profilesList->count() == 1) |
660 | interfaces.removeMapping(); | 660 | interfaces.removeMapping(); |
661 | else | 661 | else |
662 | { | 662 | { |
663 | interfaces.removeMap("map", interfaceName + "_" + profileToRemove); | 663 | interfaces.removeMap("map", interfaceName + "_" + profileToRemove); |
664 | } | 664 | } |
665 | } | 665 | } |
666 | interfaces.write(); | 666 | interfaces.write(); |
667 | break; | 667 | break; |
668 | } | 668 | } |
669 | } | 669 | } |
670 | } | 670 | } |
671 | } | 671 | } |
672 | 672 | ||
673 | /** | 673 | /** |
674 | * A new profile has been selected, change. | 674 | * A new profile has been selected, change. |
675 | * @param newProfile the new profile. | 675 | * @param newProfile the new profile. |
676 | */ | 676 | */ |
677 | void MainWindowImp::changeProfile() | 677 | void MainWindowImp::changeProfile() |
678 | { | 678 | { |
679 | if(profilesList->currentItem() == -1) | 679 | if(profilesList->currentItem() == -1) |
680 | { | 680 | { |
681 | QMessageBox::information(this, "Can't Change.","Please select a profile.", QMessageBox::Ok); | 681 | QMessageBox::information(this, "Can't Change.","Please select a profile.", QMessageBox::Ok); |
682 | return; | 682 | return; |
683 | } | 683 | } |
684 | QString newProfile = profilesList->text(profilesList->currentItem()); | 684 | QString newProfile = profilesList->text(profilesList->currentItem()); |
685 | if(newProfile != currentProfileLabel->text()) | 685 | if(newProfile != currentProfileLabel->text()) |
686 | { | 686 | { |
687 | currentProfileLabel->setText(newProfile); | 687 | currentProfileLabel->setText(newProfile); |
688 | QFile::remove(scheme); | 688 | QFile::remove(scheme); |
689 | QFile file(scheme); | 689 | QFile file(scheme); |
690 | if ( file.open(IO_ReadWrite) ) | 690 | if ( file.open(IO_ReadWrite) ) |
691 | { | 691 | { |
692 | QTextStream stream( &file ); | 692 | QTextStream stream( &file ); |
693 | stream << QString("SCHEME=%1").arg(newProfile); | 693 | stream << QString("SCHEME=%1").arg(newProfile); |
694 | file.close(); | 694 | file.close(); |
695 | } | 695 | } |
696 | // restart all up devices? | 696 | // restart all up devices? |
697 | if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok) | 697 | if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok) |
698 | { | 698 | { |
699 | // Go through them one by one | 699 | // Go through them one by one |
700 | QMap<Interface*, QListViewItem*>::Iterator it; | 700 | QMap<Interface*, QListViewItem*>::Iterator it; |
701 | for( it = items.begin(); it != items.end(); ++it ) | 701 | for( it = items.begin(); it != items.end(); ++it ) |
702 | { | 702 | { |
703 | if(it.key()->getStatus() == true) | 703 | if(it.key()->getStatus() == true) |
704 | it.key()->restart(); | 704 | it.key()->restart(); |
705 | } | 705 | } |
706 | } | 706 | } |
707 | } | 707 | } |
708 | // TODO change the profile in the modules | 708 | // TODO change the profile in the modules |
709 | } | 709 | } |
710 | 710 | ||
711 | 711 | ||
712 | void MainWindowImp::makeChannel() | 712 | void MainWindowImp::makeChannel() |
713 | { | 713 | { |
714 | channel = new QCopChannel( "QPE/Application/networksettings", this ); | 714 | channel = new QCopChannel( "QPE/Application/networksettings", this ); |
715 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 715 | connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), |
716 | this, SLOT(receive(const QCString&, const QByteArray&)) ); | 716 | this, SLOT(receive(const QCString&,const QByteArray&)) ); |
717 | } | 717 | } |
718 | 718 | ||
719 | void MainWindowImp::receive(const QCString &msg, const QByteArray &arg) | 719 | void MainWindowImp::receive(const QCString &msg, const QByteArray &arg) |
720 | { | 720 | { |
721 | bool found = false; | 721 | bool found = false; |
722 | qDebug("MainWindowImp::receive QCop msg >"+msg+"<"); | 722 | qDebug("MainWindowImp::receive QCop msg >"+msg+"<"); |
723 | if (msg == "raise") | 723 | if (msg == "raise") |
724 | { | 724 | { |
725 | raise(); | 725 | raise(); |
726 | return; | 726 | return; |
727 | } | 727 | } |
728 | 728 | ||
729 | QString dest = msg.left(msg.find("(")); | 729 | QString dest = msg.left(msg.find("(")); |
730 | QCString param = msg.right(msg.length() - msg.find("(") - 1); | 730 | QCString param = msg.right(msg.length() - msg.find("(") - 1); |
731 | param = param.left( param.length() - 1 ); | 731 | param = param.left( param.length() - 1 ); |
732 | qDebug("dest >%s< param >"+param+"<",dest.latin1()); | 732 | qDebug("dest >%s< param >"+param+"<",dest.latin1()); |
733 | 733 | ||
734 | QMap<Module*, QLibrary*>::Iterator it; | 734 | QMap<Module*, QLibrary*>::Iterator it; |
735 | for( it = libraries.begin(); it != libraries.end(); ++it ) | 735 | for( it = libraries.begin(); it != libraries.end(); ++it ) |
736 | { | 736 | { |
737 | qDebug("plugin >%s<", it.key()->type().latin1() ); | 737 | qDebug("plugin >%s<", it.key()->type().latin1() ); |
738 | if(it.key()->type() == dest) | 738 | if(it.key()->type() == dest) |
739 | { | 739 | { |
740 | it.key()->receive( param, arg ); | 740 | it.key()->receive( param, arg ); |
741 | found = true; | 741 | found = true; |
742 | } | 742 | } |
743 | } | 743 | } |
744 | 744 | ||
745 | 745 | ||
746 | if (found) QPEApplication::setKeepRunning(); | 746 | if (found) QPEApplication::setKeepRunning(); |
747 | else qDebug("Huh what do ya want"); | 747 | else qDebug("Huh what do ya want"); |
748 | } | 748 | } |
diff --git a/noncore/settings/networksettings/ppp/edit.cpp b/noncore/settings/networksettings/ppp/edit.cpp index 7d21605..3b2393c 100644 --- a/noncore/settings/networksettings/ppp/edit.cpp +++ b/noncore/settings/networksettings/ppp/edit.cpp | |||
@@ -479,194 +479,194 @@ void IPWidget::autoname_t(bool on) | |||
479 | "problems with the X-server and applications " | 479 | "problems with the X-server and applications " |
480 | "while kppp is connected. Don't use it until " | 480 | "while kppp is connected. Don't use it until " |
481 | "you know what you are doing!\n" | 481 | "you know what you are doing!\n" |
482 | "For more information take a look at the " | 482 | "For more information take a look at the " |
483 | "handbook (or help) in the section \"Frequently " | 483 | "handbook (or help) in the section \"Frequently " |
484 | "asked questions\"."), | 484 | "asked questions\"."), |
485 | tr("Warning")); | 485 | tr("Warning")); |
486 | was_warned = true; | 486 | was_warned = true; |
487 | } | 487 | } |
488 | } | 488 | } |
489 | 489 | ||
490 | 490 | ||
491 | void IPWidget::save() | 491 | void IPWidget::save() |
492 | { | 492 | { |
493 | if(dynamicadd_rb->isChecked()) | 493 | if(dynamicadd_rb->isChecked()) |
494 | { | 494 | { |
495 | _pppdata->setIpaddr("0.0.0.0"); | 495 | _pppdata->setIpaddr("0.0.0.0"); |
496 | _pppdata->setSubnetmask("0.0.0.0"); | 496 | _pppdata->setSubnetmask("0.0.0.0"); |
497 | } | 497 | } |
498 | else | 498 | else |
499 | { | 499 | { |
500 | _pppdata->setIpaddr(ipaddress_l->text()); | 500 | _pppdata->setIpaddr(ipaddress_l->text()); |
501 | _pppdata->setSubnetmask(subnetmask_l->text()); | 501 | _pppdata->setSubnetmask(subnetmask_l->text()); |
502 | } | 502 | } |
503 | _pppdata->setAutoname(autoname->isChecked()); | 503 | _pppdata->setAutoname(autoname->isChecked()); |
504 | } | 504 | } |
505 | 505 | ||
506 | 506 | ||
507 | void IPWidget::hitIPSelect( int i ) | 507 | void IPWidget::hitIPSelect( int i ) |
508 | { | 508 | { |
509 | if(i == 0) | 509 | if(i == 0) |
510 | { | 510 | { |
511 | ipaddress_label->setEnabled(false); | 511 | ipaddress_label->setEnabled(false); |
512 | sub_label->setEnabled(false); | 512 | sub_label->setEnabled(false); |
513 | ipaddress_l->setEnabled(false); | 513 | ipaddress_l->setEnabled(false); |
514 | subnetmask_l->setEnabled(false); | 514 | subnetmask_l->setEnabled(false); |
515 | } | 515 | } |
516 | else | 516 | else |
517 | { | 517 | { |
518 | ipaddress_label->setEnabled(true); | 518 | ipaddress_label->setEnabled(true); |
519 | sub_label->setEnabled(true); | 519 | sub_label->setEnabled(true); |
520 | ipaddress_l->setEnabled(true); | 520 | ipaddress_l->setEnabled(true); |
521 | subnetmask_l->setEnabled(true); | 521 | subnetmask_l->setEnabled(true); |
522 | } | 522 | } |
523 | } | 523 | } |
524 | 524 | ||
525 | 525 | ||
526 | 526 | ||
527 | DNSWidget::DNSWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) | 527 | DNSWidget::DNSWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) |
528 | : QWidget(parent, name), _pppdata(pd) | 528 | : QWidget(parent, name), _pppdata(pd) |
529 | { | 529 | { |
530 | QGridLayout *tl = new QGridLayout(this, 7, 2, 0 ); | 530 | QGridLayout *tl = new QGridLayout(this, 7, 2, 0 ); |
531 | 531 | ||
532 | dnsdomain_label = new QLabel(tr("Domain name:"), this); | 532 | dnsdomain_label = new QLabel(tr("Domain name:"), this); |
533 | tl->addWidget(dnsdomain_label, 0, 0); | 533 | tl->addWidget(dnsdomain_label, 0, 0); |
534 | 534 | ||
535 | dnsdomain = new QLineEdit(this); | 535 | dnsdomain = new QLineEdit(this); |
536 | 536 | ||
537 | tl->addWidget(dnsdomain, 0, 1); | 537 | tl->addWidget(dnsdomain, 0, 1); |
538 | QString tmp = tr("If you enter a domain name here, this domain\n" | 538 | QString tmp = tr("If you enter a domain name here, this domain\n" |
539 | "name is used for your computer while you are\n" | 539 | "name is used for your computer while you are\n" |
540 | "connected. When the connection is closed, the\n" | 540 | "connected. When the connection is closed, the\n" |
541 | "original domain name of your computer is\n" | 541 | "original domain name of your computer is\n" |
542 | "restored.\n" | 542 | "restored.\n" |
543 | "\n" | 543 | "\n" |
544 | "If you leave this field blank, no changes are\n" | 544 | "If you leave this field blank, no changes are\n" |
545 | "made to the domain name."); | 545 | "made to the domain name."); |
546 | 546 | ||
547 | QWhatsThis::add(dnsdomain_label,tmp); | 547 | QWhatsThis::add(dnsdomain_label,tmp); |
548 | QWhatsThis::add(dnsdomain,tmp); | 548 | QWhatsThis::add(dnsdomain,tmp); |
549 | 549 | ||
550 | conf_label = new QLabel(tr("Configuration:"), this); | 550 | conf_label = new QLabel(tr("Configuration:"), this); |
551 | tl->addWidget(conf_label, 1, 0); | 551 | tl->addWidget(conf_label, 1, 0); |
552 | 552 | ||
553 | bg = new QButtonGroup("Group", this); | 553 | bg = new QButtonGroup("Group", this); |
554 | connect(bg, SIGNAL(clicked(int)), SLOT(DNS_Mode_Selected(int))); | 554 | connect(bg, SIGNAL(clicked(int)), SLOT(DNS_Mode_Selected(int))); |
555 | bg->hide(); | 555 | bg->hide(); |
556 | 556 | ||
557 | autodns = new QRadioButton(tr("Automatic"), this); | 557 | autodns = new QRadioButton(tr("Automatic"), this); |
558 | bg->insert(autodns, 0); | 558 | bg->insert(autodns, 0); |
559 | tl->addWidget(autodns, 1, 1); | 559 | tl->addWidget(autodns, 1, 1); |
560 | if(!_pppdata->pppdVersionMin(2, 3, 7)) | 560 | if(!_pppdata->pppdVersionMin(2, 3, 7)) |
561 | autodns->setEnabled(false); | 561 | autodns->setEnabled(false); |
562 | 562 | ||
563 | mandns = new QRadioButton(tr("Manual"), this); | 563 | mandns = new QRadioButton(tr("Manual"), this); |
564 | bg->insert(mandns, 1); | 564 | bg->insert(mandns, 1); |
565 | tl->addWidget(mandns, 2, 1); | 565 | tl->addWidget(mandns, 2, 1); |
566 | 566 | ||
567 | dns_label = new QLabel(tr("DNS IP address:"), this); | 567 | dns_label = new QLabel(tr("DNS IP address:"), this); |
568 | tl->addWidget(dns_label, 3, 0); | 568 | tl->addWidget(dns_label, 3, 0); |
569 | 569 | ||
570 | QHBoxLayout *l2 = new QHBoxLayout; | 570 | QHBoxLayout *l2 = new QHBoxLayout; |
571 | tl->addLayout(l2, 3, 1); | 571 | tl->addLayout(l2, 3, 1); |
572 | dnsipaddr = new IPLineEdit(this); | 572 | dnsipaddr = new IPLineEdit(this); |
573 | connect(dnsipaddr, SIGNAL(returnPressed()), | 573 | connect(dnsipaddr, SIGNAL(returnPressed()), |
574 | SLOT(adddns())); | 574 | SLOT(adddns())); |
575 | connect(dnsipaddr, SIGNAL(textChanged(const QString &)), | 575 | connect(dnsipaddr, SIGNAL(textChanged(const QString&)), |
576 | SLOT(DNS_Edit_Changed(const QString &))); | 576 | SLOT(DNS_Edit_Changed(const QString&))); |
577 | l2->addWidget(dnsipaddr, 1); | 577 | l2->addWidget(dnsipaddr, 1); |
578 | l2->addStretch(1); | 578 | l2->addStretch(1); |
579 | tmp = tr("<p>Allows you to specify a new DNS server to be\n" | 579 | tmp = tr("<p>Allows you to specify a new DNS server to be\n" |
580 | "used while you are connected. When the\n" | 580 | "used while you are connected. When the\n" |
581 | "connection is closed, this DNS entry will be\n" | 581 | "connection is closed, this DNS entry will be\n" |
582 | "removed again.\n" | 582 | "removed again.\n" |
583 | "\n" | 583 | "\n" |
584 | "To add a DNS server, type in the IP address of\n" | 584 | "To add a DNS server, type in the IP address of\n" |
585 | "the DNS server here and click on <b>Add</b>"); | 585 | "the DNS server here and click on <b>Add</b>"); |
586 | 586 | ||
587 | QWhatsThis::add(dns_label, tmp); | 587 | QWhatsThis::add(dns_label, tmp); |
588 | QWhatsThis::add(dnsipaddr, tmp); | 588 | QWhatsThis::add(dnsipaddr, tmp); |
589 | 589 | ||
590 | QHBoxLayout *l1 = new QHBoxLayout; | 590 | QHBoxLayout *l1 = new QHBoxLayout; |
591 | tl->addLayout(l1, 4, 1); | 591 | tl->addLayout(l1, 4, 1); |
592 | add = new QPushButton(tr("Add"), this); | 592 | add = new QPushButton(tr("Add"), this); |
593 | connect(add, SIGNAL(clicked()), SLOT(adddns())); | 593 | connect(add, SIGNAL(clicked()), SLOT(adddns())); |
594 | l1->addWidget(add); | 594 | l1->addWidget(add); |
595 | // l1->addStretch(1); | 595 | // l1->addStretch(1); |
596 | QWhatsThis::add(add, | 596 | QWhatsThis::add(add, |
597 | tr("Click this button to add the DNS server\n" | 597 | tr("Click this button to add the DNS server\n" |
598 | "specified in the field above. The entry\n" | 598 | "specified in the field above. The entry\n" |
599 | "will then be added to the list below")); | 599 | "will then be added to the list below")); |
600 | 600 | ||
601 | remove = new QPushButton(tr("Remove"), this); | 601 | remove = new QPushButton(tr("Remove"), this); |
602 | connect(remove, SIGNAL(clicked()), SLOT(removedns())); | 602 | connect(remove, SIGNAL(clicked()), SLOT(removedns())); |
603 | l1->addWidget(remove); | 603 | l1->addWidget(remove); |
604 | QWhatsThis::add(remove, | 604 | QWhatsThis::add(remove, |
605 | tr("Click this button to remove the selected DNS\n" | 605 | tr("Click this button to remove the selected DNS\n" |
606 | "server entry from the list below")); | 606 | "server entry from the list below")); |
607 | 607 | ||
608 | servers_label = new QLabel(tr("DNS address list:"), this); | 608 | servers_label = new QLabel(tr("DNS address list:"), this); |
609 | servers_label->setAlignment(AlignTop|AlignLeft); | 609 | servers_label->setAlignment(AlignTop|AlignLeft); |
610 | tl->addWidget(servers_label, 5, 0); | 610 | tl->addWidget(servers_label, 5, 0); |
611 | 611 | ||
612 | dnsservers = new QListBox(this); | 612 | dnsservers = new QListBox(this); |
613 | dnsservers->setMinimumSize(150, 80); | 613 | dnsservers->setMinimumSize(150, 80); |
614 | connect(dnsservers, SIGNAL(highlighted(int)), | 614 | connect(dnsservers, SIGNAL(highlighted(int)), |
615 | SLOT(DNS_Entry_Selected(int))); | 615 | SLOT(DNS_Entry_Selected(int))); |
616 | tl->addWidget(dnsservers, 5, 1); | 616 | tl->addWidget(dnsservers, 5, 1); |
617 | tmp = tr("<p>This shows all defined DNS servers to use\n" | 617 | tmp = tr("<p>This shows all defined DNS servers to use\n" |
618 | "while you are connected. Use the <b>Add</b> and\n" | 618 | "while you are connected. Use the <b>Add</b> and\n" |
619 | "<b>Remove</b> buttons to modify the list"); | 619 | "<b>Remove</b> buttons to modify the list"); |
620 | 620 | ||
621 | QWhatsThis::add(servers_label,tmp); | 621 | QWhatsThis::add(servers_label,tmp); |
622 | QWhatsThis::add(dnsservers,tmp); | 622 | QWhatsThis::add(dnsservers,tmp); |
623 | 623 | ||
624 | exdnsdisabled_toggle = new QCheckBox(tr("Disable DNS servers during connection"), this); | 624 | exdnsdisabled_toggle = new QCheckBox(tr("Disable DNS servers during connection"), this); |
625 | // exdnsdisabled_toggle = new QCheckBox(tr("Disable existing DNS servers during connection"), this); | 625 | // exdnsdisabled_toggle = new QCheckBox(tr("Disable existing DNS servers during connection"), this); |
626 | exdnsdisabled_toggle->setChecked(_pppdata->exDNSDisabled()); | 626 | exdnsdisabled_toggle->setChecked(_pppdata->exDNSDisabled()); |
627 | tl->addMultiCellWidget(exdnsdisabled_toggle, 6, 6, 0, 1, AlignCenter); | 627 | tl->addMultiCellWidget(exdnsdisabled_toggle, 6, 6, 0, 1, AlignCenter); |
628 | QWhatsThis::add(exdnsdisabled_toggle, | 628 | QWhatsThis::add(exdnsdisabled_toggle, |
629 | tr("<p>When this option is selected, all DNS\n" | 629 | tr("<p>When this option is selected, all DNS\n" |
630 | "servers specified in <tt>/etc/resolv.conf</tt> are\n" | 630 | "servers specified in <tt>/etc/resolv.conf</tt> are\n" |
631 | "temporary disabled while the dialup connection\n" | 631 | "temporary disabled while the dialup connection\n" |
632 | "is established. After the connection is\n" | 632 | "is established. After the connection is\n" |
633 | "closed, the servers will be re-enabled\n" | 633 | "closed, the servers will be re-enabled\n" |
634 | "\n" | 634 | "\n" |
635 | "Typically, there is no reason to use this\n" | 635 | "Typically, there is no reason to use this\n" |
636 | "option, but it may become useful under \n" | 636 | "option, but it may become useful under \n" |
637 | "some circumstances.")); | 637 | "some circumstances.")); |
638 | 638 | ||
639 | 639 | ||
640 | // restore data if editing | 640 | // restore data if editing |
641 | if(!isnewaccount) | 641 | if(!isnewaccount) |
642 | { | 642 | { |
643 | dnsservers->insertStringList(_pppdata->dns()); | 643 | dnsservers->insertStringList(_pppdata->dns()); |
644 | dnsdomain->setText(_pppdata->domain()); | 644 | dnsdomain->setText(_pppdata->domain()); |
645 | } | 645 | } |
646 | 646 | ||
647 | int mode = _pppdata->autoDNS() ? 0 : 1; | 647 | int mode = _pppdata->autoDNS() ? 0 : 1; |
648 | bg->setButton(mode); | 648 | bg->setButton(mode); |
649 | DNS_Mode_Selected(mode); | 649 | DNS_Mode_Selected(mode); |
650 | 650 | ||
651 | tl->activate(); | 651 | tl->activate(); |
652 | } | 652 | } |
653 | 653 | ||
654 | void DNSWidget::DNS_Edit_Changed(const QString &text) | 654 | void DNSWidget::DNS_Edit_Changed(const QString &text) |
655 | { | 655 | { |
656 | QRegExp r("[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"); | 656 | QRegExp r("[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"); |
657 | add->setEnabled(text.find(r) != -1); | 657 | add->setEnabled(text.find(r) != -1); |
658 | } | 658 | } |
659 | 659 | ||
660 | void DNSWidget::DNS_Entry_Selected(int) | 660 | void DNSWidget::DNS_Entry_Selected(int) |
661 | { | 661 | { |
662 | remove->setEnabled(true); | 662 | remove->setEnabled(true); |
663 | } | 663 | } |
664 | 664 | ||
665 | void DNSWidget::DNS_Mode_Selected(int mode) | 665 | void DNSWidget::DNS_Mode_Selected(int mode) |
666 | { | 666 | { |
667 | bool on = (mode == 1); | 667 | bool on = (mode == 1); |
668 | dns_label->setEnabled(on); | 668 | dns_label->setEnabled(on); |
669 | servers_label->setEnabled(on); | 669 | servers_label->setEnabled(on); |
670 | dnsipaddr->setText(""); | 670 | dnsipaddr->setText(""); |
671 | dnsipaddr->setEnabled(on); | 671 | dnsipaddr->setEnabled(on); |
672 | add->setEnabled(false); | 672 | add->setEnabled(false); |
@@ -1091,121 +1091,121 @@ void ScriptWidget::insertButton() | |||
1091 | break; | 1091 | break; |
1092 | 1092 | ||
1093 | case ScriptEdit::Timeout: | 1093 | case ScriptEdit::Timeout: |
1094 | stl->insertItem("Timeout", stl->currentItem()); | 1094 | stl->insertItem("Timeout", stl->currentItem()); |
1095 | sl->insertItem(se->text(), sl->currentItem()); | 1095 | sl->insertItem(se->text(), sl->currentItem()); |
1096 | break; | 1096 | break; |
1097 | 1097 | ||
1098 | case ScriptEdit::Password: | 1098 | case ScriptEdit::Password: |
1099 | stl->insertItem("Password", stl->currentItem()); | 1099 | stl->insertItem("Password", stl->currentItem()); |
1100 | sl->insertItem(se->text(), sl->currentItem()); | 1100 | sl->insertItem(se->text(), sl->currentItem()); |
1101 | break; | 1101 | break; |
1102 | 1102 | ||
1103 | case ScriptEdit::ID: | 1103 | case ScriptEdit::ID: |
1104 | stl->insertItem("ID", stl->currentItem()); | 1104 | stl->insertItem("ID", stl->currentItem()); |
1105 | sl->insertItem(se->text(), sl->currentItem()); | 1105 | sl->insertItem(se->text(), sl->currentItem()); |
1106 | break; | 1106 | break; |
1107 | 1107 | ||
1108 | case ScriptEdit::Prompt: | 1108 | case ScriptEdit::Prompt: |
1109 | stl->insertItem("Prompt", stl->currentItem()); | 1109 | stl->insertItem("Prompt", stl->currentItem()); |
1110 | sl->insertItem(se->text(), sl->currentItem()); | 1110 | sl->insertItem(se->text(), sl->currentItem()); |
1111 | break; | 1111 | break; |
1112 | 1112 | ||
1113 | case ScriptEdit::PWPrompt: | 1113 | case ScriptEdit::PWPrompt: |
1114 | stl->insertItem("PWPrompt", stl->currentItem()); | 1114 | stl->insertItem("PWPrompt", stl->currentItem()); |
1115 | sl->insertItem(se->text(), sl->currentItem()); | 1115 | sl->insertItem(se->text(), sl->currentItem()); |
1116 | break; | 1116 | break; |
1117 | 1117 | ||
1118 | case ScriptEdit::LoopStart: | 1118 | case ScriptEdit::LoopStart: |
1119 | stl->insertItem("LoopStart", stl->currentItem()); | 1119 | stl->insertItem("LoopStart", stl->currentItem()); |
1120 | sl->insertItem(se->text(), sl->currentItem()); | 1120 | sl->insertItem(se->text(), sl->currentItem()); |
1121 | break; | 1121 | break; |
1122 | 1122 | ||
1123 | case ScriptEdit::LoopEnd: | 1123 | case ScriptEdit::LoopEnd: |
1124 | stl->insertItem("LoopEnd", stl->currentItem()); | 1124 | stl->insertItem("LoopEnd", stl->currentItem()); |
1125 | sl->insertItem(se->text(), sl->currentItem()); | 1125 | sl->insertItem(se->text(), sl->currentItem()); |
1126 | break; | 1126 | break; |
1127 | 1127 | ||
1128 | case ScriptEdit::Scan: | 1128 | case ScriptEdit::Scan: |
1129 | stl->insertItem("Scan", stl->currentItem()); | 1129 | stl->insertItem("Scan", stl->currentItem()); |
1130 | sl->insertItem(se->text(), sl->currentItem()); | 1130 | sl->insertItem(se->text(), sl->currentItem()); |
1131 | break; | 1131 | break; |
1132 | 1132 | ||
1133 | case ScriptEdit::Save: | 1133 | case ScriptEdit::Save: |
1134 | stl->insertItem("Save", stl->currentItem()); | 1134 | stl->insertItem("Save", stl->currentItem()); |
1135 | sl->insertItem(se->text(), sl->currentItem()); | 1135 | sl->insertItem(se->text(), sl->currentItem()); |
1136 | break; | 1136 | break; |
1137 | 1137 | ||
1138 | default: | 1138 | default: |
1139 | break; | 1139 | break; |
1140 | } | 1140 | } |
1141 | adjustScrollBar(); | 1141 | adjustScrollBar(); |
1142 | se->setText(""); | 1142 | se->setText(""); |
1143 | } | 1143 | } |
1144 | 1144 | ||
1145 | 1145 | ||
1146 | void ScriptWidget::removeButton() | 1146 | void ScriptWidget::removeButton() |
1147 | { | 1147 | { |
1148 | if(sl->currentItem() >= 0) | 1148 | if(sl->currentItem() >= 0) |
1149 | { | 1149 | { |
1150 | int stlc = stl->currentItem(); | 1150 | int stlc = stl->currentItem(); |
1151 | sl->removeItem(sl->currentItem()); | 1151 | sl->removeItem(sl->currentItem()); |
1152 | stl->removeItem(stlc); | 1152 | stl->removeItem(stlc); |
1153 | adjustScrollBar(); | 1153 | adjustScrollBar(); |
1154 | insert->setEnabled(sl->currentItem() != -1); | 1154 | insert->setEnabled(sl->currentItem() != -1); |
1155 | remove->setEnabled(sl->currentItem() != -1); | 1155 | remove->setEnabled(sl->currentItem() != -1); |
1156 | } | 1156 | } |
1157 | } | 1157 | } |
1158 | 1158 | ||
1159 | 1159 | ||
1160 | 1160 | ||
1161 | ///////////////////////////////////////////////////////////////////////////// | 1161 | ///////////////////////////////////////////////////////////////////////////// |
1162 | // | 1162 | // |
1163 | // Used to specify a new phone number | 1163 | // Used to specify a new phone number |
1164 | // | 1164 | // |
1165 | ///////////////////////////////////////////////////////////////////////////// | 1165 | ///////////////////////////////////////////////////////////////////////////// |
1166 | PhoneNumberDialog::PhoneNumberDialog(QWidget *parent) | 1166 | PhoneNumberDialog::PhoneNumberDialog(QWidget *parent) |
1167 | : QDialog(parent,"PhoneNumberDialog",true) | 1167 | : QDialog(parent,"PhoneNumberDialog",true) |
1168 | { | 1168 | { |
1169 | setCaption( tr("Add Phone Number") ); | 1169 | setCaption( tr("Add Phone Number") ); |
1170 | 1170 | ||
1171 | 1171 | ||
1172 | QVBoxLayout *layout = new QVBoxLayout( this ); | 1172 | QVBoxLayout *layout = new QVBoxLayout( this ); |
1173 | layout->setSpacing( 3 ); | 1173 | layout->setSpacing( 3 ); |
1174 | layout->setMargin( 3 ); | 1174 | layout->setMargin( 3 ); |
1175 | 1175 | ||
1176 | // QHBox *hbox = new QHBox(this); | 1176 | // QHBox *hbox = new QHBox(this); |
1177 | // setMainWidget(hbox); | 1177 | // setMainWidget(hbox); |
1178 | 1178 | ||
1179 | // hbox->setSpacing( 2 );//KDialog::spacingHint()); | 1179 | // hbox->setSpacing( 2 );//KDialog::spacingHint()); |
1180 | 1180 | ||
1181 | QLabel *label = new QLabel(this, tr("Enter a phone number:")); | 1181 | QLabel *label = new QLabel(this, tr("Enter a phone number:")); |
1182 | layout->addWidget( label ); | 1182 | layout->addWidget( label ); |
1183 | 1183 | ||
1184 | le = new QLineEdit(this, "lineEdit"); | 1184 | le = new QLineEdit(this, "lineEdit"); |
1185 | layout->addWidget( le ); | 1185 | layout->addWidget( le ); |
1186 | 1186 | ||
1187 | connect(le, SIGNAL(textChanged(const QString &)), | 1187 | connect(le, SIGNAL(textChanged(const QString&)), |
1188 | this, SLOT(textChanged(const QString &))); | 1188 | this, SLOT(textChanged(const QString&))); |
1189 | 1189 | ||
1190 | le->setFocus(); | 1190 | le->setFocus(); |
1191 | textChanged(""); | 1191 | textChanged(""); |
1192 | 1192 | ||
1193 | 1193 | ||
1194 | } | 1194 | } |
1195 | 1195 | ||
1196 | 1196 | ||
1197 | QString PhoneNumberDialog::phoneNumber() | 1197 | QString PhoneNumberDialog::phoneNumber() |
1198 | { | 1198 | { |
1199 | QString s = le->text(); | 1199 | QString s = le->text(); |
1200 | 1200 | ||
1201 | return s; | 1201 | return s; |
1202 | } | 1202 | } |
1203 | 1203 | ||
1204 | 1204 | ||
1205 | void PhoneNumberDialog::textChanged(const QString &s) | 1205 | void PhoneNumberDialog::textChanged(const QString &s) |
1206 | { | 1206 | { |
1207 | // enableButtonOK(s.length() > 0); | 1207 | // enableButtonOK(s.length() > 0); |
1208 | } | 1208 | } |
1209 | 1209 | ||
1210 | 1210 | ||
1211 | //#include "edit.moc" | 1211 | //#include "edit.moc" |
diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp index ff1b11b..81dab38 100644 --- a/noncore/settings/networksettings/ppp/general.cpp +++ b/noncore/settings/networksettings/ppp/general.cpp | |||
@@ -1,184 +1,184 @@ | |||
1 | /* | 1 | /* |
2 | * kPPP: A pppd front end for the KDE project | 2 | * kPPP: A pppd front end for the KDE project |
3 | * | 3 | * |
4 | * $Id$ | 4 | * $Id$ |
5 | * | 5 | * |
6 | * Copyright (C) 1997 Bernd Johannes Wuebben | 6 | * Copyright (C) 1997 Bernd Johannes Wuebben |
7 | * wuebben@math.cornell.edu | 7 | * wuebben@math.cornell.edu |
8 | * | 8 | * |
9 | * based on EzPPP: | 9 | * based on EzPPP: |
10 | * Copyright (C) 1997 Jay Painter | 10 | * Copyright (C) 1997 Jay Painter |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or | 12 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU Library General Public | 13 | * modify it under the terms of the GNU Library General Public |
14 | * License as published by the Free Software Foundation; either | 14 | * License as published by the Free Software Foundation; either |
15 | * version 2 of the License, or (at your option) any later version. | 15 | * version 2 of the License, or (at your option) any later version. |
16 | * | 16 | * |
17 | * This program is distributed in the hope that it will be useful, | 17 | * This program is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. | 20 | * Library General Public License for more details. |
21 | * | 21 | * |
22 | * You should have received a copy of the GNU Library General Public | 22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with this program; if not, write to the Free | 23 | * License along with this program; if not, write to the Free |
24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "general.h" | 27 | #include "general.h" |
28 | #include "interfaceppp.h" | 28 | #include "interfaceppp.h" |
29 | #include "modeminfo.h" | 29 | #include "modeminfo.h" |
30 | #include "modemcmds.h" | 30 | #include "modemcmds.h" |
31 | #include "pppdata.h" | 31 | #include "pppdata.h" |
32 | 32 | ||
33 | /* OPIE */ | 33 | /* OPIE */ |
34 | #include <qpe/config.h> | 34 | #include <qpe/config.h> |
35 | #include <qpe/qpeapplication.h> | 35 | #include <qpe/qpeapplication.h> |
36 | 36 | ||
37 | /* QT */ | 37 | /* QT */ |
38 | #include <qcheckbox.h> | 38 | #include <qcheckbox.h> |
39 | #include <qcombobox.h> | 39 | #include <qcombobox.h> |
40 | #include <qlabel.h> | 40 | #include <qlabel.h> |
41 | #include <qlayout.h> | 41 | #include <qlayout.h> |
42 | #include <qpushbutton.h> | 42 | #include <qpushbutton.h> |
43 | #include <qslider.h> | 43 | #include <qslider.h> |
44 | #include <qspinbox.h> | 44 | #include <qspinbox.h> |
45 | #include <qwhatsthis.h> | 45 | #include <qwhatsthis.h> |
46 | 46 | ||
47 | /* STD */ | 47 | /* STD */ |
48 | #include <termios.h> | 48 | #include <termios.h> |
49 | #include <string.h> | 49 | #include <string.h> |
50 | 50 | ||
51 | 51 | ||
52 | ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name ) | 52 | ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name ) |
53 | : QWidget(parent, name), _pppdata(pd) | 53 | : QWidget(parent, name), _pppdata(pd) |
54 | { | 54 | { |
55 | int k; | 55 | int k; |
56 | 56 | ||
57 | QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint()); | 57 | QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint()); |
58 | 58 | ||
59 | QLabel *label1; | 59 | QLabel *label1; |
60 | 60 | ||
61 | label1 = new QLabel(tr("Modem &name:"), this); | 61 | label1 = new QLabel(tr("Modem &name:"), this); |
62 | tl->addWidget(label1, 0, 0); | 62 | tl->addWidget(label1, 0, 0); |
63 | 63 | ||
64 | modemname = new QLineEdit(this, "modemName"); | 64 | modemname = new QLineEdit(this, "modemName"); |
65 | modemname->setText( _pppdata->devname() ); | 65 | modemname->setText( _pppdata->devname() ); |
66 | label1->setBuddy(modemname); | 66 | label1->setBuddy(modemname); |
67 | tl->addWidget(modemname, 0, 1); | 67 | tl->addWidget(modemname, 0, 1); |
68 | 68 | ||
69 | label1 = new QLabel(tr("Modem de&vice:"), this); | 69 | label1 = new QLabel(tr("Modem de&vice:"), this); |
70 | tl->addWidget(label1, 1, 0); | 70 | tl->addWidget(label1, 1, 0); |
71 | 71 | ||
72 | modemdevice = new QComboBox(false, this); | 72 | modemdevice = new QComboBox(false, this); |
73 | modemdevice->setEditable( true ); | 73 | modemdevice->setEditable( true ); |
74 | modemdevice->setDuplicatesEnabled ( false ); | 74 | modemdevice->setDuplicatesEnabled ( false ); |
75 | modemdevice->setInsertionPolicy( QComboBox::AtTop ); | 75 | modemdevice->setInsertionPolicy( QComboBox::AtTop ); |
76 | label1->setBuddy(modemdevice); | 76 | label1->setBuddy(modemdevice); |
77 | 77 | ||
78 | Config cfg("NetworkSetupPPP"); | 78 | Config cfg("NetworkSetupPPP"); |
79 | cfg.setGroup("Devices_General"); | 79 | cfg.setGroup("Devices_General"); |
80 | QStringList devs = cfg.readListEntry("devices",','); | 80 | QStringList devs = cfg.readListEntry("devices",','); |
81 | if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0"; | 81 | if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0"; |
82 | modemdevice->insertStringList( devs ); | 82 | modemdevice->insertStringList( devs ); |
83 | tl->addWidget(modemdevice, 1, 1); | 83 | tl->addWidget(modemdevice, 1, 1); |
84 | 84 | ||
85 | // connect(modemdevice, SIGNAL(activated(int)), | 85 | // connect(modemdevice, SIGNAL(activated(int)), |
86 | // SLOT(setmodemdc(int))); | 86 | // SLOT(setmodemdc(int))); |
87 | // connect(modemdevice, SIGNAL(textChanged( const QString & ) ), | 87 | // connect(modemdevice, SIGNAL(textChanged(const QString&) ), |
88 | // SLOT( setmodemdc( const QString &) ) ); | 88 | // SLOT( setmodemdc(const QString&) ) ); |
89 | 89 | ||
90 | QString tmp = tr("This specifies the serial port your modem is attached \n" | 90 | QString tmp = tr("This specifies the serial port your modem is attached \n" |
91 | "to. On Linux/x86, typically this is either /dev/ttyS0 \n" | 91 | "to. On Linux/x86, typically this is either /dev/ttyS0 \n" |
92 | "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n" | 92 | "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n" |
93 | "\n" | 93 | "\n" |
94 | "If you have an internal ISDN card with AT command\n" | 94 | "If you have an internal ISDN card with AT command\n" |
95 | "emulation (most cards under Linux support this), you\n" | 95 | "emulation (most cards under Linux support this), you\n" |
96 | "should select one of the /dev/ttyIx devices."); | 96 | "should select one of the /dev/ttyIx devices."); |
97 | 97 | ||
98 | QWhatsThis::add(label1,tmp); | 98 | QWhatsThis::add(label1,tmp); |
99 | QWhatsThis::add(modemdevice,tmp); | 99 | QWhatsThis::add(modemdevice,tmp); |
100 | 100 | ||
101 | 101 | ||
102 | label1 = new QLabel(tr("&Flow control:"), this); | 102 | label1 = new QLabel(tr("&Flow control:"), this); |
103 | tl->addWidget(label1, 2, 0); | 103 | tl->addWidget(label1, 2, 0); |
104 | 104 | ||
105 | flowcontrol = new QComboBox(false, this); | 105 | flowcontrol = new QComboBox(false, this); |
106 | label1->setBuddy(flowcontrol); | 106 | label1->setBuddy(flowcontrol); |
107 | flowcontrol->insertItem(tr("Hardware [CRTSCTS]")); | 107 | flowcontrol->insertItem(tr("Hardware [CRTSCTS]")); |
108 | flowcontrol->insertItem(tr("Software [XON/XOFF]")); | 108 | flowcontrol->insertItem(tr("Software [XON/XOFF]")); |
109 | flowcontrol->insertItem(tr("None")); | 109 | flowcontrol->insertItem(tr("None")); |
110 | tl->addWidget(flowcontrol, 2, 1); | 110 | tl->addWidget(flowcontrol, 2, 1); |
111 | // connect(flowcontrol, SIGNAL(activated(int)), | 111 | // connect(flowcontrol, SIGNAL(activated(int)), |
112 | // SLOT(setflowcontrol(int))); | 112 | // SLOT(setflowcontrol(int))); |
113 | 113 | ||
114 | tmp = tr("<p>Specifies how the serial port and modem\n" | 114 | tmp = tr("<p>Specifies how the serial port and modem\n" |
115 | "communicate. You should not change this unless\n" | 115 | "communicate. You should not change this unless\n" |
116 | "you know what you are doing.\n" | 116 | "you know what you are doing.\n" |
117 | "\n" | 117 | "\n" |
118 | "<b>Default</b>: CRTSCTS"); | 118 | "<b>Default</b>: CRTSCTS"); |
119 | 119 | ||
120 | QWhatsThis::add(label1,tmp); | 120 | QWhatsThis::add(label1,tmp); |
121 | QWhatsThis::add(flowcontrol,tmp); | 121 | QWhatsThis::add(flowcontrol,tmp); |
122 | 122 | ||
123 | QLabel *labelenter = new QLabel(tr("&Line termination:"), this); | 123 | QLabel *labelenter = new QLabel(tr("&Line termination:"), this); |
124 | tl->addWidget(labelenter, 3, 0); | 124 | tl->addWidget(labelenter, 3, 0); |
125 | 125 | ||
126 | enter = new QComboBox(false, this); | 126 | enter = new QComboBox(false, this); |
127 | labelenter->setBuddy(enter); | 127 | labelenter->setBuddy(enter); |
128 | enter->insertItem("CR"); | 128 | enter->insertItem("CR"); |
129 | enter->insertItem("LF"); | 129 | enter->insertItem("LF"); |
130 | enter->insertItem("CR/LF"); | 130 | enter->insertItem("CR/LF"); |
131 | tl->addWidget(enter, 3, 1); | 131 | tl->addWidget(enter, 3, 1); |
132 | // connect(enter, SIGNAL(activated(int)), SLOT(setenter(int))); | 132 | // connect(enter, SIGNAL(activated(int)), SLOT(setenter(int))); |
133 | tmp = tr("<p>Specifies how AT commands are sent to your\n" | 133 | tmp = tr("<p>Specifies how AT commands are sent to your\n" |
134 | "modem. Most modems will work fine with the\n" | 134 | "modem. Most modems will work fine with the\n" |
135 | "default <i>CR/LF</i>. If your modem does not react\n" | 135 | "default <i>CR/LF</i>. If your modem does not react\n" |
136 | "to the init string, you should try different\n" | 136 | "to the init string, you should try different\n" |
137 | "settings here\n" | 137 | "settings here\n" |
138 | "\n" | 138 | "\n" |
139 | "<b>Default</b>: CR/LF"); | 139 | "<b>Default</b>: CR/LF"); |
140 | 140 | ||
141 | QWhatsThis::add(labelenter,tmp); | 141 | QWhatsThis::add(labelenter,tmp); |
142 | QWhatsThis::add(enter, tmp); | 142 | QWhatsThis::add(enter, tmp); |
143 | 143 | ||
144 | QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this); | 144 | QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this); |
145 | tl->addWidget(baud_label, 4, 0); | 145 | tl->addWidget(baud_label, 4, 0); |
146 | baud_c = new QComboBox(this); | 146 | baud_c = new QComboBox(this); |
147 | baud_label->setBuddy(baud_c); | 147 | baud_label->setBuddy(baud_c); |
148 | 148 | ||
149 | static const char *baudrates[] = | 149 | static const char *baudrates[] = |
150 | { | 150 | { |
151 | 151 | ||
152 | #ifdef B460800 | 152 | #ifdef B460800 |
153 | "460800", | 153 | "460800", |
154 | #endif | 154 | #endif |
155 | 155 | ||
156 | #ifdef B230400 | 156 | #ifdef B230400 |
157 | "230400", | 157 | "230400", |
158 | #endif | 158 | #endif |
159 | 159 | ||
160 | #ifdef B115200 | 160 | #ifdef B115200 |
161 | "115200", | 161 | "115200", |
162 | #endif | 162 | #endif |
163 | 163 | ||
164 | #ifdef B57600 | 164 | #ifdef B57600 |
165 | "57600", | 165 | "57600", |
166 | #endif | 166 | #endif |
167 | 167 | ||
168 | "38400", | 168 | "38400", |
169 | "19200", | 169 | "19200", |
170 | "9600", | 170 | "9600", |
171 | "2400", | 171 | "2400", |
172 | 0 | 172 | 0 |
173 | }; | 173 | }; |
174 | 174 | ||
175 | for(k = 0; baudrates[k]; k++) | 175 | for(k = 0; baudrates[k]; k++) |
176 | baud_c->insertItem(baudrates[k]); | 176 | baud_c->insertItem(baudrates[k]); |
177 | 177 | ||
178 | baud_c->setCurrentItem(3); | 178 | baud_c->setCurrentItem(3); |
179 | // connect(baud_c, SIGNAL(activated(int)), | 179 | // connect(baud_c, SIGNAL(activated(int)), |
180 | // this, SLOT(speed_selection(int))); | 180 | // this, SLOT(speed_selection(int))); |
181 | tl->addWidget(baud_c, 4, 1); | 181 | tl->addWidget(baud_c, 4, 1); |
182 | 182 | ||
183 | tmp = tr("Specifies the speed your modem and the serial\n" | 183 | tmp = tr("Specifies the speed your modem and the serial\n" |
184 | "port talk to each other. You should begin with\n" | 184 | "port talk to each other. You should begin with\n" |
diff --git a/noncore/settings/networksettings/ppp/kpppwidget.cpp b/noncore/settings/networksettings/ppp/kpppwidget.cpp index e466358..e21bbc7 100644 --- a/noncore/settings/networksettings/ppp/kpppwidget.cpp +++ b/noncore/settings/networksettings/ppp/kpppwidget.cpp | |||
@@ -303,197 +303,197 @@ KPPPWidget::~KPPPWidget() | |||
303 | 303 | ||
304 | // bool KPPPWidget::eventFilter(QObject *o, QEvent *e) { | 304 | // bool KPPPWidget::eventFilter(QObject *o, QEvent *e) { |
305 | // if(e->type() == QEvent::User) { | 305 | // if(e->type() == QEvent::User) { |
306 | // switch(((SignalEvent*)e)->sigType()) { | 306 | // switch(((SignalEvent*)e)->sigType()) { |
307 | // case SIGINT: | 307 | // case SIGINT: |
308 | // qDebug( "Received a SIGINT" ); | 308 | // qDebug( "Received a SIGINT" ); |
309 | // interruptConnection(); | 309 | // interruptConnection(); |
310 | // break; | 310 | // break; |
311 | // case SIGCHLD: | 311 | // case SIGCHLD: |
312 | // sigChld(); | 312 | // sigChld(); |
313 | // break; | 313 | // break; |
314 | // case SIGUSR1: | 314 | // case SIGUSR1: |
315 | // sigPPPDDied(); | 315 | // sigPPPDDied(); |
316 | // break; | 316 | // break; |
317 | // } | 317 | // } |
318 | // return true; | 318 | // return true; |
319 | // } | 319 | // } |
320 | 320 | ||
321 | // if(o == connect_b) { | 321 | // if(o == connect_b) { |
322 | // if(e->type() == QEvent::KeyPress) { | 322 | // if(e->type() == QEvent::KeyPress) { |
323 | // if(connect_b->hasFocus() && ((QKeyEvent *)e)->key() == Qt::Key_Return) { | 323 | // if(connect_b->hasFocus() && ((QKeyEvent *)e)->key() == Qt::Key_Return) { |
324 | // beginConnect(); | 324 | // beginConnect(); |
325 | // return true; | 325 | // return true; |
326 | // } | 326 | // } |
327 | // } | 327 | // } |
328 | // } | 328 | // } |
329 | 329 | ||
330 | // return false; | 330 | // return false; |
331 | // } | 331 | // } |
332 | 332 | ||
333 | 333 | ||
334 | 334 | ||
335 | 335 | ||
336 | void KPPPWidget::enterPressedInID() { | 336 | void KPPPWidget::enterPressedInID() { |
337 | PW_Edit->setFocus(); | 337 | PW_Edit->setFocus(); |
338 | } | 338 | } |
339 | 339 | ||
340 | 340 | ||
341 | void KPPPWidget::enterPressedInPW() { | 341 | void KPPPWidget::enterPressedInPW() { |
342 | connect_b->setFocus(); | 342 | connect_b->setFocus(); |
343 | } | 343 | } |
344 | 344 | ||
345 | // triggered by the session manager | 345 | // triggered by the session manager |
346 | void KPPPWidget::saveMyself() { | 346 | void KPPPWidget::saveMyself() { |
347 | _pppdata->save(); | 347 | _pppdata->save(); |
348 | } | 348 | } |
349 | 349 | ||
350 | void KPPPWidget::shutDown() { | 350 | void KPPPWidget::shutDown() { |
351 | interruptConnection(); | 351 | interruptConnection(); |
352 | saveMyself(); | 352 | saveMyself(); |
353 | } | 353 | } |
354 | 354 | ||
355 | void KPPPWidget::log_window_toggled(bool on) { | 355 | void KPPPWidget::log_window_toggled(bool on) { |
356 | _pppdata->set_show_log_window(on); | 356 | _pppdata->set_show_log_window(on); |
357 | } | 357 | } |
358 | 358 | ||
359 | 359 | ||
360 | 360 | ||
361 | 361 | ||
362 | // void KPPPWidget::resetaccounts() { | 362 | // void KPPPWidget::resetaccounts() { |
363 | // connectto_c->clear(); | 363 | // connectto_c->clear(); |
364 | 364 | ||
365 | // int count = _pppdata->count(); | 365 | // int count = _pppdata->count(); |
366 | 366 | ||
367 | // // enable/disable controls | 367 | // // enable/disable controls |
368 | // connectto_c->setEnabled(count > 0); | 368 | // connectto_c->setEnabled(count > 0); |
369 | // connect_b->setEnabled(count > 0); | 369 | // connect_b->setEnabled(count > 0); |
370 | // log->setEnabled(count > 0); | 370 | // log->setEnabled(count > 0); |
371 | // ID_Edit->setEnabled(count > 0); | 371 | // ID_Edit->setEnabled(count > 0); |
372 | // PW_Edit->setEnabled(count > 0); | 372 | // PW_Edit->setEnabled(count > 0); |
373 | 373 | ||
374 | // //load the accounts | 374 | // //load the accounts |
375 | // for(int i=0; i < count; i++) { | 375 | // for(int i=0; i < count; i++) { |
376 | // _pppdata->setAccountbyIndex(i); | 376 | // _pppdata->setAccountbyIndex(i); |
377 | // connectto_c->insertItem(_pppdata->accname()); | 377 | // connectto_c->insertItem(_pppdata->accname()); |
378 | // } | 378 | // } |
379 | 379 | ||
380 | // //set the default account | 380 | // //set the default account |
381 | // if(!_pppdata->defaultAccount().isEmpty()) { | 381 | // if(!_pppdata->defaultAccount().isEmpty()) { |
382 | // for(int i=0; i < count; i++) | 382 | // for(int i=0; i < count; i++) |
383 | // if(_pppdata->defaultAccount() == connectto_c->text(i)) { | 383 | // if(_pppdata->defaultAccount() == connectto_c->text(i)) { |
384 | // connectto_c->setCurrentItem(i); | 384 | // connectto_c->setCurrentItem(i); |
385 | // _pppdata->setAccountbyIndex(i); | 385 | // _pppdata->setAccountbyIndex(i); |
386 | 386 | ||
387 | // ID_Edit->setText(_pppdata->storedUsername()); | 387 | // ID_Edit->setText(_pppdata->storedUsername()); |
388 | // PW_Edit->setText(_pppdata->storedPassword()); | 388 | // PW_Edit->setText(_pppdata->storedPassword()); |
389 | // } | 389 | // } |
390 | // } | 390 | // } |
391 | // else | 391 | // else |
392 | // if(count > 0) { | 392 | // if(count > 0) { |
393 | // _pppdata->setDefaultAccount(connectto_c->text(0)); | 393 | // _pppdata->setDefaultAccount(connectto_c->text(0)); |
394 | // _pppdata->save(); | 394 | // _pppdata->save(); |
395 | // ID_Edit->setText(_pppdata->storedUsername()); | 395 | // ID_Edit->setText(_pppdata->storedUsername()); |
396 | // PW_Edit->setText(_pppdata->storedPassword()); | 396 | // PW_Edit->setText(_pppdata->storedPassword()); |
397 | // } | 397 | // } |
398 | 398 | ||
399 | // connect(ID_Edit, SIGNAL(textChanged(const QString &)), | 399 | // connect(ID_Edit, SIGNAL(textChanged(const QString&)), |
400 | // this, SLOT(usernameChanged(const QString &))); | 400 | // this, SLOT(usernameChanged(const QString&))); |
401 | 401 | ||
402 | // connect(PW_Edit, SIGNAL(textChanged(const QString &)), | 402 | // connect(PW_Edit, SIGNAL(textChanged(const QString&)), |
403 | // this, SLOT(passwordChanged(const QString &))); | 403 | // this, SLOT(passwordChanged(const QString&))); |
404 | 404 | ||
405 | // if (ID_Edit->text().isEmpty()) | 405 | // if (ID_Edit->text().isEmpty()) |
406 | // ID_Edit->setFocus(); | 406 | // ID_Edit->setFocus(); |
407 | // else if (PW_Edit->text().isEmpty()) | 407 | // else if (PW_Edit->text().isEmpty()) |
408 | // PW_Edit->setFocus(); | 408 | // PW_Edit->setFocus(); |
409 | // } | 409 | // } |
410 | 410 | ||
411 | 411 | ||
412 | void KPPPWidget::interruptConnection() { | 412 | void KPPPWidget::interruptConnection() { |
413 | // interrupt dial up | 413 | // interrupt dial up |
414 | // | 414 | // |
415 | 415 | ||
416 | if (con->isVisible()) | 416 | if (con->isVisible()) |
417 | emit con->cancelbutton(); | 417 | emit con->cancelbutton(); |
418 | 418 | ||
419 | // disconnect if online | 419 | // disconnect if online |
420 | if (_pppdata->pppdRunning()) | 420 | if (_pppdata->pppdRunning()) |
421 | emit disconnect(); | 421 | emit disconnect(); |
422 | } | 422 | } |
423 | 423 | ||
424 | 424 | ||
425 | void KPPPWidget::sigPPPDDied() { | 425 | void KPPPWidget::sigPPPDDied() { |
426 | qDebug( "Received a SIGUSR1" ); | 426 | qDebug( "Received a SIGUSR1" ); |
427 | 427 | ||
428 | // if we are not connected pppdpid is -1 so have have to check for that | 428 | // if we are not connected pppdpid is -1 so have have to check for that |
429 | // in the followin line to make sure that we don't raise a false alarm | 429 | // in the followin line to make sure that we don't raise a false alarm |
430 | // such as would be the case when the log file viewer exits. | 430 | // such as would be the case when the log file viewer exits. |
431 | if(_pppdata->pppdRunning() || _pppdata->pppdError()) { | 431 | if(_pppdata->pppdRunning() || _pppdata->pppdError()) { |
432 | qDebug( "It was pppd that died" ); | 432 | qDebug( "It was pppd that died" ); |
433 | 433 | ||
434 | // when we killpppd() on Cancel in ConnectWidget | 434 | // when we killpppd() on Cancel in ConnectWidget |
435 | // we set pppid to -1 so we won't | 435 | // we set pppid to -1 so we won't |
436 | // enter this block | 436 | // enter this block |
437 | 437 | ||
438 | // just to be sure | 438 | // just to be sure |
439 | 439 | ||
440 | Modem::modem->removeSecret(AUTH_PAP); | 440 | Modem::modem->removeSecret(AUTH_PAP); |
441 | Modem::modem->removeSecret(AUTH_CHAP); | 441 | Modem::modem->removeSecret(AUTH_CHAP); |
442 | 442 | ||
443 | _pppdata->setpppdRunning(false); | 443 | _pppdata->setpppdRunning(false); |
444 | 444 | ||
445 | qDebug( "Executing command on disconnect since pppd has died." ); | 445 | qDebug( "Executing command on disconnect since pppd has died." ); |
446 | QApplication::flushX(); | 446 | QApplication::flushX(); |
447 | execute_command(_pppdata->command_on_disconnect()); | 447 | execute_command(_pppdata->command_on_disconnect()); |
448 | 448 | ||
449 | // stopAccounting(); | 449 | // stopAccounting(); |
450 | 450 | ||
451 | con_win->stopClock(); | 451 | con_win->stopClock(); |
452 | // DockWidget::dock_widget->stop_stats(); | 452 | // DockWidget::dock_widget->stop_stats(); |
453 | // DockWidget::dock_widget->hide(); | 453 | // DockWidget::dock_widget->hide(); |
454 | 454 | ||
455 | if(!_pppdata->pppdError()) | 455 | if(!_pppdata->pppdError()) |
456 | _pppdata->setpppdError(E_PPPD_DIED); | 456 | _pppdata->setpppdError(E_PPPD_DIED); |
457 | removedns(); | 457 | removedns(); |
458 | Modem::modem->unlockdevice(); | 458 | Modem::modem->unlockdevice(); |
459 | // | 459 | // |
460 | con->pppdDied(); | 460 | con->pppdDied(); |
461 | 461 | ||
462 | if(!_pppdata->automatic_redial()) { | 462 | if(!_pppdata->automatic_redial()) { |
463 | quit_b->setFocus(); | 463 | quit_b->setFocus(); |
464 | show(); | 464 | show(); |
465 | con_win->stopClock(); | 465 | con_win->stopClock(); |
466 | //stopAccounting(); | 466 | //stopAccounting(); |
467 | con_win->hide(); | 467 | con_win->hide(); |
468 | con->hide(); | 468 | con->hide(); |
469 | 469 | ||
470 | _pppdata->setpppdRunning(false); | 470 | _pppdata->setpppdRunning(false); |
471 | // // not in a signal handler !!! KNotifyClient::beep(); | 471 | // // not in a signal handler !!! KNotifyClient::beep(); |
472 | QString msg; | 472 | QString msg; |
473 | if (_pppdata->pppdError() == E_IF_TIMEOUT) | 473 | if (_pppdata->pppdError() == E_IF_TIMEOUT) |
474 | msg = QObject::tr("Timeout expired while waiting for the PPP interface " | 474 | msg = QObject::tr("Timeout expired while waiting for the PPP interface " |
475 | "to come up!"); | 475 | "to come up!"); |
476 | else { | 476 | else { |
477 | msg = QObject::tr("<p>The pppd daemon died unexpectedly!</p>"); | 477 | msg = QObject::tr("<p>The pppd daemon died unexpectedly!</p>"); |
478 | Modem::modem->pppdExitStatus(); | 478 | Modem::modem->pppdExitStatus(); |
479 | if (Modem::modem->lastStatus != 99) {// more recent pppds only | 479 | if (Modem::modem->lastStatus != 99) {// more recent pppds only |
480 | msg += QObject::tr("<p>Exit status: %1").arg(Modem::modem->lastStatus); | 480 | msg += QObject::tr("<p>Exit status: %1").arg(Modem::modem->lastStatus); |
481 | msg += QObject::tr("</p><p>See 'man pppd' for an explanation of the error " | 481 | msg += QObject::tr("</p><p>See 'man pppd' for an explanation of the error " |
482 | "codes or take a look at the kppp FAQ on " | 482 | "codes or take a look at the kppp FAQ on " |
483 | " <a href=http://devel-home.kde.org/~kppp/index.html>" | 483 | " <a href=http://devel-home.kde.org/~kppp/index.html>" |
484 | "http://devel-home.kde.org/~kppp/index.html</a></p>"); | 484 | "http://devel-home.kde.org/~kppp/index.html</a></p>"); |
485 | } | 485 | } |
486 | } | 486 | } |
487 | 487 | ||
488 | // if(QMessageBox::warning(0, msg, QObject::tr("Error"), QObject::tr("&OK"), QObject::tr("&Details...")) == QMessageBox::No) | 488 | // if(QMessageBox::warning(0, msg, QObject::tr("Error"), QObject::tr("&OK"), QObject::tr("&Details...")) == QMessageBox::No) |
489 | // // PPPL_ShowLog(); | 489 | // // PPPL_ShowLog(); |
490 | // } else { /* reconnect on disconnect */ | 490 | // } else { /* reconnect on disconnect */ |
491 | if (false){ | 491 | if (false){ |
492 | qDebug( "Trying to reconnect... " ); | 492 | qDebug( "Trying to reconnect... " ); |
493 | 493 | ||
494 | if(_pppdata->authMethod() == AUTH_PAP || | 494 | if(_pppdata->authMethod() == AUTH_PAP || |
495 | _pppdata->authMethod() == AUTH_CHAP || | 495 | _pppdata->authMethod() == AUTH_CHAP || |
496 | _pppdata->authMethod() == AUTH_PAPCHAP) | 496 | _pppdata->authMethod() == AUTH_PAPCHAP) |
497 | Modem::modem->setSecret(_pppdata->authMethod(), | 497 | Modem::modem->setSecret(_pppdata->authMethod(), |
498 | encodeWord(_pppdata->storedUsername()), | 498 | encodeWord(_pppdata->storedUsername()), |
499 | encodeWord(_pppdata->password())); | 499 | encodeWord(_pppdata->password())); |
@@ -628,194 +628,194 @@ void KPPPWidget::disconnect() { | |||
628 | con->setCaption(QObject::tr("Disconnecting...")); | 628 | con->setCaption(QObject::tr("Disconnecting...")); |
629 | con->setMsg(QObject::tr("Executing command before disconnection.")); | 629 | con->setMsg(QObject::tr("Executing command before disconnection.")); |
630 | 630 | ||
631 | qApp->processEvents(); | 631 | qApp->processEvents(); |
632 | QApplication::flushX(); | 632 | QApplication::flushX(); |
633 | // pid_t id = | 633 | // pid_t id = |
634 | execute_command(_pppdata->command_before_disconnect()); | 634 | execute_command(_pppdata->command_before_disconnect()); |
635 | // int i, status; | 635 | // int i, status; |
636 | 636 | ||
637 | // do { | 637 | // do { |
638 | // kapp->processEvents(); | 638 | // kapp->processEvents(); |
639 | // i = waitpid(id, &status, WNOHANG); | 639 | // i = waitpid(id, &status, WNOHANG); |
640 | // usleep(500000); | 640 | // usleep(500000); |
641 | // } while (i == 0 && errno == 0); | 641 | // } while (i == 0 && errno == 0); |
642 | 642 | ||
643 | con->hide(); | 643 | con->hide(); |
644 | } | 644 | } |
645 | 645 | ||
646 | qApp->processEvents(); | 646 | qApp->processEvents(); |
647 | 647 | ||
648 | // statdlg->stop_stats(); | 648 | // statdlg->stop_stats(); |
649 | Modem::modem->killPPPDaemon(); | 649 | Modem::modem->killPPPDaemon(); |
650 | 650 | ||
651 | QApplication::flushX(); | 651 | QApplication::flushX(); |
652 | execute_command(_pppdata->command_on_disconnect()); | 652 | execute_command(_pppdata->command_on_disconnect()); |
653 | 653 | ||
654 | Modem::modem->removeSecret(AUTH_PAP); | 654 | Modem::modem->removeSecret(AUTH_PAP); |
655 | Modem::modem->removeSecret(AUTH_CHAP); | 655 | Modem::modem->removeSecret(AUTH_CHAP); |
656 | 656 | ||
657 | removedns(); | 657 | removedns(); |
658 | Modem::modem->unlockdevice(); | 658 | Modem::modem->unlockdevice(); |
659 | 659 | ||
660 | con_win->stopClock(); | 660 | con_win->stopClock(); |
661 | // p_kppp->stopAccounting(); | 661 | // p_kppp->stopAccounting(); |
662 | con_win->hide(); | 662 | con_win->hide(); |
663 | 663 | ||
664 | // DockWidget::dock_widget->stop_stats(); | 664 | // DockWidget::dock_widget->stop_stats(); |
665 | // DockWidget::dock_widget->hide(); | 665 | // DockWidget::dock_widget->hide(); |
666 | 666 | ||
667 | // if(m_bQuitOnDisconnect) | 667 | // if(m_bQuitOnDisconnect) |
668 | // kapp->exit(0); | 668 | // kapp->exit(0); |
669 | // else { | 669 | // else { |
670 | this->quit_b->setFocus(); | 670 | this->quit_b->setFocus(); |
671 | this->show(); | 671 | this->show(); |
672 | // } | 672 | // } |
673 | } | 673 | } |
674 | 674 | ||
675 | 675 | ||
676 | // void KPPPWidget::helpbutton() { | 676 | // void KPPPWidget::helpbutton() { |
677 | // kapp->invokeHelp(); | 677 | // kapp->invokeHelp(); |
678 | // } | 678 | // } |
679 | 679 | ||
680 | 680 | ||
681 | void KPPPWidget::quitbutton() { | 681 | void KPPPWidget::quitbutton() { |
682 | if(_pppdata->pppdRunning()) { | 682 | if(_pppdata->pppdRunning()) { |
683 | int ok = QMessageBox::warning(this, | 683 | int ok = QMessageBox::warning(this, |
684 | QObject::tr("Exiting kPPP will close your PPP Session."), | 684 | QObject::tr("Exiting kPPP will close your PPP Session."), |
685 | QObject::tr("Quit kPPP?")); | 685 | QObject::tr("Quit kPPP?")); |
686 | if(ok == QMessageBox::Yes) { | 686 | if(ok == QMessageBox::Yes) { |
687 | Modem::modem->killPPPDaemon(); | 687 | Modem::modem->killPPPDaemon(); |
688 | QApplication::flushX(); | 688 | QApplication::flushX(); |
689 | execute_command(_pppdata->command_on_disconnect()); | 689 | execute_command(_pppdata->command_on_disconnect()); |
690 | removedns(); | 690 | removedns(); |
691 | Modem::modem->unlockdevice(); | 691 | Modem::modem->unlockdevice(); |
692 | } | 692 | } |
693 | } else { | 693 | } else { |
694 | if (!_pppdata->accname().isEmpty() && !_pppdata->storePassword()) | 694 | if (!_pppdata->accname().isEmpty() && !_pppdata->storePassword()) |
695 | _pppdata->setStoredPassword(""); | 695 | _pppdata->setStoredPassword(""); |
696 | } | 696 | } |
697 | _pppdata->save(); | 697 | _pppdata->save(); |
698 | qApp->quit(); | 698 | qApp->quit(); |
699 | } | 699 | } |
700 | 700 | ||
701 | 701 | ||
702 | // void KPPPWidget::rulesetLoadError() { | 702 | // void KPPPWidget::rulesetLoadError() { |
703 | // QMessageBox::warning(this,"error", ruleset_load_errmsg); | 703 | // QMessageBox::warning(this,"error", ruleset_load_errmsg); |
704 | // } | 704 | // } |
705 | 705 | ||
706 | 706 | ||
707 | // void KPPPWidget::startAccounting() { | 707 | // void KPPPWidget::startAccounting() { |
708 | // // volume accounting | 708 | // // volume accounting |
709 | // stats->totalbytes = 0; | 709 | // stats->totalbytes = 0; |
710 | 710 | ||
711 | // kdDebug() << "AcctEnabled: " << _pppdata->AcctEnabled() << endl; | 711 | // kdDebug() << "AcctEnabled: " << _pppdata->AcctEnabled() << endl; |
712 | 712 | ||
713 | // // load the ruleset | 713 | // // load the ruleset |
714 | // if(!_pppdata->AcctEnabled()) | 714 | // if(!_pppdata->AcctEnabled()) |
715 | // return; | 715 | // return; |
716 | 716 | ||
717 | // QString d = AccountingBase::getAccountingFile(_pppdata->accountingFile()); | 717 | // QString d = AccountingBase::getAccountingFile(_pppdata->accountingFile()); |
718 | // // if(::access(d.data(), X_OK) != 0) | 718 | // // if(::access(d.data(), X_OK) != 0) |
719 | // acct = new Accounting(this, stats); | 719 | // acct = new Accounting(this, stats); |
720 | // // else | 720 | // // else |
721 | // // acct = new ExecutableAccounting(this); | 721 | // // acct = new ExecutableAccounting(this); |
722 | 722 | ||
723 | // // connect to the accounting object | 723 | // // connect to the accounting object |
724 | // connect(acct, SIGNAL(changed(QString, QString)), | 724 | // connect(acct, SIGNAL(changed(QString,QString)), |
725 | // con_win, SLOT(slotAccounting(QString, QString))); | 725 | // con_win, SLOT(slotAccounting(QString,QString))); |
726 | 726 | ||
727 | // // if(!acct->loadRuleSet(_pppdata->accountingFile())) { | 727 | // // if(!acct->loadRuleSet(_pppdata->accountingFile())) { |
728 | // // QString s= QObject::tr("Can not load the accounting " | 728 | // // QString s= QObject::tr("Can not load the accounting " |
729 | // // "ruleset \"%1\"!").arg(_pppdata->accountingFile()); | 729 | // // "ruleset \"%1\"!").arg(_pppdata->accountingFile()); |
730 | 730 | ||
731 | // // starting the messagebox with a timer will prevent us | 731 | // // starting the messagebox with a timer will prevent us |
732 | // // from blocking the calling function ConnectWidget::timerEvent | 732 | // // from blocking the calling function ConnectWidget::timerEvent |
733 | // ruleset_load_errmsg = s; | 733 | // ruleset_load_errmsg = s; |
734 | // QTimer::singleShot(0, this, SLOT(rulesetLoadError())); | 734 | // QTimer::singleShot(0, this, SLOT(rulesetLoadError())); |
735 | // return; | 735 | // return; |
736 | // } | 736 | // } |
737 | // //else | 737 | // //else |
738 | // // acct->slotStart(); | 738 | // // acct->slotStart(); |
739 | // } | 739 | // } |
740 | 740 | ||
741 | // void KPPPWidget::stopAccounting() { | 741 | // void KPPPWidget::stopAccounting() { |
742 | // // store volume accounting | 742 | // // store volume accounting |
743 | // // if(stats->totalbytes != 0) | 743 | // // if(stats->totalbytes != 0) |
744 | // // _pppdata->setTotalBytes(stats->totalbytes); | 744 | // // _pppdata->setTotalBytes(stats->totalbytes); |
745 | 745 | ||
746 | // if(!_pppdata->AcctEnabled()) | 746 | // if(!_pppdata->AcctEnabled()) |
747 | // return; | 747 | // return; |
748 | 748 | ||
749 | // // if(acct != 0) { | 749 | // // if(acct != 0) { |
750 | // // acct->slotStop(); | 750 | // // acct->slotStop(); |
751 | // // delete acct; | 751 | // // delete acct; |
752 | // // acct = 0; | 752 | // // acct = 0; |
753 | // // } | 753 | // // } |
754 | // } | 754 | // } |
755 | 755 | ||
756 | 756 | ||
757 | // void KPPPWidget::showStats() { | 757 | // void KPPPWidget::showStats() { |
758 | // if(statdlg) { | 758 | // if(statdlg) { |
759 | // statdlg->show(); | 759 | // statdlg->show(); |
760 | // statdlg->raise(); | 760 | // statdlg->raise(); |
761 | // } | 761 | // } |
762 | // } | 762 | // } |
763 | 763 | ||
764 | 764 | ||
765 | void KPPPWidget::usernameChanged(const QString &) { | 765 | void KPPPWidget::usernameChanged(const QString &) { |
766 | // store username for later use | 766 | // store username for later use |
767 | _pppdata->setStoredUsername(ID_Edit->text()); | 767 | _pppdata->setStoredUsername(ID_Edit->text()); |
768 | } | 768 | } |
769 | 769 | ||
770 | 770 | ||
771 | void KPPPWidget::passwordChanged(const QString &) { | 771 | void KPPPWidget::passwordChanged(const QString &) { |
772 | // store the password if so requested | 772 | // store the password if so requested |
773 | if(_pppdata->storePassword()) | 773 | if(_pppdata->storePassword()) |
774 | _pppdata->setStoredPassword(PW_Edit->text()); | 774 | _pppdata->setStoredPassword(PW_Edit->text()); |
775 | else | 775 | else |
776 | _pppdata->setStoredPassword(""); | 776 | _pppdata->setStoredPassword(""); |
777 | } | 777 | } |
778 | 778 | ||
779 | 779 | ||
780 | void KPPPWidget::setPW_Edit(const QString &pw) { | 780 | void KPPPWidget::setPW_Edit(const QString &pw) { |
781 | PW_Edit->setText(pw); | 781 | PW_Edit->setText(pw); |
782 | } | 782 | } |
783 | 783 | ||
784 | 784 | ||
785 | // void KPPPWidget::resetCosts(const QString &s) { | 785 | // void KPPPWidget::resetCosts(const QString &s) { |
786 | // AccountingBase::resetCosts(s); | 786 | // AccountingBase::resetCosts(s); |
787 | // } | 787 | // } |
788 | 788 | ||
789 | 789 | ||
790 | // void KPPPWidget::resetVolume(const QString &s) { | 790 | // void KPPPWidget::resetVolume(const QString &s) { |
791 | // AccountingBase::resetVolume(s); | 791 | // AccountingBase::resetVolume(s); |
792 | // } | 792 | // } |
793 | 793 | ||
794 | /** | 794 | /** |
795 | * pppd's getword() function knows about escape characters. | 795 | * pppd's getword() function knows about escape characters. |
796 | * If we write the username and password to the secrets file | 796 | * If we write the username and password to the secrets file |
797 | * we'll therefore have to escape back slashes. | 797 | * we'll therefore have to escape back slashes. |
798 | */ | 798 | */ |
799 | QString KPPPWidget::encodeWord(const QString &s) { | 799 | QString KPPPWidget::encodeWord(const QString &s) { |
800 | QString r = s; | 800 | QString r = s; |
801 | r.replace(QRegExp("\\"), "\\\\"); | 801 | r.replace(QRegExp("\\"), "\\\\"); |
802 | return r; | 802 | return r; |
803 | } | 803 | } |
804 | 804 | ||
805 | // void KPPPWidget::setQuitOnDisconnect (bool b) | 805 | // void KPPPWidget::setQuitOnDisconnect (bool b) |
806 | // { | 806 | // { |
807 | // m_bQuitOnDisconnect = b; | 807 | // m_bQuitOnDisconnect = b; |
808 | // } | 808 | // } |
809 | 809 | ||
810 | void KPPPWidget::showNews() { | 810 | void KPPPWidget::showNews() { |
811 | #ifdef KPPP_SHOW_NEWS | 811 | #ifdef KPPP_SHOW_NEWS |
812 | /* | 812 | /* |
813 | * Introduce the QuickHelp feature to new users of this version | 813 | * Introduce the QuickHelp feature to new users of this version |
814 | */ | 814 | */ |
815 | #define QUICKHELP_HINT "Hint_QuickHelp" | 815 | #define QUICKHELP_HINT "Hint_QuickHelp" |
816 | if(_pppdata->readNumConfig(GENERAL_GRP, QUICKHELP_HINT, 0) == 0) { | 816 | if(_pppdata->readNumConfig(GENERAL_GRP, QUICKHELP_HINT, 0) == 0) { |
817 | QDialog dlg(0, 0, true); | 817 | QDialog dlg(0, 0, true); |
818 | dlg.setCaption(QObject::tr("Recent Changes in KPPP")); | 818 | dlg.setCaption(QObject::tr("Recent Changes in KPPP")); |
819 | 819 | ||
820 | QVBoxLayout *tl = new QVBoxLayout(&dlg, 10, 10); | 820 | QVBoxLayout *tl = new QVBoxLayout(&dlg, 10, 10); |
821 | QHBoxLayout *l1 = new QHBoxLayout(10); | 821 | QHBoxLayout *l1 = new QHBoxLayout(10); |
diff --git a/noncore/settings/networksettings/ppp/pppdargs.cpp b/noncore/settings/networksettings/ppp/pppdargs.cpp index 66a4d82..d6d8d88 100644 --- a/noncore/settings/networksettings/ppp/pppdargs.cpp +++ b/noncore/settings/networksettings/ppp/pppdargs.cpp | |||
@@ -1,151 +1,151 @@ | |||
1 | /* | 1 | /* |
2 | * kPPP: A pppd front end for the KDE project | 2 | * kPPP: A pppd front end for the KDE project |
3 | * | 3 | * |
4 | * $Id$ | 4 | * $Id$ |
5 | * | 5 | * |
6 | * Copyright (C) 1997 Bernd Johannes Wuebben | 6 | * Copyright (C) 1997 Bernd Johannes Wuebben |
7 | * wuebben@math.cornell.edu | 7 | * wuebben@math.cornell.edu |
8 | * | 8 | * |
9 | * based on EzPPP: | 9 | * based on EzPPP: |
10 | * Copyright (C) 1997 Jay Painter | 10 | * Copyright (C) 1997 Jay Painter |
11 | * | 11 | * |
12 | * | 12 | * |
13 | * This library is free software; you can redistribute it and/or | 13 | * This library is free software; you can redistribute it and/or |
14 | * modify it under the terms of the GNU Library General Public | 14 | * modify it under the terms of the GNU Library General Public |
15 | * License as published by the Free Software Foundation; either | 15 | * License as published by the Free Software Foundation; either |
16 | * version 2 of the License, or (at your option) any later version. | 16 | * version 2 of the License, or (at your option) any later version. |
17 | * | 17 | * |
18 | * This library is distributed in the hope that it will be useful, | 18 | * This library is distributed in the hope that it will be useful, |
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
21 | * Library General Public License for more details. | 21 | * Library General Public License for more details. |
22 | * | 22 | * |
23 | * You should have received a copy of the GNU Library General Public | 23 | * You should have received a copy of the GNU Library General Public |
24 | * License along with this program; if not, write to the Free | 24 | * License along with this program; if not, write to the Free |
25 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 25 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qbuttongroup.h> | 29 | #include <qbuttongroup.h> |
30 | #include <qapplication.h> | 30 | #include <qapplication.h> |
31 | #include "pppdargs.h" | 31 | #include "pppdargs.h" |
32 | #include "pppdata.h" | 32 | #include "pppdata.h" |
33 | 33 | ||
34 | 34 | ||
35 | PPPdArguments::PPPdArguments( PPPData *pd, QWidget *parent, const char *name) | 35 | PPPdArguments::PPPdArguments( PPPData *pd, QWidget *parent, const char *name) |
36 | : QDialog(parent, name, TRUE), _pppdata(pd) | 36 | : QDialog(parent, name, TRUE), _pppdata(pd) |
37 | { | 37 | { |
38 | setCaption(tr("Customize pppd Arguments")); | 38 | setCaption(tr("Customize pppd Arguments")); |
39 | // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); | 39 | // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); |
40 | QVBoxLayout *l = new QVBoxLayout(this, 10, 10); | 40 | QVBoxLayout *l = new QVBoxLayout(this, 10, 10); |
41 | QHBoxLayout *tl = new QHBoxLayout(10); | 41 | QHBoxLayout *tl = new QHBoxLayout(10); |
42 | l->addLayout(tl); | 42 | l->addLayout(tl); |
43 | QVBoxLayout *l1 = new QVBoxLayout(); | 43 | QVBoxLayout *l1 = new QVBoxLayout(); |
44 | QVBoxLayout *l2 = new QVBoxLayout(); | 44 | QVBoxLayout *l2 = new QVBoxLayout(); |
45 | tl->addLayout(l1, 1); | 45 | tl->addLayout(l1, 1); |
46 | tl->addLayout(l2, 0); | 46 | tl->addLayout(l2, 0); |
47 | 47 | ||
48 | QHBoxLayout *l11 = new QHBoxLayout(10); | 48 | QHBoxLayout *l11 = new QHBoxLayout(10); |
49 | l1->addLayout(l11); | 49 | l1->addLayout(l11); |
50 | 50 | ||
51 | argument_label = new QLabel(tr("Argument:"), this); | 51 | argument_label = new QLabel(tr("Argument:"), this); |
52 | l11->addWidget(argument_label); | 52 | l11->addWidget(argument_label); |
53 | 53 | ||
54 | argument = new QLineEdit(this); | 54 | argument = new QLineEdit(this); |
55 | connect(argument, SIGNAL(returnPressed()), | 55 | connect(argument, SIGNAL(returnPressed()), |
56 | SLOT(addbutton())); | 56 | SLOT(addbutton())); |
57 | l11->addWidget(argument); | 57 | l11->addWidget(argument); |
58 | connect(argument, SIGNAL(textChanged(const QString &)), | 58 | connect(argument, SIGNAL(textChanged(const QString&)), |
59 | this, SLOT(textChanged(const QString &))); | 59 | this, SLOT(textChanged(const QString&))); |
60 | 60 | ||
61 | arguments = new QListBox(this); | 61 | arguments = new QListBox(this); |
62 | arguments->setMinimumSize(1, fontMetrics().lineSpacing()*10); | 62 | arguments->setMinimumSize(1, fontMetrics().lineSpacing()*10); |
63 | connect(arguments, SIGNAL(highlighted(int)), | 63 | connect(arguments, SIGNAL(highlighted(int)), |
64 | this, SLOT(itemSelected(int))); | 64 | this, SLOT(itemSelected(int))); |
65 | l1->addWidget(arguments, 1); | 65 | l1->addWidget(arguments, 1); |
66 | 66 | ||
67 | add = new QPushButton(tr("Add"), this); | 67 | add = new QPushButton(tr("Add"), this); |
68 | connect(add, SIGNAL(clicked()), SLOT(addbutton())); | 68 | connect(add, SIGNAL(clicked()), SLOT(addbutton())); |
69 | l2->addWidget(add); | 69 | l2->addWidget(add); |
70 | l2->addStretch(1); | 70 | l2->addStretch(1); |
71 | 71 | ||
72 | remove = new QPushButton(tr("Remove"), this); | 72 | remove = new QPushButton(tr("Remove"), this); |
73 | connect(remove, SIGNAL(clicked()), SLOT(removebutton())); | 73 | connect(remove, SIGNAL(clicked()), SLOT(removebutton())); |
74 | l2->addWidget(remove); | 74 | l2->addWidget(remove); |
75 | 75 | ||
76 | defaults = new QPushButton(tr("Defaults"), this); | 76 | defaults = new QPushButton(tr("Defaults"), this); |
77 | connect(defaults, SIGNAL(clicked()), SLOT(defaultsbutton())); | 77 | connect(defaults, SIGNAL(clicked()), SLOT(defaultsbutton())); |
78 | l2->addWidget(defaults); | 78 | l2->addWidget(defaults); |
79 | 79 | ||
80 | l->addSpacing(5); | 80 | l->addSpacing(5); |
81 | 81 | ||
82 | 82 | ||
83 | //load info from gpppdata | 83 | //load info from gpppdata |
84 | init(); | 84 | init(); |
85 | 85 | ||
86 | add->setEnabled(false); | 86 | add->setEnabled(false); |
87 | remove->setEnabled(false); | 87 | remove->setEnabled(false); |
88 | argument->setFocus(); | 88 | argument->setFocus(); |
89 | } | 89 | } |
90 | 90 | ||
91 | 91 | ||
92 | void PPPdArguments::addbutton() { | 92 | void PPPdArguments::addbutton() { |
93 | if(!argument->text().isEmpty() && arguments->count() < MAX_PPPD_ARGUMENTS) { | 93 | if(!argument->text().isEmpty() && arguments->count() < MAX_PPPD_ARGUMENTS) { |
94 | arguments->insertItem(argument->text()); | 94 | arguments->insertItem(argument->text()); |
95 | argument->setText(""); | 95 | argument->setText(""); |
96 | } | 96 | } |
97 | } | 97 | } |
98 | 98 | ||
99 | 99 | ||
100 | void PPPdArguments::removebutton() { | 100 | void PPPdArguments::removebutton() { |
101 | if(arguments->currentItem() >= 0) | 101 | if(arguments->currentItem() >= 0) |
102 | arguments->removeItem(arguments->currentItem()); | 102 | arguments->removeItem(arguments->currentItem()); |
103 | } | 103 | } |
104 | 104 | ||
105 | 105 | ||
106 | void PPPdArguments::defaultsbutton() { | 106 | void PPPdArguments::defaultsbutton() { |
107 | // all of this is a hack | 107 | // all of this is a hack |
108 | // save current list | 108 | // save current list |
109 | QStringList arglist(_pppdata->pppdArgument()); | 109 | QStringList arglist(_pppdata->pppdArgument()); |
110 | 110 | ||
111 | // get defaults | 111 | // get defaults |
112 | _pppdata->setpppdArgumentDefaults(); | 112 | _pppdata->setpppdArgumentDefaults(); |
113 | init(); | 113 | init(); |
114 | 114 | ||
115 | // restore old list | 115 | // restore old list |
116 | _pppdata->setpppdArgument(arglist); | 116 | _pppdata->setpppdArgument(arglist); |
117 | } | 117 | } |
118 | 118 | ||
119 | 119 | ||
120 | void PPPdArguments::accept() { | 120 | void PPPdArguments::accept() { |
121 | QStringList arglist; | 121 | QStringList arglist; |
122 | for(uint i=0; i < arguments->count(); i++) | 122 | for(uint i=0; i < arguments->count(); i++) |
123 | arglist.append(arguments->text(i)); | 123 | arglist.append(arguments->text(i)); |
124 | _pppdata->setpppdArgument(arglist); | 124 | _pppdata->setpppdArgument(arglist); |
125 | 125 | ||
126 | QDialog::accept(); | 126 | QDialog::accept(); |
127 | } | 127 | } |
128 | 128 | ||
129 | 129 | ||
130 | void PPPdArguments::init() { | 130 | void PPPdArguments::init() { |
131 | while(arguments->count()) | 131 | while(arguments->count()) |
132 | arguments->removeItem(0); | 132 | arguments->removeItem(0); |
133 | 133 | ||
134 | QStringList &arglist = _pppdata->pppdArgument(); | 134 | QStringList &arglist = _pppdata->pppdArgument(); |
135 | for ( QStringList::Iterator it = arglist.begin(); | 135 | for ( QStringList::Iterator it = arglist.begin(); |
136 | it != arglist.end(); | 136 | it != arglist.end(); |
137 | ++it ) | 137 | ++it ) |
138 | arguments->insertItem(*it); | 138 | arguments->insertItem(*it); |
139 | } | 139 | } |
140 | 140 | ||
141 | 141 | ||
142 | void PPPdArguments::textChanged(const QString &s) { | 142 | void PPPdArguments::textChanged(const QString &s) { |
143 | add->setEnabled(s.length() > 0); | 143 | add->setEnabled(s.length() > 0); |
144 | } | 144 | } |
145 | 145 | ||
146 | 146 | ||
147 | void PPPdArguments::itemSelected(int idx) { | 147 | void PPPdArguments::itemSelected(int idx) { |
148 | remove->setEnabled(idx != -1); | 148 | remove->setEnabled(idx != -1); |
149 | } | 149 | } |
150 | 150 | ||
151 | 151 | ||
diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp index 92339d6..dd1db28 100644 --- a/noncore/settings/networksettings/wlan/wlanimp2.cpp +++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp | |||
@@ -1,153 +1,153 @@ | |||
1 | #include "wlanimp2.h" | 1 | #include "wlanimp2.h" |
2 | #include "keyedit.h" | 2 | #include "keyedit.h" |
3 | #include "interfacesetupimp.h" | 3 | #include "interfacesetupimp.h" |
4 | 4 | ||
5 | #include "../interfaces/interface.h" | 5 | #include "../interfaces/interface.h" |
6 | 6 | ||
7 | #include <assert.h> | 7 | #include <assert.h> |
8 | #include <errno.h> | 8 | #include <errno.h> |
9 | #include <string.h> | 9 | #include <string.h> |
10 | 10 | ||
11 | #include <qapplication.h> | 11 | #include <qapplication.h> |
12 | #include <qfile.h> | 12 | #include <qfile.h> |
13 | #include <qdir.h> | 13 | #include <qdir.h> |
14 | #include <qdialog.h> | 14 | #include <qdialog.h> |
15 | #include <qtextstream.h> | 15 | #include <qtextstream.h> |
16 | #include <qmessagebox.h> | 16 | #include <qmessagebox.h> |
17 | #include <qlineedit.h> | 17 | #include <qlineedit.h> |
18 | #include <qlabel.h> | 18 | #include <qlabel.h> |
19 | #include <qspinbox.h> | 19 | #include <qspinbox.h> |
20 | #include <qradiobutton.h> | 20 | #include <qradiobutton.h> |
21 | #include <qpushbutton.h> | 21 | #include <qpushbutton.h> |
22 | #include <qcheckbox.h> | 22 | #include <qcheckbox.h> |
23 | #include <qtabwidget.h> | 23 | #include <qtabwidget.h> |
24 | #include <qcombobox.h> | 24 | #include <qcombobox.h> |
25 | #include <qlistview.h> | 25 | #include <qlistview.h> |
26 | #include <qvbox.h> | 26 | #include <qvbox.h> |
27 | #include <qprogressbar.h> | 27 | #include <qprogressbar.h> |
28 | 28 | ||
29 | #ifdef QWS | 29 | #ifdef QWS |
30 | #include <qpe/resource.h> | 30 | #include <qpe/resource.h> |
31 | #include <opie2/oprocess.h> | 31 | #include <opie2/oprocess.h> |
32 | #include <opie2/onetwork.h> | 32 | #include <opie2/onetwork.h> |
33 | #include <opie2/opcap.h> | 33 | #include <opie2/opcap.h> |
34 | #else | 34 | #else |
35 | #define OProcess KProcess | 35 | #define OProcess KProcess |
36 | #include <kprocess.h> | 36 | #include <kprocess.h> |
37 | #endif | 37 | #endif |
38 | 38 | ||
39 | #define WIRELESS_OPTS "/etc/pcmcia/wireless.opts" | 39 | #define WIRELESS_OPTS "/etc/pcmcia/wireless.opts" |
40 | #define PREUP "/etc/network/if-pre-up.d/wireless-tools" | 40 | #define PREUP "/etc/network/if-pre-up.d/wireless-tools" |
41 | 41 | ||
42 | /** | 42 | /** |
43 | * Constructor, read in the wireless.opts file for parsing later. | 43 | * Constructor, read in the wireless.opts file for parsing later. |
44 | */ | 44 | */ |
45 | WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") { | 45 | WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") { |
46 | interfaces = new Interfaces(); | 46 | interfaces = new Interfaces(); |
47 | interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); | 47 | interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); |
48 | tabWidget->insertTab(interfaceSetup, "TCP/IP"); | 48 | tabWidget->insertTab(interfaceSetup, "TCP/IP"); |
49 | 49 | ||
50 | // Check sanity - the existance of the wireless-tools if-pre-up script | 50 | // Check sanity - the existance of the wireless-tools if-pre-up script |
51 | QFile file(QString(PREUP)); | 51 | QFile file(QString(PREUP)); |
52 | if (file.exists()) { | 52 | if (file.exists()) { |
53 | qWarning(QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools")); | 53 | qWarning(QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools")); |
54 | } | 54 | } |
55 | 55 | ||
56 | connect( rescanButton, SIGNAL( clicked() ), this, SLOT( rescanNeighbourhood() ) ); | 56 | connect( rescanButton, SIGNAL( clicked() ), this, SLOT( rescanNeighbourhood() ) ); |
57 | connect( netView, SIGNAL( clicked( QListViewItem* ) ), this, SLOT( selectNetwork( QListViewItem* ) ) ); | 57 | connect( netView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( selectNetwork(QListViewItem*) ) ); |
58 | netView->setColumnAlignment( col_chn, AlignCenter ); | 58 | netView->setColumnAlignment( col_chn, AlignCenter ); |
59 | netView->setItemMargin( 3 ); | 59 | netView->setItemMargin( 3 ); |
60 | netView->setAllColumnsShowFocus( true ); | 60 | netView->setAllColumnsShowFocus( true ); |
61 | 61 | ||
62 | } | 62 | } |
63 | 63 | ||
64 | WLANImp::~WLANImp() { | 64 | WLANImp::~WLANImp() { |
65 | //FIXME: delete interfaces; | 65 | //FIXME: delete interfaces; |
66 | } | 66 | } |
67 | 67 | ||
68 | /** | 68 | /** |
69 | * Change the profile for both wireless settings and network settings. | 69 | * Change the profile for both wireless settings and network settings. |
70 | */ | 70 | */ |
71 | void WLANImp::setProfile(const QString &profile){ | 71 | void WLANImp::setProfile(const QString &profile){ |
72 | interfaceSetup->setProfile(profile); | 72 | interfaceSetup->setProfile(profile); |
73 | parseOpts(); | 73 | parseOpts(); |
74 | } | 74 | } |
75 | 75 | ||
76 | void WLANImp::parseOpts() { | 76 | void WLANImp::parseOpts() { |
77 | bool error; | 77 | bool error; |
78 | QString opt; | 78 | QString opt; |
79 | 79 | ||
80 | if (! interfaces->isInterfaceSet()) | 80 | if (! interfaces->isInterfaceSet()) |
81 | return; | 81 | return; |
82 | 82 | ||
83 | 83 | ||
84 | opt = interfaces->getInterfaceOption("wireless_essid", error); | 84 | opt = interfaces->getInterfaceOption("wireless_essid", error); |
85 | if(opt == "any" || opt == "off" || opt.isNull()){ | 85 | if(opt == "any" || opt == "off" || opt.isNull()){ |
86 | essid->setEditText("any"); | 86 | essid->setEditText("any"); |
87 | } else { | 87 | } else { |
88 | essid->setEditText(opt); | 88 | essid->setEditText(opt); |
89 | } | 89 | } |
90 | 90 | ||
91 | opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace(); | 91 | opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace(); |
92 | 92 | ||
93 | for ( int i = 0; i < mode->count(); i++) | 93 | for ( int i = 0; i < mode->count(); i++) |
94 | if ( mode->text( i ) == opt ) mode->setCurrentItem( i ); | 94 | if ( mode->text( i ) == opt ) mode->setCurrentItem( i ); |
95 | 95 | ||
96 | opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace(); | 96 | opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace(); |
97 | if (! opt.isNull()) { | 97 | if (! opt.isNull()) { |
98 | specifyAp->setChecked(true); | 98 | specifyAp->setChecked(true); |
99 | macEdit->setText(opt); | 99 | macEdit->setText(opt); |
100 | } | 100 | } |
101 | 101 | ||
102 | opt = interfaces->getInterfaceOption("wireless_channel", error).simplifyWhiteSpace(); | 102 | opt = interfaces->getInterfaceOption("wireless_channel", error).simplifyWhiteSpace(); |
103 | if (! opt.isNull()) { | 103 | if (! opt.isNull()) { |
104 | specifyChan->setChecked(true); | 104 | specifyChan->setChecked(true); |
105 | networkChannel->setValue(opt.toInt()); | 105 | networkChannel->setValue(opt.toInt()); |
106 | } | 106 | } |
107 | 107 | ||
108 | opt = interfaces->getInterfaceOption("wireless_key", error).simplifyWhiteSpace(); | 108 | opt = interfaces->getInterfaceOption("wireless_key", error).simplifyWhiteSpace(); |
109 | if (opt.isNull()) | 109 | if (opt.isNull()) |
110 | opt = interfaces->getInterfaceOption("wireless_enc", error).simplifyWhiteSpace(); | 110 | opt = interfaces->getInterfaceOption("wireless_enc", error).simplifyWhiteSpace(); |
111 | parseKeyStr(opt); | 111 | parseKeyStr(opt); |
112 | } | 112 | } |
113 | 113 | ||
114 | void WLANImp::parseKeyStr(QString keystr) { | 114 | void WLANImp::parseKeyStr(QString keystr) { |
115 | int loc = 0; | 115 | int loc = 0; |
116 | int index = 1; | 116 | int index = 1; |
117 | QString key; | 117 | QString key; |
118 | QStringList keys = QStringList::split(QRegExp("\\s+"), keystr); | 118 | QStringList keys = QStringList::split(QRegExp("\\s+"), keystr); |
119 | int enc = -1; // encryption state | 119 | int enc = -1; // encryption state |
120 | 120 | ||
121 | for (QStringList::Iterator it = keys.begin(); it != keys.end(); ++it) { | 121 | for (QStringList::Iterator it = keys.begin(); it != keys.end(); ++it) { |
122 | if ((*it).left(3) == "off") { | 122 | if ((*it).left(3) == "off") { |
123 | // encryption disabled | 123 | // encryption disabled |
124 | enc = 0; | 124 | enc = 0; |
125 | } else if ((*it).left(2) == "on") { | 125 | } else if ((*it).left(2) == "on") { |
126 | // encryption enabled | 126 | // encryption enabled |
127 | enc = 1; | 127 | enc = 1; |
128 | } else if ((*it).left(4) == "open") { | 128 | } else if ((*it).left(4) == "open") { |
129 | // open mode, accept non encrypted packets | 129 | // open mode, accept non encrypted packets |
130 | acceptNonEnc->setChecked(true); | 130 | acceptNonEnc->setChecked(true); |
131 | } else if ((*it).left(10) == "restricted") { | 131 | } else if ((*it).left(10) == "restricted") { |
132 | // restricted mode, only accept encrypted packets | 132 | // restricted mode, only accept encrypted packets |
133 | rejectNonEnc->setChecked(true); | 133 | rejectNonEnc->setChecked(true); |
134 | } else if ((*it).left(3) == "key") { | 134 | } else if ((*it).left(3) == "key") { |
135 | // new set of options | 135 | // new set of options |
136 | } else if ((*it).left(1) == "[") { | 136 | } else if ((*it).left(1) == "[") { |
137 | index = (*it).mid(1, 1).toInt(); | 137 | index = (*it).mid(1, 1).toInt(); |
138 | // switch current key to index | 138 | // switch current key to index |
139 | switch (index) { | 139 | switch (index) { |
140 | case 1: | 140 | case 1: |
141 | keyRadio0->setChecked(true); | 141 | keyRadio0->setChecked(true); |
142 | break; | 142 | break; |
143 | case 2: | 143 | case 2: |
144 | keyRadio1->setChecked(true); | 144 | keyRadio1->setChecked(true); |
145 | break; | 145 | break; |
146 | case 3: | 146 | case 3: |
147 | keyRadio2->setChecked(true); | 147 | keyRadio2->setChecked(true); |
148 | break; | 148 | break; |
149 | case 4: | 149 | case 4: |
150 | keyRadio3->setChecked(true); | 150 | keyRadio3->setChecked(true); |
151 | break; | 151 | break; |
152 | } | 152 | } |
153 | } else { | 153 | } else { |
diff --git a/noncore/settings/packagemanager/filterdlg.cpp b/noncore/settings/packagemanager/filterdlg.cpp index 0da9d19..eeed398 100644 --- a/noncore/settings/packagemanager/filterdlg.cpp +++ b/noncore/settings/packagemanager/filterdlg.cpp | |||
@@ -1,167 +1,167 @@ | |||
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) 2003 Dan Williams <drw@handhelds.org> | 4 | =. Copyright (c) 2003 Dan Williams <drw@handhelds.org> |
5 | .=l. | 5 | .=l. |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This file is free software; you can | 7 | _;:, .> :=|. This file 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 file is distributed in the hope that | 14 | .i_,=:_. -<s. This file 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 General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "filterdlg.h" | 30 | #include "filterdlg.h" |
31 | 31 | ||
32 | FilterDlg::FilterDlg( QWidget *parent, OPackageManager *pm, const QString &name, | 32 | FilterDlg::FilterDlg( QWidget *parent, OPackageManager *pm, const QString &name, |
33 | const QString &server, const QString &destination, | 33 | const QString &server, const QString &destination, |
34 | OPackageManager::Status status, const QString &category ) | 34 | OPackageManager::Status status, const QString &category ) |
35 | : QDialog( parent, QString::null, true ) | 35 | : QDialog( parent, QString::null, true ) |
36 | { | 36 | { |
37 | setCaption( tr( "Filter packages" ) ); | 37 | setCaption( tr( "Filter packages" ) ); |
38 | 38 | ||
39 | QVBoxLayout *layout = new QVBoxLayout( this ); | 39 | QVBoxLayout *layout = new QVBoxLayout( this ); |
40 | QScrollView *sv = new QScrollView( this ); | 40 | QScrollView *sv = new QScrollView( this ); |
41 | layout->addWidget( sv, 0, 0 ); | 41 | layout->addWidget( sv, 0, 0 ); |
42 | sv->setResizePolicy( QScrollView::AutoOneFit ); | 42 | sv->setResizePolicy( QScrollView::AutoOneFit ); |
43 | sv->setFrameStyle( QFrame::NoFrame ); | 43 | sv->setFrameStyle( QFrame::NoFrame ); |
44 | QWidget *container = new QWidget( sv->viewport() ); | 44 | QWidget *container = new QWidget( sv->viewport() ); |
45 | sv->addChild( container ); | 45 | sv->addChild( container ); |
46 | layout = new QVBoxLayout( container, 4, 4 ); | 46 | layout = new QVBoxLayout( container, 4, 4 ); |
47 | 47 | ||
48 | // Category | 48 | // Category |
49 | m_categoryCB = new QCheckBox( tr( "Category:" ), container ); | 49 | m_categoryCB = new QCheckBox( tr( "Category:" ), container ); |
50 | connect( m_categoryCB, SIGNAL(toggled(bool)), this, SLOT(slotCategorySelected(bool)) ); | 50 | connect( m_categoryCB, SIGNAL(toggled(bool)), this, SLOT(slotCategorySelected(bool)) ); |
51 | m_category = new QComboBox( container ); | 51 | m_category = new QComboBox( container ); |
52 | m_category->insertStringList( pm->categories() ); | 52 | m_category->insertStringList( pm->categories() ); |
53 | initItem( m_category, m_categoryCB, category ); | 53 | initItem( m_category, m_categoryCB, category ); |
54 | layout->addWidget( m_categoryCB ); | 54 | layout->addWidget( m_categoryCB ); |
55 | layout->addWidget( m_category ); | 55 | layout->addWidget( m_category ); |
56 | 56 | ||
57 | // Package name | 57 | // Package name |
58 | m_nameCB = new QCheckBox( tr( "Names containing:" ), container ); | 58 | m_nameCB = new QCheckBox( tr( "Names containing:" ), container ); |
59 | connect( m_nameCB, SIGNAL(toggled(bool)), this, SLOT(slotNameSelected(bool)) ); | 59 | connect( m_nameCB, SIGNAL(toggled(bool)), this, SLOT(slotNameSelected(bool)) ); |
60 | m_name = new QLineEdit( name, container ); | 60 | m_name = new QLineEdit( name, container ); |
61 | if ( !name.isNull() ) | 61 | if ( !name.isNull() ) |
62 | m_nameCB->setChecked( true ); | 62 | m_nameCB->setChecked( true ); |
63 | m_name->setEnabled( !name.isNull() ); | 63 | m_name->setEnabled( !name.isNull() ); |
64 | layout->addWidget( m_nameCB ); | 64 | layout->addWidget( m_nameCB ); |
65 | layout->addWidget( m_name ); | 65 | layout->addWidget( m_name ); |
66 | 66 | ||
67 | // Status | 67 | // Status |
68 | m_statusCB = new QCheckBox( tr( "With the status:" ), container ); | 68 | m_statusCB = new QCheckBox( tr( "With the status:" ), container ); |
69 | connect( m_statusCB, SIGNAL(toggled(bool)), this, SLOT(slotStatusSelected(bool)) ); | 69 | connect( m_statusCB, SIGNAL(toggled(bool)), this, SLOT(slotStatusSelected(bool)) ); |
70 | m_status = new QComboBox( container ); | 70 | m_status = new QComboBox( container ); |
71 | connect( m_status, SIGNAL(activated(const QString &)), this, SLOT(slotStatusChanged(const QString &)) ); | 71 | connect( m_status, SIGNAL(activated(const QString&)), this, SLOT(slotStatusChanged(const QString&)) ); |
72 | QString currStatus; | 72 | QString currStatus; |
73 | switch ( status ) | 73 | switch ( status ) |
74 | { | 74 | { |
75 | case OPackageManager::All : currStatus = tr( "All" ); | 75 | case OPackageManager::All : currStatus = tr( "All" ); |
76 | break; | 76 | break; |
77 | case OPackageManager::Installed : currStatus = tr( "Installed" ); | 77 | case OPackageManager::Installed : currStatus = tr( "Installed" ); |
78 | break; | 78 | break; |
79 | case OPackageManager::NotInstalled : currStatus = tr( "Not installed" ); | 79 | case OPackageManager::NotInstalled : currStatus = tr( "Not installed" ); |
80 | break; | 80 | break; |
81 | case OPackageManager::Updated : currStatus = tr( "Updated" ); | 81 | case OPackageManager::Updated : currStatus = tr( "Updated" ); |
82 | break; | 82 | break; |
83 | default : currStatus = QString::null; | 83 | default : currStatus = QString::null; |
84 | }; | 84 | }; |
85 | m_status->insertItem( tr( "All" ) ); | 85 | m_status->insertItem( tr( "All" ) ); |
86 | m_status->insertItem( tr( "Installed" ) ); | 86 | m_status->insertItem( tr( "Installed" ) ); |
87 | m_status->insertItem( tr( "Not installed" ) ); | 87 | m_status->insertItem( tr( "Not installed" ) ); |
88 | m_status->insertItem( tr( "Updated" ) ); | 88 | m_status->insertItem( tr( "Updated" ) ); |
89 | initItem( m_status, m_statusCB, currStatus ); | 89 | initItem( m_status, m_statusCB, currStatus ); |
90 | layout->addWidget( m_statusCB ); | 90 | layout->addWidget( m_statusCB ); |
91 | layout->addWidget( m_status ); | 91 | layout->addWidget( m_status ); |
92 | 92 | ||
93 | // Server | 93 | // Server |
94 | m_serverCB = new QCheckBox( tr( "Available from the following server:" ), container ); | 94 | m_serverCB = new QCheckBox( tr( "Available from the following server:" ), container ); |
95 | connect( m_serverCB, SIGNAL(toggled(bool)), this, SLOT(slotServerSelected(bool)) ); | 95 | connect( m_serverCB, SIGNAL(toggled(bool)), this, SLOT(slotServerSelected(bool)) ); |
96 | m_server = new QComboBox( container ); | 96 | m_server = new QComboBox( container ); |
97 | m_server->insertStringList( *(pm->servers()) ); | 97 | m_server->insertStringList( *(pm->servers()) ); |
98 | initItem( m_server, m_serverCB, server ); | 98 | initItem( m_server, m_serverCB, server ); |
99 | layout->addWidget( m_serverCB ); | 99 | layout->addWidget( m_serverCB ); |
100 | layout->addWidget( m_server ); | 100 | layout->addWidget( m_server ); |
101 | 101 | ||
102 | // Destination | 102 | // Destination |
103 | m_destCB = new QCheckBox( tr( "Installed on device at:" ), container ); | 103 | m_destCB = new QCheckBox( tr( "Installed on device at:" ), container ); |
104 | connect( m_destCB, SIGNAL(toggled(bool)), this, SLOT(slotDestSelected(bool)) ); | 104 | connect( m_destCB, SIGNAL(toggled(bool)), this, SLOT(slotDestSelected(bool)) ); |
105 | m_destination = new QComboBox( container ); | 105 | m_destination = new QComboBox( container ); |
106 | m_destination->insertStringList( *(pm->destinations()) ); | 106 | m_destination->insertStringList( *(pm->destinations()) ); |
107 | initItem( m_destination, m_destCB, destination ); | 107 | initItem( m_destination, m_destCB, destination ); |
108 | layout->addWidget( m_destCB ); | 108 | layout->addWidget( m_destCB ); |
109 | layout->addWidget( m_destination ); | 109 | layout->addWidget( m_destination ); |
110 | 110 | ||
111 | //showMaximized(); | 111 | //showMaximized(); |
112 | } | 112 | } |
113 | 113 | ||
114 | void FilterDlg::initItem( QComboBox *comboBox, QCheckBox *checkBox, const QString &selection ) | 114 | void FilterDlg::initItem( QComboBox *comboBox, QCheckBox *checkBox, const QString &selection ) |
115 | { | 115 | { |
116 | if ( !selection.isNull() ) | 116 | if ( !selection.isNull() ) |
117 | { | 117 | { |
118 | checkBox->setChecked( true ); | 118 | checkBox->setChecked( true ); |
119 | 119 | ||
120 | for ( int i = 0; i < comboBox->count(); i++ ) | 120 | for ( int i = 0; i < comboBox->count(); i++ ) |
121 | { | 121 | { |
122 | if ( comboBox->text( i ) == selection ) | 122 | if ( comboBox->text( i ) == selection ) |
123 | { | 123 | { |
124 | comboBox->setCurrentItem( i ); | 124 | comboBox->setCurrentItem( i ); |
125 | return; | 125 | return; |
126 | } | 126 | } |
127 | } | 127 | } |
128 | } | 128 | } |
129 | comboBox->setEnabled( !selection.isNull() ); | 129 | comboBox->setEnabled( !selection.isNull() ); |
130 | } | 130 | } |
131 | 131 | ||
132 | void FilterDlg::slotNameSelected( bool selected ) | 132 | void FilterDlg::slotNameSelected( bool selected ) |
133 | { | 133 | { |
134 | m_name->setEnabled( selected ); | 134 | m_name->setEnabled( selected ); |
135 | } | 135 | } |
136 | 136 | ||
137 | void FilterDlg::slotServerSelected( bool selected ) | 137 | void FilterDlg::slotServerSelected( bool selected ) |
138 | { | 138 | { |
139 | m_server->setEnabled( selected ); | 139 | m_server->setEnabled( selected ); |
140 | } | 140 | } |
141 | 141 | ||
142 | void FilterDlg::slotDestSelected( bool selected ) | 142 | void FilterDlg::slotDestSelected( bool selected ) |
143 | { | 143 | { |
144 | m_destination->setEnabled( selected ); | 144 | m_destination->setEnabled( selected ); |
145 | } | 145 | } |
146 | 146 | ||
147 | void FilterDlg::slotStatusSelected( bool selected ) | 147 | void FilterDlg::slotStatusSelected( bool selected ) |
148 | { | 148 | { |
149 | m_status->setEnabled( selected ); | 149 | m_status->setEnabled( selected ); |
150 | 150 | ||
151 | if ( !selected && !m_destCB->isEnabled() ) | 151 | if ( !selected && !m_destCB->isEnabled() ) |
152 | { | 152 | { |
153 | // If status check box has been deselected and destination option was previously deselected | 153 | // If status check box has been deselected and destination option was previously deselected |
154 | // (because status == "Not installed"), re-enable destination option | 154 | // (because status == "Not installed"), re-enable destination option |
155 | m_destCB->setEnabled( true ); | 155 | m_destCB->setEnabled( true ); |
156 | m_destination->setEnabled( true ); | 156 | m_destination->setEnabled( true ); |
157 | } | 157 | } |
158 | else if ( selected && m_destCB->isEnabled() && m_status->currentText() == tr( "Not installed" ) ) | 158 | else if ( selected && m_destCB->isEnabled() && m_status->currentText() == tr( "Not installed" ) ) |
159 | { | 159 | { |
160 | // If status check box has been selected and status == "Not installed", disable destination option | 160 | // If status check box has been selected and status == "Not installed", disable destination option |
161 | m_destCB->setEnabled( false ); | 161 | m_destCB->setEnabled( false ); |
162 | m_destCB->setChecked( false ); | 162 | m_destCB->setChecked( false ); |
163 | m_destination->setEnabled( false ); | 163 | m_destination->setEnabled( false ); |
164 | } | 164 | } |
165 | } | 165 | } |
166 | 166 | ||
167 | void FilterDlg::slotStatusChanged( const QString &category ) | 167 | void FilterDlg::slotStatusChanged( const QString &category ) |
diff --git a/noncore/settings/packagemanager/mainwindow.cpp b/noncore/settings/packagemanager/mainwindow.cpp index 8fd960f..b334bca 100644 --- a/noncore/settings/packagemanager/mainwindow.cpp +++ b/noncore/settings/packagemanager/mainwindow.cpp | |||
@@ -25,226 +25,226 @@ | |||
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <qaction.h> | 30 | #include <qaction.h> |
31 | #include <qdir.h> | 31 | #include <qdir.h> |
32 | #include <qlayout.h> | 32 | #include <qlayout.h> |
33 | #include <qlineedit.h> | 33 | #include <qlineedit.h> |
34 | #include <qmenubar.h> | 34 | #include <qmenubar.h> |
35 | #include <qmessagebox.h> | 35 | #include <qmessagebox.h> |
36 | #include <qpopupmenu.h> | 36 | #include <qpopupmenu.h> |
37 | #include <qtimer.h> | 37 | #include <qtimer.h> |
38 | #include <qtoolbar.h> | 38 | #include <qtoolbar.h> |
39 | #include <qwhatsthis.h> | 39 | #include <qwhatsthis.h> |
40 | 40 | ||
41 | #include <qpe/qcopenvelope_qws.h> | 41 | #include <qpe/qcopenvelope_qws.h> |
42 | #include <qpe/qpeapplication.h> | 42 | #include <qpe/qpeapplication.h> |
43 | #include <qpe/resource.h> | 43 | #include <qpe/resource.h> |
44 | 44 | ||
45 | #include "mainwindow.h" | 45 | #include "mainwindow.h" |
46 | #include "installdlg.h" | 46 | #include "installdlg.h" |
47 | #include "filterdlg.h" | 47 | #include "filterdlg.h" |
48 | #include "promptdlg.h" | 48 | #include "promptdlg.h" |
49 | #include "entrydlg.h" | 49 | #include "entrydlg.h" |
50 | #include "packageinfodlg.h" | 50 | #include "packageinfodlg.h" |
51 | 51 | ||
52 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ ) | 52 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ ) |
53 | : QMainWindow( parent, name, WStyle_ContextHelp ) | 53 | : QMainWindow( parent, name, WStyle_ContextHelp ) |
54 | , m_config( "packman" ) | 54 | , m_config( "packman" ) |
55 | , m_packman( &m_config, this ) | 55 | , m_packman( &m_config, this ) |
56 | , m_menuBar( this ) | 56 | , m_menuBar( this ) |
57 | , m_toolBar( this ) | 57 | , m_toolBar( this ) |
58 | , m_findBar( this ) | 58 | , m_findBar( this ) |
59 | , m_widgetStack( this ) | 59 | , m_widgetStack( this ) |
60 | , m_packageList( this ) | 60 | , m_packageList( this ) |
61 | , m_statusWidget( this ) | 61 | , m_statusWidget( this ) |
62 | , m_statusText( &m_statusWidget ) | 62 | , m_statusText( &m_statusWidget ) |
63 | , m_statusBar( &m_statusWidget ) | 63 | , m_statusBar( &m_statusWidget ) |
64 | , m_iconUpdated( Resource::loadPixmap( "packagemanager/updated" ) ) | 64 | , m_iconUpdated( Resource::loadPixmap( "packagemanager/updated" ) ) |
65 | , m_iconInstalled( Resource::loadPixmap( "installed" ) ) | 65 | , m_iconInstalled( Resource::loadPixmap( "installed" ) ) |
66 | , m_iconNull( m_iconUpdated.size() ) | 66 | , m_iconNull( m_iconUpdated.size() ) |
67 | , m_filterName( QString::null ) | 67 | , m_filterName( QString::null ) |
68 | , m_filterServer( QString::null ) | 68 | , m_filterServer( QString::null ) |
69 | , m_filterDest( QString::null ) | 69 | , m_filterDest( QString::null ) |
70 | , m_filterStatus( OPackageManager::NotDefined ) | 70 | , m_filterStatus( OPackageManager::NotDefined ) |
71 | , m_filterCategory( QString::null ) | 71 | , m_filterCategory( QString::null ) |
72 | 72 | ||
73 | { | 73 | { |
74 | // setCaption( tr( "Package Manager" ) ); | 74 | // setCaption( tr( "Package Manager" ) ); |
75 | 75 | ||
76 | m_iconNull.fill( colorGroup().base() ); | 76 | m_iconNull.fill( colorGroup().base() ); |
77 | 77 | ||
78 | connect( &m_widgetStack, SIGNAL(aboutToShow(QWidget*)), this, SLOT(slotWidgetStackShow(QWidget*)) ); | 78 | connect( &m_widgetStack, SIGNAL(aboutToShow(QWidget*)), this, SLOT(slotWidgetStackShow(QWidget*)) ); |
79 | 79 | ||
80 | // Initialize widget stack, package list and status widget | 80 | // Initialize widget stack, package list and status widget |
81 | initStatusWidget(); | 81 | initStatusWidget(); |
82 | initPackageList(); | 82 | initPackageList(); |
83 | 83 | ||
84 | m_widgetStack.addWidget( &m_statusWidget, 2 ); | 84 | m_widgetStack.addWidget( &m_statusWidget, 2 ); |
85 | m_widgetStack.addWidget( &m_packageList, 1 ); | 85 | m_widgetStack.addWidget( &m_packageList, 1 ); |
86 | setCentralWidget( &m_widgetStack ); | 86 | setCentralWidget( &m_widgetStack ); |
87 | 87 | ||
88 | // Initialize remaining user interface items | 88 | // Initialize remaining user interface items |
89 | initUI(); | 89 | initUI(); |
90 | 90 | ||
91 | // Initialize package information | 91 | // Initialize package information |
92 | QTimer::singleShot( 100, this, SLOT( initPackageInfo() ) ); | 92 | QTimer::singleShot( 100, this, SLOT( initPackageInfo() ) ); |
93 | } | 93 | } |
94 | 94 | ||
95 | void MainWindow::closeEvent( QCloseEvent *event ) | 95 | void MainWindow::closeEvent( QCloseEvent *event ) |
96 | { | 96 | { |
97 | // Close app only if either the package or status widgets are currently active | 97 | // Close app only if either the package or status widgets are currently active |
98 | bool close = m_widgetStack.visibleWidget() == &m_packageList || | 98 | bool close = m_widgetStack.visibleWidget() == &m_packageList || |
99 | m_widgetStack.visibleWidget() == &m_statusWidget; | 99 | m_widgetStack.visibleWidget() == &m_statusWidget; |
100 | if ( close ) | 100 | if ( close ) |
101 | { | 101 | { |
102 | // TODO - write out application configuration settings | 102 | // TODO - write out application configuration settings |
103 | 103 | ||
104 | // Write out package manager configuration settings | 104 | // Write out package manager configuration settings |
105 | m_packman.saveSettings(); | 105 | m_packman.saveSettings(); |
106 | event->accept(); | 106 | event->accept(); |
107 | } | 107 | } |
108 | else | 108 | else |
109 | { | 109 | { |
110 | delete m_widgetStack.visibleWidget(); | 110 | delete m_widgetStack.visibleWidget(); |
111 | m_widgetStack.raiseWidget( &m_packageList ); | 111 | m_widgetStack.raiseWidget( &m_packageList ); |
112 | event->ignore(); | 112 | event->ignore(); |
113 | } | 113 | } |
114 | } | 114 | } |
115 | 115 | ||
116 | void MainWindow::initPackageList() | 116 | void MainWindow::initPackageList() |
117 | { | 117 | { |
118 | m_packageList.addColumn( tr( "Packages" ) ); | 118 | m_packageList.addColumn( tr( "Packages" ) ); |
119 | QWhatsThis::add( &m_packageList, tr( "This is a listing of all packages.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nClick inside the box at the left to select a package." ) ); | 119 | QWhatsThis::add( &m_packageList, tr( "This is a listing of all packages.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nClick inside the box at the left to select a package." ) ); |
120 | QPEApplication::setStylusOperation( m_packageList.viewport(), QPEApplication::RightOnHold ); | 120 | QPEApplication::setStylusOperation( m_packageList.viewport(), QPEApplication::RightOnHold ); |
121 | connect( &m_packageList, SIGNAL(rightButtonPressed(QListViewItem *,const QPoint &,int)), | 121 | connect( &m_packageList, SIGNAL(rightButtonPressed(QListViewItem*,const QPoint&,int)), |
122 | this, SLOT(slotDisplayPackageInfo(QListViewItem *)) ); | 122 | this, SLOT(slotDisplayPackageInfo(QListViewItem*)) ); |
123 | } | 123 | } |
124 | 124 | ||
125 | void MainWindow::initStatusWidget() | 125 | void MainWindow::initStatusWidget() |
126 | { | 126 | { |
127 | QVBoxLayout *layout = new QVBoxLayout( &m_statusWidget, 4, 4 ); | 127 | QVBoxLayout *layout = new QVBoxLayout( &m_statusWidget, 4, 4 ); |
128 | 128 | ||
129 | m_statusText.setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); | 129 | m_statusText.setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); |
130 | layout->addWidget( &m_statusText ); | 130 | layout->addWidget( &m_statusText ); |
131 | 131 | ||
132 | connect( &m_packman, SIGNAL(initStatus(int)), this, SLOT(slotInitStatusBar(int)) ); | 132 | connect( &m_packman, SIGNAL(initStatus(int)), this, SLOT(slotInitStatusBar(int)) ); |
133 | connect( &m_packman, SIGNAL(statusText(const QString &)), this, SLOT(slotStatusText(const QString &)) ); | 133 | connect( &m_packman, SIGNAL(statusText(const QString&)), this, SLOT(slotStatusText(const QString&)) ); |
134 | connect( &m_packman, SIGNAL(statusBar(int)), this, SLOT(slotStatusBar(int)) ); | 134 | connect( &m_packman, SIGNAL(statusBar(int)), this, SLOT(slotStatusBar(int)) ); |
135 | 135 | ||
136 | layout->addWidget( &m_statusBar ); | 136 | layout->addWidget( &m_statusBar ); |
137 | } | 137 | } |
138 | 138 | ||
139 | void MainWindow::initUI() | 139 | void MainWindow::initUI() |
140 | { | 140 | { |
141 | // Build menu and tool bars | 141 | // Build menu and tool bars |
142 | setToolBarsMovable( false ); | 142 | setToolBarsMovable( false ); |
143 | 143 | ||
144 | m_menuBar.setHorizontalStretchable( true ); | 144 | m_menuBar.setHorizontalStretchable( true ); |
145 | QMenuBar *mb = new QMenuBar( &m_menuBar ); | 145 | QMenuBar *mb = new QMenuBar( &m_menuBar ); |
146 | mb->setMargin( 0 ); | 146 | mb->setMargin( 0 ); |
147 | 147 | ||
148 | // Find toolbar | 148 | // Find toolbar |
149 | addToolBar( &m_findBar, QMainWindow::Top, true ); | 149 | addToolBar( &m_findBar, QMainWindow::Top, true ); |
150 | m_findBar.setHorizontalStretchable( true ); | 150 | m_findBar.setHorizontalStretchable( true ); |
151 | m_findEdit = new QLineEdit( &m_findBar ); | 151 | m_findEdit = new QLineEdit( &m_findBar ); |
152 | QWhatsThis::add( m_findEdit, tr( "Type the text to search for here." ) ); | 152 | QWhatsThis::add( m_findEdit, tr( "Type the text to search for here." ) ); |
153 | m_findBar.setStretchableWidget( m_findEdit ); | 153 | m_findBar.setStretchableWidget( m_findEdit ); |
154 | connect( m_findEdit, SIGNAL(textChanged(const QString &)), this, SLOT(slotFindChanged(const QString &)) ); | 154 | connect( m_findEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotFindChanged(const QString&)) ); |
155 | 155 | ||
156 | // Packages menu | 156 | // Packages menu |
157 | QPopupMenu *popup = new QPopupMenu( this ); | 157 | QPopupMenu *popup = new QPopupMenu( this ); |
158 | 158 | ||
159 | QAction *a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "packagemanager/update" ), QString::null, 0, this, 0 ); | 159 | QAction *a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "packagemanager/update" ), QString::null, 0, this, 0 ); |
160 | a->setWhatsThis( tr( "Click here to update package lists from servers." ) ); | 160 | a->setWhatsThis( tr( "Click here to update package lists from servers." ) ); |
161 | connect( a, SIGNAL(activated()), this, SLOT(slotUpdate()) ); | 161 | connect( a, SIGNAL(activated()), this, SLOT(slotUpdate()) ); |
162 | a->addTo( popup ); | 162 | a->addTo( popup ); |
163 | a->addTo( &m_toolBar ); | 163 | a->addTo( &m_toolBar ); |
164 | 164 | ||
165 | QAction *actionUpgrade = new QAction( tr( "Upgrade" ), Resource::loadPixmap( "packagemanager/upgrade" ), QString::null, 0, this, 0 ); | 165 | QAction *actionUpgrade = new QAction( tr( "Upgrade" ), Resource::loadPixmap( "packagemanager/upgrade" ), QString::null, 0, this, 0 ); |
166 | actionUpgrade->setWhatsThis( tr( "Click here to upgrade all installed packages if a newer version is available." ) ); | 166 | actionUpgrade->setWhatsThis( tr( "Click here to upgrade all installed packages if a newer version is available." ) ); |
167 | connect( actionUpgrade, SIGNAL(activated()), this, SLOT(slotUpgrade()) ); | 167 | connect( actionUpgrade, SIGNAL(activated()), this, SLOT(slotUpgrade()) ); |
168 | actionUpgrade->addTo( popup ); | 168 | actionUpgrade->addTo( popup ); |
169 | actionUpgrade->addTo( &m_toolBar ); | 169 | actionUpgrade->addTo( &m_toolBar ); |
170 | 170 | ||
171 | QPixmap iconDownload = Resource::loadPixmap( "packagemanager/download" ); | 171 | QPixmap iconDownload = Resource::loadPixmap( "packagemanager/download" ); |
172 | QPixmap iconRemove = Resource::loadPixmap( "packagemanager/remove" ); | 172 | QPixmap iconRemove = Resource::loadPixmap( "packagemanager/remove" ); |
173 | QAction *actionDownload = new QAction( tr( "Download" ), iconDownload, QString::null, 0, this, 0 ); | 173 | QAction *actionDownload = new QAction( tr( "Download" ), iconDownload, QString::null, 0, this, 0 ); |
174 | actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) ); | 174 | actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) ); |
175 | connect( actionDownload, SIGNAL(activated()), this, SLOT(slotDownload()) ); | 175 | connect( actionDownload, SIGNAL(activated()), this, SLOT(slotDownload()) ); |
176 | actionDownload->addTo( popup ); | 176 | actionDownload->addTo( popup ); |
177 | actionDownload->addTo( &m_toolBar ); | 177 | actionDownload->addTo( &m_toolBar ); |
178 | 178 | ||
179 | a = new QAction( tr( "Apply changes" ), Resource::loadPixmap( "packagemanager/apply" ), QString::null, 0, this, 0 ); | 179 | a = new QAction( tr( "Apply changes" ), Resource::loadPixmap( "packagemanager/apply" ), QString::null, 0, this, 0 ); |
180 | a->setWhatsThis( tr( "Click here to install, remove or upgrade currently selected package(s)." ) ); | 180 | a->setWhatsThis( tr( "Click here to install, remove or upgrade currently selected package(s)." ) ); |
181 | connect( a, SIGNAL(activated()), this, SLOT(slotApply()) ); | 181 | connect( a, SIGNAL(activated()), this, SLOT(slotApply()) ); |
182 | a->addTo( popup ); | 182 | a->addTo( popup ); |
183 | a->addTo( &m_toolBar ); | 183 | a->addTo( &m_toolBar ); |
184 | 184 | ||
185 | popup->insertSeparator(); | 185 | popup->insertSeparator(); |
186 | 186 | ||
187 | a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); | 187 | a = new QAction( tr( "Configure" ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); |
188 | a->setWhatsThis( tr( "Click here to configure this application." ) ); | 188 | a->setWhatsThis( tr( "Click here to configure this application." ) ); |
189 | connect( a, SIGNAL(activated()), this, SLOT(slotConfigure()) ); | 189 | connect( a, SIGNAL(activated()), this, SLOT(slotConfigure()) ); |
190 | a->addTo( popup ); | 190 | a->addTo( popup ); |
191 | mb->insertItem( tr( "Actions" ), popup ); | 191 | mb->insertItem( tr( "Actions" ), popup ); |
192 | 192 | ||
193 | // View menu | 193 | // View menu |
194 | popup = new QPopupMenu( this ); | 194 | popup = new QPopupMenu( this ); |
195 | 195 | ||
196 | m_actionShowNotInstalled = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 ); | 196 | m_actionShowNotInstalled = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 ); |
197 | m_actionShowNotInstalled->setToggleAction( true ); | 197 | m_actionShowNotInstalled->setToggleAction( true ); |
198 | m_actionShowNotInstalled->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) ); | 198 | m_actionShowNotInstalled->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) ); |
199 | connect( m_actionShowNotInstalled, SIGNAL(activated()), this, SLOT(slotShowNotInstalled()) ); | 199 | connect( m_actionShowNotInstalled, SIGNAL(activated()), this, SLOT(slotShowNotInstalled()) ); |
200 | m_actionShowNotInstalled->addTo( popup ); | 200 | m_actionShowNotInstalled->addTo( popup ); |
201 | 201 | ||
202 | m_actionShowInstalled = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 ); | 202 | m_actionShowInstalled = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 ); |
203 | m_actionShowInstalled->setToggleAction( true ); | 203 | m_actionShowInstalled->setToggleAction( true ); |
204 | m_actionShowInstalled->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) ); | 204 | m_actionShowInstalled->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) ); |
205 | connect( m_actionShowInstalled, SIGNAL(activated()), this, SLOT(slotShowInstalled()) ); | 205 | connect( m_actionShowInstalled, SIGNAL(activated()), this, SLOT(slotShowInstalled()) ); |
206 | m_actionShowInstalled->addTo( popup ); | 206 | m_actionShowInstalled->addTo( popup ); |
207 | 207 | ||
208 | m_actionShowUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 ); | 208 | m_actionShowUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 ); |
209 | m_actionShowUpdated->setToggleAction( true ); | 209 | m_actionShowUpdated->setToggleAction( true ); |
210 | m_actionShowUpdated->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) ); | 210 | m_actionShowUpdated->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) ); |
211 | connect( m_actionShowUpdated, SIGNAL(activated()), this, SLOT(slotShowUpdated()) ); | 211 | connect( m_actionShowUpdated, SIGNAL(activated()), this, SLOT(slotShowUpdated()) ); |
212 | m_actionShowUpdated->addTo( popup ); | 212 | m_actionShowUpdated->addTo( popup ); |
213 | 213 | ||
214 | popup->insertSeparator(); | 214 | popup->insertSeparator(); |
215 | 215 | ||
216 | m_actionFilter = new QAction( tr( "Filter" ), Resource::loadPixmap( "packagemanager/filter" ), | 216 | m_actionFilter = new QAction( tr( "Filter" ), Resource::loadPixmap( "packagemanager/filter" ), |
217 | QString::null, 0, this, 0 ); | 217 | QString::null, 0, this, 0 ); |
218 | m_actionFilter->setToggleAction( true ); | 218 | m_actionFilter->setToggleAction( true ); |
219 | m_actionFilter->setWhatsThis( tr( "Click here to apply current filter." ) ); | 219 | m_actionFilter->setWhatsThis( tr( "Click here to apply current filter." ) ); |
220 | connect( m_actionFilter, SIGNAL(toggled(bool)), this, SLOT(slotFilter(bool)) ); | 220 | connect( m_actionFilter, SIGNAL(toggled(bool)), this, SLOT(slotFilter(bool)) ); |
221 | m_actionFilter->addTo( popup ); | 221 | m_actionFilter->addTo( popup ); |
222 | 222 | ||
223 | a = new QAction( tr( "Filter settings" ), QString::null, 0, this, 0 ); | 223 | a = new QAction( tr( "Filter settings" ), QString::null, 0, this, 0 ); |
224 | a->setWhatsThis( tr( "Click here to change the package filter criteria." ) ); | 224 | a->setWhatsThis( tr( "Click here to change the package filter criteria." ) ); |
225 | connect( a, SIGNAL(activated()), this, SLOT(slotFilterChange()) ); | 225 | connect( a, SIGNAL(activated()), this, SLOT(slotFilterChange()) ); |
226 | a->addTo( popup ); | 226 | a->addTo( popup ); |
227 | 227 | ||
228 | popup->insertSeparator(); | 228 | popup->insertSeparator(); |
229 | 229 | ||
230 | a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); | 230 | a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); |
231 | a->setWhatsThis( tr( "Click here to search for text in package names." ) ); | 231 | a->setWhatsThis( tr( "Click here to search for text in package names." ) ); |
232 | connect( a, SIGNAL(activated()), this, SLOT(slotFindShowToolbar()) ); | 232 | connect( a, SIGNAL(activated()), this, SLOT(slotFindShowToolbar()) ); |
233 | a->addTo( popup ); | 233 | a->addTo( popup ); |
234 | 234 | ||
235 | m_actionFindNext = new QAction( tr( "Find next" ), Resource::loadIconSet( "next" ), QString::null, 0, this, 0 ); | 235 | m_actionFindNext = new QAction( tr( "Find next" ), Resource::loadIconSet( "next" ), QString::null, 0, this, 0 ); |
236 | m_actionFindNext->setEnabled( false ); | 236 | m_actionFindNext->setEnabled( false ); |
237 | m_actionFindNext->setWhatsThis( tr( "Click here to find the next package name containing the text you are searching for." ) ); | 237 | m_actionFindNext->setWhatsThis( tr( "Click here to find the next package name containing the text you are searching for." ) ); |
238 | connect( m_actionFindNext, SIGNAL(activated()), this, SLOT(slotFindNext()) ); | 238 | connect( m_actionFindNext, SIGNAL(activated()), this, SLOT(slotFindNext()) ); |
239 | m_actionFindNext->addTo( popup ); | 239 | m_actionFindNext->addTo( popup ); |
240 | m_actionFindNext->addTo( &m_findBar ); | 240 | m_actionFindNext->addTo( &m_findBar ); |
241 | 241 | ||
242 | mb->insertItem( tr( "View" ), popup ); | 242 | mb->insertItem( tr( "View" ), popup ); |
243 | 243 | ||
244 | // Finish find toolbar creation | 244 | // Finish find toolbar creation |
245 | a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); | 245 | a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); |
246 | a->setWhatsThis( tr( "Click here to hide the find toolbar." ) ); | 246 | a->setWhatsThis( tr( "Click here to hide the find toolbar." ) ); |
247 | connect( a, SIGNAL(activated()), this, SLOT(slotFindHideToolbar()) ); | 247 | connect( a, SIGNAL(activated()), this, SLOT(slotFindHideToolbar()) ); |
248 | a->addTo( &m_findBar ); | 248 | a->addTo( &m_findBar ); |
249 | m_findBar.hide(); | 249 | m_findBar.hide(); |
250 | } | 250 | } |
diff --git a/noncore/settings/packagemanager/oipkg.cpp b/noncore/settings/packagemanager/oipkg.cpp index 086e91b..1dc23a4 100644 --- a/noncore/settings/packagemanager/oipkg.cpp +++ b/noncore/settings/packagemanager/oipkg.cpp | |||
@@ -223,242 +223,242 @@ OPackageList *OIpkg::installedPackages( const QString &destName, const QString & | |||
223 | path.append( "/" ); | 223 | path.append( "/" ); |
224 | path.append( IPKG_STATUS_PATH ); | 224 | path.append( IPKG_STATUS_PATH ); |
225 | 225 | ||
226 | QFile f( path ); | 226 | QFile f( path ); |
227 | if ( !f.open( IO_ReadOnly ) ) | 227 | if ( !f.open( IO_ReadOnly ) ) |
228 | return NULL; | 228 | return NULL; |
229 | QTextStream t( &f ); | 229 | QTextStream t( &f ); |
230 | 230 | ||
231 | // Process all information in status file | 231 | // Process all information in status file |
232 | bool newPackage = false; | 232 | bool newPackage = false; |
233 | QString line = t.readLine(); | 233 | QString line = t.readLine(); |
234 | QString name; | 234 | QString name; |
235 | QString version; | 235 | QString version; |
236 | QString status; | 236 | QString status; |
237 | 237 | ||
238 | while ( !t.eof() ) | 238 | while ( !t.eof() ) |
239 | { | 239 | { |
240 | // Determine key/value pair | 240 | // Determine key/value pair |
241 | int pos = line.find( ':', 0 ); | 241 | int pos = line.find( ':', 0 ); |
242 | QString key; | 242 | QString key; |
243 | if ( pos > -1 ) | 243 | if ( pos > -1 ) |
244 | key = line.mid( 0, pos ); | 244 | key = line.mid( 0, pos ); |
245 | else | 245 | else |
246 | key = QString::null; | 246 | key = QString::null; |
247 | QString value = line.mid( pos+2, line.length()-pos ); | 247 | QString value = line.mid( pos+2, line.length()-pos ); |
248 | 248 | ||
249 | // Allocate new package and insert into list | 249 | // Allocate new package and insert into list |
250 | if ( newPackage && !key.isEmpty() ) | 250 | if ( newPackage && !key.isEmpty() ) |
251 | { | 251 | { |
252 | // Add to list only if it has a valid name and is installed | 252 | // Add to list only if it has a valid name and is installed |
253 | if ( !name.isNull() && status.contains( " installed" ) ) | 253 | if ( !name.isNull() && status.contains( " installed" ) ) |
254 | { | 254 | { |
255 | pl->append( new OPackage( name, QString::null, version, QString::null, destName ) ); | 255 | pl->append( new OPackage( name, QString::null, version, QString::null, destName ) ); |
256 | name = QString::null; | 256 | name = QString::null; |
257 | version = QString::null; | 257 | version = QString::null; |
258 | status = QString::null; | 258 | status = QString::null; |
259 | 259 | ||
260 | newPackage = false; | 260 | newPackage = false; |
261 | } | 261 | } |
262 | } | 262 | } |
263 | 263 | ||
264 | // Update package data | 264 | // Update package data |
265 | if ( key == "Package" ) | 265 | if ( key == "Package" ) |
266 | name = value; | 266 | name = value; |
267 | else if ( key == "Version" ) | 267 | else if ( key == "Version" ) |
268 | version = value; | 268 | version = value; |
269 | else if ( key == "Status" ) | 269 | else if ( key == "Status" ) |
270 | status = value; | 270 | status = value; |
271 | else if ( key.isEmpty() && value.isEmpty() ) | 271 | else if ( key.isEmpty() && value.isEmpty() ) |
272 | newPackage = true; | 272 | newPackage = true; |
273 | 273 | ||
274 | // Skip past all description lines | 274 | // Skip past all description lines |
275 | if ( key == "Description" ) | 275 | if ( key == "Description" ) |
276 | { | 276 | { |
277 | line = t.readLine(); | 277 | line = t.readLine(); |
278 | while ( !line.isEmpty() && line.find( ':', 0 ) == -1 && !t.eof() ) | 278 | while ( !line.isEmpty() && line.find( ':', 0 ) == -1 && !t.eof() ) |
279 | line = t.readLine(); | 279 | line = t.readLine(); |
280 | } | 280 | } |
281 | else | 281 | else |
282 | line = t.readLine(); | 282 | line = t.readLine(); |
283 | } | 283 | } |
284 | 284 | ||
285 | f.close(); | 285 | f.close(); |
286 | 286 | ||
287 | return pl; | 287 | return pl; |
288 | } | 288 | } |
289 | 289 | ||
290 | bool OIpkg::executeCommand( OPackage::Command command, QStringList *parameters, const QString &destination, | 290 | bool OIpkg::executeCommand( OPackage::Command command, QStringList *parameters, const QString &destination, |
291 | const QObject *receiver, const char *slotOutput, bool rawOutput ) | 291 | const QObject *receiver, const char *slotOutput, bool rawOutput ) |
292 | { | 292 | { |
293 | if ( command == OPackage::NotDefined ) | 293 | if ( command == OPackage::NotDefined ) |
294 | return false; | 294 | return false; |
295 | 295 | ||
296 | // Set ipkg run-time options/arguments | 296 | // Set ipkg run-time options/arguments |
297 | m_ipkgArgs.force_depends = ( m_ipkgExecOptions & FORCE_DEPENDS ); | 297 | m_ipkgArgs.force_depends = ( m_ipkgExecOptions & FORCE_DEPENDS ); |
298 | m_ipkgArgs.force_reinstall = ( m_ipkgExecOptions & FORCE_REINSTALL ); | 298 | m_ipkgArgs.force_reinstall = ( m_ipkgExecOptions & FORCE_REINSTALL ); |
299 | // TODO m_ipkgArgs.force_remove = ( m_ipkgExecOptions & FORCE_REMOVE ); | 299 | // TODO m_ipkgArgs.force_remove = ( m_ipkgExecOptions & FORCE_REMOVE ); |
300 | m_ipkgArgs.force_overwrite = ( m_ipkgExecOptions & FORCE_OVERWRITE ); | 300 | m_ipkgArgs.force_overwrite = ( m_ipkgExecOptions & FORCE_OVERWRITE ); |
301 | m_ipkgArgs.verbosity = m_ipkgExecVerbosity; | 301 | m_ipkgArgs.verbosity = m_ipkgExecVerbosity; |
302 | if ( m_ipkgArgs.dest ) | 302 | if ( m_ipkgArgs.dest ) |
303 | free( m_ipkgArgs.dest ); | 303 | free( m_ipkgArgs.dest ); |
304 | if ( !destination.isNull() ) | 304 | if ( !destination.isNull() ) |
305 | { | 305 | { |
306 | int len = destination.length() + 1; | 306 | int len = destination.length() + 1; |
307 | m_ipkgArgs.dest = (char *)malloc( len ); | 307 | m_ipkgArgs.dest = (char *)malloc( len ); |
308 | strncpy( m_ipkgArgs.dest, destination, destination.length() ); | 308 | strncpy( m_ipkgArgs.dest, destination, destination.length() ); |
309 | m_ipkgArgs.dest[ len - 1 ] = '\0'; | 309 | m_ipkgArgs.dest[ len - 1 ] = '\0'; |
310 | } | 310 | } |
311 | else | 311 | else |
312 | m_ipkgArgs.dest = 0x0; | 312 | m_ipkgArgs.dest = 0x0; |
313 | 313 | ||
314 | // Connect output signal to widget | 314 | // Connect output signal to widget |
315 | 315 | ||
316 | if ( rawOutput ) | 316 | if ( rawOutput ) |
317 | { | 317 | { |
318 | // if ( slotOutput ) | 318 | // if ( slotOutput ) |
319 | // connect( this, SIGNAL(signalIpkgMessage(char *)), receiver, slotOutput ); | 319 | // connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
320 | } | 320 | } |
321 | else | 321 | else |
322 | { | 322 | { |
323 | // TODO - connect to local slot and parse output before emitting signalIpkgMessage | 323 | // TODO - connect to local slot and parse output before emitting signalIpkgMessage |
324 | } | 324 | } |
325 | 325 | ||
326 | switch( command ) | 326 | switch( command ) |
327 | { | 327 | { |
328 | case OPackage::Update : { | 328 | case OPackage::Update : { |
329 | connect( this, SIGNAL(signalIpkgMessage(char *)), receiver, slotOutput ); | 329 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
330 | ipkg_lists_update( &m_ipkgArgs ); | 330 | ipkg_lists_update( &m_ipkgArgs ); |
331 | }; | 331 | }; |
332 | break; | 332 | break; |
333 | case OPackage::Upgrade : { | 333 | case OPackage::Upgrade : { |
334 | connect( this, SIGNAL(signalIpkgMessage(char *)), receiver, slotOutput ); | 334 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
335 | ipkg_packages_upgrade( &m_ipkgArgs ); | 335 | ipkg_packages_upgrade( &m_ipkgArgs ); |
336 | }; | 336 | }; |
337 | break; | 337 | break; |
338 | case OPackage::Install : { | 338 | case OPackage::Install : { |
339 | connect( this, SIGNAL(signalIpkgMessage(char *)), receiver, slotOutput ); | 339 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
340 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) | 340 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) |
341 | { | 341 | { |
342 | ipkg_packages_install( &m_ipkgArgs, (*it) ); | 342 | ipkg_packages_install( &m_ipkgArgs, (*it) ); |
343 | } | 343 | } |
344 | }; | 344 | }; |
345 | break; | 345 | break; |
346 | case OPackage::Remove : { | 346 | case OPackage::Remove : { |
347 | connect( this, SIGNAL(signalIpkgMessage(char *)), receiver, slotOutput ); | 347 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
348 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) | 348 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) |
349 | { | 349 | { |
350 | ipkg_packages_remove( &m_ipkgArgs, (*it), true ); | 350 | ipkg_packages_remove( &m_ipkgArgs, (*it), true ); |
351 | } | 351 | } |
352 | }; | 352 | }; |
353 | break; | 353 | break; |
354 | case OPackage::Download : { | 354 | case OPackage::Download : { |
355 | connect( this, SIGNAL(signalIpkgMessage(char *)), receiver, slotOutput ); | 355 | connect( this, SIGNAL(signalIpkgMessage(char*)), receiver, slotOutput ); |
356 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) | 356 | for ( QStringList::Iterator it = parameters->begin(); it != parameters->end(); ++it ) |
357 | { | 357 | { |
358 | ipkg_packages_download( &m_ipkgArgs, (*it) ); | 358 | ipkg_packages_download( &m_ipkgArgs, (*it) ); |
359 | } | 359 | } |
360 | }; | 360 | }; |
361 | break; | 361 | break; |
362 | case OPackage::Info : { | 362 | case OPackage::Info : { |
363 | connect( this, SIGNAL(signalIpkgStatus(char *)), receiver, slotOutput ); | 363 | connect( this, SIGNAL(signalIpkgStatus(char*)), receiver, slotOutput ); |
364 | ipkg_packages_info( &m_ipkgArgs, (*parameters->begin()), &fIpkgStatus, 0x0 ); | 364 | ipkg_packages_info( &m_ipkgArgs, (*parameters->begin()), &fIpkgStatus, 0x0 ); |
365 | }; | 365 | }; |
366 | break; | 366 | break; |
367 | case OPackage::Files : { | 367 | case OPackage::Files : { |
368 | connect( this, SIGNAL(signalIpkgList(char *)), receiver, slotOutput ); | 368 | connect( this, SIGNAL(signalIpkgList(char*)), receiver, slotOutput ); |
369 | ipkg_package_files( &m_ipkgArgs, (*parameters->begin()), &fIpkgFiles, 0x0 ); | 369 | ipkg_package_files( &m_ipkgArgs, (*parameters->begin()), &fIpkgFiles, 0x0 ); |
370 | }; | 370 | }; |
371 | break; | 371 | break; |
372 | default : break; | 372 | default : break; |
373 | }; | 373 | }; |
374 | 374 | ||
375 | return true; | 375 | return true; |
376 | } | 376 | } |
377 | 377 | ||
378 | void OIpkg::ipkgMessage( char *msg ) | 378 | void OIpkg::ipkgMessage( char *msg ) |
379 | { | 379 | { |
380 | emit signalIpkgMessage( msg ); | 380 | emit signalIpkgMessage( msg ); |
381 | } | 381 | } |
382 | 382 | ||
383 | void OIpkg::ipkgStatus( char *status ) | 383 | void OIpkg::ipkgStatus( char *status ) |
384 | { | 384 | { |
385 | emit signalIpkgStatus( status ); | 385 | emit signalIpkgStatus( status ); |
386 | } | 386 | } |
387 | 387 | ||
388 | void OIpkg::ipkgList( char *filelist ) | 388 | void OIpkg::ipkgList( char *filelist ) |
389 | { | 389 | { |
390 | emit signalIpkgList( filelist ); | 390 | emit signalIpkgList( filelist ); |
391 | } | 391 | } |
392 | 392 | ||
393 | void OIpkg::loadConfiguration() | 393 | void OIpkg::loadConfiguration() |
394 | { | 394 | { |
395 | if ( m_confInfo ) | 395 | if ( m_confInfo ) |
396 | delete m_confInfo; | 396 | delete m_confInfo; |
397 | 397 | ||
398 | // Load configuration item list | 398 | // Load configuration item list |
399 | m_confInfo = new OConfItemList(); | 399 | m_confInfo = new OConfItemList(); |
400 | 400 | ||
401 | QStringList confFiles; | 401 | QStringList confFiles; |
402 | QDir confDir( IPKG_CONF_DIR ); | 402 | QDir confDir( IPKG_CONF_DIR ); |
403 | if ( confDir.exists() ) | 403 | if ( confDir.exists() ) |
404 | { | 404 | { |
405 | confDir.setNameFilter( "*.conf" ); | 405 | confDir.setNameFilter( "*.conf" ); |
406 | confDir.setFilter( QDir::Files ); | 406 | confDir.setFilter( QDir::Files ); |
407 | confFiles = confDir.entryList( "*.conf", QDir::Files ); | 407 | confFiles = confDir.entryList( "*.conf", QDir::Files ); |
408 | confFiles << IPKG_CONF; | 408 | confFiles << IPKG_CONF; |
409 | 409 | ||
410 | for ( QStringList::Iterator it = confFiles.begin(); it != confFiles.end(); ++it ) | 410 | for ( QStringList::Iterator it = confFiles.begin(); it != confFiles.end(); ++it ) |
411 | { | 411 | { |
412 | // Create absolute file path if necessary | 412 | // Create absolute file path if necessary |
413 | QString absFile = (*it); | 413 | QString absFile = (*it); |
414 | if ( !absFile.startsWith( "/" ) ) | 414 | if ( !absFile.startsWith( "/" ) ) |
415 | absFile.prepend( QString( IPKG_CONF_DIR ) + "/" ); | 415 | absFile.prepend( QString( IPKG_CONF_DIR ) + "/" ); |
416 | 416 | ||
417 | // Read in file | 417 | // Read in file |
418 | QFile f( absFile ); | 418 | QFile f( absFile ); |
419 | if ( f.open( IO_ReadOnly ) ) | 419 | if ( f.open( IO_ReadOnly ) ) |
420 | { | 420 | { |
421 | QTextStream s( &f ); | 421 | QTextStream s( &f ); |
422 | while ( !s.eof() ) | 422 | while ( !s.eof() ) |
423 | { | 423 | { |
424 | 424 | ||
425 | QString line = s.readLine().simplifyWhiteSpace(); | 425 | QString line = s.readLine().simplifyWhiteSpace(); |
426 | 426 | ||
427 | // Parse line and save info to the conf options list | 427 | // Parse line and save info to the conf options list |
428 | if ( !line.isEmpty() ) | 428 | if ( !line.isEmpty() ) |
429 | { | 429 | { |
430 | if ( !line.startsWith( "#" ) || | 430 | if ( !line.startsWith( "#" ) || |
431 | line.startsWith( "#src" ) || | 431 | line.startsWith( "#src" ) || |
432 | line.startsWith( "#dest" ) || | 432 | line.startsWith( "#dest" ) || |
433 | line.startsWith( "#arch" ) || | 433 | line.startsWith( "#arch" ) || |
434 | line.startsWith( "#option" ) ) | 434 | line.startsWith( "#option" ) ) |
435 | { | 435 | { |
436 | int pos = line.find( ' ', 1 ); | 436 | int pos = line.find( ' ', 1 ); |
437 | 437 | ||
438 | // Type | 438 | // Type |
439 | QString typeStr = line.left( pos ); | 439 | QString typeStr = line.left( pos ); |
440 | OConfItem::Type type; | 440 | OConfItem::Type type; |
441 | if ( typeStr == "src" || typeStr == "#src" ) | 441 | if ( typeStr == "src" || typeStr == "#src" ) |
442 | type = OConfItem::Source; | 442 | type = OConfItem::Source; |
443 | else if ( typeStr == "dest" || typeStr == "#dest" ) | 443 | else if ( typeStr == "dest" || typeStr == "#dest" ) |
444 | type = OConfItem::Destination; | 444 | type = OConfItem::Destination; |
445 | else if ( typeStr == "option" || typeStr == "#option" ) | 445 | else if ( typeStr == "option" || typeStr == "#option" ) |
446 | type = OConfItem::Option; | 446 | type = OConfItem::Option; |
447 | else if ( typeStr == "arch" || typeStr == "#arch" ) | 447 | else if ( typeStr == "arch" || typeStr == "#arch" ) |
448 | type = OConfItem::Arch; | 448 | type = OConfItem::Arch; |
449 | else | 449 | else |
450 | type = OConfItem::NotDefined; | 450 | type = OConfItem::NotDefined; |
451 | ++pos; | 451 | ++pos; |
452 | int endpos = line.find( ' ', pos ); | 452 | int endpos = line.find( ' ', pos ); |
453 | 453 | ||
454 | // Name | 454 | // Name |
455 | QString name = line.mid( pos, endpos - pos ); | 455 | QString name = line.mid( pos, endpos - pos ); |
456 | 456 | ||
457 | // Value | 457 | // Value |
458 | QString value = ""; | 458 | QString value = ""; |
459 | if ( endpos > -1 ) | 459 | if ( endpos > -1 ) |
460 | value = line.right( line.length() - endpos - 1 ); | 460 | value = line.right( line.length() - endpos - 1 ); |
461 | 461 | ||
462 | // Active | 462 | // Active |
463 | bool active = !line.startsWith( "#" ); | 463 | bool active = !line.startsWith( "#" ); |
464 | 464 | ||
diff --git a/noncore/settings/sound/soundsettings.cpp b/noncore/settings/sound/soundsettings.cpp index 4bc86fa..8ad0a3f 100644 --- a/noncore/settings/sound/soundsettings.cpp +++ b/noncore/settings/sound/soundsettings.cpp | |||
@@ -18,202 +18,202 @@ | |||
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | // parts copyright 2002 L.J. Potter | 20 | // parts copyright 2002 L.J. Potter |
21 | 21 | ||
22 | #include "soundsettings.h" | 22 | #include "soundsettings.h" |
23 | 23 | ||
24 | #include <qpe/qpeapplication.h> | 24 | #include <qpe/qpeapplication.h> |
25 | #include <qpe/config.h> | 25 | #include <qpe/config.h> |
26 | #include <qpe/qcopenvelope_qws.h> | 26 | #include <qpe/qcopenvelope_qws.h> |
27 | #include <qpe/storage.h> | 27 | #include <qpe/storage.h> |
28 | 28 | ||
29 | #include <qcheckbox.h> | 29 | #include <qcheckbox.h> |
30 | #include <qcombobox.h> | 30 | #include <qcombobox.h> |
31 | #include <qlabel.h> | 31 | #include <qlabel.h> |
32 | 32 | ||
33 | #include <sys/utsname.h> | 33 | #include <sys/utsname.h> |
34 | #include <sys/time.h> | 34 | #include <sys/time.h> |
35 | #include <sys/types.h> | 35 | #include <sys/types.h> |
36 | #include <unistd.h> | 36 | #include <unistd.h> |
37 | #include <stdio.h> | 37 | #include <stdio.h> |
38 | #include <sys/stat.h> | 38 | #include <sys/stat.h> |
39 | 39 | ||
40 | 40 | ||
41 | SoundSettings::SoundSettings( QWidget* parent, const char* objname, WFlags fl ) | 41 | SoundSettings::SoundSettings( QWidget* parent, const char* objname, WFlags fl ) |
42 | : SoundSettingsBase( parent, objname, TRUE, fl ) | 42 | : SoundSettingsBase( parent, objname, TRUE, fl ) |
43 | { | 43 | { |
44 | keyReset=FALSE; | 44 | keyReset=FALSE; |
45 | noWarning=false; | 45 | noWarning=false; |
46 | Config config( "qpe"); | 46 | Config config( "qpe"); |
47 | config.setGroup( "Volume" ); | 47 | config.setGroup( "Volume" ); |
48 | Config cfg("Vmemo"); | 48 | Config cfg("Vmemo"); |
49 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); | 49 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); |
50 | AlertCheckBox->setChecked(cfg.readBoolEntry("Alert")); | 50 | AlertCheckBox->setChecked(cfg.readBoolEntry("Alert")); |
51 | 51 | ||
52 | cfg.setGroup("Record"); | 52 | cfg.setGroup("Record"); |
53 | int rate=config.readNumEntry("SampleRate", 22050); | 53 | int rate=config.readNumEntry("SampleRate", 22050); |
54 | if(rate == 8000) | 54 | if(rate == 8000) |
55 | sampleRate->setCurrentItem(0); | 55 | sampleRate->setCurrentItem(0); |
56 | else if(rate == 11025) | 56 | else if(rate == 11025) |
57 | sampleRate->setCurrentItem(1); | 57 | sampleRate->setCurrentItem(1); |
58 | else if(rate == 22050) | 58 | else if(rate == 22050) |
59 | sampleRate->setCurrentItem(2); | 59 | sampleRate->setCurrentItem(2); |
60 | else if(rate == 33075) | 60 | else if(rate == 33075) |
61 | sampleRate->setCurrentItem(3); | 61 | sampleRate->setCurrentItem(3); |
62 | else if(rate==44100) | 62 | else if(rate==44100) |
63 | sampleRate->setCurrentItem(4); | 63 | sampleRate->setCurrentItem(4); |
64 | 64 | ||
65 | stereoCheckBox->setChecked(cfg.readNumEntry("Stereo", 0)); | 65 | stereoCheckBox->setChecked(cfg.readNumEntry("Stereo", 0)); |
66 | //TODO hide if zaurus- mono only | 66 | //TODO hide if zaurus- mono only |
67 | 67 | ||
68 | #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) | 68 | #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) |
69 | //since ipaq and zaurus have particular | 69 | //since ipaq and zaurus have particular |
70 | //devices | 70 | //devices |
71 | bool systemZaurus=FALSE; | 71 | bool systemZaurus=FALSE; |
72 | struct utsname name; /* check for embedix kernel running on the zaurus*/ | 72 | struct utsname name; /* check for embedix kernel running on the zaurus*/ |
73 | if (uname(&name) != -1) {// TODO change this here,... | 73 | if (uname(&name) != -1) {// TODO change this here,... |
74 | QString release=name.release; | 74 | QString release=name.release; |
75 | if( release.find("embedix",0,TRUE) != -1) { | 75 | if( release.find("embedix",0,TRUE) != -1) { |
76 | qDebug("IS System Zaurus"); | 76 | qDebug("IS System Zaurus"); |
77 | systemZaurus=TRUE; | 77 | systemZaurus=TRUE; |
78 | } | 78 | } |
79 | } | 79 | } |
80 | if(!systemZaurus) { | 80 | if(!systemZaurus) { |
81 | stereoCheckBox->setChecked(TRUE); | 81 | stereoCheckBox->setChecked(TRUE); |
82 | } | 82 | } |
83 | stereoCheckBox->setEnabled(FALSE); | 83 | stereoCheckBox->setEnabled(FALSE); |
84 | sixteenBitCheckBox->setEnabled(FALSE); | 84 | sixteenBitCheckBox->setEnabled(FALSE); |
85 | #else | 85 | #else |
86 | #endif | 86 | #endif |
87 | int sRate=cfg.readNumEntry("SizeLimit", 30); | 87 | int sRate=cfg.readNumEntry("SizeLimit", 30); |
88 | qDebug("%d",sRate); | 88 | qDebug("%d",sRate); |
89 | 89 | ||
90 | if(sRate ==30) | 90 | if(sRate ==30) |
91 | timeLimitComboBox->setCurrentItem(0); | 91 | timeLimitComboBox->setCurrentItem(0); |
92 | else if(sRate==20) | 92 | else if(sRate==20) |
93 | timeLimitComboBox->setCurrentItem(1); | 93 | timeLimitComboBox->setCurrentItem(1); |
94 | else if(sRate == 15) | 94 | else if(sRate == 15) |
95 | timeLimitComboBox->setCurrentItem(2); | 95 | timeLimitComboBox->setCurrentItem(2); |
96 | else if(sRate == 10) | 96 | else if(sRate == 10) |
97 | timeLimitComboBox->setCurrentItem(3); | 97 | timeLimitComboBox->setCurrentItem(3); |
98 | else if(sRate == 5) | 98 | else if(sRate == 5) |
99 | timeLimitComboBox->setCurrentItem(4); | 99 | timeLimitComboBox->setCurrentItem(4); |
100 | else | 100 | else |
101 | timeLimitComboBox->setCurrentItem(5); | 101 | timeLimitComboBox->setCurrentItem(5); |
102 | 102 | ||
103 | sixteenBitCheckBox->setChecked(cfg.readNumEntry("SixteenBit", 1)); | 103 | sixteenBitCheckBox->setChecked(cfg.readNumEntry("SixteenBit", 1)); |
104 | 104 | ||
105 | cfg.setGroup("Defaults"); | 105 | cfg.setGroup("Defaults"); |
106 | keyComboBox->setCurrentItem(cfg.readNumEntry("toggleKey") ); | 106 | keyComboBox->setCurrentItem(cfg.readNumEntry("toggleKey") ); |
107 | 107 | ||
108 | updateStorageCombo(); | 108 | updateStorageCombo(); |
109 | 109 | ||
110 | Config vmCfg("Vmemo"); | 110 | Config vmCfg("Vmemo"); |
111 | vmCfg.setGroup("Defaults"); | 111 | vmCfg.setGroup("Defaults"); |
112 | adpcmCheckBox->setChecked( vmCfg.readBoolEntry("use_ADPCM", 0)); | 112 | adpcmCheckBox->setChecked( vmCfg.readBoolEntry("use_ADPCM", 0)); |
113 | 113 | ||
114 | connect( LocationComboBox,SIGNAL(activated(const QString &)), this, | 114 | connect( LocationComboBox,SIGNAL(activated(const QString&)), this, |
115 | SLOT( setLocation(const QString &))); | 115 | SLOT( setLocation(const QString&))); |
116 | connect( keyComboBox,SIGNAL(activated( int)), this, | 116 | connect( keyComboBox,SIGNAL(activated(int)), this, |
117 | SLOT( setKeyButton( int))); | 117 | SLOT( setKeyButton(int))); |
118 | connect( timeLimitComboBox,SIGNAL(activated( const QString &)), this, | 118 | connect( timeLimitComboBox,SIGNAL(activated(const QString&)), this, |
119 | SLOT( setSizeLimitButton(const QString &))); | 119 | SLOT( setSizeLimitButton(const QString&))); |
120 | connect( restartCheckBox,SIGNAL( toggled( bool)), this, | 120 | connect( restartCheckBox,SIGNAL( toggled(bool)), this, |
121 | SLOT( restartOpie( bool))); | 121 | SLOT( restartOpie(bool))); |
122 | connect( adpcmCheckBox,SIGNAL( toggled( bool)), this, | 122 | connect( adpcmCheckBox,SIGNAL( toggled(bool)), this, |
123 | SLOT( slotAdpcm( bool))); | 123 | SLOT( slotAdpcm(bool))); |
124 | 124 | ||
125 | // connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); | 125 | // connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); |
126 | } | 126 | } |
127 | 127 | ||
128 | void SoundSettings::updateStorageCombo() { | 128 | void SoundSettings::updateStorageCombo() { |
129 | 129 | ||
130 | Config config( "Vmemo" ); | 130 | Config config( "Vmemo" ); |
131 | config.setGroup( "System" ); | 131 | config.setGroup( "System" ); |
132 | QString loc = config.readEntry("RecLocation","/"); | 132 | QString loc = config.readEntry("RecLocation","/"); |
133 | int i=0; | 133 | int i=0; |
134 | int set=0; | 134 | int set=0; |
135 | StorageInfo storageInfo; | 135 | StorageInfo storageInfo; |
136 | QString sName, sPath; | 136 | QString sName, sPath; |
137 | QStringList list; | 137 | QStringList list; |
138 | list << "Documents : "+QPEApplication::documentDir(); | 138 | list << "Documents : "+QPEApplication::documentDir(); |
139 | list << "tmp : /tmp"; | 139 | list << "tmp : /tmp"; |
140 | 140 | ||
141 | const QList<FileSystem> &fs = storageInfo.fileSystems(); | 141 | const QList<FileSystem> &fs = storageInfo.fileSystems(); |
142 | QListIterator<FileSystem> it ( fs ); | 142 | QListIterator<FileSystem> it ( fs ); |
143 | for( ; it.current(); ++it ){ | 143 | for( ; it.current(); ++it ){ |
144 | const QString name = (*it)->name(); | 144 | const QString name = (*it)->name(); |
145 | const QString path = (*it)->path(); | 145 | const QString path = (*it)->path(); |
146 | qDebug("storage name "+name +" storage path is "+path); | 146 | qDebug("storage name "+name +" storage path is "+path); |
147 | list << name + ": " +path; | 147 | list << name + ": " +path; |
148 | if( loc.find( path,0,TRUE) != -1) | 148 | if( loc.find( path,0,TRUE) != -1) |
149 | set = i; | 149 | set = i; |
150 | // if(dit.current()->file().find(path) != -1 ) storage=name; | 150 | // if(dit.current()->file().find(path) != -1 ) storage=name; |
151 | i++; | 151 | i++; |
152 | } | 152 | } |
153 | 153 | ||
154 | LocationComboBox->insertStringList(list); | 154 | LocationComboBox->insertStringList(list); |
155 | qDebug("set item %d", set); | 155 | qDebug("set item %d", set); |
156 | LocationComboBox->setCurrentItem(set); | 156 | LocationComboBox->setCurrentItem(set); |
157 | } | 157 | } |
158 | 158 | ||
159 | void SoundSettings::setLocation(const QString & string) { | 159 | void SoundSettings::setLocation(const QString & string) { |
160 | Config config( "Vmemo" ); | 160 | Config config( "Vmemo" ); |
161 | config.setGroup( "System" ); | 161 | config.setGroup( "System" ); |
162 | config.writeEntry("RecLocation",string); | 162 | config.writeEntry("RecLocation",string); |
163 | qDebug("set location "+string); | 163 | qDebug("set location "+string); |
164 | config.write(); | 164 | config.write(); |
165 | } | 165 | } |
166 | 166 | ||
167 | void SoundSettings::cleanUp() { | 167 | void SoundSettings::cleanUp() { |
168 | Config cfg("Vmemo"); | 168 | Config cfg("Vmemo"); |
169 | cfg.writeEntry("Alert",AlertCheckBox->isChecked()); | 169 | cfg.writeEntry("Alert",AlertCheckBox->isChecked()); |
170 | 170 | ||
171 | cfg.setGroup("Record"); | 171 | cfg.setGroup("Record"); |
172 | cfg.writeEntry("SampleRate",sampleRate->currentText()); | 172 | cfg.writeEntry("SampleRate",sampleRate->currentText()); |
173 | cfg.writeEntry("Stereo",stereoCheckBox->isChecked()); | 173 | cfg.writeEntry("Stereo",stereoCheckBox->isChecked()); |
174 | cfg.writeEntry("SixteenBit",sixteenBitCheckBox->isChecked()); | 174 | cfg.writeEntry("SixteenBit",sixteenBitCheckBox->isChecked()); |
175 | if(keyReset && noWarning) { | 175 | if(keyReset && noWarning) { |
176 | QCopEnvelope ("QPE/System", "restart()"); | 176 | QCopEnvelope ("QPE/System", "restart()"); |
177 | } | 177 | } |
178 | } | 178 | } |
179 | 179 | ||
180 | void SoundSettings::setKeyButton( int index) { | 180 | void SoundSettings::setKeyButton( int index) { |
181 | Config cfg("Vmemo"); | 181 | Config cfg("Vmemo"); |
182 | cfg.setGroup("Defaults"); | 182 | cfg.setGroup("Defaults"); |
183 | cfg.writeEntry( "toggleKey", index ); | 183 | cfg.writeEntry( "toggleKey", index ); |
184 | keyReset = TRUE; | 184 | keyReset = TRUE; |
185 | if( index == 1) { | 185 | if( index == 1) { |
186 | cfg.writeEntry( "hideIcon", 0 ); | 186 | cfg.writeEntry( "hideIcon", 0 ); |
187 | keyLabel->setText(tr("Shows icon")); | 187 | keyLabel->setText(tr("Shows icon")); |
188 | } | 188 | } |
189 | else { | 189 | else { |
190 | cfg.writeEntry( "hideIcon", 1); | 190 | cfg.writeEntry( "hideIcon", 1); |
191 | keyLabel->setText(tr("Hides icon")); | 191 | keyLabel->setText(tr("Hides icon")); |
192 | } | 192 | } |
193 | cfg.write(); | 193 | cfg.write(); |
194 | } | 194 | } |
195 | 195 | ||
196 | void SoundSettings::updateLocationCombo() { | 196 | void SoundSettings::updateLocationCombo() { |
197 | 197 | ||
198 | } | 198 | } |
199 | 199 | ||
200 | void SoundSettings::setSizeLimitButton(const QString &index) { | 200 | void SoundSettings::setSizeLimitButton(const QString &index) { |
201 | 201 | ||
202 | Config cfg("Vmemo"); | 202 | Config cfg("Vmemo"); |
203 | cfg.setGroup("Record"); | 203 | cfg.setGroup("Record"); |
204 | if(index.find("Unlimited",0,TRUE) != -1) | 204 | if(index.find("Unlimited",0,TRUE) != -1) |
205 | cfg.writeEntry("SizeLimit", -1); | 205 | cfg.writeEntry("SizeLimit", -1); |
206 | else | 206 | else |
207 | cfg.writeEntry("SizeLimit", index); | 207 | cfg.writeEntry("SizeLimit", index); |
208 | cfg.write(); | 208 | cfg.write(); |
209 | } | 209 | } |
210 | 210 | ||
211 | void SoundSettings::restartOpie(bool b) { | 211 | void SoundSettings::restartOpie(bool b) { |
212 | noWarning=b; | 212 | noWarning=b; |
213 | } | 213 | } |
214 | 214 | ||
215 | void SoundSettings::slotAdpcm(bool b) { | 215 | void SoundSettings::slotAdpcm(bool b) { |
216 | Config vmCfg("Vmemo"); | 216 | Config vmCfg("Vmemo"); |
217 | vmCfg.setGroup("Defaults"); | 217 | vmCfg.setGroup("Defaults"); |
218 | vmCfg.writeEntry("use_ADPCM", b); | 218 | vmCfg.writeEntry("use_ADPCM", b); |
219 | vmCfg.write(); | 219 | vmCfg.write(); |
diff --git a/noncore/settings/sysinfo/benchmarkinfo.cpp b/noncore/settings/sysinfo/benchmarkinfo.cpp index 0aeb251..d6ecec5 100644 --- a/noncore/settings/sysinfo/benchmarkinfo.cpp +++ b/noncore/settings/sysinfo/benchmarkinfo.cpp | |||
@@ -52,193 +52,193 @@ extern "C" | |||
52 | double dhry_main( int ); | 52 | double dhry_main( int ); |
53 | } | 53 | } |
54 | 54 | ||
55 | #define DHRYSTONE_RUNS 20000000 | 55 | #define DHRYSTONE_RUNS 20000000 |
56 | #define TEST_DURATION 3 | 56 | #define TEST_DURATION 3 |
57 | 57 | ||
58 | #define BUFF_SIZE 8192 | 58 | #define BUFF_SIZE 8192 |
59 | #define FILE_SIZE 1024 * 1024 // 1Mb | 59 | #define FILE_SIZE 1024 * 1024 // 1Mb |
60 | 60 | ||
61 | //=========================================================================== | 61 | //=========================================================================== |
62 | 62 | ||
63 | class BenchmarkPaintWidget : public QWidget | 63 | class BenchmarkPaintWidget : public QWidget |
64 | { | 64 | { |
65 | public: | 65 | public: |
66 | BenchmarkPaintWidget() : QWidget( 0, "Benchmark Paint Widget", WStyle_Customize|WStyle_StaysOnTop|WPaintUnclipped|WPaintClever ) | 66 | BenchmarkPaintWidget() : QWidget( 0, "Benchmark Paint Widget", WStyle_Customize|WStyle_StaysOnTop|WPaintUnclipped|WPaintClever ) |
67 | { | 67 | { |
68 | resize( QApplication::desktop()->size() ); | 68 | resize( QApplication::desktop()->size() ); |
69 | show(); | 69 | show(); |
70 | p.begin( this ); | 70 | p.begin( this ); |
71 | }; | 71 | }; |
72 | 72 | ||
73 | ~BenchmarkPaintWidget() | 73 | ~BenchmarkPaintWidget() |
74 | { | 74 | { |
75 | p.end(); | 75 | p.end(); |
76 | hide(); | 76 | hide(); |
77 | }; | 77 | }; |
78 | 78 | ||
79 | QPainter p; | 79 | QPainter p; |
80 | }; | 80 | }; |
81 | 81 | ||
82 | //=========================================================================== | 82 | //=========================================================================== |
83 | 83 | ||
84 | BenchmarkInfo::BenchmarkInfo( QWidget *parent, const char *name, int wFlags ) | 84 | BenchmarkInfo::BenchmarkInfo( QWidget *parent, const char *name, int wFlags ) |
85 | : QWidget( parent, name, wFlags ) | 85 | : QWidget( parent, name, wFlags ) |
86 | { | 86 | { |
87 | 87 | ||
88 | setMinimumSize( 200, 150 ); | 88 | setMinimumSize( 200, 150 ); |
89 | 89 | ||
90 | QVBoxLayout* vb = new QVBoxLayout( this ); | 90 | QVBoxLayout* vb = new QVBoxLayout( this ); |
91 | vb->setSpacing( 4 ); | 91 | vb->setSpacing( 4 ); |
92 | vb->setMargin( 4 ); | 92 | vb->setMargin( 4 ); |
93 | 93 | ||
94 | tests = new QListView( this ); | 94 | tests = new QListView( this ); |
95 | tests->setMargin( 0 ); | 95 | tests->setMargin( 0 ); |
96 | tests->addColumn( tr( "Tests" ) ); | 96 | tests->addColumn( tr( "Tests" ) ); |
97 | tests->addColumn( tr( "Results" ) ); | 97 | tests->addColumn( tr( "Results" ) ); |
98 | tests->addColumn( tr( "Comparison" ) ); | 98 | tests->addColumn( tr( "Comparison" ) ); |
99 | tests->setShowSortIndicator( true ); | 99 | tests->setShowSortIndicator( true ); |
100 | 100 | ||
101 | test_alu = new QCheckListItem( tests, tr( "1. Integer Arithmetic " ), QCheckListItem::CheckBox ); | 101 | test_alu = new QCheckListItem( tests, tr( "1. Integer Arithmetic " ), QCheckListItem::CheckBox ); |
102 | test_fpu = new QCheckListItem( tests, tr( "2. Floating Point Unit " ), QCheckListItem::CheckBox ); | 102 | test_fpu = new QCheckListItem( tests, tr( "2. Floating Point Unit " ), QCheckListItem::CheckBox ); |
103 | test_txt = new QCheckListItem( tests, tr( "3. Text Rendering " ), QCheckListItem::CheckBox ); | 103 | test_txt = new QCheckListItem( tests, tr( "3. Text Rendering " ), QCheckListItem::CheckBox ); |
104 | test_gfx = new QCheckListItem( tests, tr( "4. Gfx Rendering " ), QCheckListItem::CheckBox ); | 104 | test_gfx = new QCheckListItem( tests, tr( "4. Gfx Rendering " ), QCheckListItem::CheckBox ); |
105 | test_ram = new QCheckListItem( tests, tr( "5. RAM Performance " ), QCheckListItem::CheckBox ); | 105 | test_ram = new QCheckListItem( tests, tr( "5. RAM Performance " ), QCheckListItem::CheckBox ); |
106 | test_sd = new QCheckListItem( tests, tr( "6. SD Card Performance " ), QCheckListItem::CheckBox ); | 106 | test_sd = new QCheckListItem( tests, tr( "6. SD Card Performance " ), QCheckListItem::CheckBox ); |
107 | test_cf = new QCheckListItem( tests, tr( "7. CF Card Performance " ), QCheckListItem::CheckBox ); | 107 | test_cf = new QCheckListItem( tests, tr( "7. CF Card Performance " ), QCheckListItem::CheckBox ); |
108 | 108 | ||
109 | test_alu->setText( 1, "n/a" ); | 109 | test_alu->setText( 1, "n/a" ); |
110 | test_fpu->setText( 1, "n/a" ); | 110 | test_fpu->setText( 1, "n/a" ); |
111 | test_txt->setText( 1, "n/a" ); | 111 | test_txt->setText( 1, "n/a" ); |
112 | test_gfx->setText( 1, "n/a" ); | 112 | test_gfx->setText( 1, "n/a" ); |
113 | test_ram->setText( 1, "n/a" ); | 113 | test_ram->setText( 1, "n/a" ); |
114 | test_sd->setText( 1, "n/a" ); | 114 | test_sd->setText( 1, "n/a" ); |
115 | test_cf->setText( 1, "n/a" ); | 115 | test_cf->setText( 1, "n/a" ); |
116 | 116 | ||
117 | test_alu->setText( 2, "n/a" ); | 117 | test_alu->setText( 2, "n/a" ); |
118 | test_fpu->setText( 2, "n/a" ); | 118 | test_fpu->setText( 2, "n/a" ); |
119 | test_txt->setText( 2, "n/a" ); | 119 | test_txt->setText( 2, "n/a" ); |
120 | test_gfx->setText( 2, "n/a" ); | 120 | test_gfx->setText( 2, "n/a" ); |
121 | test_ram->setText( 2, "n/a" ); | 121 | test_ram->setText( 2, "n/a" ); |
122 | test_sd->setText( 2, "n/a" ); | 122 | test_sd->setText( 2, "n/a" ); |
123 | test_cf->setText( 2, "n/a" ); | 123 | test_cf->setText( 2, "n/a" ); |
124 | 124 | ||
125 | startButton = new QPushButton( tr( "&Start Tests!" ), this ); | 125 | startButton = new QPushButton( tr( "&Start Tests!" ), this ); |
126 | connect( startButton, SIGNAL( clicked() ), this, SLOT( run() ) ); | 126 | connect( startButton, SIGNAL( clicked() ), this, SLOT( run() ) ); |
127 | 127 | ||
128 | vb->addWidget( tests, 2 ); | 128 | vb->addWidget( tests, 2 ); |
129 | 129 | ||
130 | QFile f( QPEApplication::qpeDir() + "/share/sysinfo/results" ); | 130 | QFile f( QPEApplication::qpeDir() + "/share/sysinfo/results" ); |
131 | if ( f.open( IO_ReadOnly ) ) | 131 | if ( f.open( IO_ReadOnly ) ) |
132 | { | 132 | { |
133 | machineCombo = new QComboBox( this ); | 133 | machineCombo = new QComboBox( this ); |
134 | 134 | ||
135 | QTextStream ts( &f ); | 135 | QTextStream ts( &f ); |
136 | while( !ts.eof() ) | 136 | while( !ts.eof() ) |
137 | { | 137 | { |
138 | QString machline = ts.readLine(); | 138 | QString machline = ts.readLine(); |
139 | qDebug( "sysinfo: parsing benchmark results for '%s'", (const char*) machline ); | 139 | qDebug( "sysinfo: parsing benchmark results for '%s'", (const char*) machline ); |
140 | QString resline = ts.readLine(); | 140 | QString resline = ts.readLine(); |
141 | machines.insert( machline, new QStringList( QStringList::split( ",", resline ) ) ); | 141 | machines.insert( machline, new QStringList( QStringList::split( ",", resline ) ) ); |
142 | machineCombo->insertItem( machline ); | 142 | machineCombo->insertItem( machline ); |
143 | } | 143 | } |
144 | 144 | ||
145 | QHBoxLayout* hb = new QHBoxLayout( vb ); | 145 | QHBoxLayout* hb = new QHBoxLayout( vb ); |
146 | hb->addWidget( new QLabel( tr( "Compare To:" ), this ) ); | 146 | hb->addWidget( new QLabel( tr( "Compare To:" ), this ) ); |
147 | hb->addWidget( machineCombo, 2 ); | 147 | hb->addWidget( machineCombo, 2 ); |
148 | connect( machineCombo, SIGNAL( activated( int ) ), this, SLOT( machineActivated( int ) ) ); | 148 | connect( machineCombo, SIGNAL( activated(int) ), this, SLOT( machineActivated(int) ) ); |
149 | } | 149 | } |
150 | 150 | ||
151 | vb->addWidget( startButton, 2 ); | 151 | vb->addWidget( startButton, 2 ); |
152 | } | 152 | } |
153 | 153 | ||
154 | 154 | ||
155 | BenchmarkInfo::~BenchmarkInfo() | 155 | BenchmarkInfo::~BenchmarkInfo() |
156 | {} | 156 | {} |
157 | 157 | ||
158 | 158 | ||
159 | void BenchmarkInfo::machineActivated( int index ) | 159 | void BenchmarkInfo::machineActivated( int index ) |
160 | { | 160 | { |
161 | QStringList* results = machines[ machineCombo->text( index ) ]; | 161 | QStringList* results = machines[ machineCombo->text( index ) ]; |
162 | if ( !results ) | 162 | if ( !results ) |
163 | { | 163 | { |
164 | qDebug( "sysinfo: no results available." ); | 164 | qDebug( "sysinfo: no results available." ); |
165 | return; | 165 | return; |
166 | } | 166 | } |
167 | QStringList::Iterator it = results->begin(); | 167 | QStringList::Iterator it = results->begin(); |
168 | test_alu->setText( 2, *(it++) ); | 168 | test_alu->setText( 2, *(it++) ); |
169 | test_fpu->setText( 2, *(it++) ); | 169 | test_fpu->setText( 2, *(it++) ); |
170 | test_txt->setText( 2, *(it++) ); | 170 | test_txt->setText( 2, *(it++) ); |
171 | test_gfx->setText( 2, *(it++) ); | 171 | test_gfx->setText( 2, *(it++) ); |
172 | test_ram->setText( 2, *(it++) ); | 172 | test_ram->setText( 2, *(it++) ); |
173 | test_sd->setText( 2, *(it++) ); | 173 | test_sd->setText( 2, *(it++) ); |
174 | test_cf->setText( 2, *(it++) ); | 174 | test_cf->setText( 2, *(it++) ); |
175 | } | 175 | } |
176 | 176 | ||
177 | 177 | ||
178 | void BenchmarkInfo::run() | 178 | void BenchmarkInfo::run() |
179 | { | 179 | { |
180 | startButton->setText( "> Don't touch! Running Tests! Don't touch! <" ); | 180 | startButton->setText( "> Don't touch! Running Tests! Don't touch! <" ); |
181 | qApp->processEvents(); | 181 | qApp->processEvents(); |
182 | QTime t; | 182 | QTime t; |
183 | 183 | ||
184 | if ( test_alu->isOn() ) | 184 | if ( test_alu->isOn() ) |
185 | { | 185 | { |
186 | int d = round( dhry_main( DHRYSTONE_RUNS ) ); | 186 | int d = round( dhry_main( DHRYSTONE_RUNS ) ); |
187 | test_alu->setText( 1, QString( "%1 dhrys" ).arg( QString::number( d ) ) ); | 187 | test_alu->setText( 1, QString( "%1 dhrys" ).arg( QString::number( d ) ) ); |
188 | test_alu->setOn( false ); | 188 | test_alu->setOn( false ); |
189 | } | 189 | } |
190 | 190 | ||
191 | if ( test_fpu->isOn() ) | 191 | if ( test_fpu->isOn() ) |
192 | { | 192 | { |
193 | t.start(); | 193 | t.start(); |
194 | BenchFFT(); | 194 | BenchFFT(); |
195 | test_fpu->setText( 1, QString( "%1 secs" ).arg( QString::number( t.elapsed() / 1000.0 ) ) ); | 195 | test_fpu->setText( 1, QString( "%1 secs" ).arg( QString::number( t.elapsed() / 1000.0 ) ) ); |
196 | test_fpu->setOn( false ); | 196 | test_fpu->setOn( false ); |
197 | } | 197 | } |
198 | 198 | ||
199 | if ( test_txt->isOn() ) | 199 | if ( test_txt->isOn() ) |
200 | { | 200 | { |
201 | int value = textRendering( TEST_DURATION ); | 201 | int value = textRendering( TEST_DURATION ); |
202 | test_txt->setText( 1, QString( "%1 chars/sec" ).arg( QString::number( value / TEST_DURATION ) ) ); | 202 | test_txt->setText( 1, QString( "%1 chars/sec" ).arg( QString::number( value / TEST_DURATION ) ) ); |
203 | test_txt->setOn( false ); | 203 | test_txt->setOn( false ); |
204 | } | 204 | } |
205 | 205 | ||
206 | if ( test_gfx->isOn() ) | 206 | if ( test_gfx->isOn() ) |
207 | { | 207 | { |
208 | int value = gfxRendering( TEST_DURATION ); | 208 | int value = gfxRendering( TEST_DURATION ); |
209 | test_gfx->setText( 1, QString( "%1 gops/sec" ).arg( QString::number( value / 4 / TEST_DURATION ) ) ); // 4 tests | 209 | test_gfx->setText( 1, QString( "%1 gops/sec" ).arg( QString::number( value / 4 / TEST_DURATION ) ) ); // 4 tests |
210 | test_gfx->setOn( false ); | 210 | test_gfx->setOn( false ); |
211 | } | 211 | } |
212 | 212 | ||
213 | if ( test_ram->isOn() ) // /tmp is supposed to be in RAM on a PDA | 213 | if ( test_ram->isOn() ) // /tmp is supposed to be in RAM on a PDA |
214 | { | 214 | { |
215 | performFileTest( "/tmp/benchmarkFile.dat", test_ram ); | 215 | performFileTest( "/tmp/benchmarkFile.dat", test_ram ); |
216 | } | 216 | } |
217 | 217 | ||
218 | if ( test_cf->isOn() ) | 218 | if ( test_cf->isOn() ) |
219 | { | 219 | { |
220 | OStorageInfo storage; | 220 | OStorageInfo storage; |
221 | performFileTest( storage.cfPath() + "/benchmarkFile.dat", test_cf ); | 221 | performFileTest( storage.cfPath() + "/benchmarkFile.dat", test_cf ); |
222 | } | 222 | } |
223 | 223 | ||
224 | if ( test_sd->isOn() ) | 224 | if ( test_sd->isOn() ) |
225 | { | 225 | { |
226 | OStorageInfo storage; | 226 | OStorageInfo storage; |
227 | performFileTest( storage.sdPath() + "/benchmarkFile.dat", test_sd ); | 227 | performFileTest( storage.sdPath() + "/benchmarkFile.dat", test_sd ); |
228 | } | 228 | } |
229 | 229 | ||
230 | startButton->setText( tr( "&Start Tests!" ) ); | 230 | startButton->setText( tr( "&Start Tests!" ) ); |
231 | } | 231 | } |
232 | 232 | ||
233 | 233 | ||
234 | int BenchmarkInfo::textRendering( int seconds ) | 234 | int BenchmarkInfo::textRendering( int seconds ) |
235 | { | 235 | { |
236 | QTime t; | 236 | QTime t; |
237 | t.start(); | 237 | t.start(); |
238 | int stop = t.elapsed() + seconds * 1000; | 238 | int stop = t.elapsed() + seconds * 1000; |
239 | 239 | ||
240 | int rr[] = { 255, 255, 255, 0, 0, 0, 0, 128, 128 }; | 240 | int rr[] = { 255, 255, 255, 0, 0, 0, 0, 128, 128 }; |
241 | int gg[] = { 0, 255, 0, 0, 255, 255, 0, 128, 128 }; | 241 | int gg[] = { 0, 255, 0, 0, 255, 255, 0, 128, 128 }; |
242 | int bb[] = { 0, 0, 255, 0, 0, 255, 255, 128, 0 }; | 242 | int bb[] = { 0, 0, 255, 0, 0, 255, 255, 128, 0 }; |
243 | const QString text( "Opie Benchmark Test" ); | 243 | const QString text( "Opie Benchmark Test" ); |
244 | 244 | ||
diff --git a/noncore/settings/sysinfo/modulesinfo.cpp b/noncore/settings/sysinfo/modulesinfo.cpp index 9cb8ad2..e688a29 100644 --- a/noncore/settings/sysinfo/modulesinfo.cpp +++ b/noncore/settings/sysinfo/modulesinfo.cpp | |||
@@ -1,154 +1,154 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** ModulesInfo | 2 | ** ModulesInfo |
3 | ** | 3 | ** |
4 | ** Display Modules information | 4 | ** Display Modules information |
5 | ** | 5 | ** |
6 | ** Copyright (C) 2002, Michael Lauer | 6 | ** Copyright (C) 2002, Michael Lauer |
7 | ** mickey@tm.informatik.uni-frankfurt.de | 7 | ** mickey@tm.informatik.uni-frankfurt.de |
8 | ** http://www.Vanille.de | 8 | ** http://www.Vanille.de |
9 | ** | 9 | ** |
10 | ** Based on ProcessInfo by Dan Williams <williamsdr@acm.org> | 10 | ** Based on ProcessInfo by Dan Williams <williamsdr@acm.org> |
11 | ** | 11 | ** |
12 | ** This file may be distributed and/or modified under the terms of the | 12 | ** This file may be distributed and/or modified under the terms of the |
13 | ** GNU General Public License version 2 as published by the Free Software | 13 | ** GNU General Public License version 2 as published by the Free Software |
14 | ** Foundation and appearing in the file LICENSE.GPL included in the | 14 | ** Foundation and appearing in the file LICENSE.GPL included in the |
15 | ** packaging of this file. | 15 | ** packaging of this file. |
16 | ** | 16 | ** |
17 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 17 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
18 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 18 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
19 | ** | 19 | ** |
20 | **********************************************************************/ | 20 | **********************************************************************/ |
21 | 21 | ||
22 | #include "modulesinfo.h" | 22 | #include "modulesinfo.h" |
23 | #include "detail.h" | 23 | #include "detail.h" |
24 | 24 | ||
25 | /* OPIE */ | 25 | /* OPIE */ |
26 | #include <qpe/qpeapplication.h> | 26 | #include <qpe/qpeapplication.h> |
27 | 27 | ||
28 | /* QT */ | 28 | /* QT */ |
29 | #include <qfile.h> | 29 | #include <qfile.h> |
30 | #include <qlayout.h> | 30 | #include <qlayout.h> |
31 | #include <qmessagebox.h> | 31 | #include <qmessagebox.h> |
32 | #include <qtimer.h> | 32 | #include <qtimer.h> |
33 | #include <qwhatsthis.h> | 33 | #include <qwhatsthis.h> |
34 | 34 | ||
35 | ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) | 35 | ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) |
36 | : QWidget( parent, name, fl ) | 36 | : QWidget( parent, name, fl ) |
37 | { | 37 | { |
38 | QGridLayout *layout = new QGridLayout( this ); | 38 | QGridLayout *layout = new QGridLayout( this ); |
39 | layout->setSpacing( 4 ); | 39 | layout->setSpacing( 4 ); |
40 | layout->setMargin( 4 ); | 40 | layout->setMargin( 4 ); |
41 | 41 | ||
42 | ModulesView = new QListView( this ); | 42 | ModulesView = new QListView( this ); |
43 | int colnum = ModulesView->addColumn( tr( "Module" ) ); | 43 | int colnum = ModulesView->addColumn( tr( "Module" ) ); |
44 | colnum = ModulesView->addColumn( tr( "Size" ) ); | 44 | colnum = ModulesView->addColumn( tr( "Size" ) ); |
45 | ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); | 45 | ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); |
46 | colnum = ModulesView->addColumn( tr( "Use#" ) ); | 46 | colnum = ModulesView->addColumn( tr( "Use#" ) ); |
47 | ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); | 47 | ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); |
48 | colnum = ModulesView->addColumn( tr( "Used by" ) ); | 48 | colnum = ModulesView->addColumn( tr( "Used by" ) ); |
49 | ModulesView->setAllColumnsShowFocus( TRUE ); | 49 | ModulesView->setAllColumnsShowFocus( TRUE ); |
50 | layout->addMultiCellWidget( ModulesView, 0, 0, 0, 1 ); | 50 | layout->addMultiCellWidget( ModulesView, 0, 0, 0, 1 ); |
51 | QWhatsThis::add( ModulesView, tr( "This is a list of all the kernel modules currently loaded on this handheld device.\n\nClick and hold on a module to see additional information about the module, or to unload it." ) ); | 51 | QWhatsThis::add( ModulesView, tr( "This is a list of all the kernel modules currently loaded on this handheld device.\n\nClick and hold on a module to see additional information about the module, or to unload it." ) ); |
52 | 52 | ||
53 | // Test if we have /sbin/modinfo, and if so, allow module detail window | 53 | // Test if we have /sbin/modinfo, and if so, allow module detail window |
54 | if ( QFile::exists( "/sbin/modinfo" ) ) | 54 | if ( QFile::exists( "/sbin/modinfo" ) ) |
55 | { | 55 | { |
56 | QPEApplication::setStylusOperation( ModulesView->viewport(), QPEApplication::RightOnHold ); | 56 | QPEApplication::setStylusOperation( ModulesView->viewport(), QPEApplication::RightOnHold ); |
57 | connect( ModulesView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), | 57 | connect( ModulesView, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), |
58 | this, SLOT( viewModules( QListViewItem * ) ) ); | 58 | this, SLOT( viewModules(QListViewItem*) ) ); |
59 | } | 59 | } |
60 | 60 | ||
61 | CommandCB = new QComboBox( FALSE, this ); | 61 | CommandCB = new QComboBox( FALSE, this ); |
62 | CommandCB->insertItem( "modprobe -r" ); | 62 | CommandCB->insertItem( "modprobe -r" ); |
63 | CommandCB->insertItem( "rmmod" ); | 63 | CommandCB->insertItem( "rmmod" ); |
64 | // I can't think of other useful commands yet. Anyone? | 64 | // I can't think of other useful commands yet. Anyone? |
65 | layout->addWidget( CommandCB, 1, 0 ); | 65 | layout->addWidget( CommandCB, 1, 0 ); |
66 | QWhatsThis::add( CommandCB, tr( "Select a command here and then click the Send button to the right to send the command to module selected above." ) ); | 66 | QWhatsThis::add( CommandCB, tr( "Select a command here and then click the Send button to the right to send the command to module selected above." ) ); |
67 | 67 | ||
68 | QPushButton *btn = new QPushButton( this ); | 68 | QPushButton *btn = new QPushButton( this ); |
69 | btn->setMinimumSize( QSize( 50, 24 ) ); | 69 | btn->setMinimumSize( QSize( 50, 24 ) ); |
70 | btn->setMaximumSize( QSize( 50, 24 ) ); | 70 | btn->setMaximumSize( QSize( 50, 24 ) ); |
71 | btn->setText( tr( "Send" ) ); | 71 | btn->setText( tr( "Send" ) ); |
72 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); | 72 | connect( btn, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); |
73 | layout->addWidget( btn, 1, 1 ); | 73 | layout->addWidget( btn, 1, 1 ); |
74 | QWhatsThis::add( btn, tr( "Click here to send the selected command to the module selected above." ) ); | 74 | QWhatsThis::add( btn, tr( "Click here to send the selected command to the module selected above." ) ); |
75 | 75 | ||
76 | QTimer *t = new QTimer( this ); | 76 | QTimer *t = new QTimer( this ); |
77 | connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); | 77 | connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); |
78 | t->start( 5000 ); | 78 | t->start( 5000 ); |
79 | 79 | ||
80 | updateData(); | 80 | updateData(); |
81 | 81 | ||
82 | ModulesDtl = new Detail(); | 82 | ModulesDtl = new Detail(); |
83 | QWhatsThis::add( ModulesDtl->detailView, tr( "This area shows detailed information about this module." ) ); | 83 | QWhatsThis::add( ModulesDtl->detailView, tr( "This area shows detailed information about this module." ) ); |
84 | } | 84 | } |
85 | 85 | ||
86 | ModulesInfo::~ModulesInfo() | 86 | ModulesInfo::~ModulesInfo() |
87 | {} | 87 | {} |
88 | 88 | ||
89 | void ModulesInfo::updateData() | 89 | void ModulesInfo::updateData() |
90 | { | 90 | { |
91 | char modname[64]; | 91 | char modname[64]; |
92 | char usage[200]; | 92 | char usage[200]; |
93 | int modsize, usecount; | 93 | int modsize, usecount; |
94 | 94 | ||
95 | QString selectedmod; | 95 | QString selectedmod; |
96 | QListViewItem *curritem = ModulesView->currentItem(); | 96 | QListViewItem *curritem = ModulesView->currentItem(); |
97 | if ( curritem ) | 97 | if ( curritem ) |
98 | { | 98 | { |
99 | selectedmod = curritem->text( 0 ); | 99 | selectedmod = curritem->text( 0 ); |
100 | } | 100 | } |
101 | 101 | ||
102 | ModulesView->clear(); | 102 | ModulesView->clear(); |
103 | 103 | ||
104 | FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r"); | 104 | FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r"); |
105 | 105 | ||
106 | if ( procfile ) | 106 | if ( procfile ) |
107 | { | 107 | { |
108 | QListViewItem *newitem; | 108 | QListViewItem *newitem; |
109 | QListViewItem *selecteditem = 0x0; | 109 | QListViewItem *selecteditem = 0x0; |
110 | while ( true ) | 110 | while ( true ) |
111 | { | 111 | { |
112 | modname[0] = '\0'; | 112 | modname[0] = '\0'; |
113 | usage[0] = '\0'; | 113 | usage[0] = '\0'; |
114 | int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage ); | 114 | int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage ); |
115 | 115 | ||
116 | if ( success == EOF ) | 116 | if ( success == EOF ) |
117 | break; | 117 | break; |
118 | 118 | ||
119 | QString qmodname = QString( modname ); | 119 | QString qmodname = QString( modname ); |
120 | QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' ); | 120 | QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' ); |
121 | QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' ); | 121 | QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' ); |
122 | QString qusage = QString( usage ); | 122 | QString qusage = QString( usage ); |
123 | 123 | ||
124 | newitem = new QListViewItem( ModulesView, qmodname, qmodsize, qusecount, qusage ); | 124 | newitem = new QListViewItem( ModulesView, qmodname, qmodsize, qusecount, qusage ); |
125 | if ( qmodname == selectedmod ) | 125 | if ( qmodname == selectedmod ) |
126 | { | 126 | { |
127 | selecteditem = newitem; | 127 | selecteditem = newitem; |
128 | } | 128 | } |
129 | } | 129 | } |
130 | ModulesView->setCurrentItem( selecteditem ); | 130 | ModulesView->setCurrentItem( selecteditem ); |
131 | 131 | ||
132 | fclose( procfile ); | 132 | fclose( procfile ); |
133 | } | 133 | } |
134 | } | 134 | } |
135 | 135 | ||
136 | void ModulesInfo::slotSendClicked() | 136 | void ModulesInfo::slotSendClicked() |
137 | { | 137 | { |
138 | if ( !ModulesView->currentItem() ) | 138 | if ( !ModulesView->currentItem() ) |
139 | { | 139 | { |
140 | return; | 140 | return; |
141 | } | 141 | } |
142 | 142 | ||
143 | QString capstr = tr( "You really want to execute %1 for this module?" ).arg( CommandCB->currentText() ); | 143 | QString capstr = tr( "You really want to execute %1 for this module?" ).arg( CommandCB->currentText() ); |
144 | 144 | ||
145 | QString modname = ModulesView->currentItem()->text( 0 ); | 145 | QString modname = ModulesView->currentItem()->text( 0 ); |
146 | 146 | ||
147 | if ( QMessageBox::warning( this, modname, capstr, | 147 | if ( QMessageBox::warning( this, modname, capstr, |
148 | QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes ) | 148 | QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes ) |
149 | { | 149 | { |
150 | QString command = "/sbin/"; | 150 | QString command = "/sbin/"; |
151 | command.append( CommandCB->currentText() ); | 151 | command.append( CommandCB->currentText() ); |
152 | command.append( " " ); | 152 | command.append( " " ); |
153 | command.append( modname ); | 153 | command.append( modname ); |
154 | 154 | ||
diff --git a/noncore/settings/sysinfo/processinfo.cpp b/noncore/settings/sysinfo/processinfo.cpp index 2a90b0f..69b4ab5 100644 --- a/noncore/settings/sysinfo/processinfo.cpp +++ b/noncore/settings/sysinfo/processinfo.cpp | |||
@@ -1,151 +1,151 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** ProcessInfo | 2 | ** ProcessInfo |
3 | ** | 3 | ** |
4 | ** Display process information | 4 | ** Display process information |
5 | ** | 5 | ** |
6 | ** Copyright (C) 2002, Dan Williams | 6 | ** Copyright (C) 2002, Dan Williams |
7 | ** williamsdr@acm.org | 7 | ** williamsdr@acm.org |
8 | ** http://draknor.net | 8 | ** http://draknor.net |
9 | ** | 9 | ** |
10 | ** This file may be distributed and/or modified under the terms of the | 10 | ** This file may be distributed and/or modified under the terms of the |
11 | ** GNU General Public License version 2 as published by the Free Software | 11 | ** GNU General Public License version 2 as published by the Free Software |
12 | ** Foundation and appearing in the file LICENSE.GPL included in the | 12 | ** Foundation and appearing in the file LICENSE.GPL included in the |
13 | ** packaging of this file. | 13 | ** packaging of this file. |
14 | ** | 14 | ** |
15 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 15 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
16 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 16 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
17 | ** | 17 | ** |
18 | **********************************************************************/ | 18 | **********************************************************************/ |
19 | 19 | ||
20 | #include "processinfo.h" | 20 | #include "processinfo.h" |
21 | #include "detail.h" | 21 | #include "detail.h" |
22 | 22 | ||
23 | /* OPIE */ | 23 | /* OPIE */ |
24 | #include <qpe/qpeapplication.h> | 24 | #include <qpe/qpeapplication.h> |
25 | 25 | ||
26 | /* QT */ | 26 | /* QT */ |
27 | #include <qdir.h> | 27 | #include <qdir.h> |
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qmessagebox.h> | 29 | #include <qmessagebox.h> |
30 | #include <qtimer.h> | 30 | #include <qtimer.h> |
31 | #include <qwhatsthis.h> | 31 | #include <qwhatsthis.h> |
32 | 32 | ||
33 | /* STD */ | 33 | /* STD */ |
34 | #include <sys/types.h> | 34 | #include <sys/types.h> |
35 | #include <signal.h> | 35 | #include <signal.h> |
36 | 36 | ||
37 | ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) | 37 | ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) |
38 | : QWidget( parent, name, fl ) | 38 | : QWidget( parent, name, fl ) |
39 | { | 39 | { |
40 | QGridLayout *layout = new QGridLayout( this ); | 40 | QGridLayout *layout = new QGridLayout( this ); |
41 | layout->setSpacing( 4 ); | 41 | layout->setSpacing( 4 ); |
42 | layout->setMargin( 4 ); | 42 | layout->setMargin( 4 ); |
43 | 43 | ||
44 | 44 | ||
45 | ProcessView = new QListView( this, "ProcessView" ); | 45 | ProcessView = new QListView( this, "ProcessView" ); |
46 | int colnum = ProcessView->addColumn( tr( "PID" ) ); | 46 | int colnum = ProcessView->addColumn( tr( "PID" ) ); |
47 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); | 47 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); |
48 | colnum = ProcessView->addColumn( tr( "Command" ),96 ); | 48 | colnum = ProcessView->addColumn( tr( "Command" ),96 ); |
49 | colnum = ProcessView->addColumn( tr( "Status" ) ); | 49 | colnum = ProcessView->addColumn( tr( "Status" ) ); |
50 | colnum = ProcessView->addColumn( tr( "Time" ) ); | 50 | colnum = ProcessView->addColumn( tr( "Time" ) ); |
51 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); | 51 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); |
52 | ProcessView->setAllColumnsShowFocus( TRUE ); | 52 | ProcessView->setAllColumnsShowFocus( TRUE ); |
53 | QPEApplication::setStylusOperation( ProcessView->viewport(), QPEApplication::RightOnHold ); | 53 | QPEApplication::setStylusOperation( ProcessView->viewport(), QPEApplication::RightOnHold ); |
54 | connect( ProcessView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), | 54 | connect( ProcessView, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), |
55 | this, SLOT( viewProcess( QListViewItem * ) ) ); | 55 | this, SLOT( viewProcess(QListViewItem*) ) ); |
56 | layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 ); | 56 | layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 ); |
57 | QWhatsThis::add( ProcessView, tr( "This is a list of all the processes on this handheld device.\n\nClick and hold on a process to see additional information about the process, or to send a signal to it." ) ); | 57 | QWhatsThis::add( ProcessView, tr( "This is a list of all the processes on this handheld device.\n\nClick and hold on a process to see additional information about the process, or to send a signal to it." ) ); |
58 | 58 | ||
59 | SignalCB = new QComboBox( FALSE, this, "SignalCB" ); | 59 | SignalCB = new QComboBox( FALSE, this, "SignalCB" ); |
60 | SignalCB->insertItem( " 1: SIGHUP" ); | 60 | SignalCB->insertItem( " 1: SIGHUP" ); |
61 | SignalCB->insertItem( " 2: SIGINT" ); | 61 | SignalCB->insertItem( " 2: SIGINT" ); |
62 | SignalCB->insertItem( " 3: SIGQUIT" ); | 62 | SignalCB->insertItem( " 3: SIGQUIT" ); |
63 | SignalCB->insertItem( " 5: SIGTRAP" ); | 63 | SignalCB->insertItem( " 5: SIGTRAP" ); |
64 | SignalCB->insertItem( " 6: SIGABRT" ); | 64 | SignalCB->insertItem( " 6: SIGABRT" ); |
65 | SignalCB->insertItem( " 9: SIGKILL" ); | 65 | SignalCB->insertItem( " 9: SIGKILL" ); |
66 | SignalCB->insertItem( "14: SIGALRM" ); | 66 | SignalCB->insertItem( "14: SIGALRM" ); |
67 | SignalCB->insertItem( "15: SIGTERM" ); | 67 | SignalCB->insertItem( "15: SIGTERM" ); |
68 | SignalCB->insertItem( "18: SIGCONT" ); | 68 | SignalCB->insertItem( "18: SIGCONT" ); |
69 | SignalCB->insertItem( "19: SIGSTOP" ); | 69 | SignalCB->insertItem( "19: SIGSTOP" ); |
70 | layout->addWidget( SignalCB, 1, 0 ); | 70 | layout->addWidget( SignalCB, 1, 0 ); |
71 | QWhatsThis::add( SignalCB, tr( "Select a signal here and then click the Send button to the right to send to this process." ) ); | 71 | QWhatsThis::add( SignalCB, tr( "Select a signal here and then click the Send button to the right to send to this process." ) ); |
72 | 72 | ||
73 | SendButton = new QPushButton( this, "SendButton" ); | 73 | SendButton = new QPushButton( this, "SendButton" ); |
74 | SendButton->setMinimumSize( QSize( 50, 24 ) ); | 74 | SendButton->setMinimumSize( QSize( 50, 24 ) ); |
75 | SendButton->setMaximumSize( QSize( 50, 24 ) ); | 75 | SendButton->setMaximumSize( QSize( 50, 24 ) ); |
76 | SendButton->setText( tr( "Send" ) ); | 76 | SendButton->setText( tr( "Send" ) ); |
77 | connect( SendButton, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); | 77 | connect( SendButton, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); |
78 | layout->addWidget( SendButton, 1, 1 ); | 78 | layout->addWidget( SendButton, 1, 1 ); |
79 | QWhatsThis::add( SendButton, tr( "Click here to send the selected signal to this process." ) ); | 79 | QWhatsThis::add( SendButton, tr( "Click here to send the selected signal to this process." ) ); |
80 | 80 | ||
81 | QTimer *t = new QTimer( this ); | 81 | QTimer *t = new QTimer( this ); |
82 | connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); | 82 | connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); |
83 | t->start( 5000 ); | 83 | t->start( 5000 ); |
84 | 84 | ||
85 | updateData(); | 85 | updateData(); |
86 | 86 | ||
87 | ProcessDtl = new Detail(); | 87 | ProcessDtl = new Detail(); |
88 | QWhatsThis::add( ProcessDtl->detailView, tr( "This area shows detailed information about this process." ) ); | 88 | QWhatsThis::add( ProcessDtl->detailView, tr( "This area shows detailed information about this process." ) ); |
89 | } | 89 | } |
90 | 90 | ||
91 | ProcessInfo::~ProcessInfo() | 91 | ProcessInfo::~ProcessInfo() |
92 | {} | 92 | {} |
93 | 93 | ||
94 | void ProcessInfo::updateData() | 94 | void ProcessInfo::updateData() |
95 | { | 95 | { |
96 | int pid, ppid, pgrp, session, tty, tpgid, utime, stime, cutime, cstime, counter, priority, starttime, | 96 | int pid, ppid, pgrp, session, tty, tpgid, utime, stime, cutime, cstime, counter, priority, starttime, |
97 | signal, blocked, sigignore, sigcatch; | 97 | signal, blocked, sigignore, sigcatch; |
98 | uint flags, minflt, cminflt, majflt, cmajflt, timeout, itrealvalue, vsize, rss, rlim, startcode, | 98 | uint flags, minflt, cminflt, majflt, cmajflt, timeout, itrealvalue, vsize, rss, rlim, startcode, |
99 | endcode, startstack, kstkesp, kstkeip, wchan; | 99 | endcode, startstack, kstkesp, kstkeip, wchan; |
100 | char state; | 100 | char state; |
101 | char comm[64]; | 101 | char comm[64]; |
102 | 102 | ||
103 | QString selectedpid; | 103 | QString selectedpid; |
104 | QListViewItem *curritem = ProcessView->currentItem(); | 104 | QListViewItem *curritem = ProcessView->currentItem(); |
105 | if ( curritem ) | 105 | if ( curritem ) |
106 | { | 106 | { |
107 | selectedpid = curritem->text( 0 ); | 107 | selectedpid = curritem->text( 0 ); |
108 | } | 108 | } |
109 | 109 | ||
110 | ProcessView->clear(); | 110 | ProcessView->clear(); |
111 | 111 | ||
112 | QListViewItem *newitem; | 112 | QListViewItem *newitem; |
113 | QListViewItem *selecteditem = 0x0; | 113 | QListViewItem *selecteditem = 0x0; |
114 | QDir *procdir = new QDir("/proc", 0, QDir::Name, QDir::Dirs); | 114 | QDir *procdir = new QDir("/proc", 0, QDir::Name, QDir::Dirs); |
115 | QFileInfoList *proclist = new QFileInfoList(*(procdir->entryInfoList())); | 115 | QFileInfoList *proclist = new QFileInfoList(*(procdir->entryInfoList())); |
116 | if ( proclist ) | 116 | if ( proclist ) |
117 | { | 117 | { |
118 | QFileInfoListIterator it(*proclist); | 118 | QFileInfoListIterator it(*proclist); |
119 | QFileInfo *f; | 119 | QFileInfo *f; |
120 | while ( ( f = it.current() ) != 0 ) | 120 | while ( ( f = it.current() ) != 0 ) |
121 | { | 121 | { |
122 | ++it; | 122 | ++it; |
123 | QString processnum = f->fileName(); | 123 | QString processnum = f->fileName(); |
124 | if ( processnum >= "1" && processnum <= "99999" ) | 124 | if ( processnum >= "1" && processnum <= "99999" ) |
125 | { | 125 | { |
126 | FILE *procfile = fopen( ( QString ) ( "/proc/" + processnum + "/stat"), "r"); | 126 | FILE *procfile = fopen( ( QString ) ( "/proc/" + processnum + "/stat"), "r"); |
127 | 127 | ||
128 | if ( procfile ) | 128 | if ( procfile ) |
129 | { | 129 | { |
130 | fscanf( procfile, | 130 | fscanf( procfile, |
131 | "%d %s %c %d %d %d %d %d %u %u %u %u %u %d %d %d %d %d %d %u %u %d %u %u %u %u %u %u %u %u %d %d %d %d %u", | 131 | "%d %s %c %d %d %d %d %d %u %u %u %u %u %d %d %d %d %d %d %u %u %d %u %u %u %u %u %u %u %u %d %d %d %d %u", |
132 | &pid, comm, &state, &ppid, &pgrp, &session,&tty, &tpgid, &flags, &minflt, &cminflt, | 132 | &pid, comm, &state, &ppid, &pgrp, &session,&tty, &tpgid, &flags, &minflt, &cminflt, |
133 | &majflt, &cmajflt, &utime, &stime, &cutime, &cstime, &counter, &priority, &timeout, | 133 | &majflt, &cmajflt, &utime, &stime, &cutime, &cstime, &counter, &priority, &timeout, |
134 | &itrealvalue, &starttime, &vsize, &rss, &rlim, &startcode, &endcode, &startstack, | 134 | &itrealvalue, &starttime, &vsize, &rss, &rlim, &startcode, &endcode, &startstack, |
135 | &kstkesp, &kstkeip, &signal, &blocked, &sigignore, &sigcatch, &wchan ); | 135 | &kstkesp, &kstkeip, &signal, &blocked, &sigignore, &sigcatch, &wchan ); |
136 | processnum = processnum.rightJustify( 5, ' ' ); | 136 | processnum = processnum.rightJustify( 5, ' ' ); |
137 | QString processcmd = QString( comm ).replace( QRegExp( "[()]" ), "" ); | 137 | QString processcmd = QString( comm ).replace( QRegExp( "[()]" ), "" ); |
138 | QString processstatus = QChar(state); | 138 | QString processstatus = QChar(state); |
139 | QString processtime = QString::number( ( utime + stime ) / 100 ); | 139 | QString processtime = QString::number( ( utime + stime ) / 100 ); |
140 | processtime = processtime.rightJustify( 9, ' ' ); | 140 | processtime = processtime.rightJustify( 9, ' ' ); |
141 | fclose( procfile ); | 141 | fclose( procfile ); |
142 | 142 | ||
143 | newitem = new QListViewItem( ProcessView, processnum, processcmd, processstatus, processtime ); | 143 | newitem = new QListViewItem( ProcessView, processnum, processcmd, processstatus, processtime ); |
144 | if ( processnum == selectedpid ) | 144 | if ( processnum == selectedpid ) |
145 | { | 145 | { |
146 | selecteditem = newitem; | 146 | selecteditem = newitem; |
147 | } | 147 | } |
148 | } | 148 | } |
149 | } | 149 | } |
150 | } | 150 | } |
151 | ProcessView->setCurrentItem( selecteditem ); | 151 | ProcessView->setCurrentItem( selecteditem ); |
diff --git a/noncore/settings/tabmanager/tabmanager.cpp b/noncore/settings/tabmanager/tabmanager.cpp index ff5957c..15aeaf5 100644 --- a/noncore/settings/tabmanager/tabmanager.cpp +++ b/noncore/settings/tabmanager/tabmanager.cpp | |||
@@ -1,135 +1,135 @@ | |||
1 | #include "tabmanager.h" | 1 | #include "tabmanager.h" |
2 | #include "app.h" | 2 | #include "app.h" |
3 | #include "wait.h" | 3 | #include "wait.h" |
4 | #include "tabapplnk.h" | 4 | #include "tabapplnk.h" |
5 | 5 | ||
6 | #include <qpe/applnk.h> | 6 | #include <qpe/applnk.h> |
7 | #include <qdir.h> | 7 | #include <qdir.h> |
8 | #include <qfile.h> | 8 | #include <qfile.h> |
9 | #include <qtextstream.h> | 9 | #include <qtextstream.h> |
10 | #include <qlistview.h> | 10 | #include <qlistview.h> |
11 | #include <qheader.h> | 11 | #include <qheader.h> |
12 | #include <qcombobox.h> | 12 | #include <qcombobox.h> |
13 | #include <qlineedit.h> | 13 | #include <qlineedit.h> |
14 | #include <qlabel.h> | 14 | #include <qlabel.h> |
15 | #include <qmessagebox.h> | 15 | #include <qmessagebox.h> |
16 | #include <stdlib.h> | 16 | #include <stdlib.h> |
17 | #include <qpe/qcopenvelope_qws.h> | 17 | #include <qpe/qcopenvelope_qws.h> |
18 | #include <qpe/qpeapplication.h> | 18 | #include <qpe/qpeapplication.h> |
19 | #include <qpe/resource.h> | 19 | #include <qpe/resource.h> |
20 | 20 | ||
21 | 21 | ||
22 | #define HOME_APP_DIR QPEApplication::qpeDir()+"/apps" | 22 | #define HOME_APP_DIR QPEApplication::qpeDir()+"/apps" |
23 | #define HOME_APP_INSTALL_DIR "/usr/lib/ipkg/info" | 23 | #define HOME_APP_INSTALL_DIR "/usr/lib/ipkg/info" |
24 | #define NEW_FOLDER "EmptyTab" | 24 | #define NEW_FOLDER "EmptyTab" |
25 | #define NEW_APPLICATION "NewApp" | 25 | #define NEW_APPLICATION "NewApp" |
26 | #define APPLICATION_EXTENSION ".desktop" | 26 | #define APPLICATION_EXTENSION ".desktop" |
27 | #define APPLICATION_EXTENSION_LENGTH 8 | 27 | #define APPLICATION_EXTENSION_LENGTH 8 |
28 | 28 | ||
29 | /** | 29 | /** |
30 | * Constructor. Sets up signals. Performs initial scan of applications | 30 | * Constructor. Sets up signals. Performs initial scan of applications |
31 | * and tabs | 31 | * and tabs |
32 | */ | 32 | */ |
33 | TabManager::TabManager( QWidget* parent, const char* name):TabManagerBase(parent, name), changed(false), application(NULL){ | 33 | TabManager::TabManager( QWidget* parent, const char* name):TabManagerBase(parent, name), changed(false), application(NULL){ |
34 | rescanFolder(HOME_APP_DIR); | 34 | rescanFolder(HOME_APP_DIR); |
35 | 35 | ||
36 | // Connect the signals and slots | 36 | // Connect the signals and slots |
37 | connect(tabList, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(editItem(QListViewItem*))); | 37 | connect(tabList, SIGNAL(doubleClicked(QListViewItem*)), this, SLOT(editItem(QListViewItem*))); |
38 | (tabList->header())->hide(); | 38 | (tabList->header())->hide(); |
39 | connect(tabList, SIGNAL(moveItem(QListViewItem *, QListViewItem *)), this, SLOT(moveApplication(QListViewItem *, QListViewItem *))); | 39 | connect(tabList, SIGNAL(moveItem(QListViewItem*,QListViewItem*)), this, SLOT(moveApplication(QListViewItem*,QListViewItem*))); |
40 | } | 40 | } |
41 | 41 | ||
42 | /** | 42 | /** |
43 | * If anything in the tab's have been changed then update the system or alert | 43 | * If anything in the tab's have been changed then update the system or alert |
44 | * the user. | 44 | * the user. |
45 | */ | 45 | */ |
46 | TabManager::~TabManager(){ | 46 | TabManager::~TabManager(){ |
47 | if(changed){ | 47 | if(changed){ |
48 | // Prompt. | 48 | // Prompt. |
49 | //int answer = QMessageBox::warning(this, "Message", "Should your desktop be","Yes", "Cancel", 0, 1 ); | 49 | //int answer = QMessageBox::warning(this, "Message", "Should your desktop be","Yes", "Cancel", 0, 1 ); |
50 | //if (answer) | 50 | //if (answer) |
51 | // return; | 51 | // return; |
52 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); | 52 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); |
53 | QString link; //we'll just send an empty string | 53 | QString link; //we'll just send an empty string |
54 | e << link; | 54 | e << link; |
55 | } | 55 | } |
56 | } | 56 | } |
57 | 57 | ||
58 | /** | 58 | /** |
59 | * Scans root directory for any tabs or applications. Will recursivly go down, | 59 | * Scans root directory for any tabs or applications. Will recursivly go down, |
60 | * but will not follow symlinks. | 60 | * but will not follow symlinks. |
61 | * @param directory - the directory to look in. | 61 | * @param directory - the directory to look in. |
62 | * @param parent - the parent to place any new tabs or apps into. If parent is | 62 | * @param parent - the parent to place any new tabs or apps into. If parent is |
63 | * NULL then the item is a tab and should be placed as a child of the window. | 63 | * NULL then the item is a tab and should be placed as a child of the window. |
64 | */ | 64 | */ |
65 | void TabManager::rescanFolder(QString directory, QListViewItem* parent){ | 65 | void TabManager::rescanFolder(QString directory, QListViewItem* parent){ |
66 | //qDebug(QString("rescanFolder: ") + directory.latin1()); | 66 | //qDebug(QString("rescanFolder: ") + directory.latin1()); |
67 | 67 | ||
68 | QDir d; | 68 | QDir d; |
69 | d.setPath(directory); | 69 | d.setPath(directory); |
70 | // Show hidden files for .directories | 70 | // Show hidden files for .directories |
71 | d.setFilter( QDir::Files | QDir::Hidden | QDir::Dirs); | 71 | d.setFilter( QDir::Files | QDir::Hidden | QDir::Dirs); |
72 | 72 | ||
73 | const QFileInfoList *list = d.entryInfoList(); | 73 | const QFileInfoList *list = d.entryInfoList(); |
74 | QFileInfoListIterator it( *list ); // create list iterator | 74 | QFileInfoListIterator it( *list ); // create list iterator |
75 | QFileInfo *fi; // pointer for traversing | 75 | QFileInfo *fi; // pointer for traversing |
76 | 76 | ||
77 | while ( (fi=it.current()) ) { // for each file... | 77 | while ( (fi=it.current()) ) { // for each file... |
78 | // If it is a dir and not .. or . then add it as a tab and go down. | 78 | // If it is a dir and not .. or . then add it as a tab and go down. |
79 | if(fi->isDir()){ | 79 | if(fi->isDir()){ |
80 | if(fi->fileName() != ".." && fi->fileName() != ".") { | 80 | if(fi->fileName() != ".." && fi->fileName() != ".") { |
81 | QListViewItem* newItem; | 81 | QListViewItem* newItem; |
82 | if(!parent) | 82 | if(!parent) |
83 | newItem = new QListViewItem(tabList, fi->fileName()); | 83 | newItem = new QListViewItem(tabList, fi->fileName()); |
84 | else | 84 | else |
85 | newItem = new QListViewItem(parent, fi->fileName()); | 85 | newItem = new QListViewItem(parent, fi->fileName()); |
86 | itemList.insert(newItem, directory + "/" + fi->fileName() + "/.directory" ); | 86 | itemList.insert(newItem, directory + "/" + fi->fileName() + "/.directory" ); |
87 | rescanFolder(directory + "/" + fi->fileName(), newItem); | 87 | rescanFolder(directory + "/" + fi->fileName(), newItem); |
88 | } | 88 | } |
89 | } | 89 | } |
90 | else{ | 90 | else{ |
91 | // it is a file, if not a .directory add to parent. | 91 | // it is a file, if not a .directory add to parent. |
92 | 92 | ||
93 | // Change parents name and icon to reflect icon. | 93 | // Change parents name and icon to reflect icon. |
94 | if(fi->fileName() == ".directory"){ | 94 | if(fi->fileName() == ".directory"){ |
95 | AppLnk app(directory + "/" + fi->fileName()); | 95 | AppLnk app(directory + "/" + fi->fileName()); |
96 | if(parent){ | 96 | if(parent){ |
97 | parent->setPixmap(0,app.pixmap()); | 97 | parent->setPixmap(0,app.pixmap()); |
98 | parent->setText(0, app.name()); | 98 | parent->setText(0, app.name()); |
99 | } | 99 | } |
100 | } | 100 | } |
101 | else{ | 101 | else{ |
102 | // Add any desktop files found. | 102 | // Add any desktop files found. |
103 | QListViewItem* newItem; | 103 | QListViewItem* newItem; |
104 | if(directory != HOME_APP_DIR){ | 104 | if(directory != HOME_APP_DIR){ |
105 | if(!parent) | 105 | if(!parent) |
106 | newItem = new QListViewItem(tabList, fi->fileName()); | 106 | newItem = new QListViewItem(tabList, fi->fileName()); |
107 | else | 107 | else |
108 | newItem = new QListViewItem(parent, fi->fileName()); | 108 | newItem = new QListViewItem(parent, fi->fileName()); |
109 | if(fi->fileName().right(APPLICATION_EXTENSION_LENGTH) == APPLICATION_EXTENSION){ | 109 | if(fi->fileName().right(APPLICATION_EXTENSION_LENGTH) == APPLICATION_EXTENSION){ |
110 | AppLnk app(directory + "/" + fi->fileName()); | 110 | AppLnk app(directory + "/" + fi->fileName()); |
111 | newItem->setPixmap(0,app.pixmap()); | 111 | newItem->setPixmap(0,app.pixmap()); |
112 | newItem->setText(0, app.name()); | 112 | newItem->setText(0, app.name()); |
113 | itemList.insert(newItem, directory + "/" + fi->fileName()); | 113 | itemList.insert(newItem, directory + "/" + fi->fileName()); |
114 | } | 114 | } |
115 | } | 115 | } |
116 | } | 116 | } |
117 | } | 117 | } |
118 | ++it; // goto next list element | 118 | ++it; // goto next list element |
119 | } | 119 | } |
120 | } | 120 | } |
121 | 121 | ||
122 | /** | 122 | /** |
123 | * Create a new blank Tab. | 123 | * Create a new blank Tab. |
124 | * Create a physical folder with .directory file | 124 | * Create a physical folder with .directory file |
125 | * Create a item on the list | 125 | * Create a item on the list |
126 | */ | 126 | */ |
127 | void TabManager::newFolder(){ | 127 | void TabManager::newFolder(){ |
128 | QDir r; | 128 | QDir r; |
129 | r.mkdir(QString(HOME_APP_DIR) + "/" + NEW_FOLDER); | 129 | r.mkdir(QString(HOME_APP_DIR) + "/" + NEW_FOLDER); |
130 | system((QString("echo [Desktop Entry] | cat >> ") + HOME_APP_DIR + "/" + NEW_FOLDER "/.directory").latin1()); | 130 | system((QString("echo [Desktop Entry] | cat >> ") + HOME_APP_DIR + "/" + NEW_FOLDER "/.directory").latin1()); |
131 | system((QString("echo Name=" NEW_FOLDER " | cat >> ") + HOME_APP_DIR + "/" + NEW_FOLDER "/.directory").latin1()); | 131 | system((QString("echo Name=" NEW_FOLDER " | cat >> ") + HOME_APP_DIR + "/" + NEW_FOLDER "/.directory").latin1()); |
132 | 132 | ||
133 | QString homeLocation = QString(HOME_APP_DIR) + "/" + NEW_FOLDER + "/.directory"; | 133 | QString homeLocation = QString(HOME_APP_DIR) + "/" + NEW_FOLDER + "/.directory"; |
134 | QListViewItem *newItem = new QListViewItem(tabList, NEW_FOLDER); | 134 | QListViewItem *newItem = new QListViewItem(tabList, NEW_FOLDER); |
135 | itemList.insert(newItem, homeLocation ); | 135 | itemList.insert(newItem, homeLocation ); |
diff --git a/noncore/settings/usermanager/usermanager.cpp b/noncore/settings/usermanager/usermanager.cpp index 5411995..a1130d4 100644 --- a/noncore/settings/usermanager/usermanager.cpp +++ b/noncore/settings/usermanager/usermanager.cpp | |||
@@ -1,176 +1,176 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * This program is free software; you can redistribute it and/or modify * | 3 | * This program is free software; you can redistribute it and/or modify * |
4 | * it under the terms of the GNU General Public License as published by * | 4 | * it under the terms of the GNU General Public License as published by * |
5 | * the Free Software Foundation; either version 2 of the License, or * | 5 | * the Free Software Foundation; either version 2 of the License, or * |
6 | * (at your option) any later version. * | 6 | * (at your option) any later version. * |
7 | * * | 7 | * * |
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | 9 | ||
10 | #include "usermanager.h" | 10 | #include "usermanager.h" |
11 | 11 | ||
12 | #include <qlayout.h> | 12 | #include <qlayout.h> |
13 | 13 | ||
14 | #include <qmessagebox.h> | 14 | #include <qmessagebox.h> |
15 | #include <qfile.h> | 15 | #include <qfile.h> |
16 | #include <qpe/resource.h> | 16 | #include <qpe/resource.h> |
17 | 17 | ||
18 | #include <qregexp.h> | 18 | #include <qregexp.h> |
19 | 19 | ||
20 | /** | 20 | /** |
21 | * The mainwindow constructor. | 21 | * The mainwindow constructor. |
22 | * | 22 | * |
23 | * @param QWidget *parent | 23 | * @param QWidget *parent |
24 | * @param const char *name | 24 | * @param const char *name |
25 | * @ param WFlags fl | 25 | * @ param WFlags fl |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | UserConfig::UserConfig(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) { | 28 | UserConfig::UserConfig(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) { |
29 | setCaption(tr("Opie User Manager")); | 29 | setCaption(tr("Opie User Manager")); |
30 | 30 | ||
31 | // Create an instance of the global object 'accounts'. This holds all user/group info, and functions to modify them. | 31 | // Create an instance of the global object 'accounts'. This holds all user/group info, and functions to modify them. |
32 | accounts=new Passwd(); | 32 | accounts=new Passwd(); |
33 | accounts->open();// This actually loads the files /etc/passwd & /etc/group into memory. | 33 | accounts->open();// This actually loads the files /etc/passwd & /etc/group into memory. |
34 | 34 | ||
35 | // Create the toolbar. | 35 | // Create the toolbar. |
36 | QToolBar *toolbar = new QToolBar(this,"Toolbar"); | 36 | QToolBar *toolbar = new QToolBar(this,"Toolbar"); |
37 | toolbar->setHorizontalStretchable(1); // Is there any other way to get the toolbar to stretch of the full screen!? | 37 | toolbar->setHorizontalStretchable(1); // Is there any other way to get the toolbar to stretch of the full screen!? |
38 | adduserToolButton = new QToolButton(Resource::loadPixmap("usermanager/adduser"),"Add User",0,this,SLOT(addUser()),toolbar,"Add User"); | 38 | adduserToolButton = new QToolButton(Resource::loadPixmap("usermanager/adduser"),"Add User",0,this,SLOT(addUser()),toolbar,"Add User"); |
39 | edituserToolButton = new QToolButton(Resource::loadPixmap("usermanager/edituser"),"Edit User",0,this,SLOT(editUser()),toolbar,"Edit User"); | 39 | edituserToolButton = new QToolButton(Resource::loadPixmap("usermanager/edituser"),"Edit User",0,this,SLOT(editUser()),toolbar,"Edit User"); |
40 | deleteuserToolButton = new QToolButton(Resource::loadPixmap("usermanager/deleteuser"),"Delete User",0,this,SLOT(delUser()),toolbar,"Delete User"); | 40 | deleteuserToolButton = new QToolButton(Resource::loadPixmap("usermanager/deleteuser"),"Delete User",0,this,SLOT(delUser()),toolbar,"Delete User"); |
41 | QToolButton *userstext = new QToolButton(0,"User",0,0,0,toolbar,"User"); | 41 | QToolButton *userstext = new QToolButton(0,"User",0,0,0,toolbar,"User"); |
42 | userstext->setUsesTextLabel(true); | 42 | userstext->setUsesTextLabel(true); |
43 | toolbar->addSeparator(); | 43 | toolbar->addSeparator(); |
44 | addgroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/addgroup"),"Add Group",0,this,SLOT(addGroup()),toolbar,"Add Group"); | 44 | addgroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/addgroup"),"Add Group",0,this,SLOT(addGroup()),toolbar,"Add Group"); |
45 | editgroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/editgroup"),"Edit Group",0,this,SLOT(editGroup()),toolbar,"Edit Group"); | 45 | editgroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/editgroup"),"Edit Group",0,this,SLOT(editGroup()),toolbar,"Edit Group"); |
46 | deletegroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/deletegroup"),"Delete Group",0,this,SLOT(delGroup()),toolbar,"Delete Group"); | 46 | deletegroupToolButton = new QToolButton(Resource::loadPixmap("usermanager/deletegroup"),"Delete Group",0,this,SLOT(delGroup()),toolbar,"Delete Group"); |
47 | QToolButton *groupstext = new QToolButton(0,"Group",0,0,0,toolbar,"Group"); | 47 | QToolButton *groupstext = new QToolButton(0,"Group",0,0,0,toolbar,"Group"); |
48 | groupstext->setUsesTextLabel(true); | 48 | groupstext->setUsesTextLabel(true); |
49 | addToolBar(toolbar,"myToolBar"); | 49 | addToolBar(toolbar,"myToolBar"); |
50 | 50 | ||
51 | // Add a tabwidget and all the tabs. | 51 | // Add a tabwidget and all the tabs. |
52 | myTabWidget = new QTabWidget(this,"My Tab Widget"); | 52 | myTabWidget = new QTabWidget(this,"My Tab Widget"); |
53 | setupTabAccounts(); | 53 | setupTabAccounts(); |
54 | setupTabAllUsers(); | 54 | setupTabAllUsers(); |
55 | setupTabAllGroups(); | 55 | setupTabAllGroups(); |
56 | userPopupMenu.insertItem("Copy",0); | 56 | userPopupMenu.insertItem("Copy",0); |
57 | 57 | ||
58 | getUsers(); // Fill out the iconview & listview with all users. | 58 | getUsers(); // Fill out the iconview & listview with all users. |
59 | getGroups(); // Fill out the group listview with all groups. | 59 | getGroups(); // Fill out the group listview with all groups. |
60 | 60 | ||
61 | setCentralWidget(myTabWidget); | 61 | setCentralWidget(myTabWidget); |
62 | } | 62 | } |
63 | 63 | ||
64 | UserConfig::~UserConfig() { | 64 | UserConfig::~UserConfig() { |
65 | accounts->close(); | 65 | accounts->close(); |
66 | delete accounts; | 66 | delete accounts; |
67 | } | 67 | } |
68 | 68 | ||
69 | void UserConfig::setupTabAccounts() { | 69 | void UserConfig::setupTabAccounts() { |
70 | QWidget *tabpage = new QWidget(this); | 70 | QWidget *tabpage = new QWidget(this); |
71 | QVBoxLayout *layout = new QVBoxLayout(tabpage); | 71 | QVBoxLayout *layout = new QVBoxLayout(tabpage); |
72 | layout->setMargin(5); | 72 | layout->setMargin(5); |
73 | 73 | ||
74 | usersIconView=new QListView(tabpage,"users"); | 74 | usersIconView=new QListView(tabpage,"users"); |
75 | usersIconView->addColumn("Icon"); | 75 | usersIconView->addColumn("Icon"); |
76 | usersIconView->addColumn("Username"); | 76 | usersIconView->addColumn("Username"); |
77 | usersIconView->setAllColumnsShowFocus(true); | 77 | usersIconView->setAllColumnsShowFocus(true); |
78 | layout->addWidget(usersIconView); | 78 | layout->addWidget(usersIconView); |
79 | 79 | ||
80 | connect(usersIconView,SIGNAL(returnPressed(QListViewItem *)),this,SLOT(showUserMenu(QListViewItem *))); | 80 | connect(usersIconView,SIGNAL(returnPressed(QListViewItem*)),this,SLOT(showUserMenu(QListViewItem*))); |
81 | 81 | ||
82 | myTabWidget->addTab(tabpage,"Users"); | 82 | myTabWidget->addTab(tabpage,"Users"); |
83 | } | 83 | } |
84 | 84 | ||
85 | void UserConfig::setupTabAllUsers() { | 85 | void UserConfig::setupTabAllUsers() { |
86 | QWidget *tabpage = new QWidget(this); | 86 | QWidget *tabpage = new QWidget(this); |
87 | QVBoxLayout *layout = new QVBoxLayout(tabpage); | 87 | QVBoxLayout *layout = new QVBoxLayout(tabpage); |
88 | layout->setMargin(5); | 88 | layout->setMargin(5); |
89 | 89 | ||
90 | usersListView=new QListView(tabpage,"allusers"); | 90 | usersListView=new QListView(tabpage,"allusers"); |
91 | usersListView->addColumn("UID"); | 91 | usersListView->addColumn("UID"); |
92 | usersListView->addColumn("Login"); | 92 | usersListView->addColumn("Login"); |
93 | usersListView->addColumn("Username"); | 93 | usersListView->addColumn("Username"); |
94 | layout->addWidget(usersListView); | 94 | layout->addWidget(usersListView); |
95 | usersListView->setSorting(1,1); | 95 | usersListView->setSorting(1,1); |
96 | usersListView->setAllColumnsShowFocus(true); | 96 | usersListView->setAllColumnsShowFocus(true); |
97 | 97 | ||
98 | myTabWidget->addTab(tabpage,"All Users"); | 98 | myTabWidget->addTab(tabpage,"All Users"); |
99 | } | 99 | } |
100 | 100 | ||
101 | void UserConfig::setupTabAllGroups() { | 101 | void UserConfig::setupTabAllGroups() { |
102 | QWidget *tabpage = new QWidget(this); | 102 | QWidget *tabpage = new QWidget(this); |
103 | QVBoxLayout *layout = new QVBoxLayout(tabpage); | 103 | QVBoxLayout *layout = new QVBoxLayout(tabpage); |
104 | layout->setMargin(5); | 104 | layout->setMargin(5); |
105 | 105 | ||
106 | groupsListView=new QListView(tabpage,"groups"); | 106 | groupsListView=new QListView(tabpage,"groups"); |
107 | groupsListView->addColumn("GID"); | 107 | groupsListView->addColumn("GID"); |
108 | groupsListView->addColumn("Groupname"); | 108 | groupsListView->addColumn("Groupname"); |
109 | layout->addWidget(groupsListView); | 109 | layout->addWidget(groupsListView); |
110 | groupsListView->setSorting(1,1); | 110 | groupsListView->setSorting(1,1); |
111 | groupsListView->setAllColumnsShowFocus(true); | 111 | groupsListView->setAllColumnsShowFocus(true); |
112 | 112 | ||
113 | myTabWidget->addTab(tabpage,"All Groups"); | 113 | myTabWidget->addTab(tabpage,"All Groups"); |
114 | } | 114 | } |
115 | void UserConfig::getUsers() { | 115 | void UserConfig::getUsers() { |
116 | QString mytext; | 116 | QString mytext; |
117 | QPixmap mypixmap; | 117 | QPixmap mypixmap; |
118 | QListViewItem *listviewitem; | 118 | QListViewItem *listviewitem; |
119 | 119 | ||
120 | // Empty the iconview & the listview. | 120 | // Empty the iconview & the listview. |
121 | usersIconView->clear(); | 121 | usersIconView->clear(); |
122 | usersListView->clear(); | 122 | usersListView->clear(); |
123 | 123 | ||
124 | // availableUID is used as a deposite for the next available UID on the system, this should start at an ID over 500. | 124 | // availableUID is used as a deposite for the next available UID on the system, this should start at an ID over 500. |
125 | availableUID=500; | 125 | availableUID=500; |
126 | for(QStringList::Iterator it=accounts->passwdStringList.begin(); it!=accounts->passwdStringList.end(); ++it) { | 126 | for(QStringList::Iterator it=accounts->passwdStringList.begin(); it!=accounts->passwdStringList.end(); ++it) { |
127 | accounts->splitPasswdEntry(*it); // Split the string into it's components and store in variables in the accounts object. ("pr_name" and so on.) | 127 | accounts->splitPasswdEntry(*it); // Split the string into it's components and store in variables in the accounts object. ("pr_name" and so on.) |
128 | if(accounts->pw_name.find(QRegExp("^#"),0)) {// Skip commented lines. | 128 | if(accounts->pw_name.find(QRegExp("^#"),0)) {// Skip commented lines. |
129 | new QListViewItem(usersListView,QString::number(accounts->pw_uid),accounts->pw_name,accounts->pw_gecos); | 129 | new QListViewItem(usersListView,QString::number(accounts->pw_uid),accounts->pw_name,accounts->pw_gecos); |
130 | if((accounts->pw_uid>=500) && (accounts->pw_uid<65000)) {// Is this user a "normal" user ? | 130 | if((accounts->pw_uid>=500) && (accounts->pw_uid<65000)) {// Is this user a "normal" user ? |
131 | mytext=QString(accounts->pw_name)+" - ("+QString(accounts->pw_gecos)+")"; // The string displayed next to the icon. | 131 | mytext=QString(accounts->pw_name)+" - ("+QString(accounts->pw_gecos)+")"; // The string displayed next to the icon. |
132 | if(!(mypixmap.load("/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"))) { // Is there an icon for this user? Resource::loadPixmap is caching, doesn't work. | 132 | if(!(mypixmap.load("/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"))) { // Is there an icon for this user? Resource::loadPixmap is caching, doesn't work. |
133 | mypixmap=Resource::loadPixmap(QString("usermanager/usericon"));// If this user has no icon, load the default icon. | 133 | mypixmap=Resource::loadPixmap(QString("usermanager/usericon"));// If this user has no icon, load the default icon. |
134 | } | 134 | } |
135 | listviewitem=new QListViewItem(usersIconView,"",mytext);// Add the icon+text to the qiconview. | 135 | listviewitem=new QListViewItem(usersIconView,"",mytext);// Add the icon+text to the qiconview. |
136 | listviewitem->setPixmap(0,mypixmap); | 136 | listviewitem->setPixmap(0,mypixmap); |
137 | } | 137 | } |
138 | if((accounts->pw_uid>=availableUID) && (accounts->pw_uid<65000)) availableUID=accounts->pw_uid+1; // Increase 1 to the latest know UID to get a free uid. | 138 | if((accounts->pw_uid>=availableUID) && (accounts->pw_uid<65000)) availableUID=accounts->pw_uid+1; // Increase 1 to the latest know UID to get a free uid. |
139 | } | 139 | } |
140 | } | 140 | } |
141 | usersIconView->sort(); | 141 | usersIconView->sort(); |
142 | } | 142 | } |
143 | 143 | ||
144 | void UserConfig::addUser() { | 144 | void UserConfig::addUser() { |
145 | if(UserDialog::addUser(availableUID,availableGID)) {// Add the user to the system, also send next available UID and GID. | 145 | if(UserDialog::addUser(availableUID,availableGID)) {// Add the user to the system, also send next available UID and GID. |
146 | getUsers(); // Update users views. | 146 | getUsers(); // Update users views. |
147 | getGroups(); // Update groups view. | 147 | getGroups(); // Update groups view. |
148 | } | 148 | } |
149 | } | 149 | } |
150 | 150 | ||
151 | void UserConfig::editUser() { | 151 | void UserConfig::editUser() { |
152 | QString username; | 152 | QString username; |
153 | if(myTabWidget->currentPageIndex()==0) {// Users | 153 | if(myTabWidget->currentPageIndex()==0) {// Users |
154 | if(usersIconView->currentItem()) {// Any icon selected? | 154 | if(usersIconView->currentItem()) {// Any icon selected? |
155 | username=usersIconView->currentItem()->text(1);// Get the text associated with the icon. | 155 | username=usersIconView->currentItem()->text(1);// Get the text associated with the icon. |
156 | username=username.left(username.find(" - (",0,true));// Strip out the username. | 156 | username=username.left(username.find(" - (",0,true));// Strip out the username. |
157 | if(UserDialog::editUser(username)) {// Bring up the userinfo dialog. | 157 | if(UserDialog::editUser(username)) {// Bring up the userinfo dialog. |
158 | // If there were any changed also update the views. | 158 | // If there were any changed also update the views. |
159 | getUsers(); | 159 | getUsers(); |
160 | getGroups(); | 160 | getGroups(); |
161 | } | 161 | } |
162 | } else { | 162 | } else { |
163 | QMessageBox::information(this,"No selection.","No user has been selected."); | 163 | QMessageBox::information(this,"No selection.","No user has been selected."); |
164 | } | 164 | } |
165 | } | 165 | } |
166 | if(myTabWidget->currentPageIndex()==1) {// All users | 166 | if(myTabWidget->currentPageIndex()==1) {// All users |
167 | if(usersListView->currentItem()) {// Anything changed!? | 167 | if(usersListView->currentItem()) {// Anything changed!? |
168 | username=usersListView->currentItem()->text(1);// Get the username. | 168 | username=usersListView->currentItem()->text(1);// Get the username. |
169 | if(UserDialog::editUser(username)) {// Bring up the userinfo dialog. | 169 | if(UserDialog::editUser(username)) {// Bring up the userinfo dialog. |
170 | // And again update the views if there were any changes. | 170 | // And again update the views if there were any changes. |
171 | getUsers(); | 171 | getUsers(); |
172 | getGroups(); | 172 | getGroups(); |
173 | } | 173 | } |
174 | } else { | 174 | } else { |
175 | QMessageBox::information(this,"No selection.","No user has been selected."); | 175 | QMessageBox::information(this,"No selection.","No user has been selected."); |
176 | } | 176 | } |
diff --git a/noncore/styles/liquid/liquidset.cpp b/noncore/styles/liquid/liquidset.cpp index 7747da7..a7cfccc 100644 --- a/noncore/styles/liquid/liquidset.cpp +++ b/noncore/styles/liquid/liquidset.cpp | |||
@@ -27,143 +27,143 @@ | |||
27 | #include <qpe/global.h> | 27 | #include <qpe/global.h> |
28 | 28 | ||
29 | #include <qslider.h> | 29 | #include <qslider.h> |
30 | #include <qcombobox.h> | 30 | #include <qcombobox.h> |
31 | #include <qradiobutton.h> | 31 | #include <qradiobutton.h> |
32 | #include <qcheckbox.h> | 32 | #include <qcheckbox.h> |
33 | #include <qlabel.h> | 33 | #include <qlabel.h> |
34 | #include <qlayout.h> | 34 | #include <qlayout.h> |
35 | 35 | ||
36 | #include <qpe/config.h> | 36 | #include <qpe/config.h> |
37 | 37 | ||
38 | #include <opie/ocolorbutton.h> | 38 | #include <opie/ocolorbutton.h> |
39 | 39 | ||
40 | 40 | ||
41 | LiquidSettings::LiquidSettings ( QWidget* parent, const char *name, WFlags fl ) | 41 | LiquidSettings::LiquidSettings ( QWidget* parent, const char *name, WFlags fl ) |
42 | : QWidget ( parent, name, fl ) | 42 | : QWidget ( parent, name, fl ) |
43 | { | 43 | { |
44 | setCaption ( tr( "Liquid Style" ) ); | 44 | setCaption ( tr( "Liquid Style" ) ); |
45 | 45 | ||
46 | Config config ( "qpe" ); | 46 | Config config ( "qpe" ); |
47 | config. setGroup ( "Liquid-Style" ); | 47 | config. setGroup ( "Liquid-Style" ); |
48 | 48 | ||
49 | m_type = config. readNumEntry ( "Type", TransStippleBg ); | 49 | m_type = config. readNumEntry ( "Type", TransStippleBg ); |
50 | QColor mcol = QColor ( config. readEntry ( "Color", QApplication::palette ( ). active ( ). button ( ). name ( ))); | 50 | QColor mcol = QColor ( config. readEntry ( "Color", QApplication::palette ( ). active ( ). button ( ). name ( ))); |
51 | QColor tcol = QColor ( config. readEntry ( "TextColor", QApplication::palette ( ). active ( ). text ( ). name ( ))); | 51 | QColor tcol = QColor ( config. readEntry ( "TextColor", QApplication::palette ( ). active ( ). text ( ). name ( ))); |
52 | int opacity = config. readNumEntry ( "Opacity", 10 ); | 52 | int opacity = config. readNumEntry ( "Opacity", 10 ); |
53 | m_shadow = config. readBoolEntry ( "ShadowText", true ); | 53 | m_shadow = config. readBoolEntry ( "ShadowText", true ); |
54 | int contrast = config. readNumEntry ( "StippleContrast", 5 ); | 54 | int contrast = config. readNumEntry ( "StippleContrast", 5 ); |
55 | m_flat = config. readBoolEntry ( "FlatToolButtons", false ); | 55 | m_flat = config. readBoolEntry ( "FlatToolButtons", false ); |
56 | 56 | ||
57 | QVBoxLayout *vbox = new QVBoxLayout ( this ); | 57 | QVBoxLayout *vbox = new QVBoxLayout ( this ); |
58 | vbox-> setSpacing ( 3 ); | 58 | vbox-> setSpacing ( 3 ); |
59 | vbox-> setMargin ( 4 ); | 59 | vbox-> setMargin ( 4 ); |
60 | 60 | ||
61 | QComboBox *cb = new QComboBox ( this ); | 61 | QComboBox *cb = new QComboBox ( this ); |
62 | cb-> insertItem ( tr( "No translucency" ), None ); | 62 | cb-> insertItem ( tr( "No translucency" ), None ); |
63 | cb-> insertItem ( tr( "Stippled, background color" ), StippledBg ); | 63 | cb-> insertItem ( tr( "Stippled, background color" ), StippledBg ); |
64 | cb-> insertItem ( tr( "Stippled, button color" ), StippledBtn ); | 64 | cb-> insertItem ( tr( "Stippled, button color" ), StippledBtn ); |
65 | cb-> insertItem ( tr( "Translucent stippled, background color" ), TransStippleBg ); | 65 | cb-> insertItem ( tr( "Translucent stippled, background color" ), TransStippleBg ); |
66 | cb-> insertItem ( tr( "Translucent stippled, button color" ), TransStippleBtn ); | 66 | cb-> insertItem ( tr( "Translucent stippled, button color" ), TransStippleBtn ); |
67 | cb-> insertItem ( tr( "Custom translucency" ), Custom ); | 67 | cb-> insertItem ( tr( "Custom translucency" ), Custom ); |
68 | 68 | ||
69 | cb-> setCurrentItem ( m_type ); | 69 | cb-> setCurrentItem ( m_type ); |
70 | vbox-> addWidget ( cb ); | 70 | vbox-> addWidget ( cb ); |
71 | 71 | ||
72 | 72 | ||
73 | QGridLayout *grid = new QGridLayout ( vbox ); | 73 | QGridLayout *grid = new QGridLayout ( vbox ); |
74 | grid-> addColSpacing ( 0, 16 ); | 74 | grid-> addColSpacing ( 0, 16 ); |
75 | grid-> addColSpacing ( 3, 8 ); | 75 | grid-> addColSpacing ( 3, 8 ); |
76 | 76 | ||
77 | grid-> addWidget ( m_menulbl = new QLabel ( tr( "Menu color" ), this ), 0, 1 ); | 77 | grid-> addWidget ( m_menulbl = new QLabel ( tr( "Menu color" ), this ), 0, 1 ); |
78 | grid-> addWidget ( m_textlbl = new QLabel ( tr( "Text color" ), this ), 0, 4 ); | 78 | grid-> addWidget ( m_textlbl = new QLabel ( tr( "Text color" ), this ), 0, 4 ); |
79 | grid-> addWidget ( m_opaclbl = new QLabel ( tr( "Opacity" ), this ), 1, 1 ); | 79 | grid-> addWidget ( m_opaclbl = new QLabel ( tr( "Opacity" ), this ), 1, 1 ); |
80 | 80 | ||
81 | m_menubtn = new OColorButton ( this, mcol ); | 81 | m_menubtn = new OColorButton ( this, mcol ); |
82 | grid-> addWidget ( m_menubtn, 0, 2 ); | 82 | grid-> addWidget ( m_menubtn, 0, 2 ); |
83 | 83 | ||
84 | m_textbtn = new OColorButton ( this, tcol ); | 84 | m_textbtn = new OColorButton ( this, tcol ); |
85 | grid-> addWidget ( m_textbtn, 0, 5 ); | 85 | grid-> addWidget ( m_textbtn, 0, 5 ); |
86 | 86 | ||
87 | m_opacsld = new QSlider ( Horizontal, this ); | 87 | m_opacsld = new QSlider ( Horizontal, this ); |
88 | m_opacsld-> setRange ( -20, 20 ); | 88 | m_opacsld-> setRange ( -20, 20 ); |
89 | m_opacsld-> setSteps ( 1, 1 ); | 89 | m_opacsld-> setSteps ( 1, 1 ); |
90 | m_opacsld-> setValue ( opacity ); | 90 | m_opacsld-> setValue ( opacity ); |
91 | m_opacsld-> setTickmarks ( QSlider::Below ); | 91 | m_opacsld-> setTickmarks ( QSlider::Below ); |
92 | grid-> addMultiCellWidget ( m_opacsld, 1, 1, 2, 5 ); | 92 | grid-> addMultiCellWidget ( m_opacsld, 1, 1, 2, 5 ); |
93 | 93 | ||
94 | vbox-> addSpacing ( 4 ); | 94 | vbox-> addSpacing ( 4 ); |
95 | 95 | ||
96 | QCheckBox *shadow = new QCheckBox ( tr( "Use shadowed menu text" ), this ); | 96 | QCheckBox *shadow = new QCheckBox ( tr( "Use shadowed menu text" ), this ); |
97 | shadow-> setChecked ( m_shadow ); | 97 | shadow-> setChecked ( m_shadow ); |
98 | vbox-> addWidget ( shadow ); | 98 | vbox-> addWidget ( shadow ); |
99 | 99 | ||
100 | vbox-> addSpacing ( 4 ); | 100 | vbox-> addSpacing ( 4 ); |
101 | 101 | ||
102 | QCheckBox *flattb = new QCheckBox ( tr( "Make toolbar buttons appear flat" ), this ); | 102 | QCheckBox *flattb = new QCheckBox ( tr( "Make toolbar buttons appear flat" ), this ); |
103 | flattb-> setChecked ( m_flat ); | 103 | flattb-> setChecked ( m_flat ); |
104 | vbox-> addWidget ( flattb ); | 104 | vbox-> addWidget ( flattb ); |
105 | 105 | ||
106 | vbox-> addSpacing ( 4 ); | 106 | vbox-> addSpacing ( 4 ); |
107 | 107 | ||
108 | QHBoxLayout *hbox = new QHBoxLayout ( vbox ); | 108 | QHBoxLayout *hbox = new QHBoxLayout ( vbox ); |
109 | 109 | ||
110 | hbox-> addWidget ( new QLabel ( tr( "Stipple contrast" ), this )); | 110 | hbox-> addWidget ( new QLabel ( tr( "Stipple contrast" ), this )); |
111 | 111 | ||
112 | m_contsld = new QSlider ( Horizontal, this ); | 112 | m_contsld = new QSlider ( Horizontal, this ); |
113 | m_contsld-> setRange ( 0, 10 ); | 113 | m_contsld-> setRange ( 0, 10 ); |
114 | m_contsld-> setSteps ( 1, 1 ); | 114 | m_contsld-> setSteps ( 1, 1 ); |
115 | m_contsld-> setValue ( contrast ); | 115 | m_contsld-> setValue ( contrast ); |
116 | m_contsld-> setTickmarks ( QSlider::Below ); | 116 | m_contsld-> setTickmarks ( QSlider::Below ); |
117 | hbox-> addWidget ( m_contsld, 10 ); | 117 | hbox-> addWidget ( m_contsld, 10 ); |
118 | 118 | ||
119 | vbox-> addStretch ( 10 ); | 119 | vbox-> addStretch ( 10 ); |
120 | 120 | ||
121 | changeType ( m_type ); | 121 | changeType ( m_type ); |
122 | 122 | ||
123 | connect ( cb, SIGNAL( highlighted ( int ) ), this, SLOT( changeType ( int ) ) ); | 123 | connect ( cb, SIGNAL( highlighted(int) ), this, SLOT( changeType(int) ) ); |
124 | connect ( shadow, SIGNAL( toggled ( bool ) ), this, SLOT( changeShadow ( bool ) ) ); | 124 | connect ( shadow, SIGNAL( toggled(bool) ), this, SLOT( changeShadow(bool) ) ); |
125 | connect ( flattb, SIGNAL( toggled ( bool ) ), this, SLOT( changeFlat ( bool ) ) ); | 125 | connect ( flattb, SIGNAL( toggled(bool) ), this, SLOT( changeFlat(bool) ) ); |
126 | } | 126 | } |
127 | 127 | ||
128 | void LiquidSettings::changeType ( int t ) | 128 | void LiquidSettings::changeType ( int t ) |
129 | { | 129 | { |
130 | bool custom = ( t == Custom ); | 130 | bool custom = ( t == Custom ); |
131 | 131 | ||
132 | m_menulbl-> setEnabled ( custom ); | 132 | m_menulbl-> setEnabled ( custom ); |
133 | m_textlbl-> setEnabled ( custom ); | 133 | m_textlbl-> setEnabled ( custom ); |
134 | m_opaclbl-> setEnabled ( custom ); | 134 | m_opaclbl-> setEnabled ( custom ); |
135 | m_menubtn-> setEnabled ( custom ); | 135 | m_menubtn-> setEnabled ( custom ); |
136 | m_textbtn-> setEnabled ( custom ); | 136 | m_textbtn-> setEnabled ( custom ); |
137 | m_opacsld-> setEnabled ( custom ); | 137 | m_opacsld-> setEnabled ( custom ); |
138 | 138 | ||
139 | m_type = t; | 139 | m_type = t; |
140 | } | 140 | } |
141 | 141 | ||
142 | void LiquidSettings::changeShadow ( bool b ) | 142 | void LiquidSettings::changeShadow ( bool b ) |
143 | { | 143 | { |
144 | m_shadow = b; | 144 | m_shadow = b; |
145 | } | 145 | } |
146 | 146 | ||
147 | void LiquidSettings::changeFlat ( bool b ) | 147 | void LiquidSettings::changeFlat ( bool b ) |
148 | { | 148 | { |
149 | m_flat = b; | 149 | m_flat = b; |
150 | } | 150 | } |
151 | 151 | ||
152 | 152 | ||
153 | bool LiquidSettings::writeConfig ( ) | 153 | bool LiquidSettings::writeConfig ( ) |
154 | { | 154 | { |
155 | Config config ( "qpe" ); | 155 | Config config ( "qpe" ); |
156 | config. setGroup ( "Liquid-Style" ); | 156 | config. setGroup ( "Liquid-Style" ); |
157 | 157 | ||
158 | config. writeEntry ( "Type", m_type ); | 158 | config. writeEntry ( "Type", m_type ); |
159 | config. writeEntry ( "Color", m_menubtn-> color ( ). name ( )); | 159 | config. writeEntry ( "Color", m_menubtn-> color ( ). name ( )); |
160 | config. writeEntry ( "TextColor", m_textbtn-> color ( ). name ( )); | 160 | config. writeEntry ( "TextColor", m_textbtn-> color ( ). name ( )); |
161 | config. writeEntry ( "Opacity", m_opacsld-> value ( )); | 161 | config. writeEntry ( "Opacity", m_opacsld-> value ( )); |
162 | config. writeEntry ( "ShadowText", m_shadow ); | 162 | config. writeEntry ( "ShadowText", m_shadow ); |
163 | config. writeEntry ( "StippleContrast", m_contsld-> value ( )); | 163 | config. writeEntry ( "StippleContrast", m_contsld-> value ( )); |
164 | config. writeEntry ( "FlatToolButtons", m_flat ); | 164 | config. writeEntry ( "FlatToolButtons", m_flat ); |
165 | config. write ( ); | 165 | config. write ( ); |
166 | 166 | ||
167 | return true; | 167 | return true; |
168 | } | 168 | } |
169 | 169 | ||
diff --git a/noncore/todayplugins/fortune/fortunepluginwidget.cpp b/noncore/todayplugins/fortune/fortunepluginwidget.cpp index b210fa9..e6a0d09 100644 --- a/noncore/todayplugins/fortune/fortunepluginwidget.cpp +++ b/noncore/todayplugins/fortune/fortunepluginwidget.cpp | |||
@@ -1,84 +1,84 @@ | |||
1 | /* | 1 | /* |
2 | * fortunepluginwidget.cpp | 2 | * fortunepluginwidget.cpp |
3 | * | 3 | * |
4 | * copyright : (c) 2002 by Maximilian Reiß | 4 | * copyright : (c) 2002 by Maximilian Reiß |
5 | * email : harlekin@handhelds.org | 5 | * email : harlekin@handhelds.org |
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | /*************************************************************************** | 8 | /*************************************************************************** |
9 | * * | 9 | * * |
10 | * This program is free software; you can redistribute it and/or modify * | 10 | * This program is free software; you can redistribute it and/or modify * |
11 | * it under the terms of the GNU General Public License as published by * | 11 | * it under the terms of the GNU General Public License as published by * |
12 | * the Free Software Foundation; either version 2 of the License, or * | 12 | * the Free Software Foundation; either version 2 of the License, or * |
13 | * (at your option) any later version. * | 13 | * (at your option) any later version. * |
14 | * * | 14 | * * |
15 | ***************************************************************************/ | 15 | ***************************************************************************/ |
16 | 16 | ||
17 | #include "fortunepluginwidget.h" | 17 | #include "fortunepluginwidget.h" |
18 | 18 | ||
19 | #include <qvaluelist.h> | 19 | #include <qvaluelist.h> |
20 | #include <qtl.h> | 20 | #include <qtl.h> |
21 | #include <qstring.h> | 21 | #include <qstring.h> |
22 | #include <qscrollview.h> | 22 | #include <qscrollview.h> |
23 | #include <qobject.h> | 23 | #include <qobject.h> |
24 | #include <qlayout.h> | 24 | #include <qlayout.h> |
25 | 25 | ||
26 | #include <qpe/config.h> | 26 | #include <qpe/config.h> |
27 | #include <qpe/qcopenvelope_qws.h> | 27 | #include <qpe/qcopenvelope_qws.h> |
28 | 28 | ||
29 | #include <opie/oprocess.h> | 29 | #include <opie/oprocess.h> |
30 | #include <opie/oticker.h> | 30 | #include <opie/oticker.h> |
31 | 31 | ||
32 | FortunePluginWidget::FortunePluginWidget( QWidget *parent, const char* name ) | 32 | FortunePluginWidget::FortunePluginWidget( QWidget *parent, const char* name ) |
33 | : QWidget( parent, name ) | 33 | : QWidget( parent, name ) |
34 | { | 34 | { |
35 | 35 | ||
36 | fortune = NULL; | 36 | fortune = NULL; |
37 | getFortune(); | 37 | getFortune(); |
38 | } | 38 | } |
39 | 39 | ||
40 | FortunePluginWidget::~FortunePluginWidget() { | 40 | FortunePluginWidget::~FortunePluginWidget() { |
41 | if( fortuneProcess ){ | 41 | if( fortuneProcess ){ |
42 | delete fortuneProcess; | 42 | delete fortuneProcess; |
43 | } | 43 | } |
44 | } | 44 | } |
45 | 45 | ||
46 | /** | 46 | /** |
47 | * Get the fortunes | 47 | * Get the fortunes |
48 | */ | 48 | */ |
49 | void FortunePluginWidget::getFortune() { | 49 | void FortunePluginWidget::getFortune() { |
50 | 50 | ||
51 | QVBoxLayout* layoutFortune = new QVBoxLayout( this ); | 51 | QVBoxLayout* layoutFortune = new QVBoxLayout( this ); |
52 | 52 | ||
53 | if ( fortune ) { | 53 | if ( fortune ) { |
54 | delete fortune; | 54 | delete fortune; |
55 | } | 55 | } |
56 | 56 | ||
57 | fortune = new OTicker( this ); | 57 | fortune = new OTicker( this ); |
58 | //fortune->setReadOnly( TRUE ); | 58 | //fortune->setReadOnly( TRUE ); |
59 | //fortune->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ) ); | 59 | //fortune->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ) ); |
60 | 60 | ||
61 | fortune->setText( QString("Obtaining fortune...") ); | 61 | fortune->setText( QString("Obtaining fortune...") ); |
62 | layoutFortune->addWidget( fortune ); | 62 | layoutFortune->addWidget( fortune ); |
63 | 63 | ||
64 | fortuneProcess = new OProcess(); | 64 | fortuneProcess = new OProcess(); |
65 | *fortuneProcess << "fortune"; | 65 | *fortuneProcess << "fortune"; |
66 | 66 | ||
67 | connect(fortuneProcess, SIGNAL(receivedStdout(OProcess*, char*, int ) ), | 67 | connect(fortuneProcess, SIGNAL(receivedStdout(OProcess*,char*,int) ), |
68 | this, SLOT(slotStdOut(OProcess*, char*, int) ) ); | 68 | this, SLOT(slotStdOut(OProcess*,char*,int) ) ); |
69 | 69 | ||
70 | if(!fortuneProcess->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { | 70 | if(!fortuneProcess->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { |
71 | qWarning("could not start :("); | 71 | qWarning("could not start :("); |
72 | fortune->setText( QString("Failed to obtain fortune.") ); | 72 | fortune->setText( QString("Failed to obtain fortune.") ); |
73 | delete fortuneProcess; | 73 | delete fortuneProcess; |
74 | fortuneProcess = 0; | 74 | fortuneProcess = 0; |
75 | } | 75 | } |
76 | 76 | ||
77 | } | 77 | } |
78 | 78 | ||
79 | void FortunePluginWidget::slotStdOut( OProcess* proc, char* buf, int len ) | 79 | void FortunePluginWidget::slotStdOut( OProcess* proc, char* buf, int len ) |
80 | { | 80 | { |
81 | QCString s( buf, len ); | 81 | QCString s( buf, len ); |
82 | s.replace( QRegExp("\n"), "" ); | 82 | s.replace( QRegExp("\n"), "" ); |
83 | fortune->setText( s ); | 83 | fortune->setText( s ); |
84 | } | 84 | } |
diff --git a/noncore/todayplugins/stockticker/stockticker/helpwindow.cpp b/noncore/todayplugins/stockticker/stockticker/helpwindow.cpp index 2274402..db662e8 100644 --- a/noncore/todayplugins/stockticker/stockticker/helpwindow.cpp +++ b/noncore/todayplugins/stockticker/stockticker/helpwindow.cpp | |||
@@ -1,212 +1,212 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** | 2 | ** |
3 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. | 3 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. |
4 | ** | 4 | ** |
5 | ** This file is part of an example program for Qt. This example | 5 | ** This file is part of an example program for Qt. This example |
6 | ** program may be used, distributed and modified without limitation. | 6 | ** program may be used, distributed and modified without limitation. |
7 | ** | 7 | ** |
8 | *****************************************************************************/ | 8 | *****************************************************************************/ |
9 | 9 | ||
10 | #include "helpwindow.h" | 10 | #include "helpwindow.h" |
11 | #include <qstatusbar.h> | 11 | #include <qstatusbar.h> |
12 | 12 | ||
13 | #include <qmenubar.h> | 13 | #include <qmenubar.h> |
14 | #include <qtoolbar.h> | 14 | #include <qtoolbar.h> |
15 | #include <qtoolbutton.h> | 15 | #include <qtoolbutton.h> |
16 | #include <qcombobox.h> | 16 | #include <qcombobox.h> |
17 | 17 | ||
18 | #include <ctype.h> | 18 | #include <ctype.h> |
19 | 19 | ||
20 | HelpWindow::HelpWindow( const QString& home_, const QString& _path, QWidget* parent, const char *name ) | 20 | HelpWindow::HelpWindow( const QString& home_, const QString& _path, QWidget* parent, const char *name ) |
21 | : QMainWindow( parent, name, WDestructiveClose ), pathCombo( 0 ), selectedURL() | 21 | : QMainWindow( parent, name, WDestructiveClose ), pathCombo( 0 ), selectedURL() |
22 | { | 22 | { |
23 | readHistory(); | 23 | readHistory(); |
24 | readBookmarks(); | 24 | readBookmarks(); |
25 | 25 | ||
26 | browser = new QTextBrowser( this ); | 26 | browser = new QTextBrowser( this ); |
27 | QStringList Strlist; | 27 | QStringList Strlist; |
28 | Strlist.append( home_); | 28 | Strlist.append( home_); |
29 | 29 | ||
30 | browser->mimeSourceFactory()->setFilePath( Strlist ); | 30 | browser->mimeSourceFactory()->setFilePath( Strlist ); |
31 | 31 | ||
32 | browser->setFrameStyle( QFrame::Panel | QFrame::Sunken ); | 32 | browser->setFrameStyle( QFrame::Panel | QFrame::Sunken ); |
33 | 33 | ||
34 | connect( browser, SIGNAL( textChanged() ), | 34 | connect( browser, SIGNAL( textChanged() ), |
35 | 35 | ||
36 | this, SLOT( textChanged() ) ); | 36 | this, SLOT( textChanged() ) ); |
37 | 37 | ||
38 | setCentralWidget( browser ); | 38 | setCentralWidget( browser ); |
39 | 39 | ||
40 | if ( !home_.isEmpty() ) | 40 | if ( !home_.isEmpty() ) |
41 | 41 | ||
42 | //////////////////////////////// | 42 | //////////////////////////////// |
43 | browser->setSource( home_ ); | 43 | browser->setSource( home_ ); |
44 | 44 | ||
45 | //////////////////////////////// | 45 | //////////////////////////////// |
46 | connect( browser, SIGNAL( highlighted( const QString&) ), | 46 | connect( browser, SIGNAL( highlighted(const QString&) ), |
47 | statusBar(), SLOT( message( const QString&)) ); | 47 | statusBar(), SLOT( message(const QString&)) ); |
48 | 48 | ||
49 | setGeometry( 0,0,236,280); | 49 | setGeometry( 0,0,236,280); |
50 | 50 | ||
51 | QPopupMenu* file = new QPopupMenu( this ); | 51 | QPopupMenu* file = new QPopupMenu( this ); |
52 | // file->insertItem( tr("&New Window"), this, SLOT( newWindow() ), ALT | Key_N ); | 52 | // file->insertItem( tr("&New Window"), this, SLOT( newWindow() ), ALT | Key_N ); |
53 | file->insertItem( tr("&Open File"), this, SLOT( openFile() ), ALT | Key_O ); | 53 | file->insertItem( tr("&Open File"), this, SLOT( openFile() ), ALT | Key_O ); |
54 | // file->insertItem( tr("&Print"), this, SLOT( print() ), ALT | Key_P ); | 54 | // file->insertItem( tr("&Print"), this, SLOT( print() ), ALT | Key_P ); |
55 | file->insertSeparator(); | 55 | file->insertSeparator(); |
56 | file->insertItem( tr("&Close"), this, SLOT( close() ), ALT | Key_Q ); | 56 | file->insertItem( tr("&Close"), this, SLOT( close() ), ALT | Key_Q ); |
57 | // file->insertItem( tr("E&xit"), qApp, SLOT( closeAllWindows() ), ALT | Key_X ); | 57 | // file->insertItem( tr("E&xit"), qApp, SLOT( closeAllWindows() ), ALT | Key_X ); |
58 | 58 | ||
59 | // The same three icons are used twice each. | 59 | // The same three icons are used twice each. |
60 | ////F FIXME | 60 | ////F FIXME |
61 | QString pixs=(QDir::homeDirPath ()) +"/Applications/gutenbrowser/pix/"; | 61 | QString pixs=(QDir::homeDirPath ()) +"/Applications/gutenbrowser/pix/"; |
62 | QIconSet icon_back( QPixmap(pixs+"back.png") ); | 62 | QIconSet icon_back( QPixmap(pixs+"back.png") ); |
63 | QIconSet icon_forward( QPixmap(pixs+"forward.png") ); | 63 | QIconSet icon_forward( QPixmap(pixs+"forward.png") ); |
64 | QIconSet icon_home( QPixmap(pixs+"home.png") ); | 64 | QIconSet icon_home( QPixmap(pixs+"home.png") ); |
65 | 65 | ||
66 | QPopupMenu* go = new QPopupMenu( this ); | 66 | QPopupMenu* go = new QPopupMenu( this ); |
67 | backwardId = go->insertItem( icon_back, tr("&Backward"), browser, SLOT( backward() ), ALT | Key_Left ); | 67 | backwardId = go->insertItem( icon_back, tr("&Backward"), browser, SLOT( backward() ), ALT | Key_Left ); |
68 | forwardId = go->insertItem( icon_forward, tr("&Forward"), browser, SLOT( forward() ), ALT | Key_Right ); | 68 | forwardId = go->insertItem( icon_forward, tr("&Forward"), browser, SLOT( forward() ), ALT | Key_Right ); |
69 | go->insertItem( icon_home, tr("&Home"), browser, SLOT( home() ) ); | 69 | go->insertItem( icon_home, tr("&Home"), browser, SLOT( home() ) ); |
70 | 70 | ||
71 | 71 | ||
72 | hist = new QPopupMenu( this ); | 72 | hist = new QPopupMenu( this ); |
73 | QStringList::Iterator it = history.begin(); | 73 | QStringList::Iterator it = history.begin(); |
74 | for ( ; it != history.end(); ++it ) | 74 | for ( ; it != history.end(); ++it ) |
75 | mHistory[ hist->insertItem( *it ) ] = *it; | 75 | mHistory[ hist->insertItem( *it ) ] = *it; |
76 | connect( hist, SIGNAL( activated( int ) ), this, SLOT( histChosen( int ) ) ); | 76 | connect( hist, SIGNAL( activated(int) ), this, SLOT( histChosen(int) ) ); |
77 | 77 | ||
78 | bookm = new QPopupMenu( this ); | 78 | bookm = new QPopupMenu( this ); |
79 | bookm->insertItem( tr( "Add Bookmark" ), this, SLOT( addBookmark() ) ); | 79 | bookm->insertItem( tr( "Add Bookmark" ), this, SLOT( addBookmark() ) ); |
80 | bookm->insertSeparator(); | 80 | bookm->insertSeparator(); |
81 | 81 | ||
82 | QStringList::Iterator it2 = bookmarks.begin(); | 82 | QStringList::Iterator it2 = bookmarks.begin(); |
83 | for ( ; it2 != bookmarks.end(); ++it2 ) | 83 | for ( ; it2 != bookmarks.end(); ++it2 ) |
84 | mBookmarks[ bookm->insertItem( *it2 ) ] = *it2; | 84 | mBookmarks[ bookm->insertItem( *it2 ) ] = *it2; |
85 | connect( bookm, SIGNAL( activated( int ) ), | 85 | connect( bookm, SIGNAL( activated(int) ), |
86 | this, SLOT( bookmChosen( int ) ) ); | 86 | this, SLOT( bookmChosen(int) ) ); |
87 | 87 | ||
88 | menuBar()->insertItem( tr("&File"), file ); | 88 | menuBar()->insertItem( tr("&File"), file ); |
89 | menuBar()->insertItem( tr("&Go"), go ); | 89 | menuBar()->insertItem( tr("&Go"), go ); |
90 | menuBar()->insertItem( tr( "History" ), hist ); | 90 | menuBar()->insertItem( tr( "History" ), hist ); |
91 | menuBar()->insertItem( tr( "Bookmarks" ), bookm ); | 91 | menuBar()->insertItem( tr( "Bookmarks" ), bookm ); |
92 | // menuBar()->insertSeparator(); | 92 | // menuBar()->insertSeparator(); |
93 | // menuBar()->insertItem( tr("&Help"), help ); | 93 | // menuBar()->insertItem( tr("&Help"), help ); |
94 | 94 | ||
95 | menuBar()->setItemEnabled( forwardId, FALSE); | 95 | menuBar()->setItemEnabled( forwardId, FALSE); |
96 | menuBar()->setItemEnabled( backwardId, FALSE); | 96 | menuBar()->setItemEnabled( backwardId, FALSE); |
97 | connect( browser, SIGNAL( backwardAvailable( bool ) ), this, SLOT( setBackwardAvailable( bool ) ) ); | 97 | connect( browser, SIGNAL( backwardAvailable(bool) ), this, SLOT( setBackwardAvailable(bool) ) ); |
98 | connect( browser, SIGNAL( forwardAvailable( bool ) ), this, SLOT( setForwardAvailable( bool ) ) ); | 98 | connect( browser, SIGNAL( forwardAvailable(bool) ), this, SLOT( setForwardAvailable(bool) ) ); |
99 | 99 | ||
100 | 100 | ||
101 | QToolBar* toolbar = new QToolBar( this ); | 101 | QToolBar* toolbar = new QToolBar( this ); |
102 | addToolBar( toolbar, "Toolbar"); | 102 | addToolBar( toolbar, "Toolbar"); |
103 | QToolButton* button; | 103 | QToolButton* button; |
104 | 104 | ||
105 | button = new QToolButton( icon_back, tr("Backward"), "", browser, SLOT(backward()), toolbar ); | 105 | button = new QToolButton( icon_back, tr("Backward"), "", browser, SLOT(backward()), toolbar ); |
106 | connect( browser, SIGNAL( backwardAvailable(bool) ), button, SLOT( setEnabled(bool) ) ); | 106 | connect( browser, SIGNAL( backwardAvailable(bool) ), button, SLOT( setEnabled(bool) ) ); |
107 | button->setEnabled( FALSE ); | 107 | button->setEnabled( FALSE ); |
108 | button = new QToolButton( icon_forward, tr("Forward"), "", browser, SLOT(forward()), toolbar ); | 108 | button = new QToolButton( icon_forward, tr("Forward"), "", browser, SLOT(forward()), toolbar ); |
109 | connect( browser, SIGNAL( forwardAvailable(bool) ), button, SLOT( setEnabled(bool) ) ); | 109 | connect( browser, SIGNAL( forwardAvailable(bool) ), button, SLOT( setEnabled(bool) ) ); |
110 | button->setEnabled( FALSE ); | 110 | button->setEnabled( FALSE ); |
111 | button = new QToolButton( icon_home, tr("Home"), "", browser, SLOT(home()), toolbar ); | 111 | button = new QToolButton( icon_home, tr("Home"), "", browser, SLOT(home()), toolbar ); |
112 | 112 | ||
113 | toolbar->addSeparator(); | 113 | toolbar->addSeparator(); |
114 | 114 | ||
115 | pathCombo = new QComboBox( TRUE, toolbar ); | 115 | pathCombo = new QComboBox( TRUE, toolbar ); |
116 | connect( pathCombo, SIGNAL( activated( const QString & ) ), this, SLOT( pathSelected( const QString & ) ) ); | 116 | connect( pathCombo, SIGNAL( activated(const QString&) ), this, SLOT( pathSelected(const QString&) ) ); |
117 | toolbar->setStretchableWidget( pathCombo ); | 117 | toolbar->setStretchableWidget( pathCombo ); |
118 | 118 | ||
119 | // pathCombo->setMaximumWidth(190); | 119 | // pathCombo->setMaximumWidth(190); |
120 | // setRightJustification( TRUE ); | 120 | // setRightJustification( TRUE ); |
121 | // setDockEnabled( Left, FALSE ); | 121 | // setDockEnabled( Left, FALSE ); |
122 | // setDockEnabled( Right, FALSE ); | 122 | // setDockEnabled( Right, FALSE ); |
123 | 123 | ||
124 | pathCombo->insertItem( home_ ); | 124 | pathCombo->insertItem( home_ ); |
125 | 125 | ||
126 | browser->setFocus(); | 126 | browser->setFocus(); |
127 | 127 | ||
128 | 128 | ||
129 | } | 129 | } |
130 | 130 | ||
131 | 131 | ||
132 | void HelpWindow::setBackwardAvailable( bool b) | 132 | void HelpWindow::setBackwardAvailable( bool b) |
133 | { | 133 | { |
134 | menuBar()->setItemEnabled( backwardId, b); | 134 | menuBar()->setItemEnabled( backwardId, b); |
135 | } | 135 | } |
136 | 136 | ||
137 | void HelpWindow::setForwardAvailable( bool b) | 137 | void HelpWindow::setForwardAvailable( bool b) |
138 | { | 138 | { |
139 | menuBar()->setItemEnabled( forwardId, b); | 139 | menuBar()->setItemEnabled( forwardId, b); |
140 | } | 140 | } |
141 | 141 | ||
142 | 142 | ||
143 | void HelpWindow::textChanged() | 143 | void HelpWindow::textChanged() |
144 | { | 144 | { |
145 | if ( browser->documentTitle().isNull() ) { | 145 | if ( browser->documentTitle().isNull() ) { |
146 | setCaption( "Stockticker Lookup - " + browser->context() ); | 146 | setCaption( "Stockticker Lookup - " + browser->context() ); |
147 | selectedURL = browser->context(); | 147 | selectedURL = browser->context(); |
148 | } | 148 | } |
149 | else { | 149 | else { |
150 | setCaption( "Stockticker Lookup - " + browser->documentTitle() ) ; | 150 | setCaption( "Stockticker Lookup - " + browser->documentTitle() ) ; |
151 | selectedURL = browser->documentTitle(); | 151 | selectedURL = browser->documentTitle(); |
152 | } | 152 | } |
153 | 153 | ||
154 | if ( !selectedURL.isEmpty() && pathCombo ) { | 154 | if ( !selectedURL.isEmpty() && pathCombo ) { |
155 | bool exists = FALSE; | 155 | bool exists = FALSE; |
156 | int i; | 156 | int i; |
157 | for ( i = 0; i < pathCombo->count(); ++i ) { | 157 | for ( i = 0; i < pathCombo->count(); ++i ) { |
158 | if ( pathCombo->text( i ) == selectedURL ) { | 158 | if ( pathCombo->text( i ) == selectedURL ) { |
159 | exists = TRUE; | 159 | exists = TRUE; |
160 | break; | 160 | break; |
161 | } | 161 | } |
162 | } | 162 | } |
163 | if ( !exists ) { | 163 | if ( !exists ) { |
164 | pathCombo->insertItem( selectedURL, 0 ); | 164 | pathCombo->insertItem( selectedURL, 0 ); |
165 | pathCombo->setCurrentItem( 0 ); | 165 | pathCombo->setCurrentItem( 0 ); |
166 | mHistory[ hist->insertItem( selectedURL ) ] = selectedURL; | 166 | mHistory[ hist->insertItem( selectedURL ) ] = selectedURL; |
167 | } else | 167 | } else |
168 | pathCombo->setCurrentItem( i ); | 168 | pathCombo->setCurrentItem( i ); |
169 | selectedURL = QString::null; | 169 | selectedURL = QString::null; |
170 | } | 170 | } |
171 | } | 171 | } |
172 | 172 | ||
173 | HelpWindow::~HelpWindow() | 173 | HelpWindow::~HelpWindow() |
174 | { | 174 | { |
175 | history.clear(); | 175 | history.clear(); |
176 | QMap<int, QString>::Iterator it = mHistory.begin(); | 176 | QMap<int, QString>::Iterator it = mHistory.begin(); |
177 | for ( ; it != mHistory.end(); ++it ) | 177 | for ( ; it != mHistory.end(); ++it ) |
178 | history.append( *it ); | 178 | history.append( *it ); |
179 | 179 | ||
180 | QFile f( QDir::currentDirPath() + "/.history" ); | 180 | QFile f( QDir::currentDirPath() + "/.history" ); |
181 | f.open( IO_WriteOnly ); | 181 | f.open( IO_WriteOnly ); |
182 | QDataStream s( &f ); | 182 | QDataStream s( &f ); |
183 | s << history; | 183 | s << history; |
184 | f.close(); | 184 | f.close(); |
185 | 185 | ||
186 | bookmarks.clear(); | 186 | bookmarks.clear(); |
187 | QMap<int, QString>::Iterator it2 = mBookmarks.begin(); | 187 | QMap<int, QString>::Iterator it2 = mBookmarks.begin(); |
188 | for ( ; it2 != mBookmarks.end(); ++it2 ) | 188 | for ( ; it2 != mBookmarks.end(); ++it2 ) |
189 | bookmarks.append( *it2 ); | 189 | bookmarks.append( *it2 ); |
190 | 190 | ||
191 | QFile f2( QDir::currentDirPath() + "/.bookmarks" ); | 191 | QFile f2( QDir::currentDirPath() + "/.bookmarks" ); |
192 | f2.open( IO_WriteOnly ); | 192 | f2.open( IO_WriteOnly ); |
193 | QDataStream s2( &f2 ); | 193 | QDataStream s2( &f2 ); |
194 | s2 << bookmarks; | 194 | s2 << bookmarks; |
195 | f2.close(); | 195 | f2.close(); |
196 | } | 196 | } |
197 | 197 | ||
198 | void HelpWindow::openFile() | 198 | void HelpWindow::openFile() |
199 | { | 199 | { |
200 | #ifndef QT_NO_FILEDIALOG | 200 | #ifndef QT_NO_FILEDIALOG |
201 | QString fn = QFileDialog::getOpenFileName( QString::null, QString::null, this ); | 201 | QString fn = QFileDialog::getOpenFileName( QString::null, QString::null, this ); |
202 | if ( !fn.isEmpty() ) | 202 | if ( !fn.isEmpty() ) |
203 | browser->setSource( fn ); | 203 | browser->setSource( fn ); |
204 | #endif | 204 | #endif |
205 | } | 205 | } |
206 | 206 | ||
207 | void HelpWindow::newWindow() | 207 | void HelpWindow::newWindow() |
208 | { | 208 | { |
209 | ( new HelpWindow(browser->source(), "qbrowser") )->show(); | 209 | ( new HelpWindow(browser->source(), "qbrowser") )->show(); |
210 | } | 210 | } |
211 | 211 | ||
212 | void HelpWindow::pathSelected( const QString &_path ) | 212 | void HelpWindow::pathSelected( const QString &_path ) |
diff --git a/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp b/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp index 73f8bb3..64798f4 100644 --- a/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp +++ b/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp | |||
@@ -1,89 +1,89 @@ | |||
1 | #include "inputDialog.h" | 1 | #include "inputDialog.h" |
2 | 2 | ||
3 | #include <qapplication.h> | 3 | #include <qapplication.h> |
4 | 4 | ||
5 | #include <qlayout.h> | 5 | #include <qlayout.h> |
6 | #include <qcheckbox.h> | 6 | #include <qcheckbox.h> |
7 | #include <qlineedit.h> | 7 | #include <qlineedit.h> |
8 | #include <qvariant.h> | 8 | #include <qvariant.h> |
9 | #include <qpushbutton.h> | 9 | #include <qpushbutton.h> |
10 | #include <qwhatsthis.h> | 10 | #include <qwhatsthis.h> |
11 | #include <qlabel.h> | 11 | #include <qlabel.h> |
12 | #include <qlayout.h> | 12 | #include <qlayout.h> |
13 | #include <qpe/config.h> | 13 | #include <qpe/config.h> |
14 | #include <qstringlist.h> | 14 | #include <qstringlist.h> |
15 | #include <qmainwindow.h> | 15 | #include <qmainwindow.h> |
16 | #include "helpwindow.h" | 16 | #include "helpwindow.h" |
17 | 17 | ||
18 | #include <opie/oprocess.h> | 18 | #include <opie/oprocess.h> |
19 | 19 | ||
20 | #include <stdlib.h> | 20 | #include <stdlib.h> |
21 | // #include <sys/stat.h> | 21 | // #include <sys/stat.h> |
22 | // #include <unistd.h> | 22 | // #include <unistd.h> |
23 | 23 | ||
24 | InputDialog::InputDialog( ) | 24 | InputDialog::InputDialog( ) |
25 | : QMainWindow( 0x0, 0x0, WStyle_ContextHelp ) { | 25 | : QMainWindow( 0x0, 0x0, WStyle_ContextHelp ) { |
26 | setCaption( tr("Symbol Lookup")); | 26 | setCaption( tr("Symbol Lookup")); |
27 | 27 | ||
28 | QGridLayout *layout = new QGridLayout( this ); | 28 | QGridLayout *layout = new QGridLayout( this ); |
29 | layout->setSpacing(6); | 29 | layout->setSpacing(6); |
30 | layout->setMargin( 2); | 30 | layout->setMargin( 2); |
31 | 31 | ||
32 | LineEdit1 = new QLineEdit( this, "LineEdit1" ); | 32 | LineEdit1 = new QLineEdit( this, "LineEdit1" ); |
33 | LineEdit1->setFocus(); | 33 | LineEdit1->setFocus(); |
34 | 34 | ||
35 | layout->addMultiCellWidget( LineEdit1, 0, 0, 0, 3); | 35 | layout->addMultiCellWidget( LineEdit1, 0, 0, 0, 3); |
36 | 36 | ||
37 | QLabel *label; | 37 | QLabel *label; |
38 | label = new QLabel(this); | 38 | label = new QLabel(this); |
39 | label->setText( tr("Enter something to lookup / search.")); | 39 | label->setText( tr("Enter something to lookup / search.")); |
40 | label->setMaximumHeight(60); | 40 | label->setMaximumHeight(60); |
41 | layout->addMultiCellWidget( label, 1, 1, 0, 3); | 41 | layout->addMultiCellWidget( label, 1, 1, 0, 3); |
42 | 42 | ||
43 | connect(LineEdit1,SIGNAL(returnPressed()),this,SLOT(doLookup())); | 43 | connect(LineEdit1,SIGNAL(returnPressed()),this,SLOT(doLookup())); |
44 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Expanding ); | 44 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Expanding ); |
45 | layout->addItem( spacer, 8, 0 ); | 45 | layout->addItem( spacer, 8, 0 ); |
46 | 46 | ||
47 | } | 47 | } |
48 | 48 | ||
49 | InputDialog::~InputDialog() { | 49 | InputDialog::~InputDialog() { |
50 | } | 50 | } |
51 | 51 | ||
52 | void InputDialog::doLookup() { | 52 | void InputDialog::doLookup() { |
53 | // http://finance.yahoo.com/l?m=&s=siemens&t= | 53 | // http://finance.yahoo.com/l?m=&s=siemens&t= |
54 | 54 | ||
55 | QString url = "\"http://finance.yahoo.com/l?m=&s="+LineEdit1->text()+"\""; | 55 | QString url = "\"http://finance.yahoo.com/l?m=&s="+LineEdit1->text()+"\""; |
56 | QString tempHtml = "/tmp/stockticker.html"; | 56 | QString tempHtml = "/tmp/stockticker.html"; |
57 | QString cmd = "wget -O "+tempHtml+" "+url; | 57 | QString cmd = "wget -O "+tempHtml+" "+url; |
58 | qDebug(cmd); | 58 | qDebug(cmd); |
59 | 59 | ||
60 | 60 | ||
61 | /* | 61 | /* |
62 | OProcess proc; | 62 | OProcess proc; |
63 | proc << "/usr/bin/wget"; | 63 | proc << "/usr/bin/wget"; |
64 | proc<<"-O"<< tempHtml<< url; | 64 | proc<<"-O"<< tempHtml<< url; |
65 | 65 | ||
66 | connect( &proc, SIGNAL( processExited( OProcess *)),this, SLOT( showBrowser(OProcess *))); | 66 | connect( &proc, SIGNAL( processExited(OProcess*)),this, SLOT( showBrowser(OProcess*))); |
67 | proc.start( OProcess::NotifyOnExit); | 67 | proc.start( OProcess::NotifyOnExit); |
68 | */ | 68 | */ |
69 | system(cmd.latin1()); | 69 | system(cmd.latin1()); |
70 | HelpWindow *StockLookup = new HelpWindow( tempHtml,".",this, "SymbolLookup"); | 70 | HelpWindow *StockLookup = new HelpWindow( tempHtml,".",this, "SymbolLookup"); |
71 | StockLookup->setCaption("Symbol"); | 71 | StockLookup->setCaption("Symbol"); |
72 | StockLookup->showMaximized(); | 72 | StockLookup->showMaximized(); |
73 | StockLookup->show(); | 73 | StockLookup->show(); |
74 | LineEdit1->text(); | 74 | LineEdit1->text(); |
75 | 75 | ||
76 | 76 | ||
77 | } | 77 | } |
78 | 78 | ||
79 | void InputDialog::showBrowser(OProcess*) { | 79 | void InputDialog::showBrowser(OProcess*) { |
80 | qDebug("BLAH"); | 80 | qDebug("BLAH"); |
81 | QString tempHtml = "/tmp/stockticker.html"; | 81 | QString tempHtml = "/tmp/stockticker.html"; |
82 | 82 | ||
83 | HelpWindow *StockLookup = new HelpWindow( tempHtml,".",this, "SymbolLookup"); | 83 | HelpWindow *StockLookup = new HelpWindow( tempHtml,".",this, "SymbolLookup"); |
84 | StockLookup->setCaption("Symbol"); | 84 | StockLookup->setCaption("Symbol"); |
85 | StockLookup->showMaximized(); | 85 | StockLookup->showMaximized(); |
86 | StockLookup->show(); | 86 | StockLookup->show(); |
87 | LineEdit1->text(); | 87 | LineEdit1->text(); |
88 | 88 | ||
89 | } | 89 | } |
diff --git a/noncore/todayplugins/weather/weatherpluginwidget.cpp b/noncore/todayplugins/weather/weatherpluginwidget.cpp index 4491b91..15d1c6e 100644 --- a/noncore/todayplugins/weather/weatherpluginwidget.cpp +++ b/noncore/todayplugins/weather/weatherpluginwidget.cpp | |||
@@ -12,193 +12,193 @@ | |||
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 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 <qfile.h> | 29 | #include <qfile.h> |
30 | #include <qimage.h> | 30 | #include <qimage.h> |
31 | #include <qlabel.h> | 31 | #include <qlabel.h> |
32 | #include <qlayout.h> | 32 | #include <qlayout.h> |
33 | #include <qpixmap.h> | 33 | #include <qpixmap.h> |
34 | #include <qtextstream.h> | 34 | #include <qtextstream.h> |
35 | 35 | ||
36 | #include <opie/oprocess.h> | 36 | #include <opie/oprocess.h> |
37 | 37 | ||
38 | #include <qpe/config.h> | 38 | #include <qpe/config.h> |
39 | #include <qpe/resource.h> | 39 | #include <qpe/resource.h> |
40 | 40 | ||
41 | #include "weatherpluginwidget.h" | 41 | #include "weatherpluginwidget.h" |
42 | 42 | ||
43 | WeatherPluginWidget::WeatherPluginWidget( QWidget *parent, const char* name ) | 43 | WeatherPluginWidget::WeatherPluginWidget( QWidget *parent, const char* name ) |
44 | : QWidget( parent, name ) | 44 | : QWidget( parent, name ) |
45 | { | 45 | { |
46 | QHBoxLayout *layout = new QHBoxLayout( this ); | 46 | QHBoxLayout *layout = new QHBoxLayout( this ); |
47 | layout->setAutoAdd( TRUE ); | 47 | layout->setAutoAdd( TRUE ); |
48 | layout->setSpacing( 2 ); | 48 | layout->setSpacing( 2 ); |
49 | 49 | ||
50 | weatherIcon = new QLabel( this ); | 50 | weatherIcon = new QLabel( this ); |
51 | weatherIcon->setMaximumWidth( 32 ); | 51 | weatherIcon->setMaximumWidth( 32 ); |
52 | QImage logo1 = Resource::loadImage( "Clock" ); | 52 | QImage logo1 = Resource::loadImage( "Clock" ); |
53 | QPixmap pic; | 53 | QPixmap pic; |
54 | pic.convertFromImage( logo1 ); | 54 | pic.convertFromImage( logo1 ); |
55 | weatherIcon->setPixmap( pic ); | 55 | weatherIcon->setPixmap( pic ); |
56 | 56 | ||
57 | weatherLabel = new QLabel( tr( "Retreiving current weather information." ), this ); | 57 | weatherLabel = new QLabel( tr( "Retreiving current weather information." ), this ); |
58 | weatherLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ) ); | 58 | weatherLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ) ); |
59 | 59 | ||
60 | startTimer(1000); | 60 | startTimer(1000); |
61 | } | 61 | } |
62 | 62 | ||
63 | WeatherPluginWidget::~WeatherPluginWidget() | 63 | WeatherPluginWidget::~WeatherPluginWidget() |
64 | { | 64 | { |
65 | QFile file( localFile ); | 65 | QFile file( localFile ); |
66 | if ( file.exists() ) | 66 | if ( file.exists() ) |
67 | { | 67 | { |
68 | file.remove(); | 68 | file.remove(); |
69 | } | 69 | } |
70 | } | 70 | } |
71 | 71 | ||
72 | void WeatherPluginWidget::timerEvent( QTimerEvent *e ) | 72 | void WeatherPluginWidget::timerEvent( QTimerEvent *e ) |
73 | { | 73 | { |
74 | killTimer( e->timerId() ); | 74 | killTimer( e->timerId() ); |
75 | retreiveData(); | 75 | retreiveData(); |
76 | } | 76 | } |
77 | 77 | ||
78 | 78 | ||
79 | 79 | ||
80 | void WeatherPluginWidget::retreiveData() | 80 | void WeatherPluginWidget::retreiveData() |
81 | { | 81 | { |
82 | Config config( "todayweatherplugin"); | 82 | Config config( "todayweatherplugin"); |
83 | config.setGroup( "Config" ); | 83 | config.setGroup( "Config" ); |
84 | 84 | ||
85 | location = config.readEntry( "Location", "" ); | 85 | location = config.readEntry( "Location", "" ); |
86 | useMetric = config.readBoolEntry( "Metric", TRUE ); | 86 | useMetric = config.readBoolEntry( "Metric", TRUE ); |
87 | frequency = config.readNumEntry( "Frequency", 5 ); | 87 | frequency = config.readNumEntry( "Frequency", 5 ); |
88 | 88 | ||
89 | startTimer( frequency * 60000 ); | 89 | startTimer( frequency * 60000 ); |
90 | 90 | ||
91 | localFile = "/tmp/"; | 91 | localFile = "/tmp/"; |
92 | localFile.append( location ); | 92 | localFile.append( location ); |
93 | localFile.append( ".TXT" ); | 93 | localFile.append( ".TXT" ); |
94 | 94 | ||
95 | remoteFile = "http://weather.noaa.gov/pub/data/observations/metar/stations/"; | 95 | remoteFile = "http://weather.noaa.gov/pub/data/observations/metar/stations/"; |
96 | remoteFile.append( location ); | 96 | remoteFile.append( location ); |
97 | remoteFile.append( ".TXT" ); | 97 | remoteFile.append( ".TXT" ); |
98 | 98 | ||
99 | QFile file( localFile ); | 99 | QFile file( localFile ); |
100 | if ( file.exists() ) | 100 | if ( file.exists() ) |
101 | { | 101 | { |
102 | file.remove(); | 102 | file.remove(); |
103 | } | 103 | } |
104 | 104 | ||
105 | OProcess *proc = new OProcess; | 105 | OProcess *proc = new OProcess; |
106 | 106 | ||
107 | *proc << "wget" << "-q" << remoteFile << "-O" << localFile; | 107 | *proc << "wget" << "-q" << remoteFile << "-O" << localFile; |
108 | connect( proc, SIGNAL( processExited( OProcess * ) ), this, SLOT( dataRetrieved( OProcess * ) ) ); | 108 | connect( proc, SIGNAL( processExited(OProcess*) ), this, SLOT( dataRetrieved(OProcess*) ) ); |
109 | proc->start(); | 109 | proc->start(); |
110 | } | 110 | } |
111 | 111 | ||
112 | void WeatherPluginWidget::displayWeather() | 112 | void WeatherPluginWidget::displayWeather() |
113 | { | 113 | { |
114 | weatherData = QString::null; | 114 | weatherData = QString::null; |
115 | 115 | ||
116 | QFile file( localFile ); | 116 | QFile file( localFile ); |
117 | 117 | ||
118 | if ( file.size() > 0 && file.open( IO_ReadOnly ) ) | 118 | if ( file.size() > 0 && file.open( IO_ReadOnly ) ) |
119 | { | 119 | { |
120 | QTextStream data( &file ); | 120 | QTextStream data( &file ); |
121 | while ( !data.eof() ) | 121 | while ( !data.eof() ) |
122 | { | 122 | { |
123 | weatherData.append( data.readLine() ); | 123 | weatherData.append( data.readLine() ); |
124 | } | 124 | } |
125 | file.close(); | 125 | file.close(); |
126 | weatherData = weatherData.simplifyWhiteSpace(); | 126 | weatherData = weatherData.simplifyWhiteSpace(); |
127 | 127 | ||
128 | QString tmpstr; | 128 | QString tmpstr; |
129 | 129 | ||
130 | tmpstr.append( tr( "Temp: " ) ); | 130 | tmpstr.append( tr( "Temp: " ) ); |
131 | getTemp( weatherData ); | 131 | getTemp( weatherData ); |
132 | tmpstr.append( dataStr ); | 132 | tmpstr.append( dataStr ); |
133 | 133 | ||
134 | tmpstr.append( tr( " Wind: " ) ); | 134 | tmpstr.append( tr( " Wind: " ) ); |
135 | getWind( weatherData ); | 135 | getWind( weatherData ); |
136 | tmpstr.append( dataStr ); | 136 | tmpstr.append( dataStr ); |
137 | 137 | ||
138 | tmpstr.append( tr( "\nPres: " ) ); | 138 | tmpstr.append( tr( "\nPres: " ) ); |
139 | getPressure( weatherData ); | 139 | getPressure( weatherData ); |
140 | tmpstr.append( dataStr ); | 140 | tmpstr.append( dataStr ); |
141 | 141 | ||
142 | weatherLabel->setText( tmpstr ); | 142 | weatherLabel->setText( tmpstr ); |
143 | 143 | ||
144 | tmpstr = "todayweatherplugin/"; | 144 | tmpstr = "todayweatherplugin/"; |
145 | getIcon( weatherData ); | 145 | getIcon( weatherData ); |
146 | tmpstr.append( dataStr ); | 146 | tmpstr.append( dataStr ); |
147 | QImage logo1 = Resource::loadImage( tmpstr ); | 147 | QImage logo1 = Resource::loadImage( tmpstr ); |
148 | QPixmap pic; | 148 | QPixmap pic; |
149 | pic.convertFromImage( logo1 ); | 149 | pic.convertFromImage( logo1 ); |
150 | weatherIcon->setPixmap( pic ); | 150 | weatherIcon->setPixmap( pic ); |
151 | } | 151 | } |
152 | else | 152 | else |
153 | { | 153 | { |
154 | weatherLabel->setText( tr( "Current weather data not available." ) ); | 154 | weatherLabel->setText( tr( "Current weather data not available." ) ); |
155 | } | 155 | } |
156 | } | 156 | } |
157 | 157 | ||
158 | void WeatherPluginWidget::getTemp( const QString &data ) | 158 | void WeatherPluginWidget::getTemp( const QString &data ) |
159 | { | 159 | { |
160 | int value; | 160 | int value; |
161 | bool ok; | 161 | bool ok; |
162 | 162 | ||
163 | int pos = data.find( QRegExp( "M?[0-9]+/M?[0-9]+" ), 20 ); | 163 | int pos = data.find( QRegExp( "M?[0-9]+/M?[0-9]+" ), 20 ); |
164 | if ( pos > -1 ) | 164 | if ( pos > -1 ) |
165 | { | 165 | { |
166 | if ( data.at( pos ) == 'M' ) | 166 | if ( data.at( pos ) == 'M' ) |
167 | { | 167 | { |
168 | value = -1 * data.mid( pos + 1, 2 ).toInt( &ok ); | 168 | value = -1 * data.mid( pos + 1, 2 ).toInt( &ok ); |
169 | } | 169 | } |
170 | else | 170 | else |
171 | { | 171 | { |
172 | value = data.mid( pos, 2 ).toInt( &ok ); | 172 | value = data.mid( pos, 2 ).toInt( &ok ); |
173 | } | 173 | } |
174 | if ( useMetric ) | 174 | if ( useMetric ) |
175 | { | 175 | { |
176 | dataStr = QString::number( value ); | 176 | dataStr = QString::number( value ); |
177 | dataStr.append( 'C' ); | 177 | dataStr.append( 'C' ); |
178 | } | 178 | } |
179 | else | 179 | else |
180 | { | 180 | { |
181 | dataStr = QString::number( ( value * 9 / 5 ) + 32 ); | 181 | dataStr = QString::number( ( value * 9 / 5 ) + 32 ); |
182 | dataStr.append( 'F' ); | 182 | dataStr.append( 'F' ); |
183 | } | 183 | } |
184 | } | 184 | } |
185 | else | 185 | else |
186 | { | 186 | { |
187 | dataStr = tr( "n/a" ); | 187 | dataStr = tr( "n/a" ); |
188 | } | 188 | } |
189 | } | 189 | } |
190 | 190 | ||
191 | void WeatherPluginWidget::getWind( const QString &data ) | 191 | void WeatherPluginWidget::getWind( const QString &data ) |
192 | { | 192 | { |
193 | int value; | 193 | int value; |
194 | bool ok; | 194 | bool ok; |
195 | 195 | ||
196 | int pos = data.find( QRegExp( "[0-9]*G*[0-9]*KT" ), 20 ); | 196 | int pos = data.find( QRegExp( "[0-9]*G*[0-9]*KT" ), 20 ); |
197 | if ( pos > -1 ) | 197 | if ( pos > -1 ) |
198 | { | 198 | { |
199 | if ( data.mid( pos, 3 ) != "VRB" ) | 199 | if ( data.mid( pos, 3 ) != "VRB" ) |
200 | { | 200 | { |
201 | value = data.mid( pos, 3 ).toInt( &ok ); | 201 | value = data.mid( pos, 3 ).toInt( &ok ); |
202 | if ( ( value >= 0 && value < 23 ) || ( value >= 239 && value <= 360 ) ) | 202 | if ( ( value >= 0 && value < 23 ) || ( value >= 239 && value <= 360 ) ) |
203 | dataStr = tr("E " ); | 203 | dataStr = tr("E " ); |
204 | else if ( value >= 23 && value < 69 ) | 204 | else if ( value >= 23 && value < 69 ) |
diff --git a/noncore/tools/calc2/calc.cpp b/noncore/tools/calc2/calc.cpp index f75eb69..3dcdf6e 100644 --- a/noncore/tools/calc2/calc.cpp +++ b/noncore/tools/calc2/calc.cpp | |||
@@ -1,104 +1,104 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include <qvaluelist.h> | 21 | #include <qvaluelist.h> |
22 | #include <qpe/qpeapplication.h> | 22 | #include <qpe/qpeapplication.h> |
23 | #include <qdir.h> | 23 | #include <qdir.h> |
24 | #include <qwidgetstack.h> | 24 | #include <qwidgetstack.h> |
25 | 25 | ||
26 | #include "calc.h" | 26 | #include "calc.h" |
27 | #include "plugininterface.h" | 27 | #include "plugininterface.h" |
28 | 28 | ||
29 | calc::calc (QWidget * p, const char *n):QWidget (p, n) | 29 | calc::calc (QWidget * p, const char *n):QWidget (p, n) |
30 | { | 30 | { |
31 | setCaption (tr ("Calculator")); | 31 | setCaption (tr ("Calculator")); |
32 | 32 | ||
33 | // widgets | 33 | // widgets |
34 | LCD = new QLCDNumber (this); | 34 | LCD = new QLCDNumber (this); |
35 | LCD->setMaximumSize (QSize (240, 30)); | 35 | LCD->setMaximumSize (QSize (240, 30)); |
36 | LCD->setNumDigits(12); | 36 | LCD->setNumDigits(12); |
37 | LCD->setSegmentStyle(QLCDNumber::Filled); | 37 | LCD->setSegmentStyle(QLCDNumber::Filled); |
38 | pluginWidgetStack = new QWidgetStack (this); | 38 | pluginWidgetStack = new QWidgetStack (this); |
39 | 39 | ||
40 | // layout widgets | 40 | // layout widgets |
41 | calculatorLayout = new QVBoxLayout (this); | 41 | calculatorLayout = new QVBoxLayout (this); |
42 | calculatorLayout->addWidget (LCD); | 42 | calculatorLayout->addWidget (LCD); |
43 | calculatorLayout->addWidget (pluginWidgetStack); | 43 | calculatorLayout->addWidget (pluginWidgetStack); |
44 | 44 | ||
45 | // no formatting of display for now | 45 | // no formatting of display for now |
46 | connect (&engine, SIGNAL(display (double)), LCD, SLOT(display (double))); | 46 | connect (&engine, SIGNAL(display(double)), LCD, SLOT(display(double))); |
47 | connect (&engine, SIGNAL(display (const QString &)), LCD, SLOT(display (const QString &))); | 47 | connect (&engine, SIGNAL(display(const QString&)), LCD, SLOT(display(const QString&))); |
48 | connect (&engine, SIGNAL(setBinMode()), LCD, SLOT(setBinMode())); | 48 | connect (&engine, SIGNAL(setBinMode()), LCD, SLOT(setBinMode())); |
49 | connect (&engine, SIGNAL(setOctMode()), LCD, SLOT(setOctMode())); | 49 | connect (&engine, SIGNAL(setOctMode()), LCD, SLOT(setOctMode())); |
50 | connect (&engine, SIGNAL(setDecMode()), LCD, SLOT(setDecMode())); | 50 | connect (&engine, SIGNAL(setDecMode()), LCD, SLOT(setDecMode())); |
51 | connect (&engine, SIGNAL(setHexMode()), LCD, SLOT(setHexMode())); | 51 | connect (&engine, SIGNAL(setHexMode()), LCD, SLOT(setHexMode())); |
52 | 52 | ||
53 | #ifndef NO_PLUGINS | 53 | #ifndef NO_PLUGINS |
54 | // load plugins | 54 | // load plugins |
55 | QValueList < Plugin >::Iterator mit; | 55 | QValueList < Plugin >::Iterator mit; |
56 | for (mit = pluginList.begin (); mit != pluginList.end (); ++mit) { | 56 | for (mit = pluginList.begin (); mit != pluginList.end (); ++mit) { |
57 | (*mit).interface->release (); | 57 | (*mit).interface->release (); |
58 | (*mit).library->unload (); | 58 | (*mit).library->unload (); |
59 | delete (*mit).library; | 59 | delete (*mit).library; |
60 | } | 60 | } |
61 | pluginList.clear (); | 61 | pluginList.clear (); |
62 | 62 | ||
63 | QString path = QPEApplication::qpeDir() + "/plugins/calculator"; | 63 | QString path = QPEApplication::qpeDir() + "/plugins/calculator"; |
64 | QDir dir (path, "lib*.so"); | 64 | QDir dir (path, "lib*.so"); |
65 | QStringList list = dir.entryList (); | 65 | QStringList list = dir.entryList (); |
66 | 66 | ||
67 | QStringList::Iterator it; | 67 | QStringList::Iterator it; |
68 | for (it = list.begin (); it != list.end (); ++it) { | 68 | for (it = list.begin (); it != list.end (); ++it) { |
69 | CalcInterface *iface = 0; | 69 | CalcInterface *iface = 0; |
70 | QLibrary *lib = new QLibrary (path + "/" + *it); | 70 | QLibrary *lib = new QLibrary (path + "/" + *it); |
71 | 71 | ||
72 | Plugin plugin; | 72 | Plugin plugin; |
73 | plugin.pluginWidget = 0; | 73 | plugin.pluginWidget = 0; |
74 | 74 | ||
75 | if (lib->queryInterface (IID_Calc, (QUnknownInterface **) & iface) == | 75 | if (lib->queryInterface (IID_Calc, (QUnknownInterface **) & iface) == |
76 | QS_OK) { | 76 | QS_OK) { |
77 | plugin.library = lib; | 77 | plugin.library = lib; |
78 | plugin.interface = iface; | 78 | plugin.interface = iface; |
79 | plugin.pluginWidget = plugin.interface->getPlugin(&engine,pluginWidgetStack); | 79 | plugin.pluginWidget = plugin.interface->getPlugin(&engine,pluginWidgetStack); |
80 | if (plugin.pluginWidget) | 80 | if (plugin.pluginWidget) |
81 | pluginWidgetStack->addWidget (plugin.pluginWidget, pluginList.count()); | 81 | pluginWidgetStack->addWidget (plugin.pluginWidget, pluginList.count()); |
82 | pluginList.append (plugin); | 82 | pluginList.append (plugin); |
83 | } else { | 83 | } else { |
84 | delete lib; | 84 | delete lib; |
85 | } | 85 | } |
86 | } | 86 | } |
87 | setMode (1); | 87 | setMode (1); |
88 | #else | 88 | #else |
89 | // load simple interface | 89 | // load simple interface |
90 | #endif | 90 | #endif |
91 | } | 91 | } |
92 | 92 | ||
93 | calc::~calc () | 93 | calc::~calc () |
94 | { | 94 | { |
95 | #ifndef NO_PLUGINS | 95 | #ifndef NO_PLUGINS |
96 | QValueList < Plugin >::Iterator mit; | 96 | QValueList < Plugin >::Iterator mit; |
97 | for (mit = pluginList.begin (); mit != pluginList.end (); ++mit) { | 97 | for (mit = pluginList.begin (); mit != pluginList.end (); ++mit) { |
98 | (*mit).interface->release (); | 98 | (*mit).interface->release (); |
99 | (*mit).library->unload (); | 99 | (*mit).library->unload (); |
100 | delete (*mit).library; | 100 | delete (*mit).library; |
101 | } | 101 | } |
102 | #endif | 102 | #endif |
103 | } | 103 | } |
104 | 104 | ||
diff --git a/noncore/tools/calculator/calculatorimpl.cpp b/noncore/tools/calculator/calculatorimpl.cpp index 163b4da..dead03d 100644 --- a/noncore/tools/calculator/calculatorimpl.cpp +++ b/noncore/tools/calculator/calculatorimpl.cpp | |||
@@ -127,193 +127,193 @@ CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, | |||
127 | QObject::tr("Volume"); | 127 | QObject::tr("Volume"); |
128 | QObject::tr("acres"); | 128 | QObject::tr("acres"); |
129 | QObject::tr("°C"); | 129 | QObject::tr("°C"); |
130 | QObject::tr("carats"); | 130 | QObject::tr("carats"); |
131 | QObject::tr("cm"); | 131 | QObject::tr("cm"); |
132 | QObject::tr("cu cm"); | 132 | QObject::tr("cu cm"); |
133 | QObject::tr("cu ft"); | 133 | QObject::tr("cu ft"); |
134 | QObject::tr("cu in"); | 134 | QObject::tr("cu in"); |
135 | QObject::tr("°F"); | 135 | QObject::tr("°F"); |
136 | QObject::tr("fl oz (US)"); | 136 | QObject::tr("fl oz (US)"); |
137 | QObject::tr("ft"); | 137 | QObject::tr("ft"); |
138 | QObject::tr("g"); | 138 | QObject::tr("g"); |
139 | QObject::tr("gal (US)"); | 139 | QObject::tr("gal (US)"); |
140 | QObject::tr("hectares"); | 140 | QObject::tr("hectares"); |
141 | QObject::tr("in"); | 141 | QObject::tr("in"); |
142 | QObject::tr("kg"); | 142 | QObject::tr("kg"); |
143 | QObject::tr("km"); | 143 | QObject::tr("km"); |
144 | QObject::tr("l"); | 144 | QObject::tr("l"); |
145 | QObject::tr("lb"); | 145 | QObject::tr("lb"); |
146 | QObject::tr("Lg tons"); | 146 | QObject::tr("Lg tons"); |
147 | QObject::tr("m"); | 147 | QObject::tr("m"); |
148 | QObject::tr("mg"); | 148 | QObject::tr("mg"); |
149 | QObject::tr("mi"); | 149 | QObject::tr("mi"); |
150 | QObject::tr("ml"); | 150 | QObject::tr("ml"); |
151 | QObject::tr("mm"); | 151 | QObject::tr("mm"); |
152 | QObject::tr("naut. mi"); | 152 | QObject::tr("naut. mi"); |
153 | QObject::tr("oz"); | 153 | QObject::tr("oz"); |
154 | QObject::tr("points"); | 154 | QObject::tr("points"); |
155 | QObject::tr("pt"); | 155 | QObject::tr("pt"); |
156 | QObject::tr("qt"); | 156 | QObject::tr("qt"); |
157 | QObject::tr("sq cm"); | 157 | QObject::tr("sq cm"); |
158 | QObject::tr("sq ft"); | 158 | QObject::tr("sq ft"); |
159 | QObject::tr("sq in"); | 159 | QObject::tr("sq in"); |
160 | QObject::tr("sq km"); | 160 | QObject::tr("sq km"); |
161 | QObject::tr("sq m"); | 161 | QObject::tr("sq m"); |
162 | QObject::tr("sq mi"); | 162 | QObject::tr("sq mi"); |
163 | QObject::tr("sq mm"); | 163 | QObject::tr("sq mm"); |
164 | QObject::tr("sq yd"); | 164 | QObject::tr("sq yd"); |
165 | QObject::tr("st"); | 165 | QObject::tr("st"); |
166 | QObject::tr("St tons"); | 166 | QObject::tr("St tons"); |
167 | QObject::tr("tblspoon"); | 167 | QObject::tr("tblspoon"); |
168 | QObject::tr("teaspoons"); | 168 | QObject::tr("teaspoons"); |
169 | QObject::tr("tonnes"); | 169 | QObject::tr("tonnes"); |
170 | QObject::tr("yd"); | 170 | QObject::tr("yd"); |
171 | 171 | ||
172 | 172 | ||
173 | //bgr_command.insert( PushButtonFunction); | 173 | //bgr_command.insert( PushButtonFunction); |
174 | bgr_command.insert( PushButtonMPlus); | 174 | bgr_command.insert( PushButtonMPlus); |
175 | bgr_command.insert( PushButtonMR); | 175 | bgr_command.insert( PushButtonMR); |
176 | bgr_command.insert( PushButtonMC); | 176 | bgr_command.insert( PushButtonMC); |
177 | bgr_command.insert( PushButtonCE); | 177 | bgr_command.insert( PushButtonCE); |
178 | connect( &bgr_command, SIGNAL(clicked(int) ), this, SLOT(command_buttons(int))); | 178 | connect( &bgr_command, SIGNAL(clicked(int) ), this, SLOT(command_buttons(int))); |
179 | 179 | ||
180 | bgr_digits.insert(PushButton0); | 180 | bgr_digits.insert(PushButton0); |
181 | bgr_digits.insert(PushButton1); | 181 | bgr_digits.insert(PushButton1); |
182 | bgr_digits.insert(PushButton2); | 182 | bgr_digits.insert(PushButton2); |
183 | bgr_digits.insert(PushButton3); | 183 | bgr_digits.insert(PushButton3); |
184 | bgr_digits.insert(PushButton4); | 184 | bgr_digits.insert(PushButton4); |
185 | bgr_digits.insert(PushButton5); | 185 | bgr_digits.insert(PushButton5); |
186 | bgr_digits.insert(PushButton6); | 186 | bgr_digits.insert(PushButton6); |
187 | bgr_digits.insert(PushButton7); | 187 | bgr_digits.insert(PushButton7); |
188 | bgr_digits.insert(PushButton8); | 188 | bgr_digits.insert(PushButton8); |
189 | bgr_digits.insert(PushButton9); | 189 | bgr_digits.insert(PushButton9); |
190 | connect( &bgr_digits, SIGNAL(clicked(int) ), this, SLOT(enterNumber(int))); | 190 | connect( &bgr_digits, SIGNAL(clicked(int) ), this, SLOT(enterNumber(int))); |
191 | 191 | ||
192 | 192 | ||
193 | bgr_std.insert(PushButtonEquals); | 193 | bgr_std.insert(PushButtonEquals); |
194 | bgr_std.insert(PushButtonDecimal); | 194 | bgr_std.insert(PushButtonDecimal); |
195 | bgr_std.insert(PushButtonAdd); | 195 | bgr_std.insert(PushButtonAdd); |
196 | bgr_std.insert(PushButtonMinus); | 196 | bgr_std.insert(PushButtonMinus); |
197 | bgr_std.insert(PushButtonDivide); | 197 | bgr_std.insert(PushButtonDivide); |
198 | bgr_std.insert(PushButtonTimes); | 198 | bgr_std.insert(PushButtonTimes); |
199 | connect( &bgr_std, SIGNAL(clicked(int) ), this, SLOT(std_buttons(int))); | 199 | connect( &bgr_std, SIGNAL(clicked(int) ), this, SLOT(std_buttons(int))); |
200 | 200 | ||
201 | // change the / to a proper division signal | 201 | // change the / to a proper division signal |
202 | PushButtonDivide->setText(QChar(0xF7)); | 202 | PushButtonDivide->setText(QChar(0xF7)); |
203 | 203 | ||
204 | func_buttons[0] = PushButtonF1; | 204 | func_buttons[0] = PushButtonF1; |
205 | func_buttons[1] = PushButtonF2; | 205 | func_buttons[1] = PushButtonF2; |
206 | func_buttons[2] = PushButtonF3; | 206 | func_buttons[2] = PushButtonF3; |
207 | func_buttons[3] = PushButtonF4; | 207 | func_buttons[3] = PushButtonF4; |
208 | func_buttons[4] = PushButtonF5; | 208 | func_buttons[4] = PushButtonF5; |
209 | func_buttons[5] = PushButtonF6; | 209 | func_buttons[5] = PushButtonF6; |
210 | func_buttons[6] = PushButtonF7; | 210 | func_buttons[6] = PushButtonF7; |
211 | func_buttons[7] = PushButtonF8; | 211 | func_buttons[7] = PushButtonF8; |
212 | func_buttons[8] = PushButtonF9; | 212 | func_buttons[8] = PushButtonF9; |
213 | func_buttons[9] = PushButtonF10; | 213 | func_buttons[9] = PushButtonF10; |
214 | func_buttons[10] = PushButtonF11; | 214 | func_buttons[10] = PushButtonF11; |
215 | func_buttons[11] = PushButtonF12; | 215 | func_buttons[11] = PushButtonF12; |
216 | 216 | ||
217 | for ( int x = 0 ; x < func_button_count ; x++ ) { | 217 | for ( int x = 0 ; x < func_button_count ; x++ ) { |
218 | QPushButton* tmpbutton = func_buttons[x]; | 218 | QPushButton* tmpbutton = func_buttons[x]; |
219 | faces << tmpbutton->text(); | 219 | faces << tmpbutton->text(); |
220 | bgr_function.insert(tmpbutton); | 220 | bgr_function.insert(tmpbutton); |
221 | } | 221 | } |
222 | connect( &bgr_function, SIGNAL(clicked(int) ) , this, SLOT(do_convert(int) ) ); | 222 | connect( &bgr_function, SIGNAL(clicked(int) ) , this, SLOT(do_convert(int) ) ); |
223 | connect( &bgr_function, SIGNAL(clicked(int) ) , this, SLOT(std_funcs (int) ) ); | 223 | connect( &bgr_function, SIGNAL(clicked(int) ) , this, SLOT(std_funcs(int) ) ); |
224 | 224 | ||
225 | connect(ComboBoxFunction, SIGNAL(activated(int) ), this, SLOT(function_button(int) ) ); | 225 | connect(ComboBoxFunction, SIGNAL(activated(int) ), this, SLOT(function_button(int) ) ); |
226 | 226 | ||
227 | captions.append(tr("Standard")); | 227 | captions.append(tr("Standard")); |
228 | ComboBoxFunction->insertItem(captions.last()); | 228 | ComboBoxFunction->insertItem(captions.last()); |
229 | 229 | ||
230 | // now add in the conversion modes | 230 | // now add in the conversion modes |
231 | // when the menu gets done, these should be in a submenu | 231 | // when the menu gets done, these should be in a submenu |
232 | QString tmp = QPEApplication::qpeDir(); | 232 | QString tmp = QPEApplication::qpeDir(); |
233 | tmp += "etc/unit_conversion.dat"; | 233 | tmp += "etc/unit_conversion.dat"; |
234 | QFile myfile(tmp); | 234 | QFile myfile(tmp); |
235 | if ( !myfile.open( IO_Translate | IO_ReadOnly ) ) { | 235 | if ( !myfile.open( IO_Translate | IO_ReadOnly ) ) { |
236 | qDebug("Data file unit_conversion.dat not found\nNo conversion features will be available\n"+tmp); | 236 | qDebug("Data file unit_conversion.dat not found\nNo conversion features will be available\n"+tmp); |
237 | // disable the f button if no conv file available | 237 | // disable the f button if no conv file available |
238 | ComboBoxFunction->setEnabled(FALSE); | 238 | ComboBoxFunction->setEnabled(FALSE); |
239 | } | 239 | } |
240 | else { | 240 | else { |
241 | QString line, line2; | 241 | QString line, line2; |
242 | QTextStream ts(&myfile); | 242 | QTextStream ts(&myfile); |
243 | 243 | ||
244 | // first pass, see how many conversion types there are in order to allocate for them | 244 | // first pass, see how many conversion types there are in order to allocate for them |
245 | while ( ! ts.eof() ) { | 245 | while ( ! ts.eof() ) { |
246 | line = ts.readLine(); | 246 | line = ts.readLine(); |
247 | if ( line.contains ("STARTTYPE" ) ) | 247 | if ( line.contains ("STARTTYPE" ) ) |
248 | conversion_mode_count++; | 248 | conversion_mode_count++; |
249 | } | 249 | } |
250 | 250 | ||
251 | entry_list = new double[conversion_mode_count*func_button_count]; | 251 | entry_list = new double[conversion_mode_count*func_button_count]; |
252 | preoffset_list = new double[conversion_mode_count*func_button_count]; | 252 | preoffset_list = new double[conversion_mode_count*func_button_count]; |
253 | postoffset_list = new double[conversion_mode_count*func_button_count]; | 253 | postoffset_list = new double[conversion_mode_count*func_button_count]; |
254 | myfile.close(); | 254 | myfile.close(); |
255 | myfile.open( IO_Translate | IO_ReadOnly ); | 255 | myfile.open( IO_Translate | IO_ReadOnly ); |
256 | QTextStream ts2(&myfile); | 256 | QTextStream ts2(&myfile); |
257 | 257 | ||
258 | // second pass, read in values | 258 | // second pass, read in values |
259 | int x = 0; | 259 | int x = 0; |
260 | while ( ! ts2.eof() ) { | 260 | while ( ! ts2.eof() ) { |
261 | line = ts2.readLine(); | 261 | line = ts2.readLine(); |
262 | if ( line.contains("STARTTYPE") ) { | 262 | if ( line.contains("STARTTYPE") ) { |
263 | captions << tr( line.remove(0,10) ); | 263 | captions << tr( line.remove(0,10) ); |
264 | ComboBoxFunction->insertItem(captions.last()); | 264 | ComboBoxFunction->insertItem(captions.last()); |
265 | while ( !line.contains("ENDTYPE") ) { | 265 | while ( !line.contains("ENDTYPE") ) { |
266 | line = ts2.readLine(); | 266 | line = ts2.readLine(); |
267 | if ( line.contains("NAME") ) { | 267 | if ( line.contains("NAME") ) { |
268 | faces << tr( line.remove(0,5) ); | 268 | faces << tr( line.remove(0,5) ); |
269 | line2 = ts2.readLine(); | 269 | line2 = ts2.readLine(); |
270 | line2.remove(0,6); | 270 | line2.remove(0,6); |
271 | entry_list[x] = line2.toDouble(); | 271 | entry_list[x] = line2.toDouble(); |
272 | line2 = ts2.readLine(); | 272 | line2 = ts2.readLine(); |
273 | line2.remove(0,7); | 273 | line2.remove(0,7); |
274 | preoffset_list[x] = line2.toDouble(); | 274 | preoffset_list[x] = line2.toDouble(); |
275 | line2 = ts2.readLine(); | 275 | line2 = ts2.readLine(); |
276 | line2.remove(0,8); | 276 | line2.remove(0,8); |
277 | postoffset_list[x] = line2.toDouble(); | 277 | postoffset_list[x] = line2.toDouble(); |
278 | x++; | 278 | x++; |
279 | } | 279 | } |
280 | } | 280 | } |
281 | } | 281 | } |
282 | } | 282 | } |
283 | } | 283 | } |
284 | myfile.close(); | 284 | myfile.close(); |
285 | clear(); | 285 | clear(); |
286 | max_mode = pre_conv_modes_count + conversion_mode_count + post_conv_modes_count - 1; | 286 | max_mode = pre_conv_modes_count + conversion_mode_count + post_conv_modes_count - 1; |
287 | display_pixmap_faces(); | 287 | display_pixmap_faces(); |
288 | 288 | ||
289 | qApp->installEventFilter( this ); | 289 | qApp->installEventFilter( this ); |
290 | } | 290 | } |
291 | 291 | ||
292 | bool CalculatorImpl::eventFilter( QObject *o, QEvent *e ) | 292 | bool CalculatorImpl::eventFilter( QObject *o, QEvent *e ) |
293 | { | 293 | { |
294 | if ( e->type() == QEvent::KeyPress && state != sError ) { | 294 | if ( e->type() == QEvent::KeyPress && state != sError ) { |
295 | QKeyEvent *k = (QKeyEvent*)e; | 295 | QKeyEvent *k = (QKeyEvent*)e; |
296 | if ( k->key() >= Key_0 && k->key() <= Key_9 ) { | 296 | if ( k->key() >= Key_0 && k->key() <= Key_9 ) { |
297 | enterNumber( k->key() - Key_0 ); | 297 | enterNumber( k->key() - Key_0 ); |
298 | return true; | 298 | return true; |
299 | } else { | 299 | } else { |
300 | switch ( k->key() ) { | 300 | switch ( k->key() ) { |
301 | case Key_Equal: | 301 | case Key_Equal: |
302 | std_buttons(0); | 302 | std_buttons(0); |
303 | return true; | 303 | return true; |
304 | case Key_Period: | 304 | case Key_Period: |
305 | std_buttons(1); | 305 | std_buttons(1); |
306 | return true; | 306 | return true; |
307 | case Key_Plus: | 307 | case Key_Plus: |
308 | std_buttons(2); | 308 | std_buttons(2); |
309 | return true; | 309 | return true; |
310 | case Key_Minus: | 310 | case Key_Minus: |
311 | std_buttons(3); | 311 | std_buttons(3); |
312 | return true; | 312 | return true; |
313 | case Key_Slash: | 313 | case Key_Slash: |
314 | std_buttons(4); | 314 | std_buttons(4); |
315 | return true; | 315 | return true; |
316 | case Key_Asterisk: | 316 | case Key_Asterisk: |
317 | std_buttons(5); | 317 | std_buttons(5); |
318 | return true; | 318 | return true; |
319 | case Key_Percent: | 319 | case Key_Percent: |
diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp index 4d92683..118cf1f 100644 --- a/noncore/tools/clock/clock.cpp +++ b/noncore/tools/clock/clock.cpp | |||
@@ -28,241 +28,241 @@ | |||
28 | #include <qpe/timestring.h> | 28 | #include <qpe/timestring.h> |
29 | #include <qpe/alarmserver.h> | 29 | #include <qpe/alarmserver.h> |
30 | #include <qpe/sound.h> | 30 | #include <qpe/sound.h> |
31 | #include <qpe/resource.h> | 31 | #include <qpe/resource.h> |
32 | #include <qsound.h> | 32 | #include <qsound.h> |
33 | #include <qtimer.h> | 33 | #include <qtimer.h> |
34 | 34 | ||
35 | #include <opie/oclickablelabel.h> | 35 | #include <opie/oclickablelabel.h> |
36 | 36 | ||
37 | #include <qlcdnumber.h> | 37 | #include <qlcdnumber.h> |
38 | #include <qslider.h> | 38 | #include <qslider.h> |
39 | #include <qlabel.h> | 39 | #include <qlabel.h> |
40 | #include <qlayout.h> | 40 | #include <qlayout.h> |
41 | #include <qtimer.h> | 41 | #include <qtimer.h> |
42 | #include <qpushbutton.h> | 42 | #include <qpushbutton.h> |
43 | #include <qradiobutton.h> | 43 | #include <qradiobutton.h> |
44 | #include <qbuttongroup.h> | 44 | #include <qbuttongroup.h> |
45 | #include <qpainter.h> | 45 | #include <qpainter.h> |
46 | #include <qmessagebox.h> | 46 | #include <qmessagebox.h> |
47 | #include <qdatetime.h> | 47 | #include <qdatetime.h> |
48 | 48 | ||
49 | #include <math.h> | 49 | #include <math.h> |
50 | #include <unistd.h> | 50 | #include <unistd.h> |
51 | #include <sys/types.h> | 51 | #include <sys/types.h> |
52 | 52 | ||
53 | #include <pthread.h> | 53 | #include <pthread.h> |
54 | 54 | ||
55 | 55 | ||
56 | const double deg2rad = 0.017453292519943295769; // pi/180 | 56 | const double deg2rad = 0.017453292519943295769; // pi/180 |
57 | const int sw_prec = 2; | 57 | const int sw_prec = 2; |
58 | 58 | ||
59 | void startPlayer() | 59 | void startPlayer() |
60 | { | 60 | { |
61 | Config config( "qpe" ); | 61 | Config config( "qpe" ); |
62 | config.setGroup( "Time" ); | 62 | config.setGroup( "Time" ); |
63 | sleep(15); | 63 | sleep(15); |
64 | QCopEnvelope e( "QPE/Application/opieplayer", "setDocument(QString)" ); | 64 | QCopEnvelope e( "QPE/Application/opieplayer", "setDocument(QString)" ); |
65 | e << config.readEntry( "mp3File", "" ); | 65 | e << config.readEntry( "mp3File", "" ); |
66 | } | 66 | } |
67 | 67 | ||
68 | 68 | ||
69 | static void toggleScreenSaver( bool on ) | 69 | static void toggleScreenSaver( bool on ) |
70 | { | 70 | { |
71 | QCopEnvelope e( "QPE/System", "setScreenSaverMode(int)" ); | 71 | QCopEnvelope e( "QPE/System", "setScreenSaverMode(int)" ); |
72 | e << ( on ? QPEApplication::Enable : QPEApplication::DisableSuspend ); | 72 | e << ( on ? QPEApplication::Enable : QPEApplication::DisableSuspend ); |
73 | } | 73 | } |
74 | 74 | ||
75 | Clock::Clock( QWidget * parent, const char * name, WFlags f ) | 75 | Clock::Clock( QWidget * parent, const char * name, WFlags f ) |
76 | : QVBox( parent, name , f ) | 76 | : QVBox( parent, name , f ) |
77 | { | 77 | { |
78 | setSpacing( 4 ); | 78 | setSpacing( 4 ); |
79 | setMargin( 1 ); | 79 | setMargin( 1 ); |
80 | 80 | ||
81 | 81 | ||
82 | snoozeBtn = new QPushButton ( this ); | 82 | snoozeBtn = new QPushButton ( this ); |
83 | snoozeBtn->setText( tr( "Snooze" ) ); | 83 | snoozeBtn->setText( tr( "Snooze" ) ); |
84 | 84 | ||
85 | aclock = new AnalogClock( this ); | 85 | aclock = new AnalogClock( this ); |
86 | aclock->display( QTime::currentTime() ); | 86 | aclock->display( QTime::currentTime() ); |
87 | aclock->setLineWidth( 2 ); | 87 | aclock->setLineWidth( 2 ); |
88 | 88 | ||
89 | QHBox *hb = new QHBox( this ); | 89 | QHBox *hb = new QHBox( this ); |
90 | hb->setMargin( 0 ); | 90 | hb->setMargin( 0 ); |
91 | QWidget *space = new QWidget( hb ); | 91 | QWidget *space = new QWidget( hb ); |
92 | lcd = new QLCDNumber( hb ); | 92 | lcd = new QLCDNumber( hb ); |
93 | lcd->setSegmentStyle( QLCDNumber::Flat ); | 93 | lcd->setSegmentStyle( QLCDNumber::Flat ); |
94 | lcd->setFrameStyle( QFrame::NoFrame ); | 94 | lcd->setFrameStyle( QFrame::NoFrame ); |
95 | lcd->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ) ); | 95 | lcd->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ) ); |
96 | lcd->setFixedHeight( 23 ); | 96 | lcd->setFixedHeight( 23 ); |
97 | 97 | ||
98 | ampmLabel = new QLabel( tr( "PM" ), hb ); | 98 | ampmLabel = new QLabel( tr( "PM" ), hb ); |
99 | ampmLabel->setFont( QFont( "Helvetica", 14, QFont::Bold ) ); | 99 | ampmLabel->setFont( QFont( "Helvetica", 14, QFont::Bold ) ); |
100 | ampmLabel->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Preferred ) ); | 100 | ampmLabel->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Preferred ) ); |
101 | ampmLabel->setAlignment( AlignLeft | AlignBottom ); | 101 | ampmLabel->setAlignment( AlignLeft | AlignBottom ); |
102 | space = new QWidget( hb ); | 102 | space = new QWidget( hb ); |
103 | 103 | ||
104 | date = new QLabel( this ); | 104 | date = new QLabel( this ); |
105 | date->setAlignment( AlignHCenter | AlignVCenter ); | 105 | date->setAlignment( AlignHCenter | AlignVCenter ); |
106 | date->setFont( QFont( "Helvetica", 14, QFont::Bold ) ); | 106 | date->setFont( QFont( "Helvetica", 14, QFont::Bold ) ); |
107 | date->setText( TimeString::longDateString( QDate::currentDate() ) ); | 107 | date->setText( TimeString::longDateString( QDate::currentDate() ) ); |
108 | 108 | ||
109 | QWidget *controls = new QWidget( this ); | 109 | QWidget *controls = new QWidget( this ); |
110 | QGridLayout *gl = new QGridLayout( controls, 3, 2, 6, 4 ); | 110 | QGridLayout *gl = new QGridLayout( controls, 3, 2, 6, 4 ); |
111 | 111 | ||
112 | QButtonGroup *grp = new QButtonGroup( controls ); | 112 | QButtonGroup *grp = new QButtonGroup( controls ); |
113 | grp->setRadioButtonExclusive( true ); | 113 | grp->setRadioButtonExclusive( true ); |
114 | grp->hide(); | 114 | grp->hide(); |
115 | 115 | ||
116 | clockRB = new QRadioButton ( tr( "Clock" ), controls ); | 116 | clockRB = new QRadioButton ( tr( "Clock" ), controls ); |
117 | gl->addWidget( clockRB, 0, 0 ); | 117 | gl->addWidget( clockRB, 0, 0 ); |
118 | grp->insert( clockRB ); | 118 | grp->insert( clockRB ); |
119 | 119 | ||
120 | swatchRB = new QRadioButton ( tr( "Stopwatch" ), controls ); | 120 | swatchRB = new QRadioButton ( tr( "Stopwatch" ), controls ); |
121 | gl->addWidget( swatchRB, 1, 0 ); | 121 | gl->addWidget( swatchRB, 1, 0 ); |
122 | grp->insert( swatchRB ); | 122 | grp->insert( swatchRB ); |
123 | 123 | ||
124 | connect( grp, SIGNAL( clicked( int ) ), this, SLOT( modeSelect( int ) ) ); | 124 | connect( grp, SIGNAL( clicked(int) ), this, SLOT( modeSelect(int) ) ); |
125 | grp->setButton( 0 ); | 125 | grp->setButton( 0 ); |
126 | 126 | ||
127 | set = new QPushButton ( controls ); | 127 | set = new QPushButton ( controls ); |
128 | set->setMaximumSize( 50, 30 ); | 128 | set->setMaximumSize( 50, 30 ); |
129 | gl->addWidget( set , 0, 1 ); | 129 | gl->addWidget( set , 0, 1 ); |
130 | set->setText( tr( "Start" ) ); | 130 | set->setText( tr( "Start" ) ); |
131 | set->setEnabled( FALSE ); | 131 | set->setEnabled( FALSE ); |
132 | grp->insert( set ); | 132 | grp->insert( set ); |
133 | 133 | ||
134 | reset = new QPushButton ( controls ); | 134 | reset = new QPushButton ( controls ); |
135 | gl->addWidget( reset, 1, 1 ); | 135 | gl->addWidget( reset, 1, 1 ); |
136 | reset->setText( tr( "Reset" ) ); | 136 | reset->setText( tr( "Reset" ) ); |
137 | reset->setEnabled( FALSE ); | 137 | reset->setEnabled( FALSE ); |
138 | grp->insert( reset ); | 138 | grp->insert( reset ); |
139 | 139 | ||
140 | alarmOffBtn = new QPushButton ( controls ); | 140 | alarmOffBtn = new QPushButton ( controls ); |
141 | gl->addWidget( alarmOffBtn, 0, 2 ); | 141 | gl->addWidget( alarmOffBtn, 0, 2 ); |
142 | 142 | ||
143 | alarmBtn = new QPushButton ( controls ); | 143 | alarmBtn = new QPushButton ( controls ); |
144 | gl->addWidget( alarmBtn, 1, 2 ); | 144 | gl->addWidget( alarmBtn, 1, 2 ); |
145 | 145 | ||
146 | alarmBtn->setText( tr( "Set Alarm" ) ); | 146 | alarmBtn->setText( tr( "Set Alarm" ) ); |
147 | 147 | ||
148 | OClickableLabel *click = new OClickableLabel( controls, "label" ); | 148 | OClickableLabel *click = new OClickableLabel( controls, "label" ); |
149 | click->setText( tr( "Set date and time." ) ); | 149 | click->setText( tr( "Set date and time." ) ); |
150 | gl->addMultiCellWidget( click, 3, 3, 0, 2, AlignHCenter ); | 150 | gl->addMultiCellWidget( click, 3, 3, 0, 2, AlignHCenter ); |
151 | connect( click, SIGNAL( clicked() ), this, SLOT( slotAdjustTime() ) ); | 151 | connect( click, SIGNAL( clicked() ), this, SLOT( slotAdjustTime() ) ); |
152 | 152 | ||
153 | connect( set , SIGNAL( pressed() ), SLOT( slotSet() ) ); | 153 | connect( set , SIGNAL( pressed() ), SLOT( slotSet() ) ); |
154 | connect( reset, SIGNAL( clicked() ), SLOT( slotReset() ) ); | 154 | connect( reset, SIGNAL( clicked() ), SLOT( slotReset() ) ); |
155 | 155 | ||
156 | connect( alarmBtn, SIGNAL( clicked() ), SLOT( slotSetAlarm() ) ); | 156 | connect( alarmBtn, SIGNAL( clicked() ), SLOT( slotSetAlarm() ) ); |
157 | connect( snoozeBtn, SIGNAL( clicked() ), SLOT( slotSnooze() ) ); | 157 | connect( snoozeBtn, SIGNAL( clicked() ), SLOT( slotSnooze() ) ); |
158 | connect( alarmOffBtn, SIGNAL( clicked() ), SLOT( slotToggleAlarm() ) ); | 158 | connect( alarmOffBtn, SIGNAL( clicked() ), SLOT( slotToggleAlarm() ) ); |
159 | 159 | ||
160 | connect( qApp, SIGNAL( appMessage( const QCString&, const QByteArray& ) ), | 160 | connect( qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ), |
161 | this, SLOT( appMessage( const QCString&, const QByteArray& ) ) ); | 161 | this, SLOT( appMessage(const QCString&,const QByteArray&) ) ); |
162 | 162 | ||
163 | t = new QTimer( this ); | 163 | t = new QTimer( this ); |
164 | connect( t, SIGNAL( timeout() ), SLOT( updateClock() ) ); | 164 | connect( t, SIGNAL( timeout() ), SLOT( updateClock() ) ); |
165 | t->start( 1000 ); | 165 | t->start( 1000 ); |
166 | 166 | ||
167 | connect( qApp, SIGNAL( timeChanged() ), SLOT( updateClock() ) ); | 167 | connect( qApp, SIGNAL( timeChanged() ), SLOT( updateClock() ) ); |
168 | 168 | ||
169 | swatch_running = FALSE; | 169 | swatch_running = FALSE; |
170 | swatch_totalms = 0; | 170 | swatch_totalms = 0; |
171 | 171 | ||
172 | connect( qApp, SIGNAL( clockChanged( bool ) ), this, SLOT( changeClock( bool ) ) ); | 172 | connect( qApp, SIGNAL( clockChanged(bool) ), this, SLOT( changeClock(bool) ) ); |
173 | 173 | ||
174 | 174 | ||
175 | Config config( "qpe" ); | 175 | Config config( "qpe" ); |
176 | config.setGroup( "Time" ); | 176 | config.setGroup( "Time" ); |
177 | ampm = config.readBoolEntry( "AMPM", TRUE ); | 177 | ampm = config.readBoolEntry( "AMPM", TRUE ); |
178 | 178 | ||
179 | QString tmp = config.readEntry( "clockAlarmHour", "" ); | 179 | QString tmp = config.readEntry( "clockAlarmHour", "" ); |
180 | bool ok; | 180 | bool ok; |
181 | hour = tmp.toInt( &ok, 10 ); | 181 | hour = tmp.toInt( &ok, 10 ); |
182 | tmp = config.readEntry( "clockAlarmMinute", "" ); | 182 | tmp = config.readEntry( "clockAlarmMinute", "" ); |
183 | minute = tmp.toInt( &ok, 10 ); | 183 | minute = tmp.toInt( &ok, 10 ); |
184 | 184 | ||
185 | if ( config.readEntry( "clockAlarmSet", "FALSE" ) == "TRUE" ) | 185 | if ( config.readEntry( "clockAlarmSet", "FALSE" ) == "TRUE" ) |
186 | { | 186 | { |
187 | alarmOffBtn->setText( tr( "Alarm Is On" ) ); | 187 | alarmOffBtn->setText( tr( "Alarm Is On" ) ); |
188 | alarmBool = TRUE; | 188 | alarmBool = TRUE; |
189 | snoozeBtn->show(); | 189 | snoozeBtn->show(); |
190 | } | 190 | } |
191 | else | 191 | else |
192 | { | 192 | { |
193 | alarmOffBtn->setText( tr( "Alarm Is Off" ) ); | 193 | alarmOffBtn->setText( tr( "Alarm Is Off" ) ); |
194 | alarmBool = FALSE; | 194 | alarmBool = FALSE; |
195 | snoozeBtn->hide(); | 195 | snoozeBtn->hide(); |
196 | } | 196 | } |
197 | 197 | ||
198 | QTimer::singleShot( 0, this, SLOT( updateClock() ) ); | 198 | QTimer::singleShot( 0, this, SLOT( updateClock() ) ); |
199 | 199 | ||
200 | Config cfg( "Clock" ); | 200 | Config cfg( "Clock" ); |
201 | cfg.setGroup( "Mode" ); | 201 | cfg.setGroup( "Mode" ); |
202 | int mode = cfg.readBoolEntry( "clockMode"); | 202 | int mode = cfg.readBoolEntry( "clockMode"); |
203 | setSwatchMode( mode); | 203 | setSwatchMode( mode); |
204 | modeSelect( mode); | 204 | modeSelect( mode); |
205 | } | 205 | } |
206 | 206 | ||
207 | Clock::~Clock() | 207 | Clock::~Clock() |
208 | { | 208 | { |
209 | toggleScreenSaver( true ); | 209 | toggleScreenSaver( true ); |
210 | } | 210 | } |
211 | 211 | ||
212 | void Clock::updateClock() | 212 | void Clock::updateClock() |
213 | { | 213 | { |
214 | if ( clockRB->isChecked() ) | 214 | if ( clockRB->isChecked() ) |
215 | { | 215 | { |
216 | QTime tm = QDateTime::currentDateTime().time(); | 216 | QTime tm = QDateTime::currentDateTime().time(); |
217 | QString s; | 217 | QString s; |
218 | if ( ampm ) | 218 | if ( ampm ) |
219 | { | 219 | { |
220 | int hour = tm.hour(); | 220 | int hour = tm.hour(); |
221 | if ( hour == 0 ) | 221 | if ( hour == 0 ) |
222 | hour = 12; | 222 | hour = 12; |
223 | if ( hour > 12 ) | 223 | if ( hour > 12 ) |
224 | hour -= 12; | 224 | hour -= 12; |
225 | s.sprintf( "%2d%c%02d", hour, ':', tm.minute() ); | 225 | s.sprintf( "%2d%c%02d", hour, ':', tm.minute() ); |
226 | ampmLabel->setText( ( tm.hour() >= 12 ) ? "PM" : "AM" ); | 226 | ampmLabel->setText( ( tm.hour() >= 12 ) ? "PM" : "AM" ); |
227 | ampmLabel->show(); | 227 | ampmLabel->show(); |
228 | } | 228 | } |
229 | else | 229 | else |
230 | { | 230 | { |
231 | s.sprintf( "%2d%c%02d", tm.hour(), ':', tm.minute() ); | 231 | s.sprintf( "%2d%c%02d", tm.hour(), ':', tm.minute() ); |
232 | ampmLabel->hide(); | 232 | ampmLabel->hide(); |
233 | } | 233 | } |
234 | lcd->display( s ); | 234 | lcd->display( s ); |
235 | lcd->repaint( FALSE ); | 235 | lcd->repaint( FALSE ); |
236 | aclock->display( QTime::currentTime() ); | 236 | aclock->display( QTime::currentTime() ); |
237 | date->setText( TimeString::longDateString( QDate::currentDate() ) ); | 237 | date->setText( TimeString::longDateString( QDate::currentDate() ) ); |
238 | } | 238 | } |
239 | else | 239 | else |
240 | { | 240 | { |
241 | QTime swatch_time; | 241 | QTime swatch_time; |
242 | QString lcdtext; | 242 | QString lcdtext; |
243 | int totalms = swatch_totalms; | 243 | int totalms = swatch_totalms; |
244 | if ( swatch_running ) | 244 | if ( swatch_running ) |
245 | totalms += swatch_start.elapsed(); | 245 | totalms += swatch_start.elapsed(); |
246 | swatch_time = QTime( 0, 0, 0 ).addMSecs( totalms ); | 246 | swatch_time = QTime( 0, 0, 0 ).addMSecs( totalms ); |
247 | QString d = swatch_running ? QString( " " ) | 247 | QString d = swatch_running ? QString( " " ) |
248 | : QString::number( totalms % 1000 + 1000 ); | 248 | : QString::number( totalms % 1000 + 1000 ); |
249 | lcdtext = swatch_time.toString() + "." + d.right( 3 ).left( sw_prec ); | 249 | lcdtext = swatch_time.toString() + "." + d.right( 3 ).left( sw_prec ); |
250 | lcd->display( lcdtext ); | 250 | lcd->display( lcdtext ); |
251 | lcd->repaint( FALSE ); | 251 | lcd->repaint( FALSE ); |
252 | aclock->display( swatch_time ); | 252 | aclock->display( swatch_time ); |
253 | date->setText( TimeString::longDateString( QDate::currentDate() ) ); | 253 | date->setText( TimeString::longDateString( QDate::currentDate() ) ); |
254 | } | 254 | } |
255 | } | 255 | } |
256 | 256 | ||
257 | void Clock::changeClock( bool a ) | 257 | void Clock::changeClock( bool a ) |
258 | { | 258 | { |
259 | ampm = a; | 259 | ampm = a; |
260 | updateClock(); | 260 | updateClock(); |
261 | } | 261 | } |
262 | 262 | ||
263 | void Clock::clearClock( void ) | 263 | void Clock::clearClock( void ) |
264 | { | 264 | { |
265 | lcd->display( QTime( 0, 0, 0 ).toString() ); | 265 | lcd->display( QTime( 0, 0, 0 ).toString() ); |
266 | aclock->display( QTime( 0, 0, 0 ) ); | 266 | aclock->display( QTime( 0, 0, 0 ) ); |
267 | } | 267 | } |
268 | 268 | ||
diff --git a/noncore/tools/formatter/formatter.cpp b/noncore/tools/formatter/formatter.cpp index e869317..77e1790 100644 --- a/noncore/tools/formatter/formatter.cpp +++ b/noncore/tools/formatter/formatter.cpp | |||
@@ -67,195 +67,195 @@ FormatterApp::FormatterApp( QWidget* parent, const char* name, WFlags fl, bool | |||
67 | FormatterAppLayout->setSpacing( 2); | 67 | FormatterAppLayout->setSpacing( 2); |
68 | FormatterAppLayout->setMargin( 2 ); | 68 | FormatterAppLayout->setMargin( 2 ); |
69 | 69 | ||
70 | TabWidget = new QTabWidget( this, "TabWidget" ); | 70 | TabWidget = new QTabWidget( this, "TabWidget" ); |
71 | 71 | ||
72 | tab = new QWidget( TabWidget, "tab" ); | 72 | tab = new QWidget( TabWidget, "tab" ); |
73 | tabLayout = new QGridLayout( tab ); | 73 | tabLayout = new QGridLayout( tab ); |
74 | tabLayout->setSpacing( 3); | 74 | tabLayout->setSpacing( 3); |
75 | tabLayout->setMargin( 2); | 75 | tabLayout->setMargin( 2); |
76 | 76 | ||
77 | storageComboBox = new QComboBox( FALSE, tab, "storageComboBox" ); | 77 | storageComboBox = new QComboBox( FALSE, tab, "storageComboBox" ); |
78 | storageComboBox->setMaximumWidth(220); | 78 | storageComboBox->setMaximumWidth(220); |
79 | 79 | ||
80 | tabLayout->addMultiCellWidget( storageComboBox, 0, 0, 0, 1); | 80 | tabLayout->addMultiCellWidget( storageComboBox, 0, 0, 0, 1); |
81 | 81 | ||
82 | TextLabel4 = new QLabel( tab, "TextLabel4" ); | 82 | TextLabel4 = new QLabel( tab, "TextLabel4" ); |
83 | TextLabel4->setText( tr( "Storage Type" ) ); | 83 | TextLabel4->setText( tr( "Storage Type" ) ); |
84 | 84 | ||
85 | tabLayout->addMultiCellWidget( TextLabel4, 1, 1, 0, 1); | 85 | tabLayout->addMultiCellWidget( TextLabel4, 1, 1, 0, 1); |
86 | 86 | ||
87 | TextLabel2 = new QLabel( tab, "TextLabel2" ); | 87 | TextLabel2 = new QLabel( tab, "TextLabel2" ); |
88 | TextLabel2->setText( tr( "File Systems" ) ); | 88 | TextLabel2->setText( tr( "File Systems" ) ); |
89 | 89 | ||
90 | tabLayout->addMultiCellWidget( TextLabel2, 4, 4, 0, 1); | 90 | tabLayout->addMultiCellWidget( TextLabel2, 4, 4, 0, 1); |
91 | 91 | ||
92 | fileSystemsCombo = new QComboBox( FALSE, tab, "fileSystemsCombo" ); | 92 | fileSystemsCombo = new QComboBox( FALSE, tab, "fileSystemsCombo" ); |
93 | fileSystemsCombo->setMaximumWidth(220); | 93 | fileSystemsCombo->setMaximumWidth(220); |
94 | 94 | ||
95 | tabLayout->addMultiCellWidget( fileSystemsCombo, 3, 3, 0, 1); | 95 | tabLayout->addMultiCellWidget( fileSystemsCombo, 3, 3, 0, 1); |
96 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); | 96 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); |
97 | tabLayout->addItem( spacer, 2, 0 ); | 97 | tabLayout->addItem( spacer, 2, 0 ); |
98 | 98 | ||
99 | formatPushButton = new QPushButton( tab, "formatPushButton" ); | 99 | formatPushButton = new QPushButton( tab, "formatPushButton" ); |
100 | formatPushButton->setText( tr( "Format" ) ); | 100 | formatPushButton->setText( tr( "Format" ) ); |
101 | formatPushButton->setMaximumWidth(170); | 101 | formatPushButton->setMaximumWidth(170); |
102 | 102 | ||
103 | tabLayout->addMultiCellWidget( formatPushButton, 6, 6, 0, 1); | 103 | tabLayout->addMultiCellWidget( formatPushButton, 6, 6, 0, 1); |
104 | QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); | 104 | QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); |
105 | tabLayout->addItem( spacer_2, 5, 0 ); | 105 | tabLayout->addItem( spacer_2, 5, 0 ); |
106 | 106 | ||
107 | TabWidget->insertTab( tab, tr( "Main" ) ); | 107 | TabWidget->insertTab( tab, tr( "Main" ) ); |
108 | 108 | ||
109 | tab_2 = new QWidget( TabWidget, "tab_2" ); | 109 | tab_2 = new QWidget( TabWidget, "tab_2" ); |
110 | tabLayout_2 = new QGridLayout( tab_2 ); | 110 | tabLayout_2 = new QGridLayout( tab_2 ); |
111 | tabLayout_2->setSpacing(3); | 111 | tabLayout_2->setSpacing(3); |
112 | tabLayout_2->setMargin(2); | 112 | tabLayout_2->setMargin(2); |
113 | 113 | ||
114 | mountPointLineEdit = new QLineEdit( tab_2, "mountPointLineEdit" ); | 114 | mountPointLineEdit = new QLineEdit( tab_2, "mountPointLineEdit" ); |
115 | 115 | ||
116 | tabLayout_2->addMultiCellWidget( mountPointLineEdit, 0, 0, 0, 1); | 116 | tabLayout_2->addMultiCellWidget( mountPointLineEdit, 0, 0, 0, 1); |
117 | 117 | ||
118 | deviceComboBox = new QComboBox( FALSE, tab_2, "deviceComboBox" ); | 118 | deviceComboBox = new QComboBox( FALSE, tab_2, "deviceComboBox" ); |
119 | 119 | ||
120 | tabLayout_2->addMultiCellWidget( deviceComboBox, 3, 3, 0, 1); | 120 | tabLayout_2->addMultiCellWidget( deviceComboBox, 3, 3, 0, 1); |
121 | 121 | ||
122 | TextLabel5 = new QLabel( tab_2, "TextLabel5" ); | 122 | TextLabel5 = new QLabel( tab_2, "TextLabel5" ); |
123 | TextLabel5->setText( tr( "CAUTION:\n" | 123 | TextLabel5->setText( tr( "CAUTION:\n" |
124 | "Changing parameters on this\n" | 124 | "Changing parameters on this\n" |
125 | "page may cause your system\n" | 125 | "page may cause your system\n" |
126 | "to stop functioning properly!" ) );//idiot message | 126 | "to stop functioning properly!" ) );//idiot message |
127 | 127 | ||
128 | tabLayout_2->addMultiCellWidget( TextLabel5, 6, 6, 0, 1); | 128 | tabLayout_2->addMultiCellWidget( TextLabel5, 6, 6, 0, 1); |
129 | 129 | ||
130 | editPushButton = new QPushButton( tab_2, "editPushButton" ); | 130 | editPushButton = new QPushButton( tab_2, "editPushButton" ); |
131 | editPushButton->setText( tr( "Edit fstab" ) ); | 131 | editPushButton->setText( tr( "Edit fstab" ) ); |
132 | editPushButton->setMaximumWidth(100); | 132 | editPushButton->setMaximumWidth(100); |
133 | 133 | ||
134 | tabLayout_2->addMultiCellWidget( editPushButton, 7, 7, 0, 0 ); | 134 | tabLayout_2->addMultiCellWidget( editPushButton, 7, 7, 0, 0 ); |
135 | 135 | ||
136 | fsckButton = new QPushButton( tab_2, "fsckPushButton" ); | 136 | fsckButton = new QPushButton( tab_2, "fsckPushButton" ); |
137 | fsckButton->setText( tr( "Check Disk" ) ); | 137 | fsckButton->setText( tr( "Check Disk" ) ); |
138 | fsckButton->setMaximumWidth(100); | 138 | fsckButton->setMaximumWidth(100); |
139 | 139 | ||
140 | tabLayout_2->addMultiCellWidget( fsckButton, 7, 7, 1, 1); | 140 | tabLayout_2->addMultiCellWidget( fsckButton, 7, 7, 1, 1); |
141 | 141 | ||
142 | TextLabel3 = new QLabel( tab_2, "TextLabel3" ); | 142 | TextLabel3 = new QLabel( tab_2, "TextLabel3" ); |
143 | TextLabel3->setText( tr( "Device" ) ); | 143 | TextLabel3->setText( tr( "Device" ) ); |
144 | 144 | ||
145 | tabLayout_2->addMultiCellWidget( TextLabel3, 4, 4, 0, 1 ); | 145 | tabLayout_2->addMultiCellWidget( TextLabel3, 4, 4, 0, 1 ); |
146 | QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); | 146 | QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); |
147 | tabLayout_2->addItem( spacer_3, 5, 0 ); | 147 | tabLayout_2->addItem( spacer_3, 5, 0 ); |
148 | 148 | ||
149 | TextLabel1 = new QLabel( tab_2, "TextLabel1" ); | 149 | TextLabel1 = new QLabel( tab_2, "TextLabel1" ); |
150 | TextLabel1->setText( tr( "Mount Point" ) ); | 150 | TextLabel1->setText( tr( "Mount Point" ) ); |
151 | 151 | ||
152 | tabLayout_2->addMultiCellWidget( TextLabel1, 1, 1, 0, 1 ); | 152 | tabLayout_2->addMultiCellWidget( TextLabel1, 1, 1, 0, 1 ); |
153 | QSpacerItem* spacer_4 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); | 153 | QSpacerItem* spacer_4 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); |
154 | tabLayout_2->addItem( spacer_4, 2, 1 ); | 154 | tabLayout_2->addItem( spacer_4, 2, 1 ); |
155 | TabWidget->insertTab( tab_2, tr( "Advanced" ) ); | 155 | TabWidget->insertTab( tab_2, tr( "Advanced" ) ); |
156 | 156 | ||
157 | FormatterAppLayout->addWidget( TabWidget, 0, 1 ); | 157 | FormatterAppLayout->addWidget( TabWidget, 0, 1 ); |
158 | 158 | ||
159 | connect( formatPushButton ,SIGNAL(released()),this,SLOT( doFormat()) ); | 159 | connect( formatPushButton ,SIGNAL(released()),this,SLOT( doFormat()) ); |
160 | connect( editPushButton ,SIGNAL(released()),this,SLOT( editFstab()) ); | 160 | connect( editPushButton ,SIGNAL(released()),this,SLOT( editFstab()) ); |
161 | connect( fsckButton ,SIGNAL(released()),this,SLOT( doFsck()) ); | 161 | connect( fsckButton ,SIGNAL(released()),this,SLOT( doFsck()) ); |
162 | 162 | ||
163 | connect( fileSystemsCombo,SIGNAL(activated(int)),this,SLOT( fsComboSelected(int ) )); | 163 | connect( fileSystemsCombo,SIGNAL(activated(int)),this,SLOT( fsComboSelected(int) )); |
164 | connect( storageComboBox,SIGNAL(activated(int)),this,SLOT( storageComboSelected(int ) )); | 164 | connect( storageComboBox,SIGNAL(activated(int)),this,SLOT( storageComboSelected(int) )); |
165 | connect( deviceComboBox,SIGNAL(activated(int)),this,SLOT( deviceComboSelected(int ) )); | 165 | connect( deviceComboBox,SIGNAL(activated(int)),this,SLOT( deviceComboSelected(int) )); |
166 | 166 | ||
167 | 167 | ||
168 | fillCombos(); | 168 | fillCombos(); |
169 | } | 169 | } |
170 | 170 | ||
171 | FormatterApp::~FormatterApp() | 171 | FormatterApp::~FormatterApp() |
172 | {} | 172 | {} |
173 | 173 | ||
174 | void FormatterApp::doFormat() | 174 | void FormatterApp::doFormat() |
175 | { | 175 | { |
176 | int err=0; | 176 | int err=0; |
177 | Output *outDlg; | 177 | Output *outDlg; |
178 | QString umountS, remountS; | 178 | QString umountS, remountS; |
179 | QString text = storageComboBox->currentText(); | 179 | QString text = storageComboBox->currentText(); |
180 | QString currentText = storageComboBox->currentText(); | 180 | QString currentText = storageComboBox->currentText(); |
181 | QString cmd; | 181 | QString cmd; |
182 | QString diskDevice = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4); | 182 | QString diskDevice = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4); |
183 | QString diskName = currentText.left(currentText.find(" -> ",0,TRUE)); | 183 | QString diskName = currentText.left(currentText.find(" -> ",0,TRUE)); |
184 | QString fs = fileSystemsCombo->currentText(); | 184 | QString fs = fileSystemsCombo->currentText(); |
185 | 185 | ||
186 | #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // lets test on something cheap | 186 | #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // lets test on something cheap |
187 | #else | 187 | #else |
188 | currentText = diskDevice = "/dev/fd0"; | 188 | currentText = diskDevice = "/dev/fd0"; |
189 | umountS = "umount -v /floppy 2>&1"; | 189 | umountS = "umount -v /floppy 2>&1"; |
190 | remountS = "mount -v /floppy 2>&1"; | 190 | remountS = "mount -v /floppy 2>&1"; |
191 | #endif | 191 | #endif |
192 | 192 | ||
193 | if( currentText.find("CF",0,TRUE) != -1) | 193 | if( currentText.find("CF",0,TRUE) != -1) |
194 | { | 194 | { |
195 | umountS = "umount "; | 195 | umountS = "umount "; |
196 | remountS = "mount "; | 196 | remountS = "mount "; |
197 | 197 | ||
198 | // umountS = "/sbin/cardctl eject"; | 198 | // umountS = "/sbin/cardctl eject"; |
199 | // remountS = "/sbin/cardctl insert"; | 199 | // remountS = "/sbin/cardctl insert"; |
200 | } | 200 | } |
201 | if( currentText.find("SD",0,TRUE) != -1) | 201 | if( currentText.find("SD",0,TRUE) != -1) |
202 | { | 202 | { |
203 | umountS = "umount "; | 203 | umountS = "umount "; |
204 | remountS = "mount "; | 204 | remountS = "mount "; |
205 | // umountS = "/etc/sdcontrol compeject"; | 205 | // umountS = "/etc/sdcontrol compeject"; |
206 | // remountS = "/etc/sdcontrol insert"; | 206 | // remountS = "/etc/sdcontrol insert"; |
207 | } | 207 | } |
208 | 208 | ||
209 | switch ( QMessageBox::warning(this,tr("Format?") | 209 | switch ( QMessageBox::warning(this,tr("Format?") |
210 | , tr("Really format\n") +diskName+" "+ currentText + | 210 | , tr("Really format\n") +diskName+" "+ currentText + |
211 | tr("\nwith %1 filesystem?\nYou will loose all data!!").arg( fs ) | 211 | tr("\nwith %1 filesystem?\nYou will loose all data!!").arg( fs ) |
212 | ,tr("Yes") | 212 | ,tr("Yes") |
213 | ,tr("No") | 213 | ,tr("No") |
214 | ,0 | 214 | ,0 |
215 | ,1 | 215 | ,1 |
216 | ,1) ) | 216 | ,1) ) |
217 | { | 217 | { |
218 | case 0: | 218 | case 0: |
219 | { | 219 | { |
220 | if(fs == "vfat") | 220 | if(fs == "vfat") |
221 | cmd = "mkdosfs -v " + diskDevice+" 2>&1"; | 221 | cmd = "mkdosfs -v " + diskDevice+" 2>&1"; |
222 | else if(fs == "ext2") | 222 | else if(fs == "ext2") |
223 | cmd = "mke2fs -v " + diskDevice+" 2>&1"; | 223 | cmd = "mke2fs -v " + diskDevice+" 2>&1"; |
224 | else | 224 | else |
225 | { | 225 | { |
226 | QMessageBox::warning(this, tr("Formatter"),tr("Could not format.\nUnknown type"), tr("Ok")); | 226 | QMessageBox::warning(this, tr("Formatter"),tr("Could not format.\nUnknown type"), tr("Ok")); |
227 | break; | 227 | break; |
228 | } | 228 | } |
229 | // cmd = "ls -l"; | 229 | // cmd = "ls -l"; |
230 | outDlg = new Output(this, tr("Formatter Output"),FALSE); | 230 | outDlg = new Output(this, tr("Formatter Output"),FALSE); |
231 | QPEApplication::showDialog( outDlg); | 231 | QPEApplication::showDialog( outDlg); |
232 | qApp->processEvents(); | 232 | qApp->processEvents(); |
233 | FILE *fp; | 233 | FILE *fp; |
234 | char line[130]; | 234 | char line[130]; |
235 | 235 | ||
236 | 236 | ||
237 | outDlg->OutputEdit->append( tr("Trying to umount %1.").arg( currentText) ); | 237 | outDlg->OutputEdit->append( tr("Trying to umount %1.").arg( currentText) ); |
238 | outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); | 238 | outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); |
239 | 239 | ||
240 | sleep(1); | 240 | sleep(1); |
241 | qDebug("Command is "+umountS); | 241 | qDebug("Command is "+umountS); |
242 | fp = popen( (const char *) umountS, "r"); | 242 | fp = popen( (const char *) umountS, "r"); |
243 | // qDebug("%d", fp); | 243 | // qDebug("%d", fp); |
244 | if ( !fp ) | 244 | if ( !fp ) |
245 | { | 245 | { |
246 | qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err); | 246 | qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err); |
247 | QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); | 247 | QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); |
248 | pclose(fp); | 248 | pclose(fp); |
249 | return; | 249 | return; |
250 | } | 250 | } |
251 | else | 251 | else |
252 | { | 252 | { |
253 | // outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); | 253 | // outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); |
254 | // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); | 254 | // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); |
255 | while ( fgets( line, sizeof line, fp)) | 255 | while ( fgets( line, sizeof line, fp)) |
256 | { | 256 | { |
257 | if( ((QString)line).find("busy",0,TRUE) != -1) | 257 | if( ((QString)line).find("busy",0,TRUE) != -1) |
258 | { | 258 | { |
259 | qDebug("Could not find '" + umountS); | 259 | qDebug("Could not find '" + umountS); |
260 | QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); | 260 | QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); |
261 | pclose(fp); | 261 | pclose(fp); |
diff --git a/noncore/tools/remote/buttondialog.cpp b/noncore/tools/remote/buttondialog.cpp index 6ea4801..580f101 100644 --- a/noncore/tools/remote/buttondialog.cpp +++ b/noncore/tools/remote/buttondialog.cpp | |||
@@ -1,152 +1,152 @@ | |||
1 | /* | 1 | /* |
2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. | 2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. |
3 | Copyright (C) 2002 Thomas Stephens | 3 | Copyright (C) 2002 Thomas Stephens |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public | 5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public |
6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later | 6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later |
7 | version. | 7 | version. |
8 | 8 | ||
9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | 9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the |
10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | 10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
11 | Public License for more details. | 11 | Public License for more details. |
12 | 12 | ||
13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free | 13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free |
14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include "buttondialog.h" | 17 | #include "buttondialog.h" |
18 | 18 | ||
19 | ButtonDialog::ButtonDialog(QString buttonName, QWidget *parent, const char*name, bool modal, WFlags f):QDialog(parent, name, modal, f) | 19 | ButtonDialog::ButtonDialog(QString buttonName, QWidget *parent, const char*name, bool modal, WFlags f):QDialog(parent, name, modal, f) |
20 | { | 20 | { |
21 | setCaption(tr(buttonName)); | 21 | setCaption(tr(buttonName)); |
22 | 22 | ||
23 | QVBoxLayout *layout = new QVBoxLayout(this); | 23 | QVBoxLayout *layout = new QVBoxLayout(this); |
24 | 24 | ||
25 | QHBoxLayout *hlayout1 = new QHBoxLayout(this); | 25 | QHBoxLayout *hlayout1 = new QHBoxLayout(this); |
26 | QHBoxLayout *hlayout2 = new QHBoxLayout(this); | 26 | QHBoxLayout *hlayout2 = new QHBoxLayout(this); |
27 | QHBoxLayout *hlayout3 = new QHBoxLayout(this); | 27 | QHBoxLayout *hlayout3 = new QHBoxLayout(this); |
28 | 28 | ||
29 | layout->addSpacing(5); | 29 | layout->addSpacing(5); |
30 | layout->addLayout(hlayout1); | 30 | layout->addLayout(hlayout1); |
31 | layout->addSpacing(5); | 31 | layout->addSpacing(5); |
32 | layout->addLayout(hlayout2); | 32 | layout->addLayout(hlayout2); |
33 | layout->addSpacing(5); | 33 | layout->addSpacing(5); |
34 | layout->addLayout(hlayout3); | 34 | layout->addLayout(hlayout3); |
35 | layout->addSpacing(5); | 35 | layout->addSpacing(5); |
36 | 36 | ||
37 | remote = new QComboBox(false, this, "remote"); | 37 | remote = new QComboBox(false, this, "remote"); |
38 | QLabel *remoteLabel = new QLabel(remote, "Remote: ", this, "remoteLabel"); | 38 | QLabel *remoteLabel = new QLabel(remote, "Remote: ", this, "remoteLabel"); |
39 | hlayout1->addSpacing(5); | 39 | hlayout1->addSpacing(5); |
40 | hlayout1->addWidget(remoteLabel); | 40 | hlayout1->addWidget(remoteLabel); |
41 | hlayout1->addSpacing(5); | 41 | hlayout1->addSpacing(5); |
42 | hlayout1->addWidget(remote); | 42 | hlayout1->addWidget(remote); |
43 | hlayout1->addSpacing(5); | 43 | hlayout1->addSpacing(5); |
44 | remote->insertItem("Remote "); | 44 | remote->insertItem("Remote "); |
45 | remote->insertStringList(getRemotes()); | 45 | remote->insertStringList(getRemotes()); |
46 | connect(remote, SIGNAL(activated(const QString &)), this, SLOT(remoteSelected(const QString&)) ); | 46 | connect(remote, SIGNAL(activated(const QString&)), this, SLOT(remoteSelected(const QString&)) ); |
47 | 47 | ||
48 | button = new QComboBox(false, this, "button"); | 48 | button = new QComboBox(false, this, "button"); |
49 | QLabel *buttonLabel = new QLabel(remote, "Button: ", this, "buttonLabel"); | 49 | QLabel *buttonLabel = new QLabel(remote, "Button: ", this, "buttonLabel"); |
50 | hlayout2->addSpacing(5); | 50 | hlayout2->addSpacing(5); |
51 | hlayout2->addWidget(buttonLabel); | 51 | hlayout2->addWidget(buttonLabel); |
52 | hlayout2->addSpacing(5); | 52 | hlayout2->addSpacing(5); |
53 | hlayout2->addWidget(button); | 53 | hlayout2->addWidget(button); |
54 | hlayout2->addSpacing(5); | 54 | hlayout2->addSpacing(5); |
55 | button->insertItem("Button "); | 55 | button->insertItem("Button "); |
56 | connect(button, SIGNAL(activated(const QString &)), this, SLOT(buttonSelected(const QString&)) ); | 56 | connect(button, SIGNAL(activated(const QString&)), this, SLOT(buttonSelected(const QString&)) ); |
57 | 57 | ||
58 | label = new QLineEdit(this, "label"); | 58 | label = new QLineEdit(this, "label"); |
59 | label->setText(buttonName); | 59 | label->setText(buttonName); |
60 | QLabel *labelLabel = new QLabel(label, "Label: ", this, "labelLabel"); | 60 | QLabel *labelLabel = new QLabel(label, "Label: ", this, "labelLabel"); |
61 | hlayout3->addSpacing(5); | 61 | hlayout3->addSpacing(5); |
62 | hlayout3->addWidget(labelLabel); | 62 | hlayout3->addWidget(labelLabel); |
63 | hlayout3->addSpacing(5); | 63 | hlayout3->addSpacing(5); |
64 | hlayout3->addWidget(label); | 64 | hlayout3->addWidget(label); |
65 | hlayout3->addSpacing(5); | 65 | hlayout3->addSpacing(5); |
66 | } | 66 | } |
67 | 67 | ||
68 | void ButtonDialog::remoteSelected(const QString &string) | 68 | void ButtonDialog::remoteSelected(const QString &string) |
69 | { | 69 | { |
70 | button->insertStringList(getButtons(string.latin1()) ); | 70 | button->insertStringList(getButtons(string.latin1()) ); |
71 | list="SEND_ONCE"; | 71 | list="SEND_ONCE"; |
72 | list+=string; | 72 | list+=string; |
73 | } | 73 | } |
74 | 74 | ||
75 | void ButtonDialog::buttonSelected(const QString &string) | 75 | void ButtonDialog::buttonSelected(const QString &string) |
76 | { | 76 | { |
77 | list+=string; | 77 | list+=string; |
78 | } | 78 | } |
79 | 79 | ||
80 | QStringList ButtonDialog::getList() | 80 | QStringList ButtonDialog::getList() |
81 | { | 81 | { |
82 | return list; | 82 | return list; |
83 | } | 83 | } |
84 | 84 | ||
85 | QString ButtonDialog::getLabel() | 85 | QString ButtonDialog::getLabel() |
86 | { | 86 | { |
87 | return label->text(); | 87 | return label->text(); |
88 | } | 88 | } |
89 | 89 | ||
90 | QStringList ButtonDialog::getRemotes() | 90 | QStringList ButtonDialog::getRemotes() |
91 | { | 91 | { |
92 | const char write_buffer[] = "LIST\n"; | 92 | const char write_buffer[] = "LIST\n"; |
93 | const char *readbuffer; | 93 | const char *readbuffer; |
94 | int i, numlines; | 94 | int i, numlines; |
95 | QStringList list; | 95 | QStringList list; |
96 | 96 | ||
97 | addr.sun_family=AF_UNIX; | 97 | addr.sun_family=AF_UNIX; |
98 | strcpy(addr.sun_path,"/dev/lircd"); | 98 | strcpy(addr.sun_path,"/dev/lircd"); |
99 | 99 | ||
100 | fd = socket(AF_UNIX, SOCK_STREAM, 0); | 100 | fd = socket(AF_UNIX, SOCK_STREAM, 0); |
101 | if(fd == -1) | 101 | if(fd == -1) |
102 | { | 102 | { |
103 | QMessageBox *mb = new QMessageBox("Error!", | 103 | QMessageBox *mb = new QMessageBox("Error!", |
104 | "couldnt connect to socket", | 104 | "couldnt connect to socket", |
105 | QMessageBox::NoIcon, | 105 | QMessageBox::NoIcon, |
106 | QMessageBox::Ok, | 106 | QMessageBox::Ok, |
107 | QMessageBox::NoButton, | 107 | QMessageBox::NoButton, |
108 | QMessageBox::NoButton); | 108 | QMessageBox::NoButton); |
109 | mb->exec(); | 109 | mb->exec(); |
110 | perror("ButtonDialog::GetRemotes"); | 110 | perror("ButtonDialog::GetRemotes"); |
111 | return NULL; | 111 | return NULL; |
112 | } | 112 | } |
113 | 113 | ||
114 | if(::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) | 114 | if(::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) |
115 | { | 115 | { |
116 | QMessageBox *mb = new QMessageBox("Error!", | 116 | QMessageBox *mb = new QMessageBox("Error!", |
117 | "couldnt connect to socket", | 117 | "couldnt connect to socket", |
118 | QMessageBox::NoIcon, | 118 | QMessageBox::NoIcon, |
119 | QMessageBox::Ok, | 119 | QMessageBox::Ok, |
120 | QMessageBox::NoButton, | 120 | QMessageBox::NoButton, |
121 | QMessageBox::NoButton); | 121 | QMessageBox::NoButton); |
122 | mb->exec(); | 122 | mb->exec(); |
123 | perror("ButtonDialog::GetRemotes"); | 123 | perror("ButtonDialog::GetRemotes"); |
124 | return NULL; | 124 | return NULL; |
125 | } | 125 | } |
126 | 126 | ||
127 | write(fd, write_buffer, strlen(write_buffer)); | 127 | write(fd, write_buffer, strlen(write_buffer)); |
128 | 128 | ||
129 | for(i=0; i<5; i++) | 129 | for(i=0; i<5; i++) |
130 | { | 130 | { |
131 | printf("%d\n", i); | 131 | printf("%d\n", i); |
132 | readbuffer = readPacket(); | 132 | readbuffer = readPacket(); |
133 | printf("%s", readbuffer); | 133 | printf("%s", readbuffer); |
134 | printf("%d\n", i); | 134 | printf("%d\n", i); |
135 | } | 135 | } |
136 | 136 | ||
137 | numlines = atoi(readbuffer); | 137 | numlines = atoi(readbuffer); |
138 | 138 | ||
139 | for(i=0; i<numlines; i++) | 139 | for(i=0; i<numlines; i++) |
140 | { | 140 | { |
141 | list+=readPacket(); | 141 | list+=readPacket(); |
142 | } | 142 | } |
143 | 143 | ||
144 | if(strcasecmp(readPacket(), "END") != 0) | 144 | if(strcasecmp(readPacket(), "END") != 0) |
145 | { | 145 | { |
146 | QMessageBox *mb = new QMessageBox("Error!", | 146 | QMessageBox *mb = new QMessageBox("Error!", |
147 | "bad packet", | 147 | "bad packet", |
148 | QMessageBox::NoIcon, | 148 | QMessageBox::NoIcon, |
149 | QMessageBox::Ok, | 149 | QMessageBox::Ok, |
150 | QMessageBox::NoButton, | 150 | QMessageBox::NoButton, |
151 | QMessageBox::NoButton); | 151 | QMessageBox::NoButton); |
152 | mb->exec(); | 152 | mb->exec(); |
diff --git a/noncore/tools/remote/recorddialog.cpp b/noncore/tools/remote/recorddialog.cpp index cfab730..1ce5472 100644 --- a/noncore/tools/remote/recorddialog.cpp +++ b/noncore/tools/remote/recorddialog.cpp | |||
@@ -1,82 +1,82 @@ | |||
1 | /* | 1 | /* |
2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. | 2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. |
3 | Copyright (C) 2002 Thomas Stephens | 3 | Copyright (C) 2002 Thomas Stephens |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public | 5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public |
6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later | 6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later |
7 | version. | 7 | version. |
8 | 8 | ||
9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | 9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the |
10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | 10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
11 | Public License for more details. | 11 | Public License for more details. |
12 | 12 | ||
13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free | 13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free |
14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include "recorddialog.h" | 17 | #include "recorddialog.h" |
18 | 18 | ||
19 | RecordDialog::RecordDialog(QWidget *parent, const char *name) | 19 | RecordDialog::RecordDialog(QWidget *parent, const char *name) |
20 | :QDialog(parent, name) | 20 | :QDialog(parent, name) |
21 | { | 21 | { |
22 | QVBoxLayout *layout = new QVBoxLayout(this); | 22 | QVBoxLayout *layout = new QVBoxLayout(this); |
23 | QHBoxLayout *hlayout = new QHBoxLayout(this); | 23 | QHBoxLayout *hlayout = new QHBoxLayout(this); |
24 | 24 | ||
25 | layout->insertSpacing(0,5); | 25 | layout->insertSpacing(0,5); |
26 | output = new QTextView("Please enter the name of the new remote, and press Return\n", 0, this, "output"); | 26 | output = new QTextView("Please enter the name of the new remote, and press Return\n", 0, this, "output"); |
27 | layout->insertWidget(-1, output); | 27 | layout->insertWidget(-1, output); |
28 | layout->insertSpacing(-1, 5); | 28 | layout->insertSpacing(-1, 5); |
29 | layout->insertLayout(-1, hlayout); | 29 | layout->insertLayout(-1, hlayout); |
30 | layout->insertSpacing(-1, 5); | 30 | layout->insertSpacing(-1, 5); |
31 | 31 | ||
32 | hlayout->insertSpacing(0, 5); | 32 | hlayout->insertSpacing(0, 5); |
33 | input = new QLineEdit(this, "input"); | 33 | input = new QLineEdit(this, "input"); |
34 | hlayout->insertWidget(-1, input, 1); | 34 | hlayout->insertWidget(-1, input, 1); |
35 | hlayout->insertSpacing(-1, 5); | 35 | hlayout->insertSpacing(-1, 5); |
36 | 36 | ||
37 | QPushButton *ret = new QPushButton("Return", this, "return"); | 37 | QPushButton *ret = new QPushButton("Return", this, "return"); |
38 | hlayout->insertWidget(-1, ret); | 38 | hlayout->insertWidget(-1, ret); |
39 | hlayout->insertSpacing(-1, 5); | 39 | hlayout->insertSpacing(-1, 5); |
40 | connect(ret, SIGNAL(clicked()), this, SLOT(retPressed()) ); | 40 | connect(ret, SIGNAL(clicked()), this, SLOT(retPressed()) ); |
41 | where = 0; | 41 | where = 0; |
42 | 42 | ||
43 | record = new OProcess; | 43 | record = new OProcess; |
44 | } | 44 | } |
45 | 45 | ||
46 | void RecordDialog::retPressed() | 46 | void RecordDialog::retPressed() |
47 | { | 47 | { |
48 | printf("RecordDialog::retPressed: ret pressed\n"); | 48 | printf("RecordDialog::retPressed: ret pressed\n"); |
49 | 49 | ||
50 | if(where == 0) | 50 | if(where == 0) |
51 | { | 51 | { |
52 | connect(record, SIGNAL(receivedStdout(OProcess *, char *, int)), this, SLOT(incoming(OProcess *, char *, int)) ); | 52 | connect(record, SIGNAL(receivedStdout(OProcess*,char*,int)), this, SLOT(incoming(OProcess*,char*,int)) ); |
53 | connect(record, SIGNAL(receivedStderr(OProcess *, char *, int)), this, SLOT(incoming(OProcess *, char *, int)) ); | 53 | connect(record, SIGNAL(receivedStderr(OProcess*,char*,int)), this, SLOT(incoming(OProcess*,char*,int)) ); |
54 | connect(record, SIGNAL(processExited(OProcess *)), this, SLOT(done(OProcess *)) ); | 54 | connect(record, SIGNAL(processExited(OProcess*)), this, SLOT(done(OProcess*)) ); |
55 | printf("RecordDialog::retPressed: starting irrecord\n"); | 55 | printf("RecordDialog::retPressed: starting irrecord\n"); |
56 | QString file = "/tmp/" + input->text(); | 56 | QString file = "/tmp/" + input->text(); |
57 | *record<<"irrecord"<<file.latin1(); | 57 | *record<<"irrecord"<<file.latin1(); |
58 | if(!record->start(OProcess::NotifyOnExit, OProcess::AllOutput)) | 58 | if(!record->start(OProcess::NotifyOnExit, OProcess::AllOutput)) |
59 | { | 59 | { |
60 | QMessageBox *mb = new QMessageBox("Error!", | 60 | QMessageBox *mb = new QMessageBox("Error!", |
61 | "Could not start irrecord. You must<br>use an lirc ipkg that includes<br>irrecord", | 61 | "Could not start irrecord. You must<br>use an lirc ipkg that includes<br>irrecord", |
62 | QMessageBox::NoIcon, | 62 | QMessageBox::NoIcon, |
63 | QMessageBox::Ok, | 63 | QMessageBox::Ok, |
64 | QMessageBox::NoButton, | 64 | QMessageBox::NoButton, |
65 | QMessageBox::NoButton); | 65 | QMessageBox::NoButton); |
66 | mb->exec(); | 66 | mb->exec(); |
67 | return; | 67 | return; |
68 | } | 68 | } |
69 | // record->resume(); | 69 | // record->resume(); |
70 | where = 1; | 70 | where = 1; |
71 | } | 71 | } |
72 | } | 72 | } |
73 | 73 | ||
74 | void RecordDialog::incoming(OProcess *proc, char *buffer, int len) | 74 | void RecordDialog::incoming(OProcess *proc, char *buffer, int len) |
75 | { | 75 | { |
76 | //output->setText(output->text() + QString(buffer).truncate(len-1)); | 76 | //output->setText(output->text() + QString(buffer).truncate(len-1)); |
77 | printf("RecordDialog::incoming: got text from irrecord\n"); | 77 | printf("RecordDialog::incoming: got text from irrecord\n"); |
78 | } | 78 | } |
79 | 79 | ||
80 | void RecordDialog::done(OProcess *proc) | 80 | void RecordDialog::done(OProcess *proc) |
81 | { | 81 | { |
82 | } | 82 | } |
diff --git a/noncore/tools/remote/topgroup.cpp b/noncore/tools/remote/topgroup.cpp index 93cffbb..427cb8f 100644 --- a/noncore/tools/remote/topgroup.cpp +++ b/noncore/tools/remote/topgroup.cpp | |||
@@ -1,54 +1,54 @@ | |||
1 | /* | 1 | /* |
2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. | 2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. |
3 | Copyright (C) 2002 Thomas Stephens | 3 | Copyright (C) 2002 Thomas Stephens |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public | 5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public |
6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later | 6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later |
7 | version. | 7 | version. |
8 | 8 | ||
9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | 9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the |
10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | 10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
11 | Public License for more details. | 11 | Public License for more details. |
12 | 12 | ||
13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free | 13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free |
14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include "topgroup.h" | 17 | #include "topgroup.h" |
18 | 18 | ||
19 | TopGroup::TopGroup(QWidget *parent, const char *name):QWidget(parent,name) | 19 | TopGroup::TopGroup(QWidget *parent, const char *name):QWidget(parent,name) |
20 | { | 20 | { |
21 | QHBoxLayout *layout = new QHBoxLayout(this, 0, -1, 0); | 21 | QHBoxLayout *layout = new QHBoxLayout(this, 0, -1, 0); |
22 | 22 | ||
23 | QPushButton *power = new QPushButton("Power",this,"power"); | 23 | QPushButton *power = new QPushButton("Power",this,"power"); |
24 | layout->addWidget(power); | 24 | layout->addWidget(power); |
25 | connect(power, SIGNAL(pressed()), this->parentWidget(), SLOT(sendIR()) ); | 25 | connect(power, SIGNAL(pressed()), this->parentWidget(), SLOT(sendIR()) ); |
26 | //power->setGeometry(5, 5,40, 20); | 26 | //power->setGeometry(5, 5,40, 20); |
27 | 27 | ||
28 | layout->addSpacing(5); | 28 | layout->addSpacing(5); |
29 | 29 | ||
30 | QPushButton *source = new QPushButton("Source",this,"source"); | 30 | QPushButton *source = new QPushButton("Source",this,"source"); |
31 | layout->addWidget(source); | 31 | layout->addWidget(source); |
32 | connect(source, SIGNAL(pressed()), this->parentWidget(), SLOT(sendIR()) ); | 32 | connect(source, SIGNAL(pressed()), this->parentWidget(), SLOT(sendIR()) ); |
33 | //source->setGeometry(50,5,40,20); | 33 | //source->setGeometry(50,5,40,20); |
34 | 34 | ||
35 | remotes = new QComboBox(false, this, "remotes"); | 35 | remotes = new QComboBox(false, this, "remotes"); |
36 | connect(remotes, SIGNAL(activated(const QString &)), this->parentWidget(), SLOT(remoteSelected(const QString &)) ); | 36 | connect(remotes, SIGNAL(activated(const QString&)), this->parentWidget(), SLOT(remoteSelected(const QString&)) ); |
37 | remotes->insertItem("Select Remote"); | 37 | remotes->insertItem("Select Remote"); |
38 | //remotes->setGeometry(135,5,95,20); | 38 | //remotes->setGeometry(135,5,95,20); |
39 | 39 | ||
40 | QLabel *remoteLabel = new QLabel(remotes, "Remote: ",this,"remoteLabel"); | 40 | QLabel *remoteLabel = new QLabel(remotes, "Remote: ",this,"remoteLabel"); |
41 | //remoteLabel->setGeometry(90,5,40,20); | 41 | //remoteLabel->setGeometry(90,5,40,20); |
42 | remoteLabel->setAlignment(AlignRight | AlignVCenter); | 42 | remoteLabel->setAlignment(AlignRight | AlignVCenter); |
43 | 43 | ||
44 | layout->addWidget(remoteLabel); | 44 | layout->addWidget(remoteLabel); |
45 | layout->addWidget(remotes); | 45 | layout->addWidget(remotes); |
46 | } | 46 | } |
47 | 47 | ||
48 | void TopGroup::updateRemotes(Config *cfg) | 48 | void TopGroup::updateRemotes(Config *cfg) |
49 | { | 49 | { |
50 | remotes->clear(); | 50 | remotes->clear(); |
51 | remotes->insertItem(QString("SelectRemote")); | 51 | remotes->insertItem(QString("SelectRemote")); |
52 | cfg->setGroup("Remotes"); | 52 | cfg->setGroup("Remotes"); |
53 | remotes->insertStringList(cfg->readListEntry("remoteList", ',') ); | 53 | remotes->insertStringList(cfg->readListEntry("remoteList", ',') ); |
54 | } | 54 | } |
diff --git a/noncore/tools/remote/topgroupconf.cpp b/noncore/tools/remote/topgroupconf.cpp index d763a3a..0419a65 100644 --- a/noncore/tools/remote/topgroupconf.cpp +++ b/noncore/tools/remote/topgroupconf.cpp | |||
@@ -1,70 +1,70 @@ | |||
1 | /* | 1 | /* |
2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. | 2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. |
3 | Copyright (C) 2002 Thomas Stephens | 3 | Copyright (C) 2002 Thomas Stephens |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public | 5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public |
6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later | 6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later |
7 | version. | 7 | version. |
8 | 8 | ||
9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | 9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the |
10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | 10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
11 | Public License for more details. | 11 | Public License for more details. |
12 | 12 | ||
13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free | 13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free |
14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include "topgroupconf.h" | 17 | #include "topgroupconf.h" |
18 | 18 | ||
19 | TopGroupConf::TopGroupConf(QWidget *parent, const char *name):QWidget(parent,name) | 19 | TopGroupConf::TopGroupConf(QWidget *parent, const char *name):QWidget(parent,name) |
20 | { | 20 | { |
21 | QHBoxLayout *layout = new QHBoxLayout(this); | 21 | QHBoxLayout *layout = new QHBoxLayout(this); |
22 | 22 | ||
23 | QPushButton *power = new QPushButton("Power",this,"power"); | 23 | QPushButton *power = new QPushButton("Power",this,"power"); |
24 | layout->addWidget(power); | 24 | layout->addWidget(power); |
25 | connect(power, SIGNAL(pressed()), this->parentWidget(), SLOT(buttonPressed()) ); | 25 | connect(power, SIGNAL(pressed()), this->parentWidget(), SLOT(buttonPressed()) ); |
26 | //power->setGeometry(5, 5,40, 20); | 26 | //power->setGeometry(5, 5,40, 20); |
27 | 27 | ||
28 | layout->addSpacing(5); | 28 | layout->addSpacing(5); |
29 | 29 | ||
30 | QPushButton *source = new QPushButton("Source",this,"source"); | 30 | QPushButton *source = new QPushButton("Source",this,"source"); |
31 | layout->addWidget(source); | 31 | layout->addWidget(source); |
32 | connect(source, SIGNAL(pressed()), this->parentWidget(), SLOT(buttonPressed()) ); | 32 | connect(source, SIGNAL(pressed()), this->parentWidget(), SLOT(buttonPressed()) ); |
33 | //source->setGeometry(50,5,40,20); | 33 | //source->setGeometry(50,5,40,20); |
34 | 34 | ||
35 | remotes = new QComboBox(true, this, "remotes"); | 35 | remotes = new QComboBox(true, this, "remotes"); |
36 | remotes->insertItem(QString("Remotes")); | 36 | remotes->insertItem(QString("Remotes")); |
37 | layout->addWidget(remotes); | 37 | layout->addWidget(remotes); |
38 | layout->setStretchFactor(remotes, 1); | 38 | layout->setStretchFactor(remotes, 1); |
39 | connect(remotes, SIGNAL(activated(const QString &)), this->parentWidget(), SLOT(remoteSelected(const QString &)) ); | 39 | connect(remotes, SIGNAL(activated(const QString&)), this->parentWidget(), SLOT(remoteSelected(const QString&)) ); |
40 | 40 | ||
41 | 41 | ||
42 | QPushButton *newrem = new QPushButton("New", this, "new"); | 42 | QPushButton *newrem = new QPushButton("New", this, "new"); |
43 | layout->addWidget(newrem); | 43 | layout->addWidget(newrem); |
44 | connect(newrem, SIGNAL(pressed()), this->parentWidget(), SLOT(newPressed()) ); | 44 | connect(newrem, SIGNAL(pressed()), this->parentWidget(), SLOT(newPressed()) ); |
45 | 45 | ||
46 | 46 | ||
47 | /*remotes = new QComboBox(false, this, "remotes"); | 47 | /*remotes = new QComboBox(false, this, "remotes"); |
48 | connect(remotes, SIGNAL(activated(const QString &)), this->parentWidget(), SLOT(remoteSelected(const QString &)) ); | 48 | connect(remotes, SIGNAL(activated(const QString&)), this->parentWidget(), SLOT(remoteSelected(const QString&)) ); |
49 | remotes->insertItem("Select Remote"); | 49 | remotes->insertItem("Select Remote"); |
50 | //remotes->setGeometry(135,5,95,20); | 50 | //remotes->setGeometry(135,5,95,20); |
51 | 51 | ||
52 | QLabel *remoteLabel = new QLabel(remotes, "Remote: ",this,"remoteLabel"); | 52 | QLabel *remoteLabel = new QLabel(remotes, "Remote: ",this,"remoteLabel"); |
53 | //remoteLabel->setGeometry(90,5,40,20); | 53 | //remoteLabel->setGeometry(90,5,40,20); |
54 | remoteLabel->setAlignment(AlignRight | AlignVCenter); | 54 | remoteLabel->setAlignment(AlignRight | AlignVCenter); |
55 | 55 | ||
56 | layout->addWidget(remoteLabel); | 56 | layout->addWidget(remoteLabel); |
57 | layout->addWidget(remotes); | 57 | layout->addWidget(remotes); |
58 | */ | 58 | */ |
59 | } | 59 | } |
60 | 60 | ||
61 | void TopGroupConf::updateRemotes(QStringList list) | 61 | void TopGroupConf::updateRemotes(QStringList list) |
62 | { | 62 | { |
63 | remotes->insertStringList(list); | 63 | remotes->insertStringList(list); |
64 | } | 64 | } |
65 | 65 | ||
66 | QString TopGroupConf::getRemotesText() | 66 | QString TopGroupConf::getRemotesText() |
67 | { | 67 | { |
68 | return remotes->currentText(); | 68 | return remotes->currentText(); |
69 | } | 69 | } |
70 | 70 | ||
diff --git a/noncore/unsupported/filebrowser/filebrowser.cpp b/noncore/unsupported/filebrowser/filebrowser.cpp index 8cf8a60..92a688a 100644 --- a/noncore/unsupported/filebrowser/filebrowser.cpp +++ b/noncore/unsupported/filebrowser/filebrowser.cpp | |||
@@ -167,196 +167,196 @@ bool FileItem::rename( const QString & name ) | |||
167 | return FALSE; | 167 | return FALSE; |
168 | 168 | ||
169 | if ( name.contains( QRegExp("[/\\$\"\'\\*\\?]") ) ) | 169 | if ( name.contains( QRegExp("[/\\$\"\'\\*\\?]") ) ) |
170 | return FALSE; | 170 | return FALSE; |
171 | 171 | ||
172 | oldpath = fileInfo.filePath(); | 172 | oldpath = fileInfo.filePath(); |
173 | newpath = fileInfo.dirPath() + "/" + name; | 173 | newpath = fileInfo.dirPath() + "/" + name; |
174 | 174 | ||
175 | if ( ::rename( (const char *) oldpath, (const char *) newpath ) != 0 ) | 175 | if ( ::rename( (const char *) oldpath, (const char *) newpath ) != 0 ) |
176 | return FALSE; | 176 | return FALSE; |
177 | else | 177 | else |
178 | return TRUE; | 178 | return TRUE; |
179 | } | 179 | } |
180 | 180 | ||
181 | QPixmap FileItem::drawThumbnail(const QFileInfo &file) { | 181 | QPixmap FileItem::drawThumbnail(const QFileInfo &file) { |
182 | 182 | ||
183 | /* | 183 | /* |
184 | * this thing is sloooooow, and it also doesn't load | 184 | * this thing is sloooooow, and it also doesn't load |
185 | * dynamicly (like a web browser). if anyone knows how to | 185 | * dynamicly (like a web browser). if anyone knows how to |
186 | * do that, please do! | 186 | * do that, please do! |
187 | */ | 187 | */ |
188 | QString cacheDir = "/tmp/filebrowserThumbnailCache"; | 188 | QString cacheDir = "/tmp/filebrowserThumbnailCache"; |
189 | QFileInfo cachedFile (cacheDir + file.filePath()); | 189 | QFileInfo cachedFile (cacheDir + file.filePath()); |
190 | 190 | ||
191 | if (cachedFile.exists() && cachedFile.lastModified() == file.lastModified()) { | 191 | if (cachedFile.exists() && cachedFile.lastModified() == file.lastModified()) { |
192 | 192 | ||
193 | QPixmap cachedImage (cachedFile.filePath()); | 193 | QPixmap cachedImage (cachedFile.filePath()); |
194 | return cachedImage; | 194 | return cachedImage; |
195 | } | 195 | } |
196 | else { | 196 | else { |
197 | 197 | ||
198 | QImage image (file.filePath()); | 198 | QImage image (file.filePath()); |
199 | 199 | ||
200 | // if inside of cache dir, don't render thumbnails! recursive error! | 200 | // if inside of cache dir, don't render thumbnails! recursive error! |
201 | if (image.isNull() || file.filePath().contains(QRegExp("^" + cacheDir))) { | 201 | if (image.isNull() || file.filePath().contains(QRegExp("^" + cacheDir))) { |
202 | DocLnk doc (file.filePath()); | 202 | DocLnk doc (file.filePath()); |
203 | return doc.pixmap(); | 203 | return doc.pixmap(); |
204 | } | 204 | } |
205 | Config cfg("Filebrowser"); | 205 | Config cfg("Filebrowser"); |
206 | cfg.setGroup("View"); | 206 | cfg.setGroup("View"); |
207 | int size; | 207 | int size; |
208 | size =cfg.readNumEntry("ThumbSize", 72); | 208 | size =cfg.readNumEntry("ThumbSize", 72); |
209 | QPixmap thumb (size, size); | 209 | QPixmap thumb (size, size); |
210 | 210 | ||
211 | double scale = (double)image.height() / (double)image.width(); | 211 | double scale = (double)image.height() / (double)image.width(); |
212 | int newHeight = int(size * scale); | 212 | int newHeight = int(size * scale); |
213 | thumb.convertFromImage (image.smoothScale(size, newHeight)); | 213 | thumb.convertFromImage (image.smoothScale(size, newHeight)); |
214 | 214 | ||
215 | if (!cachedFile.dir().exists()) { | 215 | if (!cachedFile.dir().exists()) { |
216 | QString cmd = "/bin/mkdir -p \"" + cachedFile.dirPath() +"\""; | 216 | QString cmd = "/bin/mkdir -p \"" + cachedFile.dirPath() +"\""; |
217 | system( (const char *) cmd ); | 217 | system( (const char *) cmd ); |
218 | } | 218 | } |
219 | 219 | ||
220 | if (thumb.save(cachedFile.filePath(), QPixmap::imageFormat(file.filePath()), 70)) { | 220 | if (thumb.save(cachedFile.filePath(), QPixmap::imageFormat(file.filePath()), 70)) { |
221 | // make thumbnail modify time the same as the image | 221 | // make thumbnail modify time the same as the image |
222 | QString cmd = "/bin/touch -r \"" + file.filePath() +"\" " + | 222 | QString cmd = "/bin/touch -r \"" + file.filePath() +"\" " + |
223 | "\"" + cachedFile.filePath() + "\""; | 223 | "\"" + cachedFile.filePath() + "\""; |
224 | system( (const char *) cmd ); | 224 | system( (const char *) cmd ); |
225 | 225 | ||
226 | } | 226 | } |
227 | 227 | ||
228 | return thumb; | 228 | return thumb; |
229 | } | 229 | } |
230 | } | 230 | } |
231 | 231 | ||
232 | // | 232 | // |
233 | // FileView | 233 | // FileView |
234 | // | 234 | // |
235 | FileView::FileView( const QString & dir, QWidget * parent, | 235 | FileView::FileView( const QString & dir, QWidget * parent, |
236 | const char * name, | 236 | const char * name, |
237 | bool hidden, bool symlinks, bool thumbnails ) | 237 | bool hidden, bool symlinks, bool thumbnails ) |
238 | : QListView( parent, name ), | 238 | : QListView( parent, name ), |
239 | menuTimer( this ), | 239 | menuTimer( this ), |
240 | le( NULL ), | 240 | le( NULL ), |
241 | itemToRename( NULL ), | 241 | itemToRename( NULL ), |
242 | showHidden( hidden ), | 242 | showHidden( hidden ), |
243 | showSymlinks( symlinks ), | 243 | showSymlinks( symlinks ), |
244 | showThumbnails( thumbnails ), | 244 | showThumbnails( thumbnails ), |
245 | menuKeepsOpen( FALSE ) | 245 | menuKeepsOpen( FALSE ) |
246 | { | 246 | { |
247 | addColumn( "Name" ); | 247 | addColumn( "Name" ); |
248 | addColumn( "Size" ); | 248 | addColumn( "Size" ); |
249 | addColumn( "Date" ); | 249 | addColumn( "Date" ); |
250 | addColumn( "Type" ); | 250 | addColumn( "Type" ); |
251 | 251 | ||
252 | setMultiSelection( TRUE ); | 252 | setMultiSelection( TRUE ); |
253 | //header()->hide(); | 253 | //header()->hide(); |
254 | 254 | ||
255 | setColumnWidthMode( 0, Manual ); | 255 | setColumnWidthMode( 0, Manual ); |
256 | setColumnWidthMode( 3, Manual ); | 256 | setColumnWidthMode( 3, Manual ); |
257 | 257 | ||
258 | // right align yize column | 258 | // right align yize column |
259 | setColumnAlignment( 1, AlignRight ); | 259 | setColumnAlignment( 1, AlignRight ); |
260 | 260 | ||
261 | generateDir( dir ); | 261 | generateDir( dir ); |
262 | 262 | ||
263 | connect( this, SIGNAL( clicked( QListViewItem * )), | 263 | connect( this, SIGNAL( clicked(QListViewItem*)), |
264 | SLOT( itemClicked( QListViewItem * )) ); | 264 | SLOT( itemClicked(QListViewItem*)) ); |
265 | connect( this, SIGNAL( doubleClicked( QListViewItem * )), | 265 | connect( this, SIGNAL( doubleClicked(QListViewItem*)), |
266 | SLOT( itemDblClicked( QListViewItem * )) ); | 266 | SLOT( itemDblClicked(QListViewItem*)) ); |
267 | connect( this, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) ); | 267 | connect( this, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) ); |
268 | connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) ); | 268 | connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) ); |
269 | } | 269 | } |
270 | 270 | ||
271 | void FileView::resizeEvent( QResizeEvent *e ) | 271 | void FileView::resizeEvent( QResizeEvent *e ) |
272 | { | 272 | { |
273 | setColumnWidth( 0, width() - 2 * lineWidth() - 20 - columnWidth( 1 ) - columnWidth( 2 ) ); | 273 | setColumnWidth( 0, width() - 2 * lineWidth() - 20 - columnWidth( 1 ) - columnWidth( 2 ) ); |
274 | 274 | ||
275 | // hide type column, we use it for "sort by type" only | 275 | // hide type column, we use it for "sort by type" only |
276 | //setColumnWidth( 3, 0 ); | 276 | //setColumnWidth( 3, 0 ); |
277 | QListView::resizeEvent( e ); | 277 | QListView::resizeEvent( e ); |
278 | } | 278 | } |
279 | 279 | ||
280 | void FileView::updateDir() | 280 | void FileView::updateDir() |
281 | { | 281 | { |
282 | generateDir( currentDir ); | 282 | generateDir( currentDir ); |
283 | } | 283 | } |
284 | 284 | ||
285 | void FileView::setDir( const QString & dir ) | 285 | void FileView::setDir( const QString & dir ) |
286 | { | 286 | { |
287 | if ( dir.startsWith( "/dev" ) ) { | 287 | if ( dir.startsWith( "/dev" ) ) { |
288 | QMessageBox::warning( this, tr( "File Manager" ), | 288 | QMessageBox::warning( this, tr( "File Manager" ), |
289 | tr( "Can't show /dev/ directory." ), tr( "&Ok" ) ); | 289 | tr( "Can't show /dev/ directory." ), tr( "&Ok" ) ); |
290 | return; | 290 | return; |
291 | } | 291 | } |
292 | dirHistory += currentDir; | 292 | dirHistory += currentDir; |
293 | generateDir( dir ); | 293 | generateDir( dir ); |
294 | } | 294 | } |
295 | 295 | ||
296 | void FileView::generateDir( const QString & dir ) | 296 | void FileView::generateDir( const QString & dir ) |
297 | { | 297 | { |
298 | if(menuKeepsOpen){ | 298 | if(menuKeepsOpen){ |
299 | cancelMenuTimer(); | 299 | cancelMenuTimer(); |
300 | } | 300 | } |
301 | QDir d( dir ); | 301 | QDir d( dir ); |
302 | 302 | ||
303 | if( d.exists() && !d.isReadable() ) return; | 303 | if( d.exists() && !d.isReadable() ) return; |
304 | 304 | ||
305 | currentDir = d.canonicalPath(); | 305 | currentDir = d.canonicalPath(); |
306 | 306 | ||
307 | if( !showHidden) | 307 | if( !showHidden) |
308 | d.setFilter( QDir::Dirs | QDir::Files ); | 308 | d.setFilter( QDir::Dirs | QDir::Files ); |
309 | else | 309 | else |
310 | d.setFilter( QDir::Dirs | QDir::Files |QDir::Hidden | QDir::All); | 310 | d.setFilter( QDir::Dirs | QDir::Files |QDir::Hidden | QDir::All); |
311 | 311 | ||
312 | d.setSorting( QDir::Name | QDir::DirsFirst | QDir::IgnoreCase | QDir::Reversed ); | 312 | d.setSorting( QDir::Name | QDir::DirsFirst | QDir::IgnoreCase | QDir::Reversed ); |
313 | 313 | ||
314 | const QFileInfoList * list = d.entryInfoList(); | 314 | const QFileInfoList * list = d.entryInfoList(); |
315 | QFileInfoListIterator it( *list ); | 315 | QFileInfoListIterator it( *list ); |
316 | QFileInfo *fi; | 316 | QFileInfo *fi; |
317 | 317 | ||
318 | QProgressBar *thumbProgress = 0; | 318 | QProgressBar *thumbProgress = 0; |
319 | if (showThumbnails) { | 319 | if (showThumbnails) { |
320 | 320 | ||
321 | thumbProgress = new QProgressBar(it.count(), this); | 321 | thumbProgress = new QProgressBar(it.count(), this); |
322 | thumbProgress->show(); | 322 | thumbProgress->show(); |
323 | } | 323 | } |
324 | 324 | ||
325 | clear(); | 325 | clear(); |
326 | 326 | ||
327 | int fileCount = 1; // used in the thumbnail progress meter | 327 | int fileCount = 1; // used in the thumbnail progress meter |
328 | while( (fi = it.current()) ){ | 328 | while( (fi = it.current()) ){ |
329 | if( (fi->fileName() == ".") || (fi->fileName() == "..") ){ | 329 | if( (fi->fileName() == ".") || (fi->fileName() == "..") ){ |
330 | ++it; | 330 | ++it; |
331 | continue; | 331 | continue; |
332 | } | 332 | } |
333 | if(!showSymlinks && fi->isSymLink()){ | 333 | if(!showSymlinks && fi->isSymLink()){ |
334 | ++it; | 334 | ++it; |
335 | continue; | 335 | continue; |
336 | } | 336 | } |
337 | // thumbnail progress | 337 | // thumbnail progress |
338 | if (showThumbnails) { | 338 | if (showThumbnails) { |
339 | 339 | ||
340 | thumbProgress->setProgress(fileCount); | 340 | thumbProgress->setProgress(fileCount); |
341 | } | 341 | } |
342 | (void) new FileItem( (QListView *) this, *fi ); | 342 | (void) new FileItem( (QListView *) this, *fi ); |
343 | 343 | ||
344 | ++it; | 344 | ++it; |
345 | ++fileCount; | 345 | ++fileCount; |
346 | } | 346 | } |
347 | 347 | ||
348 | if (showThumbnails) { | 348 | if (showThumbnails) { |
349 | thumbProgress->close(); | 349 | thumbProgress->close(); |
350 | } | 350 | } |
351 | emit dirChanged(); | 351 | emit dirChanged(); |
352 | 352 | ||
353 | } | 353 | } |
354 | 354 | ||
355 | void FileView::rename() | 355 | void FileView::rename() |
356 | { | 356 | { |
357 | itemToRename = (FileItem *) currentItem(); | 357 | itemToRename = (FileItem *) currentItem(); |
358 | const QPixmap * pm; | 358 | const QPixmap * pm; |
359 | int pmw; | 359 | int pmw; |
360 | 360 | ||
361 | if( itemToRename == NULL ) return; | 361 | if( itemToRename == NULL ) return; |
362 | 362 | ||
@@ -815,194 +815,194 @@ FileBrowser::FileBrowser( const QString & dir, QWidget * parent, | |||
815 | init( dir ); | 815 | init( dir ); |
816 | } | 816 | } |
817 | 817 | ||
818 | void FileBrowser::init(const QString & dir) | 818 | void FileBrowser::init(const QString & dir) |
819 | { | 819 | { |
820 | setCaption( tr("File Manager") ); | 820 | setCaption( tr("File Manager") ); |
821 | setIcon( Resource::loadPixmap( "filebrowser_icon" ) ); | 821 | setIcon( Resource::loadPixmap( "filebrowser_icon" ) ); |
822 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); | 822 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); |
823 | 823 | ||
824 | 824 | ||
825 | Config cfg("Filebrowser"); | 825 | Config cfg("Filebrowser"); |
826 | cfg.setGroup("View"); | 826 | cfg.setGroup("View"); |
827 | bool showHidden=(cfg.readEntry("Hidden","FALSE") == "TRUE"); | 827 | bool showHidden=(cfg.readEntry("Hidden","FALSE") == "TRUE"); |
828 | bool showSymlinks=(cfg.readEntry("Symlinks","FALSE") == "TRUE"); | 828 | bool showSymlinks=(cfg.readEntry("Symlinks","FALSE") == "TRUE"); |
829 | bool showThumbnails=(cfg.readEntry("Thumbnails","FALSE") == "TRUE"); | 829 | bool showThumbnails=(cfg.readEntry("Thumbnails","FALSE") == "TRUE"); |
830 | 830 | ||
831 | cfg.setGroup("Menu"); | 831 | cfg.setGroup("Menu"); |
832 | bool menuKeepsOpen=(cfg.readEntry("KeepOpen", "FALSE") == "TRUE"); | 832 | bool menuKeepsOpen=(cfg.readEntry("KeepOpen", "FALSE") == "TRUE"); |
833 | 833 | ||
834 | 834 | ||
835 | fileView = new FileView( dir, this, 0, showHidden, showSymlinks, showThumbnails ); | 835 | fileView = new FileView( dir, this, 0, showHidden, showSymlinks, showThumbnails ); |
836 | fileView->setAllColumnsShowFocus( TRUE ); | 836 | fileView->setAllColumnsShowFocus( TRUE ); |
837 | fileView->setMenuKeepsOpen(menuKeepsOpen); | 837 | fileView->setMenuKeepsOpen(menuKeepsOpen); |
838 | 838 | ||
839 | setCentralWidget( fileView ); | 839 | setCentralWidget( fileView ); |
840 | setToolBarsMovable( FALSE ); | 840 | setToolBarsMovable( FALSE ); |
841 | 841 | ||
842 | QToolBar* toolBar = new QToolBar( this ); | 842 | QToolBar* toolBar = new QToolBar( this ); |
843 | toolBar->setHorizontalStretchable( TRUE ); | 843 | toolBar->setHorizontalStretchable( TRUE ); |
844 | 844 | ||
845 | QMenuBar* menuBar = new QMenuBar( toolBar ); | 845 | QMenuBar* menuBar = new QMenuBar( toolBar ); |
846 | 846 | ||
847 | dirMenu = new QPopupMenu( this ); | 847 | dirMenu = new QPopupMenu( this ); |
848 | menuBar->insertItem( tr( "Dir" ), dirMenu ); | 848 | menuBar->insertItem( tr( "Dir" ), dirMenu ); |
849 | 849 | ||
850 | sortMenu = new QPopupMenu( this ); | 850 | sortMenu = new QPopupMenu( this ); |
851 | menuBar->insertItem( tr( "Sort" ), sortMenu ); | 851 | menuBar->insertItem( tr( "Sort" ), sortMenu ); |
852 | sortMenu->insertItem( tr( "by Name "), this, SLOT( sortName() ) ); | 852 | sortMenu->insertItem( tr( "by Name "), this, SLOT( sortName() ) ); |
853 | sortMenu->insertItem( tr( "by Size "), this, SLOT( sortSize() ) ); | 853 | sortMenu->insertItem( tr( "by Size "), this, SLOT( sortSize() ) ); |
854 | sortMenu->insertItem( tr( "by Date "), this, SLOT( sortDate() ) ); | 854 | sortMenu->insertItem( tr( "by Date "), this, SLOT( sortDate() ) ); |
855 | sortMenu->insertItem( tr( "by Type "), this, SLOT( sortType() ) ); | 855 | sortMenu->insertItem( tr( "by Type "), this, SLOT( sortType() ) ); |
856 | sortMenu->insertSeparator(); | 856 | sortMenu->insertSeparator(); |
857 | sortMenu->insertItem( tr( "Ascending" ), this, SLOT( updateSorting() ) ); | 857 | sortMenu->insertItem( tr( "Ascending" ), this, SLOT( updateSorting() ) ); |
858 | 858 | ||
859 | sortMenu->setItemChecked( sortMenu->idAt( 5 ), TRUE ); | 859 | sortMenu->setItemChecked( sortMenu->idAt( 5 ), TRUE ); |
860 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE ); | 860 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE ); |
861 | 861 | ||
862 | viewMenu = new QPopupMenu( this); | 862 | viewMenu = new QPopupMenu( this); |
863 | viewMenu->insertItem( tr( "Hidden"), this, SLOT( updateShowHidden() ) ); | 863 | viewMenu->insertItem( tr( "Hidden"), this, SLOT( updateShowHidden() ) ); |
864 | viewMenu->insertItem( tr( "Symlinks"), this, SLOT( updateShowSymlinks() ) ); | 864 | viewMenu->insertItem( tr( "Symlinks"), this, SLOT( updateShowSymlinks() ) ); |
865 | viewMenu->insertItem( tr( "Thumbnails"), this, SLOT( updateShowThumbnails() ) ); | 865 | viewMenu->insertItem( tr( "Thumbnails"), this, SLOT( updateShowThumbnails() ) ); |
866 | viewMenu->setItemChecked( viewMenu->idAt( 0 ), showHidden ); | 866 | viewMenu->setItemChecked( viewMenu->idAt( 0 ), showHidden ); |
867 | viewMenu->setItemChecked( viewMenu->idAt( 1 ), showSymlinks ); | 867 | viewMenu->setItemChecked( viewMenu->idAt( 1 ), showSymlinks ); |
868 | viewMenu->setItemChecked( viewMenu->idAt( 2 ), showThumbnails ); | 868 | viewMenu->setItemChecked( viewMenu->idAt( 2 ), showThumbnails ); |
869 | 869 | ||
870 | menuBar->insertItem( tr("View"), viewMenu ); | 870 | menuBar->insertItem( tr("View"), viewMenu ); |
871 | 871 | ||
872 | toolBar = new QToolBar( this ); | 872 | toolBar = new QToolBar( this ); |
873 | 873 | ||
874 | lastAction = new QAction( tr("Previous dir"), Resource::loadIconSet( "back" ), | 874 | lastAction = new QAction( tr("Previous dir"), Resource::loadIconSet( "back" ), |
875 | QString::null, 0, this, 0 ); | 875 | QString::null, 0, this, 0 ); |
876 | connect( lastAction, SIGNAL( activated() ), fileView, SLOT( lastDir() ) ); | 876 | connect( lastAction, SIGNAL( activated() ), fileView, SLOT( lastDir() ) ); |
877 | lastAction->addTo( toolBar ); | 877 | lastAction->addTo( toolBar ); |
878 | lastAction->setEnabled( FALSE ); | 878 | lastAction->setEnabled( FALSE ); |
879 | 879 | ||
880 | upAction = new QAction( tr("Parent dir"), Resource::loadIconSet( "up" ), | 880 | upAction = new QAction( tr("Parent dir"), Resource::loadIconSet( "up" ), |
881 | QString::null, 0, this, 0 ); | 881 | QString::null, 0, this, 0 ); |
882 | connect( upAction, SIGNAL( activated() ), fileView, SLOT( parentDir() ) ); | 882 | connect( upAction, SIGNAL( activated() ), fileView, SLOT( parentDir() ) ); |
883 | upAction->addTo( toolBar ); | 883 | upAction->addTo( toolBar ); |
884 | 884 | ||
885 | QAction *a = new QAction( tr("New folder"), Resource::loadPixmap( "newfolder" ), | 885 | QAction *a = new QAction( tr("New folder"), Resource::loadPixmap( "newfolder" ), |
886 | QString::null, 0, this, 0 ); | 886 | QString::null, 0, this, 0 ); |
887 | connect( a, SIGNAL( activated() ), fileView, SLOT( newFolder() ) ); | 887 | connect( a, SIGNAL( activated() ), fileView, SLOT( newFolder() ) ); |
888 | a->addTo( toolBar ); | 888 | a->addTo( toolBar ); |
889 | 889 | ||
890 | a = new QAction( tr("Cut"), Resource::loadPixmap( "cut" ), | 890 | a = new QAction( tr("Cut"), Resource::loadPixmap( "cut" ), |
891 | QString::null, 0, this, 0 ); | 891 | QString::null, 0, this, 0 ); |
892 | connect( a, SIGNAL( activated() ), fileView, SLOT( cut() ) ); | 892 | connect( a, SIGNAL( activated() ), fileView, SLOT( cut() ) ); |
893 | a->addTo( toolBar ); | 893 | a->addTo( toolBar ); |
894 | 894 | ||
895 | a = new QAction( tr("Copy"), Resource::loadPixmap( "copy" ), | 895 | a = new QAction( tr("Copy"), Resource::loadPixmap( "copy" ), |
896 | QString::null, 0, this, 0 ); | 896 | QString::null, 0, this, 0 ); |
897 | connect( a, SIGNAL( activated() ), fileView, SLOT( copy() ) ); | 897 | connect( a, SIGNAL( activated() ), fileView, SLOT( copy() ) ); |
898 | a->addTo( toolBar ); | 898 | a->addTo( toolBar ); |
899 | 899 | ||
900 | pasteAction = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), | 900 | pasteAction = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), |
901 | QString::null, 0, this, 0 ); | 901 | QString::null, 0, this, 0 ); |
902 | connect( pasteAction, SIGNAL( activated() ), fileView, SLOT( paste() ) ); | 902 | connect( pasteAction, SIGNAL( activated() ), fileView, SLOT( paste() ) ); |
903 | pasteAction->addTo( toolBar ); | 903 | pasteAction->addTo( toolBar ); |
904 | 904 | ||
905 | // dirLabel = new QLabel(this, "DirLabel"); | 905 | // dirLabel = new QLabel(this, "DirLabel"); |
906 | 906 | ||
907 | connect( fileView, SIGNAL( dirChanged() ), SLOT( updateDirMenu() ) ); | 907 | connect( fileView, SIGNAL( dirChanged() ), SLOT( updateDirMenu() ) ); |
908 | updateDirMenu(); | 908 | updateDirMenu(); |
909 | 909 | ||
910 | QCopChannel* pcmciaChannel = new QCopChannel( "QPE/Card", this ); | 910 | QCopChannel* pcmciaChannel = new QCopChannel( "QPE/Card", this ); |
911 | connect( pcmciaChannel, SIGNAL(received(const QCString &, const QByteArray &)), | 911 | connect( pcmciaChannel, SIGNAL(received(const QCString&,const QByteArray&)), |
912 | this, SLOT(pcmciaMessage( const QCString &, const QByteArray &)) ); | 912 | this, SLOT(pcmciaMessage(const QCString&,const QByteArray&)) ); |
913 | } | 913 | } |
914 | 914 | ||
915 | void FileBrowser::pcmciaMessage( const QCString &msg, const QByteArray &) | 915 | void FileBrowser::pcmciaMessage( const QCString &msg, const QByteArray &) |
916 | { | 916 | { |
917 | if ( msg == "mtabChanged()" ) { | 917 | if ( msg == "mtabChanged()" ) { |
918 | // ## Only really needed if current dir is on a card | 918 | // ## Only really needed if current dir is on a card |
919 | fileView->updateDir(); | 919 | fileView->updateDir(); |
920 | } | 920 | } |
921 | } | 921 | } |
922 | 922 | ||
923 | void FileBrowser::changeCaption(const QString & dir) { | 923 | void FileBrowser::changeCaption(const QString & dir) { |
924 | setCaption( dir); | 924 | setCaption( dir); |
925 | } | 925 | } |
926 | 926 | ||
927 | void FileBrowser::dirSelected( int id ) | 927 | void FileBrowser::dirSelected( int id ) |
928 | { | 928 | { |
929 | int i = 0, j; | 929 | int i = 0, j; |
930 | QString dir; | 930 | QString dir; |
931 | 931 | ||
932 | // Bulid target dir from menu | 932 | // Bulid target dir from menu |
933 | while( (j = dirMenu->idAt( i )) != id ){ | 933 | while( (j = dirMenu->idAt( i )) != id ){ |
934 | dir += dirMenu->text( j ).stripWhiteSpace(); | 934 | dir += dirMenu->text( j ).stripWhiteSpace(); |
935 | if( dirMenu->text( j ) != "/" ) dir += "/"; | 935 | if( dirMenu->text( j ) != "/" ) dir += "/"; |
936 | i++; | 936 | i++; |
937 | } | 937 | } |
938 | dir += dirMenu->text( dirMenu->idAt( i ) ).stripWhiteSpace(); | 938 | dir += dirMenu->text( dirMenu->idAt( i ) ).stripWhiteSpace(); |
939 | 939 | ||
940 | fileView->setDir( dir ); | 940 | fileView->setDir( dir ); |
941 | } | 941 | } |
942 | 942 | ||
943 | void FileBrowser::updateDirMenu() | 943 | void FileBrowser::updateDirMenu() |
944 | { | 944 | { |
945 | QString spc, cd = fileView->cd(); | 945 | QString spc, cd = fileView->cd(); |
946 | QStringList l = QStringList::split( "/", cd ); | 946 | QStringList l = QStringList::split( "/", cd ); |
947 | int i = 0; | 947 | int i = 0; |
948 | 948 | ||
949 | dirMenu->clear(); | 949 | dirMenu->clear(); |
950 | dirMenu->insertItem( tr( "/" ), this, SLOT( dirSelected(int) ) ); | 950 | dirMenu->insertItem( tr( "/" ), this, SLOT( dirSelected(int) ) ); |
951 | 951 | ||
952 | for ( QStringList::Iterator it = l.begin(); it != l.end(); ++it ) { | 952 | for ( QStringList::Iterator it = l.begin(); it != l.end(); ++it ) { |
953 | spc.fill( ' ', i++); | 953 | spc.fill( ' ', i++); |
954 | dirMenu->insertItem( spc + (*it), this, | 954 | dirMenu->insertItem( spc + (*it), this, |
955 | SLOT( dirSelected(int) ) ); | 955 | SLOT( dirSelected(int) ) ); |
956 | } | 956 | } |
957 | dirMenu->setItemChecked( dirMenu->idAt( l.count() ), TRUE ); | 957 | dirMenu->setItemChecked( dirMenu->idAt( l.count() ), TRUE ); |
958 | 958 | ||
959 | lastAction->setEnabled( fileView->history().count() != 0 ); | 959 | lastAction->setEnabled( fileView->history().count() != 0 ); |
960 | upAction->setEnabled( cd != "/" ); | 960 | upAction->setEnabled( cd != "/" ); |
961 | } | 961 | } |
962 | 962 | ||
963 | void FileBrowser::sortName() | 963 | void FileBrowser::sortName() |
964 | { | 964 | { |
965 | fileView->setSorting( 0, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); | 965 | fileView->setSorting( 0, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); |
966 | fileView->sort(); | 966 | fileView->sort(); |
967 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE ); | 967 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE ); |
968 | sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); | 968 | sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); |
969 | sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); | 969 | sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); |
970 | sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); | 970 | sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); |
971 | } | 971 | } |
972 | 972 | ||
973 | void FileBrowser::sortSize() | 973 | void FileBrowser::sortSize() |
974 | { | 974 | { |
975 | fileView->setSorting( 1, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); | 975 | fileView->setSorting( 1, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); |
976 | fileView->sort(); | 976 | fileView->sort(); |
977 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); | 977 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); |
978 | sortMenu->setItemChecked( sortMenu->idAt( 1 ), TRUE ); | 978 | sortMenu->setItemChecked( sortMenu->idAt( 1 ), TRUE ); |
979 | sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); | 979 | sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); |
980 | sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); | 980 | sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); |
981 | } | 981 | } |
982 | 982 | ||
983 | void FileBrowser::sortDate() | 983 | void FileBrowser::sortDate() |
984 | { | 984 | { |
985 | fileView->setSorting( 2, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); | 985 | fileView->setSorting( 2, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); |
986 | fileView->sort(); | 986 | fileView->sort(); |
987 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); | 987 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); |
988 | sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); | 988 | sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); |
989 | sortMenu->setItemChecked( sortMenu->idAt( 2 ), TRUE ); | 989 | sortMenu->setItemChecked( sortMenu->idAt( 2 ), TRUE ); |
990 | sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); | 990 | sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); |
991 | } | 991 | } |
992 | 992 | ||
993 | void FileBrowser::sortType() | 993 | void FileBrowser::sortType() |
994 | { | 994 | { |
995 | fileView->setSorting( 3, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); | 995 | fileView->setSorting( 3, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); |
996 | fileView->sort(); | 996 | fileView->sort(); |
997 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); | 997 | sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); |
998 | sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); | 998 | sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); |
999 | sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); | 999 | sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); |
1000 | sortMenu->setItemChecked( sortMenu->idAt( 3 ), TRUE ); | 1000 | sortMenu->setItemChecked( sortMenu->idAt( 3 ), TRUE ); |
1001 | } | 1001 | } |
1002 | 1002 | ||
1003 | void FileBrowser::updateSorting() | 1003 | void FileBrowser::updateSorting() |
1004 | { | 1004 | { |
1005 | sortMenu->setItemChecked( sortMenu->idAt( 5 ), !sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); | 1005 | sortMenu->setItemChecked( sortMenu->idAt( 5 ), !sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); |
1006 | 1006 | ||
1007 | if ( sortMenu->isItemChecked( sortMenu->idAt( 0 ) ) ) | 1007 | if ( sortMenu->isItemChecked( sortMenu->idAt( 0 ) ) ) |
1008 | sortName(); | 1008 | sortName(); |
diff --git a/noncore/unsupported/gsmtool/gsmtool.cpp b/noncore/unsupported/gsmtool/gsmtool.cpp index 5940b0e..47920e5 100644 --- a/noncore/unsupported/gsmtool/gsmtool.cpp +++ b/noncore/unsupported/gsmtool/gsmtool.cpp | |||
@@ -1,139 +1,139 @@ | |||
1 | #include "gsmtool.h" | 1 | #include "gsmtool.h" |
2 | #include <qpushbutton.h> | 2 | #include <qpushbutton.h> |
3 | #include <qcombobox.h> | 3 | #include <qcombobox.h> |
4 | #include <qlineedit.h> | 4 | #include <qlineedit.h> |
5 | #include <qlabel.h> | 5 | #include <qlabel.h> |
6 | #include <qtabwidget.h> | 6 | #include <qtabwidget.h> |
7 | #include <qlistview.h> | 7 | #include <qlistview.h> |
8 | #include <qtextbrowser.h> | 8 | #include <qtextbrowser.h> |
9 | #include <qmultilineedit.h> | 9 | #include <qmultilineedit.h> |
10 | 10 | ||
11 | #include <termios.h> | 11 | #include <termios.h> |
12 | 12 | ||
13 | #include <gsmlib/gsm_me_ta.h> | 13 | #include <gsmlib/gsm_me_ta.h> |
14 | #include <gsmlib/gsm_unix_serial.h> | 14 | #include <gsmlib/gsm_unix_serial.h> |
15 | #include <gsmlib/gsm_sms.h> | 15 | #include <gsmlib/gsm_sms.h> |
16 | #include <gsmlib/gsm_sorted_sms_store.h> | 16 | #include <gsmlib/gsm_sorted_sms_store.h> |
17 | 17 | ||
18 | using namespace gsmlib; | 18 | using namespace gsmlib; |
19 | 19 | ||
20 | 20 | ||
21 | /* | 21 | /* |
22 | * Constructs a GSMTool which is a child of 'parent', with the | 22 | * Constructs a GSMTool which is a child of 'parent', with the |
23 | * name 'name' and widget flags set to 'f' | 23 | * name 'name' and widget flags set to 'f' |
24 | */ | 24 | */ |
25 | GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl ) | 25 | GSMTool::GSMTool( QWidget* parent, const char* name, WFlags fl ) |
26 | : GSMToolBase( parent, name, fl ) | 26 | : GSMToolBase( parent, name, fl ) |
27 | { | 27 | { |
28 | devicelocked = 0; | 28 | devicelocked = 0; |
29 | me = NULL; | 29 | me = NULL; |
30 | sms_store = NULL; | 30 | sms_store = NULL; |
31 | setConnected(FALSE); | 31 | setConnected(FALSE); |
32 | /* FIXME: Persistent settings for device/baudrate */ | 32 | /* FIXME: Persistent settings for device/baudrate */ |
33 | connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton())); | 33 | connect(ConnectButton, SIGNAL(clicked()), this, SLOT(doConnectButton())); |
34 | connect(SMSDeleteButton, SIGNAL(clicked()), this, SLOT(doSMSDeleteButton())); | 34 | connect(SMSDeleteButton, SIGNAL(clicked()), this, SLOT(doSMSDeleteButton())); |
35 | connect(SMSSendButton, SIGNAL(clicked()), this, SLOT(doSMSSendButton())); | 35 | connect(SMSSendButton, SIGNAL(clicked()), this, SLOT(doSMSSendButton())); |
36 | connect(NewSMSClearButton, SIGNAL(clicked()), this, SLOT(doNewSMSClearButton())); | 36 | connect(NewSMSClearButton, SIGNAL(clicked()), this, SLOT(doNewSMSClearButton())); |
37 | connect(NewSMSSaveButton, SIGNAL(clicked()), this, SLOT(doNewSMSSaveButton())); | 37 | connect(NewSMSSaveButton, SIGNAL(clicked()), this, SLOT(doNewSMSSaveButton())); |
38 | connect(NewSMSSendButton, SIGNAL(clicked()), this, SLOT(doNewSMSSendButton())); | 38 | connect(NewSMSSendButton, SIGNAL(clicked()), this, SLOT(doNewSMSSendButton())); |
39 | connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton())); | 39 | connect(ScanButton, SIGNAL(clicked()), this, SLOT(doScanButton())); |
40 | connect(TabWidget2, SIGNAL(currentChanged(QWidget *)), this, SLOT(doTabChanged())); | 40 | connect(TabWidget2, SIGNAL(currentChanged(QWidget*)), this, SLOT(doTabChanged())); |
41 | connect(SMSStoreList, SIGNAL(activated(int)), this, SLOT(doSMSStoreChanged())); | 41 | connect(SMSStoreList, SIGNAL(activated(int)), this, SLOT(doSMSStoreChanged())); |
42 | connect(SMSViewType, SIGNAL(activated(int)), this, SLOT(doSMSTypeChanged())); | 42 | connect(SMSViewType, SIGNAL(activated(int)), this, SLOT(doSMSTypeChanged())); |
43 | connect(SMSList, SIGNAL(selectionChanged(QListViewItem *)), this, SLOT(doSelectedSMSChanged(QListViewItem *))); | 43 | connect(SMSList, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(doSelectedSMSChanged(QListViewItem*))); |
44 | timerid = -1; // Is this not possible normally? | 44 | timerid = -1; // Is this not possible normally? |
45 | } | 45 | } |
46 | 46 | ||
47 | /* | 47 | /* |
48 | * Destroys the object and frees any allocated resources | 48 | * Destroys the object and frees any allocated resources |
49 | */ | 49 | */ |
50 | GSMTool::~GSMTool() | 50 | GSMTool::~GSMTool() |
51 | { | 51 | { |
52 | // no need to delete child widgets, Qt does it all for us | 52 | // no need to delete child widgets, Qt does it all for us |
53 | if (devicelocked) | 53 | if (devicelocked) |
54 | unlockDevice(); | 54 | unlockDevice(); |
55 | } | 55 | } |
56 | const speed_t GSMTool::baudrates[12] = { | 56 | const speed_t GSMTool::baudrates[12] = { |
57 | B300, B600, B1200, B2400, B4800, B9600, B19200, | 57 | B300, B600, B1200, B2400, B4800, B9600, B19200, |
58 | B38400, B57600, B115200, B230400, B460800 | 58 | B38400, B57600, B115200, B230400, B460800 |
59 | }; | 59 | }; |
60 | 60 | ||
61 | int GSMTool::lockDevice( ) | 61 | int GSMTool::lockDevice( ) |
62 | { | 62 | { |
63 | devicelocked = 1; | 63 | devicelocked = 1; |
64 | /* FIXME */ | 64 | /* FIXME */ |
65 | return 0; | 65 | return 0; |
66 | } | 66 | } |
67 | 67 | ||
68 | void GSMTool::unlockDevice( ) | 68 | void GSMTool::unlockDevice( ) |
69 | { | 69 | { |
70 | devicelocked = 0; | 70 | devicelocked = 0; |
71 | } | 71 | } |
72 | 72 | ||
73 | void GSMTool::setConnected( bool conn ) | 73 | void GSMTool::setConnected( bool conn ) |
74 | { | 74 | { |
75 | TabWidget2->setTabEnabled(tab_2, conn); | 75 | TabWidget2->setTabEnabled(tab_2, conn); |
76 | TabWidget2->setTabEnabled(tab_3, conn); | 76 | TabWidget2->setTabEnabled(tab_3, conn); |
77 | //TabWidget2->setTabEnabled(tab_4, conn); | 77 | //TabWidget2->setTabEnabled(tab_4, conn); |
78 | NewSMSSendButton->setEnabled(conn); | 78 | NewSMSSendButton->setEnabled(conn); |
79 | MfrLabel->setEnabled(conn); | 79 | MfrLabel->setEnabled(conn); |
80 | MfrText->setEnabled(conn); | 80 | MfrText->setEnabled(conn); |
81 | ModelLabel->setEnabled(conn); | 81 | ModelLabel->setEnabled(conn); |
82 | ModelText->setEnabled(conn); | 82 | ModelText->setEnabled(conn); |
83 | RevisionLabel->setEnabled(conn); | 83 | RevisionLabel->setEnabled(conn); |
84 | RevisionText->setEnabled(conn); | 84 | RevisionText->setEnabled(conn); |
85 | SerialLabel->setEnabled(conn); | 85 | SerialLabel->setEnabled(conn); |
86 | SerialText->setEnabled(conn); | 86 | SerialText->setEnabled(conn); |
87 | 87 | ||
88 | } | 88 | } |
89 | void GSMTool::doTabChanged() | 89 | void GSMTool::doTabChanged() |
90 | { | 90 | { |
91 | int index = TabWidget2->currentPageIndex(); | 91 | int index = TabWidget2->currentPageIndex(); |
92 | qDebug("tab changed to %d", index); | 92 | qDebug("tab changed to %d", index); |
93 | 93 | ||
94 | if (index == 1) { | 94 | if (index == 1) { |
95 | timerid = startTimer(5000); | 95 | timerid = startTimer(5000); |
96 | timerEvent(NULL); | 96 | timerEvent(NULL); |
97 | } else if (timerid != -1) { | 97 | } else if (timerid != -1) { |
98 | killTimer(timerid); | 98 | killTimer(timerid); |
99 | timerid = -1; | 99 | timerid = -1; |
100 | } | 100 | } |
101 | } | 101 | } |
102 | 102 | ||
103 | void GSMTool::timerEvent( QTimerEvent * ) | 103 | void GSMTool::timerEvent( QTimerEvent * ) |
104 | { | 104 | { |
105 | OPInfo opi; | 105 | OPInfo opi; |
106 | 106 | ||
107 | opi = me->getCurrentOPInfo(); | 107 | opi = me->getCurrentOPInfo(); |
108 | 108 | ||
109 | if (opi._numericName == NOT_SET) { | 109 | if (opi._numericName == NOT_SET) { |
110 | NetStatText->setText("No network"); | 110 | NetStatText->setText("No network"); |
111 | NetworkLabel->setEnabled(FALSE); | 111 | NetworkLabel->setEnabled(FALSE); |
112 | NetworkText->setEnabled(FALSE); | 112 | NetworkText->setEnabled(FALSE); |
113 | NetworkText->setText(""); | 113 | NetworkText->setText(""); |
114 | SigStrText->setEnabled(FALSE); | 114 | SigStrText->setEnabled(FALSE); |
115 | SigStrText->setText(""); | 115 | SigStrText->setText(""); |
116 | dB->setEnabled(FALSE); | 116 | dB->setEnabled(FALSE); |
117 | SigStrLabel->setEnabled(FALSE); | 117 | SigStrLabel->setEnabled(FALSE); |
118 | } else { | 118 | } else { |
119 | // FIXME: Add 'roaming' info from AT+CFUN | 119 | // FIXME: Add 'roaming' info from AT+CFUN |
120 | qDebug("network"); | 120 | qDebug("network"); |
121 | NetStatText->setText("Registered"); | 121 | NetStatText->setText("Registered"); |
122 | NetworkLabel->setEnabled(TRUE); | 122 | NetworkLabel->setEnabled(TRUE); |
123 | NetworkText->setEnabled(TRUE); | 123 | NetworkText->setEnabled(TRUE); |
124 | NetworkText->setText(opi._longName.c_str()); | 124 | NetworkText->setText(opi._longName.c_str()); |
125 | SigStrText->setEnabled(TRUE); | 125 | SigStrText->setEnabled(TRUE); |
126 | 126 | ||
127 | qDebug("get sig str"); | 127 | qDebug("get sig str"); |
128 | int csq = me->getSignalStrength(); | 128 | int csq = me->getSignalStrength(); |
129 | if (csq == 0) { | 129 | if (csq == 0) { |
130 | SigStrText->setText("<= -113"); | 130 | SigStrText->setText("<= -113"); |
131 | dB->setEnabled(TRUE); | 131 | dB->setEnabled(TRUE); |
132 | SigStrLabel->setEnabled(TRUE); | 132 | SigStrLabel->setEnabled(TRUE); |
133 | } else if (csq == 99) { | 133 | } else if (csq == 99) { |
134 | SigStrText->setText("Unknown"); | 134 | SigStrText->setText("Unknown"); |
135 | dB->setEnabled(FALSE); | 135 | dB->setEnabled(FALSE); |
136 | SigStrLabel->setEnabled(FALSE); | 136 | SigStrLabel->setEnabled(FALSE); |
137 | } else { | 137 | } else { |
138 | char buf[6]; | 138 | char buf[6]; |
139 | sprintf(buf, "%d", -113 + (2*csq)); | 139 | sprintf(buf, "%d", -113 + (2*csq)); |
diff --git a/noncore/unsupported/mail2/bend/bend.cpp b/noncore/unsupported/mail2/bend/bend.cpp index e2ece2a..ab6eb45 100644 --- a/noncore/unsupported/mail2/bend/bend.cpp +++ b/noncore/unsupported/mail2/bend/bend.cpp | |||
@@ -1,124 +1,124 @@ | |||
1 | #include <qlayout.h> | 1 | #include <qlayout.h> |
2 | #include <qpixmap.h> | 2 | #include <qpixmap.h> |
3 | #include <qlabel.h> | 3 | #include <qlabel.h> |
4 | #include <qsound.h> | 4 | #include <qsound.h> |
5 | #include <qtimer.h> | 5 | #include <qtimer.h> |
6 | #include <qdir.h> | 6 | #include <qdir.h> |
7 | 7 | ||
8 | #include <qpe/qcopenvelope_qws.h> | 8 | #include <qpe/qcopenvelope_qws.h> |
9 | #include <qpe/resource.h> | 9 | #include <qpe/resource.h> |
10 | #include <qpe/config.h> | 10 | #include <qpe/config.h> |
11 | 11 | ||
12 | #include <opie/odevice.h> | 12 | #include <opie/odevice.h> |
13 | 13 | ||
14 | #include "imapresponse.h" | 14 | #include "imapresponse.h" |
15 | #include "imaphandler.h" | 15 | #include "imaphandler.h" |
16 | #include "configfile.h" | 16 | #include "configfile.h" |
17 | #include "bend.h" | 17 | #include "bend.h" |
18 | 18 | ||
19 | using namespace Opie; | 19 | using namespace Opie; |
20 | 20 | ||
21 | BenD::BenD(QWidget *parent, const char *name, WFlags fl) | 21 | BenD::BenD(QWidget *parent, const char *name, WFlags fl) |
22 | : QButton(parent, name, fl) | 22 | : QButton(parent, name, fl) |
23 | { | 23 | { |
24 | _config = new Config("mail"); | 24 | _config = new Config("mail"); |
25 | _config->setGroup("Settings"); | 25 | _config->setGroup("Settings"); |
26 | 26 | ||
27 | QVBoxLayout *layout = new QVBoxLayout(this); | 27 | QVBoxLayout *layout = new QVBoxLayout(this); |
28 | layout->addItem(new QSpacerItem(0,0)); | 28 | layout->addItem(new QSpacerItem(0,0)); |
29 | 29 | ||
30 | QLabel *pixmap = new QLabel(this); | 30 | QLabel *pixmap = new QLabel(this); |
31 | pixmap->setPixmap(Resource::loadPixmap("mail/mailchecker")); | 31 | pixmap->setPixmap(Resource::loadPixmap("mail/mailchecker")); |
32 | layout->addWidget(pixmap); | 32 | layout->addWidget(pixmap); |
33 | 33 | ||
34 | layout->addItem(new QSpacerItem(0,0)); | 34 | layout->addItem(new QSpacerItem(0,0)); |
35 | 35 | ||
36 | hide(); | 36 | hide(); |
37 | 37 | ||
38 | connect(this, SIGNAL(clicked()), SLOT(slotClicked())); | 38 | connect(this, SIGNAL(clicked()), SLOT(slotClicked())); |
39 | 39 | ||
40 | if (!_config->readBoolEntry("Disabled", false)) { | 40 | if (!_config->readBoolEntry("Disabled", false)) { |
41 | _intervalMs = _config->readNumEntry("CheckEvery", 5) * 60000; | 41 | _intervalMs = _config->readNumEntry("CheckEvery", 5) * 60000; |
42 | _intervalTimer = new QTimer(); | 42 | _intervalTimer = new QTimer(); |
43 | _intervalTimer->start(_intervalMs); | 43 | _intervalTimer->start(_intervalMs); |
44 | connect(_intervalTimer, SIGNAL(timeout()), SLOT(slotCheck())); | 44 | connect(_intervalTimer, SIGNAL(timeout()), SLOT(slotCheck())); |
45 | 45 | ||
46 | QTimer::singleShot(0, this, SLOT(slotCheck())); | 46 | QTimer::singleShot(0, this, SLOT(slotCheck())); |
47 | } | 47 | } |
48 | } | 48 | } |
49 | 49 | ||
50 | void BenD::drawButton(QPainter *) { } | 50 | void BenD::drawButton(QPainter *) { } |
51 | void BenD::drawButtonText(QPainter *) { } | 51 | void BenD::drawButtonText(QPainter *) { } |
52 | 52 | ||
53 | void BenD::slotClicked() | 53 | void BenD::slotClicked() |
54 | { | 54 | { |
55 | QCopEnvelope e("QPE/System", "execute(QString)"); | 55 | QCopEnvelope e("QPE/System", "execute(QString)"); |
56 | e << QString("mail"); | 56 | e << QString("mail"); |
57 | 57 | ||
58 | ODevice *device = ODevice::inst(); | 58 | ODevice *device = ODevice::inst(); |
59 | if ( !device-> ledList ( ). isEmpty ( )) { | 59 | if ( !device-> ledList ( ). isEmpty ( )) { |
60 | OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0]; | 60 | OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0]; |
61 | 61 | ||
62 | device->setLedState(led, Led_Off); | 62 | device->setLedState(led, Led_Off); |
63 | } | 63 | } |
64 | } | 64 | } |
65 | 65 | ||
66 | void BenD::slotCheck() | 66 | void BenD::slotCheck() |
67 | { | 67 | { |
68 | // Check wether the check interval has been changed. | 68 | // Check wether the check interval has been changed. |
69 | int newIntervalMs = _config->readNumEntry("CheckEvery", 5) * 60000; | 69 | int newIntervalMs = _config->readNumEntry("CheckEvery", 5) * 60000; |
70 | if (newIntervalMs != _intervalMs) { | 70 | if (newIntervalMs != _intervalMs) { |
71 | _intervalTimer->changeInterval(newIntervalMs); | 71 | _intervalTimer->changeInterval(newIntervalMs); |
72 | _intervalMs = newIntervalMs; | 72 | _intervalMs = newIntervalMs; |
73 | #ifndef QT_NO_DEBUG | 73 | #ifndef QT_NO_DEBUG |
74 | qWarning("BenD: Detected interval change"); | 74 | qWarning("BenD: Detected interval change"); |
75 | #endif | 75 | #endif |
76 | } | 76 | } |
77 | 77 | ||
78 | QValueList<Account> acList = ConfigFile::getAccounts(); | 78 | QValueList<Account> acList = ConfigFile::getAccounts(); |
79 | QValueList<Account>::Iterator ot; | 79 | QValueList<Account>::Iterator ot; |
80 | for (ot = acList.begin(); ot != acList.end(); ot++) { | 80 | for (ot = acList.begin(); ot != acList.end(); ot++) { |
81 | if (!((*ot).imapServer().isEmpty() || | 81 | if (!((*ot).imapServer().isEmpty() || |
82 | (*ot).imapPort().isEmpty() || | 82 | (*ot).imapPort().isEmpty() || |
83 | (*ot).user().isEmpty() || | 83 | (*ot).user().isEmpty() || |
84 | (*ot).pass().isEmpty())) { | 84 | (*ot).pass().isEmpty())) { |
85 | if (!((*ot).imapSsl() && | 85 | if (!((*ot).imapSsl() && |
86 | (*ot).imapSslPort().isEmpty())) { | 86 | (*ot).imapSslPort().isEmpty())) { |
87 | IMAPHandler *handler = new IMAPHandler(*ot); | 87 | IMAPHandler *handler = new IMAPHandler(*ot); |
88 | handler->iStatus("INBOX", "RECENT"); | 88 | handler->iStatus("INBOX", "RECENT"); |
89 | connect(handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPStatus(IMAPResponse &))); | 89 | connect(handler, SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPStatus(IMAPResponse&))); |
90 | } | 90 | } |
91 | } | 91 | } |
92 | } | 92 | } |
93 | } | 93 | } |
94 | 94 | ||
95 | void BenD::slotIMAPStatus(IMAPResponse &response) | 95 | void BenD::slotIMAPStatus(IMAPResponse &response) |
96 | { | 96 | { |
97 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPStatus(IMAPResponse &))); | 97 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPStatus(IMAPResponse&))); |
98 | 98 | ||
99 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 99 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
100 | if (response.STATUS()[0].recent().toInt() > 0) { | 100 | if (response.STATUS()[0].recent().toInt() > 0) { |
101 | ODevice *device = ODevice::inst(); | 101 | ODevice *device = ODevice::inst(); |
102 | if (isHidden()) show(); | 102 | if (isHidden()) show(); |
103 | if (_config->readBoolEntry("BlinkLed", true)) { | 103 | if (_config->readBoolEntry("BlinkLed", true)) { |
104 | if ( !device-> ledList ( ). isEmpty ( )) { | 104 | if ( !device-> ledList ( ). isEmpty ( )) { |
105 | OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0]; | 105 | OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0]; |
106 | 106 | ||
107 | device->setLedState(led, device-> ledStateList ( led ). contains ( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On ); | 107 | device->setLedState(led, device-> ledStateList ( led ). contains ( Led_BlinkSlow ) ? Led_BlinkSlow : Led_On ); |
108 | } | 108 | } |
109 | } | 109 | } |
110 | if (_config->readBoolEntry("PlaySound", false)) | 110 | if (_config->readBoolEntry("PlaySound", false)) |
111 | device->alarmSound(); | 111 | device->alarmSound(); |
112 | } else { | 112 | } else { |
113 | ODevice *device = ODevice::inst(); | 113 | ODevice *device = ODevice::inst(); |
114 | if (!isHidden()) hide(); | 114 | if (!isHidden()) hide(); |
115 | if ( !device-> ledList ( ). isEmpty ( )) { | 115 | if ( !device-> ledList ( ). isEmpty ( )) { |
116 | OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0]; | 116 | OLed led = ( device-> ledList ( ). contains ( Led_Mail )) ? Led_Mail : device-> ledList ( ) [0]; |
117 | 117 | ||
118 | device->setLedState(led, Led_Off); | 118 | device->setLedState(led, Led_Off); |
119 | } | 119 | } |
120 | } | 120 | } |
121 | response.imapHandler()->iLogout(); | 121 | response.imapHandler()->iLogout(); |
122 | } else qWarning("BenD: WARNING: Couldn't retrieve INBOX status."); | 122 | } else qWarning("BenD: WARNING: Couldn't retrieve INBOX status."); |
123 | } | 123 | } |
124 | 124 | ||
diff --git a/noncore/unsupported/mail2/composer.cpp b/noncore/unsupported/mail2/composer.cpp index cb80299..da1aee9 100644 --- a/noncore/unsupported/mail2/composer.cpp +++ b/noncore/unsupported/mail2/composer.cpp | |||
@@ -65,283 +65,283 @@ void Composer::hide() | |||
65 | } | 65 | } |
66 | } | 66 | } |
67 | 67 | ||
68 | void Composer::exec() | 68 | void Composer::exec() |
69 | { | 69 | { |
70 | show(); | 70 | show(); |
71 | if (!_inLoop) { | 71 | if (!_inLoop) { |
72 | _inLoop = true; | 72 | _inLoop = true; |
73 | qApp->enter_loop(); | 73 | qApp->enter_loop(); |
74 | } | 74 | } |
75 | } | 75 | } |
76 | 76 | ||
77 | void Composer::setSendMail(SendMail &sendMail) | 77 | void Composer::setSendMail(SendMail &sendMail) |
78 | { | 78 | { |
79 | to->setText(sendMail.to()); | 79 | to->setText(sendMail.to()); |
80 | cc->setText(sendMail.cc()); | 80 | cc->setText(sendMail.cc()); |
81 | bcc->setText(sendMail.bcc()); | 81 | bcc->setText(sendMail.bcc()); |
82 | subject->setText(sendMail.subject()); | 82 | subject->setText(sendMail.subject()); |
83 | message->setText(sendMail.message()); | 83 | message->setText(sendMail.message()); |
84 | _inReplyTo = sendMail.inReplyTo(); | 84 | _inReplyTo = sendMail.inReplyTo(); |
85 | 85 | ||
86 | QValueList<Attachment> attachments = sendMail.attachments(); | 86 | QValueList<Attachment> attachments = sendMail.attachments(); |
87 | QValueList<Attachment>::Iterator it; | 87 | QValueList<Attachment>::Iterator it; |
88 | for (it = attachments.begin(); it != attachments.end(); it++) { | 88 | for (it = attachments.begin(); it != attachments.end(); it++) { |
89 | (void) new AttachViewItem(attachView, *it); | 89 | (void) new AttachViewItem(attachView, *it); |
90 | if (attachView->isHidden()) attachView->show(); | 90 | if (attachView->isHidden()) attachView->show(); |
91 | } | 91 | } |
92 | } | 92 | } |
93 | 93 | ||
94 | void Composer::slotResizing() | 94 | void Composer::slotResizing() |
95 | { | 95 | { |
96 | from->setMaximumWidth(width() - fromBox->width()); | 96 | from->setMaximumWidth(width() - fromBox->width()); |
97 | from->resize(width() - fromBox->width(), y()); | 97 | from->resize(width() - fromBox->width(), y()); |
98 | if (_sendQueued) slotSendQueued(); | 98 | if (_sendQueued) slotSendQueued(); |
99 | } | 99 | } |
100 | 100 | ||
101 | void Composer::slotPopupHandler(int itemid) | 101 | void Composer::slotPopupHandler(int itemid) |
102 | { | 102 | { |
103 | if (attachView->currentItem() == NULL) { | 103 | if (attachView->currentItem() == NULL) { |
104 | QMessageBox::information(this, tr("Error"), tr("Please select an entry first."), tr("Ok")); | 104 | QMessageBox::information(this, tr("Error"), tr("Please select an entry first."), tr("Ok")); |
105 | return; | 105 | return; |
106 | } | 106 | } |
107 | 107 | ||
108 | if (itemid == POPUP_ATTACH_RENAME) { | 108 | if (itemid == POPUP_ATTACH_RENAME) { |
109 | QString tmp = Rename::rename(attachView->currentItem()->text(0), this); | 109 | QString tmp = Rename::rename(attachView->currentItem()->text(0), this); |
110 | if (tmp != QString(0)) attachView->currentItem()->setText(0, tmp); | 110 | if (tmp != QString(0)) attachView->currentItem()->setText(0, tmp); |
111 | } else if (itemid == POPUP_ATTACH_DESC) { | 111 | } else if (itemid == POPUP_ATTACH_DESC) { |
112 | QString tmp = Rename::getText(tr("Set Description"), tr("<div align=center>Description"), this); | 112 | QString tmp = Rename::getText(tr("Set Description"), tr("<div align=center>Description"), this); |
113 | if (tmp != QString(0)) attachView->currentItem()->setText(1, tmp); | 113 | if (tmp != QString(0)) attachView->currentItem()->setText(1, tmp); |
114 | } else if (itemid == POPUP_ATTACH_REMOVE) { | 114 | } else if (itemid == POPUP_ATTACH_REMOVE) { |
115 | attachView->takeItem(attachView->currentItem()); | 115 | attachView->takeItem(attachView->currentItem()); |
116 | } | 116 | } |
117 | } | 117 | } |
118 | 118 | ||
119 | void Composer::slotSendMail() | 119 | void Composer::slotSendMail() |
120 | { | 120 | { |
121 | if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) { | 121 | if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) { |
122 | QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok")); | 122 | QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok")); |
123 | return; | 123 | return; |
124 | } | 124 | } |
125 | 125 | ||
126 | SendMail smail; | 126 | SendMail smail; |
127 | smail.setFrom(from->currentText()); | 127 | smail.setFrom(from->currentText()); |
128 | smail.setReplyTo(replyto->text()); | 128 | smail.setReplyTo(replyto->text()); |
129 | smail.setTo(to->text()); | 129 | smail.setTo(to->text()); |
130 | smail.setCc(cc->text()); | 130 | smail.setCc(cc->text()); |
131 | smail.setBcc(bcc->text()); | 131 | smail.setBcc(bcc->text()); |
132 | smail.setSubject(subject->text()); | 132 | smail.setSubject(subject->text()); |
133 | smail.setMessage(message->text()); | 133 | smail.setMessage(message->text()); |
134 | smail.setNeedsMime(attachView->childCount() == 0 ? false : true); | 134 | smail.setNeedsMime(attachView->childCount() == 0 ? false : true); |
135 | smail.setAccount(accountsLoaded[from->currentItem()]); | 135 | smail.setAccount(accountsLoaded[from->currentItem()]); |
136 | 136 | ||
137 | if (priority->currentItem() == POPUP_PRIO_LOW) { | 137 | if (priority->currentItem() == POPUP_PRIO_LOW) { |
138 | smail.setPriority("Low");// No i18n on purpose | 138 | smail.setPriority("Low");// No i18n on purpose |
139 | } else if (priority->currentItem() == POPUP_PRIO_NORMAL) { | 139 | } else if (priority->currentItem() == POPUP_PRIO_NORMAL) { |
140 | smail.setPriority("Normal");// No i18n on purpose | 140 | smail.setPriority("Normal");// No i18n on purpose |
141 | } else if (priority->currentItem() == POPUP_PRIO_HIGH) { | 141 | } else if (priority->currentItem() == POPUP_PRIO_HIGH) { |
142 | smail.setPriority("High");// No i18n on purpose | 142 | smail.setPriority("High");// No i18n on purpose |
143 | } | 143 | } |
144 | 144 | ||
145 | QValueList<Attachment> attachments; | 145 | QValueList<Attachment> attachments; |
146 | QListViewItem *item; | 146 | QListViewItem *item; |
147 | for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) { | 147 | for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) { |
148 | attachments.append(((AttachViewItem *)item)->attachment()); | 148 | attachments.append(((AttachViewItem *)item)->attachment()); |
149 | } | 149 | } |
150 | 150 | ||
151 | smail.setAttachments(attachments); | 151 | smail.setAttachments(attachments); |
152 | 152 | ||
153 | QString header, message; | 153 | QString header, message; |
154 | MailFactory::genMail(header, message, smail, this); | 154 | MailFactory::genMail(header, message, smail, this); |
155 | if (header.isNull() || message.isNull()) return;// Aborted. | 155 | if (header.isNull() || message.isNull()) return;// Aborted. |
156 | 156 | ||
157 | status->setStopEnabled(true); | 157 | status->setStopEnabled(true); |
158 | 158 | ||
159 | SmtpHandler *handler = new SmtpHandler(header, message, accountsLoaded[from->currentItem()], to->text()); | 159 | SmtpHandler *handler = new SmtpHandler(header, message, accountsLoaded[from->currentItem()], to->text()); |
160 | connect(handler, SIGNAL(finished()), SLOT(slotSendFinished())); | 160 | connect(handler, SIGNAL(finished()), SLOT(slotSendFinished())); |
161 | connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendError(const QString &))); | 161 | connect(handler, SIGNAL(error(const QString&)), SLOT(slotSendError(const QString&))); |
162 | connect(handler, SIGNAL(status(const QString &)), status, SLOT(setStatusText(const QString &))); | 162 | connect(handler, SIGNAL(status(const QString&)), status, SLOT(setStatusText(const QString&))); |
163 | } | 163 | } |
164 | 164 | ||
165 | void Composer::slotSendQueued() | 165 | void Composer::slotSendQueued() |
166 | { | 166 | { |
167 | int effSendCount = 0; | 167 | int effSendCount = 0; |
168 | qDebug("Sending queued messages"); | 168 | qDebug("Sending queued messages"); |
169 | Config cfg( "mailqueue", Config::User ); | 169 | Config cfg( "mailqueue", Config::User ); |
170 | cfg.setGroup( "Settings" ); | 170 | cfg.setGroup( "Settings" ); |
171 | _sendCount = 0; | 171 | _sendCount = 0; |
172 | _sendError = 0; | 172 | _sendError = 0; |
173 | _toSend = cfg.readNumEntry( "count", 0 ); | 173 | _toSend = cfg.readNumEntry( "count", 0 ); |
174 | 174 | ||
175 | if (_toSend == 0) close(); | 175 | if (_toSend == 0) close(); |
176 | 176 | ||
177 | qDebug("%i messages to send", _toSend); | 177 | qDebug("%i messages to send", _toSend); |
178 | QString str; | 178 | QString str; |
179 | for (int i=1;i<=_toSend;i++) | 179 | for (int i=1;i<=_toSend;i++) |
180 | { | 180 | { |
181 | qDebug("sending message %i",i); | 181 | qDebug("sending message %i",i); |
182 | cfg.setGroup( "Mail_" + QString::number(i) ); | 182 | cfg.setGroup( "Mail_" + QString::number(i) ); |
183 | SendMail smail; | 183 | SendMail smail; |
184 | str = cfg.readEntry("from"); | 184 | str = cfg.readEntry("from"); |
185 | qDebug("setFrom %s",str.latin1()); | 185 | qDebug("setFrom %s",str.latin1()); |
186 | smail.setFrom( str ); | 186 | smail.setFrom( str ); |
187 | str = cfg.readEntry("reply"); | 187 | str = cfg.readEntry("reply"); |
188 | qDebug("setReplyTo %s",str.latin1()); | 188 | qDebug("setReplyTo %s",str.latin1()); |
189 | smail.setReplyTo( str ); | 189 | smail.setReplyTo( str ); |
190 | QString toAdr = cfg.readEntry("to"); | 190 | QString toAdr = cfg.readEntry("to"); |
191 | qDebug("to %s",toAdr.latin1()); | 191 | qDebug("to %s",toAdr.latin1()); |
192 | smail.setTo( toAdr ); //to->text()); | 192 | smail.setTo( toAdr ); //to->text()); |
193 | str = cfg.readEntry("cc"); | 193 | str = cfg.readEntry("cc"); |
194 | qDebug("setCc %s",str.latin1()); | 194 | qDebug("setCc %s",str.latin1()); |
195 | smail.setCc( str ); //cc->text()); | 195 | smail.setCc( str ); //cc->text()); |
196 | smail.setBcc( cfg.readEntry("bcc") ); //bcc->text()); | 196 | smail.setBcc( cfg.readEntry("bcc") ); //bcc->text()); |
197 | str = cfg.readEntry("subject"); | 197 | str = cfg.readEntry("subject"); |
198 | qDebug("setSubject %s",str.latin1()); | 198 | qDebug("setSubject %s",str.latin1()); |
199 | smail.setSubject( str ); //subject->text()); | 199 | smail.setSubject( str ); //subject->text()); |
200 | str = cfg.readEntryCrypt("message"); | 200 | str = cfg.readEntryCrypt("message"); |
201 | qDebug("setMessage %s",str.latin1()); | 201 | qDebug("setMessage %s",str.latin1()); |
202 | smail.setMessage( str ); //message->text()); | 202 | smail.setMessage( str ); //message->text()); |
203 | smail.setNeedsMime( cfg.readBoolEntry("mime") ); //attachView->childCount() == 0 ? false : true); | 203 | smail.setNeedsMime( cfg.readBoolEntry("mime") ); //attachView->childCount() == 0 ? false : true); |
204 | 204 | ||
205 | qDebug("setting account [%i]",cfg.readNumEntry("account")); | 205 | qDebug("setting account [%i]",cfg.readNumEntry("account")); |
206 | Account accnt = accountsLoaded[ cfg.readNumEntry("account") ]; | 206 | Account accnt = accountsLoaded[ cfg.readNumEntry("account") ]; |
207 | smail.setAccount( accnt ); //accountsLoaded[from->currentItem()]); | 207 | smail.setAccount( accnt ); //accountsLoaded[from->currentItem()]); |
208 | 208 | ||
209 | 209 | ||
210 | int prio = cfg.readNumEntry( "priority" ); | 210 | int prio = cfg.readNumEntry( "priority" ); |
211 | qDebug("setting priority %i",prio); | 211 | qDebug("setting priority %i",prio); |
212 | if (prio == POPUP_PRIO_LOW) { | 212 | if (prio == POPUP_PRIO_LOW) { |
213 | smail.setPriority("Low");// No i18n on purpose | 213 | smail.setPriority("Low");// No i18n on purpose |
214 | } else if (prio == POPUP_PRIO_NORMAL) { | 214 | } else if (prio == POPUP_PRIO_NORMAL) { |
215 | smail.setPriority("Normal");// No i18n on purpose | 215 | smail.setPriority("Normal");// No i18n on purpose |
216 | } else if (prio == POPUP_PRIO_HIGH) { | 216 | } else if (prio == POPUP_PRIO_HIGH) { |
217 | smail.setPriority("High");// No i18n on purpose | 217 | smail.setPriority("High");// No i18n on purpose |
218 | } | 218 | } |
219 | 219 | ||
220 | QValueList<Attachment> attachments; | 220 | QValueList<Attachment> attachments; |
221 | Attachment a; | 221 | Attachment a; |
222 | QString an; | 222 | QString an; |
223 | 223 | ||
224 | int ac = cfg.readNumEntry( "attachments", 0 ); | 224 | int ac = cfg.readNumEntry( "attachments", 0 ); |
225 | qDebug("%i Attachments",ac); | 225 | qDebug("%i Attachments",ac); |
226 | for (int j = 0; i < ac; ac++) { | 226 | for (int j = 0; i < ac; ac++) { |
227 | an = "Attachment_" + QString::number( j ); | 227 | an = "Attachment_" + QString::number( j ); |
228 | qDebug(an.latin1()); | 228 | qDebug(an.latin1()); |
229 | a.setFileName(cfg.readEntry( an + "fileName" )); | 229 | a.setFileName(cfg.readEntry( an + "fileName" )); |
230 | a.setNewName(cfg.readEntry( an + "newName" )); | 230 | a.setNewName(cfg.readEntry( an + "newName" )); |
231 | a.setDescription(cfg.readEntry( an + "description" )); | 231 | a.setDescription(cfg.readEntry( an + "description" )); |
232 | a.setDocLnk( DocLnk( cfg.readEntry( an + "docLnk" )) ); | 232 | a.setDocLnk( DocLnk( cfg.readEntry( an + "docLnk" )) ); |
233 | attachments.append( a ); | 233 | attachments.append( a ); |
234 | } | 234 | } |
235 | 235 | ||
236 | smail.setAttachments(attachments); | 236 | smail.setAttachments(attachments); |
237 | 237 | ||
238 | qDebug("putting mail together"); | 238 | qDebug("putting mail together"); |
239 | 239 | ||
240 | QString header, message; | 240 | QString header, message; |
241 | MailFactory::genMail(header, message, smail, this); | 241 | MailFactory::genMail(header, message, smail, this); |
242 | if (header.isNull() || message.isNull()) continue;//return;// Aborted. | 242 | if (header.isNull() || message.isNull()) continue;//return;// Aborted. |
243 | 243 | ||
244 | // abort->setEnabled(true); | 244 | // abort->setEnabled(true); |
245 | 245 | ||
246 | qDebug("Sending to %s",toAdr.latin1()); | 246 | qDebug("Sending to %s",toAdr.latin1()); |
247 | SmtpHandler *handler = new SmtpHandler(header, message, accnt ,toAdr); | 247 | SmtpHandler *handler = new SmtpHandler(header, message, accnt ,toAdr); |
248 | effSendCount++; | 248 | effSendCount++; |
249 | connect(handler, SIGNAL(finished()), SLOT(slotSendQueuedFinished())); | 249 | connect(handler, SIGNAL(finished()), SLOT(slotSendQueuedFinished())); |
250 | connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendQueuedError(const QString &))); | 250 | connect(handler, SIGNAL(error(const QString&)), SLOT(slotSendQueuedError(const QString&))); |
251 | connect(handler, SIGNAL(status(const QString &)), status, SLOT(setStatusText(const QString &))); | 251 | connect(handler, SIGNAL(status(const QString&)), status, SLOT(setStatusText(const QString&))); |
252 | 252 | ||
253 | } | 253 | } |
254 | if (effSendCount < _toSend) | 254 | if (effSendCount < _toSend) |
255 | { | 255 | { |
256 | _toSend = effSendCount; | 256 | _toSend = effSendCount; |
257 | QMessageBox::information(this, tr("Error"), tr("<p>There was a problem sending some of the queued mails.</p>"), tr("Ok")); | 257 | QMessageBox::information(this, tr("Error"), tr("<p>There was a problem sending some of the queued mails.</p>"), tr("Ok")); |
258 | } | 258 | } |
259 | } | 259 | } |
260 | 260 | ||
261 | void Composer::slotQueueMail() | 261 | void Composer::slotQueueMail() |
262 | { | 262 | { |
263 | if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) { | 263 | if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) { |
264 | QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok")); | 264 | QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok")); |
265 | return; | 265 | return; |
266 | } | 266 | } |
267 | 267 | ||
268 | Config cfg( "mailqueue", Config::User ); | 268 | Config cfg( "mailqueue", Config::User ); |
269 | 269 | ||
270 | cfg.setGroup( "Settings" ); | 270 | cfg.setGroup( "Settings" ); |
271 | int count = cfg.readNumEntry( "count", 0 ); | 271 | int count = cfg.readNumEntry( "count", 0 ); |
272 | count++; | 272 | count++; |
273 | cfg.writeEntry( "count", count ); | 273 | cfg.writeEntry( "count", count ); |
274 | qDebug("queueing mail %i",count); | 274 | qDebug("queueing mail %i",count); |
275 | 275 | ||
276 | cfg.setGroup( "Mail_" + QString::number( count )); | 276 | cfg.setGroup( "Mail_" + QString::number( count )); |
277 | cfg.writeEntry( "from", from->currentText() ); | 277 | cfg.writeEntry( "from", from->currentText() ); |
278 | cfg.writeEntry( "reply", replyto->text()); | 278 | cfg.writeEntry( "reply", replyto->text()); |
279 | cfg.writeEntry( "to", to->text()); | 279 | cfg.writeEntry( "to", to->text()); |
280 | cfg.writeEntry( "cc", cc->text()); | 280 | cfg.writeEntry( "cc", cc->text()); |
281 | cfg.writeEntry( "bcc", bcc->text()); | 281 | cfg.writeEntry( "bcc", bcc->text()); |
282 | cfg.writeEntry( "subject", subject->text()); | 282 | cfg.writeEntry( "subject", subject->text()); |
283 | cfg.writeEntryCrypt( "message", message->text()); | 283 | cfg.writeEntryCrypt( "message", message->text()); |
284 | cfg.writeEntry( "mime", attachView->childCount() == 0 ); | 284 | cfg.writeEntry( "mime", attachView->childCount() == 0 ); |
285 | cfg.writeEntry( "account", from->currentItem()); | 285 | cfg.writeEntry( "account", from->currentItem()); |
286 | cfg.writeEntry( "priority", priority->currentItem() ); | 286 | cfg.writeEntry( "priority", priority->currentItem() ); |
287 | cfg.writeEntry( "attachments", attachView->childCount() ); | 287 | cfg.writeEntry( "attachments", attachView->childCount() ); |
288 | 288 | ||
289 | Attachment a; | 289 | Attachment a; |
290 | QListViewItem *item; | 290 | QListViewItem *item; |
291 | QString an; | 291 | QString an; |
292 | int i = 0; | 292 | int i = 0; |
293 | for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) { | 293 | for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) { |
294 | a = ((AttachViewItem *)item)->attachment(); | 294 | a = ((AttachViewItem *)item)->attachment(); |
295 | an = "Attachment_" + QString::number( i++ ); | 295 | an = "Attachment_" + QString::number( i++ ); |
296 | cfg.writeEntry( an + "fileName", a.fileName() ); | 296 | cfg.writeEntry( an + "fileName", a.fileName() ); |
297 | cfg.writeEntry( an + "newName", a.newName() ); | 297 | cfg.writeEntry( an + "newName", a.newName() ); |
298 | cfg.writeEntry( an + "description", a.description() ); | 298 | cfg.writeEntry( an + "description", a.description() ); |
299 | cfg.writeEntry( an + "docLnk", a.docLnk().file() ); | 299 | cfg.writeEntry( an + "docLnk", a.docLnk().file() ); |
300 | } | 300 | } |
301 | 301 | ||
302 | QMessageBox::information(this, tr("Success"), tr("<p>The mail was queued successfully.</p><p>The queue contains ")+QString::number(count)+tr(" mails.</p>"), tr("Ok")); | 302 | QMessageBox::information(this, tr("Success"), tr("<p>The mail was queued successfully.</p><p>The queue contains ")+QString::number(count)+tr(" mails.</p>"), tr("Ok")); |
303 | 303 | ||
304 | } | 304 | } |
305 | 305 | ||
306 | void Composer::slotSendError(const QString &error) | 306 | void Composer::slotSendError(const QString &error) |
307 | { | 307 | { |
308 | status->setStatusText(tr("<font color=#ff0000>Error occoured during sending.</font>")); | 308 | status->setStatusText(tr("<font color=#ff0000>Error occoured during sending.</font>")); |
309 | QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok")); | 309 | QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok")); |
310 | } | 310 | } |
311 | 311 | ||
312 | void Composer::slotSendQueuedError(const QString &error) | 312 | void Composer::slotSendQueuedError(const QString &error) |
313 | { | 313 | { |
314 | _sendError++; | 314 | _sendError++; |
315 | qDebug("error send mail %i",_sendCount); | 315 | qDebug("error send mail %i",_sendCount); |
316 | status->setStatusText(tr("<font color=#ff0000>Error occoured during sending.</font>")); | 316 | status->setStatusText(tr("<font color=#ff0000>Error occoured during sending.</font>")); |
317 | QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok")); | 317 | QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok")); |
318 | } | 318 | } |
319 | 319 | ||
320 | void Composer::slotSendFinished() | 320 | void Composer::slotSendFinished() |
321 | { | 321 | { |
322 | QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok")); | 322 | QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok")); |
323 | 323 | ||
324 | status->setStatusText(QString(0)); | 324 | status->setStatusText(QString(0)); |
325 | status->setStopEnabled(false); | 325 | status->setStopEnabled(false); |
326 | } | 326 | } |
327 | 327 | ||
328 | void Composer::slotSendQueuedFinished() | 328 | void Composer::slotSendQueuedFinished() |
329 | { | 329 | { |
330 | 330 | ||
331 | _sendCount++; | 331 | _sendCount++; |
332 | qDebug("finished send mail %i of %i (error %i)",_sendCount,_toSend,_sendError); | 332 | qDebug("finished send mail %i of %i (error %i)",_sendCount,_toSend,_sendError); |
333 | if (_sendCount < _toSend) return; | 333 | if (_sendCount < _toSend) return; |
334 | if (_sendError == _toSend) close(); | 334 | if (_sendError == _toSend) close(); |
335 | QMessageBox::information(this, tr("Success"), tr("<p>The queued mails ")+QString::number(_toSend-_sendError)+tr(" of ")+QString::number(_toSend)+(" were sent successfully.</p>"), tr("Ok")); | 335 | QMessageBox::information(this, tr("Success"), tr("<p>The queued mails ")+QString::number(_toSend-_sendError)+tr(" of ")+QString::number(_toSend)+(" were sent successfully.</p>"), tr("Ok")); |
336 | Config cfg( "mailqueue", Config::User ); | 336 | Config cfg( "mailqueue", Config::User ); |
337 | cfg.setGroup( "Settings" ); | 337 | cfg.setGroup( "Settings" ); |
338 | cfg.writeEntry( "count", 0 ); | 338 | cfg.writeEntry( "count", 0 ); |
339 | for (int i=1;i<=_sendCount;i++) | 339 | for (int i=1;i<=_sendCount;i++) |
340 | { | 340 | { |
341 | cfg.setGroup( "Mail_" + QString::number(i) ); | 341 | cfg.setGroup( "Mail_" + QString::number(i) ); |
342 | qDebug("remove mail %i", i); | 342 | qDebug("remove mail %i", i); |
343 | cfg.clearGroup(); | 343 | cfg.clearGroup(); |
344 | cfg.removeEntry( "Mail_" + QString::number(i) ); | 344 | cfg.removeEntry( "Mail_" + QString::number(i) ); |
345 | } | 345 | } |
346 | close(); | 346 | close(); |
347 | } | 347 | } |
diff --git a/noncore/unsupported/mail2/folderwidget.cpp b/noncore/unsupported/mail2/folderwidget.cpp index d27968b..a0520b1 100644 --- a/noncore/unsupported/mail2/folderwidget.cpp +++ b/noncore/unsupported/mail2/folderwidget.cpp | |||
@@ -1,314 +1,314 @@ | |||
1 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
2 | #include <qtextstream.h> | 2 | #include <qtextstream.h> |
3 | #include <qpopupmenu.h> | 3 | #include <qpopupmenu.h> |
4 | #include <qheader.h> | 4 | #include <qheader.h> |
5 | #include <qfile.h> | 5 | #include <qfile.h> |
6 | #include <qdir.h> | 6 | #include <qdir.h> |
7 | 7 | ||
8 | #include <qpe/resource.h> | 8 | #include <qpe/resource.h> |
9 | 9 | ||
10 | #include <stdlib.h> | 10 | #include <stdlib.h> |
11 | 11 | ||
12 | #include "folderwidget.h" | 12 | #include "folderwidget.h" |
13 | #include "imaphandler.h" | 13 | #include "imaphandler.h" |
14 | #include "imapbase.h" | 14 | #include "imapbase.h" |
15 | #include "rename.h" | 15 | #include "rename.h" |
16 | 16 | ||
17 | FolderWidgetItem::FolderWidgetItem(Folder &folder, QListView *parent) | 17 | FolderWidgetItem::FolderWidgetItem(Folder &folder, QListView *parent) |
18 | : QListViewItem(parent), _folder(folder) | 18 | : QListViewItem(parent), _folder(folder) |
19 | { | 19 | { |
20 | setPixmap(0, QPixmap(Resource::loadPixmap("mail/inbox"))); | 20 | setPixmap(0, QPixmap(Resource::loadPixmap("mail/inbox"))); |
21 | setText(0, _folder.topFolder().account().user() + " (" + _folder.topFolder().account().imapServer() + ")"); | 21 | setText(0, _folder.topFolder().account().user() + " (" + _folder.topFolder().account().imapServer() + ")"); |
22 | setOpen(true); | 22 | setOpen(true); |
23 | } | 23 | } |
24 | 24 | ||
25 | FolderWidgetItem::FolderWidgetItem(Folder &folder, FolderWidgetItem *parent) | 25 | FolderWidgetItem::FolderWidgetItem(Folder &folder, FolderWidgetItem *parent) |
26 | : QListViewItem(parent), _folder(folder) | 26 | : QListViewItem(parent), _folder(folder) |
27 | { | 27 | { |
28 | if (_folder.noCache()) { | 28 | if (_folder.noCache()) { |
29 | setText(0, QObject::tr("<Foldertree not known.>")); | 29 | setText(0, QObject::tr("<Foldertree not known.>")); |
30 | } else { | 30 | } else { |
31 | if (folder.fullName().upper() == "INBOX") { | 31 | if (folder.fullName().upper() == "INBOX") { |
32 | setPixmap(0, QPixmap(Resource::loadPixmap("mail/inbox"))); | 32 | setPixmap(0, QPixmap(Resource::loadPixmap("mail/inbox"))); |
33 | setText(0, QObject::tr("Inbox")); | 33 | setText(0, QObject::tr("Inbox")); |
34 | } else { | 34 | } else { |
35 | setPixmap(0, QPixmap(Resource::loadPixmap("mail/folder"))); | 35 | setPixmap(0, QPixmap(Resource::loadPixmap("mail/folder"))); |
36 | setText(0, folder.fullName()); | 36 | setText(0, folder.fullName()); |
37 | } | 37 | } |
38 | setOpen(true); | 38 | setOpen(true); |
39 | } | 39 | } |
40 | } | 40 | } |
41 | 41 | ||
42 | FolderWidget::FolderWidget(QWidget *parent, const char *name, WFlags fl) | 42 | FolderWidget::FolderWidget(QWidget *parent, const char *name, WFlags fl) |
43 | : ListViewPlus(parent, name, fl) | 43 | : ListViewPlus(parent, name, fl) |
44 | { | 44 | { |
45 | header()->hide(); | 45 | header()->hide(); |
46 | addColumn(""); | 46 | addColumn(""); |
47 | setSorting(-1); | 47 | setSorting(-1); |
48 | 48 | ||
49 | QPopupMenu *menu = new QPopupMenu(); | 49 | QPopupMenu *menu = new QPopupMenu(); |
50 | menu->insertItem(tr("Rename"), MENU_RENAME); | 50 | menu->insertItem(tr("Rename"), MENU_RENAME); |
51 | menu->insertItem(tr("Delete"), MENU_DELETE); | 51 | menu->insertItem(tr("Delete"), MENU_DELETE); |
52 | menu->insertItem(tr("Move"), MENU_MOVE); | 52 | menu->insertItem(tr("Move"), MENU_MOVE); |
53 | menu->insertItem(tr("Copy"), MENU_COPY); | 53 | menu->insertItem(tr("Copy"), MENU_COPY); |
54 | menu->insertSeparator(); | 54 | menu->insertSeparator(); |
55 | menu->insertItem(tr("Create folder"), MENU_CREATE); | 55 | menu->insertItem(tr("Create folder"), MENU_CREATE); |
56 | menu->insertSeparator(); | 56 | menu->insertSeparator(); |
57 | menu->insertItem(tr("Rescan folder list"), MENU_RESCAN); | 57 | menu->insertItem(tr("Rescan folder list"), MENU_RESCAN); |
58 | setPopup(menu); | 58 | setPopup(menu); |
59 | 59 | ||
60 | getAccounts(); | 60 | getAccounts(); |
61 | 61 | ||
62 | connect(menu, SIGNAL(activated(int)), SLOT(slotMenuActivated(int))); | 62 | connect(menu, SIGNAL(activated(int)), SLOT(slotMenuActivated(int))); |
63 | connect(this, SIGNAL(clicked(QListViewItem *)), SLOT(slotItemClicked(QListViewItem *))); | 63 | connect(this, SIGNAL(clicked(QListViewItem*)), SLOT(slotItemClicked(QListViewItem*))); |
64 | } | 64 | } |
65 | 65 | ||
66 | FolderWidget::~FolderWidget() | 66 | FolderWidget::~FolderWidget() |
67 | { | 67 | { |
68 | // TODO: Save folder tree. | 68 | // TODO: Save folder tree. |
69 | } | 69 | } |
70 | 70 | ||
71 | void FolderWidget::update() | 71 | void FolderWidget::update() |
72 | { | 72 | { |
73 | getAccounts(); | 73 | getAccounts(); |
74 | } | 74 | } |
75 | 75 | ||
76 | void FolderWidget::getAccounts() | 76 | void FolderWidget::getAccounts() |
77 | { | 77 | { |
78 | clear(); | 78 | clear(); |
79 | 79 | ||
80 | QValueList<Account> accounts = ConfigFile::getAccounts(); | 80 | QValueList<Account> accounts = ConfigFile::getAccounts(); |
81 | QValueList<Account>::Iterator it; | 81 | QValueList<Account>::Iterator it; |
82 | for (it = accounts.begin(); it != accounts.end(); it++) { | 82 | for (it = accounts.begin(); it != accounts.end(); it++) { |
83 | FolderWidgetItem *item = addAccount(*it); | 83 | FolderWidgetItem *item = addAccount(*it); |
84 | QFile f((QString) getenv("HOME") + "/Applications/mail/foldercache/foldercache-" + (*it).accountName()); | 84 | QFile f((QString) getenv("HOME") + "/Applications/mail/foldercache/foldercache-" + (*it).accountName()); |
85 | if (!f.open(IO_ReadOnly)) { | 85 | if (!f.open(IO_ReadOnly)) { |
86 | Folder folder; | 86 | Folder folder; |
87 | folder.setNoCache(true); | 87 | folder.setNoCache(true); |
88 | addFolder(folder, item); | 88 | addFolder(folder, item); |
89 | } else { | 89 | } else { |
90 | QTextStream t(&f); | 90 | QTextStream t(&f); |
91 | while (!t.atEnd()) { | 91 | while (!t.atEnd()) { |
92 | QString separator = t.readLine(); | 92 | QString separator = t.readLine(); |
93 | QString fullname = t.readLine(); | 93 | QString fullname = t.readLine(); |
94 | Folder folder; | 94 | Folder folder; |
95 | folder.setSeparator(separator); | 95 | folder.setSeparator(separator); |
96 | folder.setFullName(fullname); | 96 | folder.setFullName(fullname); |
97 | folder.setTopFolder(item->folder().topFolder()); | 97 | folder.setTopFolder(item->folder().topFolder()); |
98 | addFolder(folder, item); | 98 | addFolder(folder, item); |
99 | } | 99 | } |
100 | f.close(); | 100 | f.close(); |
101 | } | 101 | } |
102 | } | 102 | } |
103 | } | 103 | } |
104 | 104 | ||
105 | FolderWidgetItem *FolderWidget::addAccount(Account &account) | 105 | FolderWidgetItem *FolderWidget::addAccount(Account &account) |
106 | { | 106 | { |
107 | TopFolder tf; | 107 | TopFolder tf; |
108 | tf.setAccount(account); | 108 | tf.setAccount(account); |
109 | 109 | ||
110 | // XXX This has to change!!! The folderwidget may not create an | 110 | // XXX This has to change!!! The folderwidget may not create an |
111 | // XXX IMAPHandler!!!! Do this in IMAPHandler! | 111 | // XXX IMAPHandler!!!! Do this in IMAPHandler! |
112 | tf.setIMAPHandler(new IMAPHandler(account)); | 112 | tf.setIMAPHandler(new IMAPHandler(account)); |
113 | 113 | ||
114 | Folder folder; | 114 | Folder folder; |
115 | folder.setTopFolder(tf); | 115 | folder.setTopFolder(tf); |
116 | 116 | ||
117 | connect(tf.handler(), SIGNAL(IMAPLookingUpHost()), SLOT(slotIMAPLookingUpHost())); | 117 | connect(tf.handler(), SIGNAL(IMAPLookingUpHost()), SLOT(slotIMAPLookingUpHost())); |
118 | connect(tf.handler(), SIGNAL(IMAPHostFound()), SLOT(slotIMAPHostFound())); | 118 | connect(tf.handler(), SIGNAL(IMAPHostFound()), SLOT(slotIMAPHostFound())); |
119 | connect(tf.handler(), SIGNAL(IMAPConnected()), SLOT(slotIMAPConnected())); | 119 | connect(tf.handler(), SIGNAL(IMAPConnected()), SLOT(slotIMAPConnected())); |
120 | connect(tf.handler(), SIGNAL(IMAPDisconnected()), SLOT(slotIMAPDisconnected())); | 120 | connect(tf.handler(), SIGNAL(IMAPDisconnected()), SLOT(slotIMAPDisconnected())); |
121 | connect(tf.handler(), SIGNAL(IMAPError(int)), SLOT(slotIMAPError(int))); | 121 | connect(tf.handler(), SIGNAL(IMAPError(int)), SLOT(slotIMAPError(int))); |
122 | 122 | ||
123 | return new FolderWidgetItem(folder, this); | 123 | return new FolderWidgetItem(folder, this); |
124 | } | 124 | } |
125 | 125 | ||
126 | FolderWidgetItem *FolderWidget::addFolder(Folder &folder, FolderWidgetItem *folderWidgetItem) | 126 | FolderWidgetItem *FolderWidget::addFolder(Folder &folder, FolderWidgetItem *folderWidgetItem) |
127 | { | 127 | { |
128 | return new FolderWidgetItem(folder, folderWidgetItem); | 128 | return new FolderWidgetItem(folder, folderWidgetItem); |
129 | } | 129 | } |
130 | 130 | ||
131 | void FolderWidget::slotMenuActivated(int itemid) | 131 | void FolderWidget::slotMenuActivated(int itemid) |
132 | { | 132 | { |
133 | if (currentItem() == NULL) { | 133 | if (currentItem() == NULL) { |
134 | QMessageBox::information(this, tr("Error"), tr("<p>Please select an item first.</p>"), tr("Ok")); | 134 | QMessageBox::information(this, tr("Error"), tr("<p>Please select an item first.</p>"), tr("Ok")); |
135 | return; | 135 | return; |
136 | } | 136 | } |
137 | 137 | ||
138 | if (itemid == MENU_RENAME) { | 138 | if (itemid == MENU_RENAME) { |
139 | if (((FolderWidgetItem *)currentItem())->folder().fullName().isEmpty()) return; | 139 | if (((FolderWidgetItem *)currentItem())->folder().fullName().isEmpty()) return; |
140 | 140 | ||
141 | Folder folder = ((FolderWidgetItem *)currentItem())->folder(); | 141 | Folder folder = ((FolderWidgetItem *)currentItem())->folder(); |
142 | QString newName = Rename::rename(folder.fullName(), this); | 142 | QString newName = Rename::rename(folder.fullName(), this); |
143 | if (newName.isNull()) return; | 143 | if (newName.isNull()) return; |
144 | 144 | ||
145 | folder.topFolder().handler()->iRename(folder.fullName(), newName); | 145 | folder.topFolder().handler()->iRename(folder.fullName(), newName); |
146 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPRename(IMAPResponse &))); | 146 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPRename(IMAPResponse&))); |
147 | } else if (itemid == MENU_DELETE) { | 147 | } else if (itemid == MENU_DELETE) { |
148 | if (((FolderWidgetItem *)currentItem())->folder().fullName().isEmpty()) return; | 148 | if (((FolderWidgetItem *)currentItem())->folder().fullName().isEmpty()) return; |
149 | 149 | ||
150 | Folder folder = ((FolderWidgetItem *)currentItem())->folder(); | 150 | Folder folder = ((FolderWidgetItem *)currentItem())->folder(); |
151 | 151 | ||
152 | int ret = QMessageBox::information(this, tr("Question"), tr("<p>Do you really want to delete <pre>%1</pre>?").arg(folder.fullName()), tr("Yes"), tr("No")); | 152 | int ret = QMessageBox::information(this, tr("Question"), tr("<p>Do you really want to delete <pre>%1</pre>?").arg(folder.fullName()), tr("Yes"), tr("No")); |
153 | if (ret == 1) return; | 153 | if (ret == 1) return; |
154 | 154 | ||
155 | _createFolder = folder; | 155 | _createFolder = folder; |
156 | 156 | ||
157 | folder.topFolder().handler()->iDelete(folder.fullName()); | 157 | folder.topFolder().handler()->iDelete(folder.fullName()); |
158 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPDelete(IMAPResponse &))); | 158 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPDelete(IMAPResponse&))); |
159 | } else if (itemid == MENU_MOVE) { | 159 | } else if (itemid == MENU_MOVE) { |
160 | 160 | ||
161 | } else if (itemid == MENU_COPY) { | 161 | } else if (itemid == MENU_COPY) { |
162 | 162 | ||
163 | } else if (itemid == MENU_CREATE) { | 163 | } else if (itemid == MENU_CREATE) { |
164 | Folder folder = (((FolderWidgetItem *)currentItem())->folder()); | 164 | Folder folder = (((FolderWidgetItem *)currentItem())->folder()); |
165 | _createFolder = folder; | 165 | _createFolder = folder; |
166 | 166 | ||
167 | QString folderName = Rename::getText(tr("Foldername"), tr("<p>Please enter the name of the new folder.</p>"), this); | 167 | QString folderName = Rename::getText(tr("Foldername"), tr("<p>Please enter the name of the new folder.</p>"), this); |
168 | if (folderName.isNull()) return; | 168 | if (folderName.isNull()) return; |
169 | 169 | ||
170 | folder.topFolder().handler()->iCreate(folder.fullName() + folder.separator() + folderName); | 170 | folder.topFolder().handler()->iCreate(folder.fullName() + folder.separator() + folderName); |
171 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPCreate(IMAPResponse &))); | 171 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPCreate(IMAPResponse&))); |
172 | } else if (itemid == MENU_RESCAN) { | 172 | } else if (itemid == MENU_RESCAN) { |
173 | Folder folder = (((FolderWidgetItem *)currentItem())->folder()); | 173 | Folder folder = (((FolderWidgetItem *)currentItem())->folder()); |
174 | _rescanAccount = folder.topFolder().account(); | 174 | _rescanAccount = folder.topFolder().account(); |
175 | 175 | ||
176 | folder.topFolder().handler()->iList("", "*"); | 176 | folder.topFolder().handler()->iList("", "*"); |
177 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPList(IMAPResponse &))); | 177 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPList(IMAPResponse&))); |
178 | } | 178 | } |
179 | } | 179 | } |
180 | 180 | ||
181 | void FolderWidget::slotItemClicked(QListViewItem *item) | 181 | void FolderWidget::slotItemClicked(QListViewItem *item) |
182 | { | 182 | { |
183 | if (item == NULL) return; | 183 | if (item == NULL) return; |
184 | Folder folder = ((FolderWidgetItem *)item)->folder(); | 184 | Folder folder = ((FolderWidgetItem *)item)->folder(); |
185 | if (folder.fullName().isEmpty()) return; | 185 | if (folder.fullName().isEmpty()) return; |
186 | 186 | ||
187 | emit folderSelected(folder); | 187 | emit folderSelected(folder); |
188 | } | 188 | } |
189 | 189 | ||
190 | void FolderWidget::slotIMAPLookingUpHost() | 190 | void FolderWidget::slotIMAPLookingUpHost() |
191 | { | 191 | { |
192 | emit status(tr("Looking up host...")); | 192 | emit status(tr("Looking up host...")); |
193 | emit connecting(); | 193 | emit connecting(); |
194 | } | 194 | } |
195 | 195 | ||
196 | void FolderWidget::slotIMAPHostFound() | 196 | void FolderWidget::slotIMAPHostFound() |
197 | { | 197 | { |
198 | emit status(tr("Host found.")); | 198 | emit status(tr("Host found.")); |
199 | } | 199 | } |
200 | 200 | ||
201 | void FolderWidget::slotIMAPConnected() | 201 | void FolderWidget::slotIMAPConnected() |
202 | { | 202 | { |
203 | emit status(tr("Connected to host.")); | 203 | emit status(tr("Connected to host.")); |
204 | emit connected(); | 204 | emit connected(); |
205 | } | 205 | } |
206 | 206 | ||
207 | void FolderWidget::slotIMAPError(int error) | 207 | void FolderWidget::slotIMAPError(int error) |
208 | { | 208 | { |
209 | if (error == IMAPBase::IMAPErrConnectionRefused) { | 209 | if (error == IMAPBase::IMAPErrConnectionRefused) { |
210 | QMessageBox::warning(this, tr("Error"), tr("<p>The IMAP connection was refused.</p>"), tr("Ok")); | 210 | QMessageBox::warning(this, tr("Error"), tr("<p>The IMAP connection was refused.</p>"), tr("Ok")); |
211 | } else if (error == IMAPBase::IMAPErrHostNotFound) { | 211 | } else if (error == IMAPBase::IMAPErrHostNotFound) { |
212 | QMessageBox::warning(this, tr("Error"), tr("<p>The host was not found.</p>"), tr("Ok")); | 212 | QMessageBox::warning(this, tr("Error"), tr("<p>The host was not found.</p>"), tr("Ok")); |
213 | } else if (error == IMAPBase::IMAPErrSocketRead) { | 213 | } else if (error == IMAPBase::IMAPErrSocketRead) { |
214 | QMessageBox::warning(this, tr("Error"), tr("<p>There was an error while reading from the socket.</p>"), tr("Ok")); | 214 | QMessageBox::warning(this, tr("Error"), tr("<p>There was an error while reading from the socket.</p>"), tr("Ok")); |
215 | } else if (error == IMAPBase::IMAPErrLoginFailed) { | 215 | } else if (error == IMAPBase::IMAPErrLoginFailed) { |
216 | QMessageBox::warning(this, tr("Error"), tr("<p>Login failed. Check your password/username.</p>"), tr("Ok")); | 216 | QMessageBox::warning(this, tr("Error"), tr("<p>Login failed. Check your password/username.</p>"), tr("Ok")); |
217 | } else { | 217 | } else { |
218 | QMessageBox::warning(this, tr("Error"), tr("<p>An unknown error was encountered.</p>"), tr("Ok")); | 218 | QMessageBox::warning(this, tr("Error"), tr("<p>An unknown error was encountered.</p>"), tr("Ok")); |
219 | } | 219 | } |
220 | } | 220 | } |
221 | 221 | ||
222 | void FolderWidget::slotIMAPDisconnected() | 222 | void FolderWidget::slotIMAPDisconnected() |
223 | { | 223 | { |
224 | emit status(tr("Disconnected.")); | 224 | emit status(tr("Disconnected.")); |
225 | emit disconnected(); | 225 | emit disconnected(); |
226 | } | 226 | } |
227 | 227 | ||
228 | void FolderWidget::slotIMAPLogin(IMAPResponse &response) | 228 | void FolderWidget::slotIMAPLogin(IMAPResponse &response) |
229 | { | 229 | { |
230 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPLogin(IMAPResponse &))); | 230 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPLogin(IMAPResponse&))); |
231 | 231 | ||
232 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 232 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
233 | emit status(tr("Login successful!")); | 233 | emit status(tr("Login successful!")); |
234 | } else { | 234 | } else { |
235 | QMessageBox::warning(this, tr("Error"), tr("<p>Login failed. Go away.</p>"), tr("Ok")); | 235 | QMessageBox::warning(this, tr("Error"), tr("<p>Login failed. Go away.</p>"), tr("Ok")); |
236 | } | 236 | } |
237 | } | 237 | } |
238 | 238 | ||
239 | void FolderWidget::slotIMAPRename(IMAPResponse &response) | 239 | void FolderWidget::slotIMAPRename(IMAPResponse &response) |
240 | { | 240 | { |
241 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPRename(IMAPResponse &))); | 241 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPRename(IMAPResponse&))); |
242 | 242 | ||
243 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 243 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
244 | emit status(tr("Renaming successful!")); | 244 | emit status(tr("Renaming successful!")); |
245 | } else { | 245 | } else { |
246 | QMessageBox::warning(this, tr("Error"), tr("<p>Renaming failed. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); | 246 | QMessageBox::warning(this, tr("Error"), tr("<p>Renaming failed. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); |
247 | } | 247 | } |
248 | } | 248 | } |
249 | 249 | ||
250 | void FolderWidget::slotIMAPDelete(IMAPResponse &response) | 250 | void FolderWidget::slotIMAPDelete(IMAPResponse &response) |
251 | { | 251 | { |
252 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPDelete(IMAPResponse &))); | 252 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPDelete(IMAPResponse&))); |
253 | 253 | ||
254 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 254 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
255 | emit status(tr("Deletion successful!")); | 255 | emit status(tr("Deletion successful!")); |
256 | 256 | ||
257 | _rescanAccount = _createFolder.topFolder().account(); | 257 | _rescanAccount = _createFolder.topFolder().account(); |
258 | 258 | ||
259 | _createFolder.topFolder().handler()->iList(".", "*"); | 259 | _createFolder.topFolder().handler()->iList(".", "*"); |
260 | connect(_createFolder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPList(IMAPResponse &))); | 260 | connect(_createFolder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPList(IMAPResponse&))); |
261 | } else { | 261 | } else { |
262 | QMessageBox::warning(this, tr("Error"), tr("<p>Delete failed. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); | 262 | QMessageBox::warning(this, tr("Error"), tr("<p>Delete failed. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); |
263 | } | 263 | } |
264 | } | 264 | } |
265 | 265 | ||
266 | void FolderWidget::slotIMAPCreate(IMAPResponse &response) | 266 | void FolderWidget::slotIMAPCreate(IMAPResponse &response) |
267 | { | 267 | { |
268 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPCreate(IMAPResponse &))); | 268 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPCreate(IMAPResponse&))); |
269 | 269 | ||
270 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 270 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
271 | emit status(tr("Folder created. Rescanning...")); | 271 | emit status(tr("Folder created. Rescanning...")); |
272 | 272 | ||
273 | _rescanAccount = _createFolder.topFolder().account(); | 273 | _rescanAccount = _createFolder.topFolder().account(); |
274 | 274 | ||
275 | _createFolder.topFolder().handler()->iList(".", "*"); | 275 | _createFolder.topFolder().handler()->iList(".", "*"); |
276 | connect(_createFolder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPList(IMAPResponse &))); | 276 | connect(_createFolder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPList(IMAPResponse&))); |
277 | } else { | 277 | } else { |
278 | QMessageBox::warning(this, tr("Error"), tr("<p>The folder could not be created. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); | 278 | QMessageBox::warning(this, tr("Error"), tr("<p>The folder could not be created. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); |
279 | } | 279 | } |
280 | } | 280 | } |
281 | 281 | ||
282 | void FolderWidget::slotIMAPList(IMAPResponse &response) | 282 | void FolderWidget::slotIMAPList(IMAPResponse &response) |
283 | { | 283 | { |
284 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPList(IMAPResponse &))); | 284 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPList(IMAPResponse&))); |
285 | 285 | ||
286 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 286 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
287 | QDir d((QString) getenv("HOME") + "/Applications/mail/foldercache"); | 287 | QDir d((QString) getenv("HOME") + "/Applications/mail/foldercache"); |
288 | if (!d.exists()) { | 288 | if (!d.exists()) { |
289 | system("mkdir -p $HOME/Applications/mail/foldercache"); | 289 | system("mkdir -p $HOME/Applications/mail/foldercache"); |
290 | qWarning("Created $HOME/Applications/mail/foldercache."); | 290 | qWarning("Created $HOME/Applications/mail/foldercache."); |
291 | } | 291 | } |
292 | QFile f((QString) getenv("HOME") + "/Applications/mail/foldercache/foldercache-" + _rescanAccount.accountName()); | 292 | QFile f((QString) getenv("HOME") + "/Applications/mail/foldercache/foldercache-" + _rescanAccount.accountName()); |
293 | if (!f.open(IO_WriteOnly)) { | 293 | if (!f.open(IO_WriteOnly)) { |
294 | QMessageBox::critical(this, tr("Error"), tr("<p>Couldn't open folder cache file for writing!</p>"), tr("Ok")); | 294 | QMessageBox::critical(this, tr("Error"), tr("<p>Couldn't open folder cache file for writing!</p>"), tr("Ok")); |
295 | return; | 295 | return; |
296 | } | 296 | } |
297 | QTextStream t(&f); | 297 | QTextStream t(&f); |
298 | 298 | ||
299 | QValueList<IMAPResponseLIST>::Iterator it; | 299 | QValueList<IMAPResponseLIST>::Iterator it; |
300 | QValueList<IMAPResponseLIST> lists = response.LIST(); | 300 | QValueList<IMAPResponseLIST> lists = response.LIST(); |
301 | for (it = lists.begin(); it != lists.end(); it++) { | 301 | for (it = lists.begin(); it != lists.end(); it++) { |
302 | t << (*it).folderSeparator() << "\n"; | 302 | t << (*it).folderSeparator() << "\n"; |
303 | t << (*it).folder() << "\n"; | 303 | t << (*it).folder() << "\n"; |
304 | } | 304 | } |
305 | 305 | ||
306 | f.close(); | 306 | f.close(); |
307 | 307 | ||
308 | emit status(tr("Got folder list.")); | 308 | emit status(tr("Got folder list.")); |
309 | getAccounts(); | 309 | getAccounts(); |
310 | } else { | 310 | } else { |
311 | QMessageBox::warning(this, tr("Error"), tr("<p>Couldn't retrieve the folder list. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); | 311 | QMessageBox::warning(this, tr("Error"), tr("<p>Couldn't retrieve the folder list. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); |
312 | } | 312 | } |
313 | } | 313 | } |
314 | 314 | ||
diff --git a/noncore/unsupported/mail2/libmail/imaphandler.cpp b/noncore/unsupported/mail2/libmail/imaphandler.cpp index dc97b28..8da0acd 100644 --- a/noncore/unsupported/mail2/libmail/imaphandler.cpp +++ b/noncore/unsupported/mail2/libmail/imaphandler.cpp | |||
@@ -1,110 +1,110 @@ | |||
1 | #include "imapresponse.h" | 1 | #include "imapresponse.h" |
2 | #include "imaphandler.h" | 2 | #include "imaphandler.h" |
3 | #include "imapbase.h" | 3 | #include "imapbase.h" |
4 | 4 | ||
5 | IMAPHandler::IMAPHandler(const Account &account) | 5 | IMAPHandler::IMAPHandler(const Account &account) |
6 | : QObject(), _account(account) | 6 | : QObject(), _account(account) |
7 | { | 7 | { |
8 | _ready = false; | 8 | _ready = false; |
9 | _loggingin = false; | 9 | _loggingin = false; |
10 | _loggedin = false; | 10 | _loggedin = false; |
11 | _tag = 0; | 11 | _tag = 0; |
12 | _ibase = new IMAPBase(account); | 12 | _ibase = new IMAPBase(account); |
13 | 13 | ||
14 | connect(_ibase, SIGNAL(dataReceived(const QString &)), SLOT(slotDataReceived(const QString &))); | 14 | connect(_ibase, SIGNAL(dataReceived(const QString&)), SLOT(slotDataReceived(const QString&))); |
15 | connect(_ibase, SIGNAL(lookingUpHost()), SLOT(slotLookingUpHost())); | 15 | connect(_ibase, SIGNAL(lookingUpHost()), SLOT(slotLookingUpHost())); |
16 | connect(_ibase, SIGNAL(hostFound()), SLOT(slotHostFound())); | 16 | connect(_ibase, SIGNAL(hostFound()), SLOT(slotHostFound())); |
17 | connect(_ibase, SIGNAL(connected()), SLOT(slotConnected())); | 17 | connect(_ibase, SIGNAL(connected()), SLOT(slotConnected())); |
18 | connect(_ibase, SIGNAL(disconnected()), SLOT(slotDisconnected())); | 18 | connect(_ibase, SIGNAL(disconnected()), SLOT(slotDisconnected())); |
19 | connect(_ibase, SIGNAL(error(int)), SLOT(slotError(int))); | 19 | connect(_ibase, SIGNAL(error(int)), SLOT(slotError(int))); |
20 | } | 20 | } |
21 | 21 | ||
22 | void IMAPHandler::doLogin() | 22 | void IMAPHandler::doLogin() |
23 | { | 23 | { |
24 | if (_loggedin) return; | 24 | if (_loggedin) return; |
25 | if (_loggingin) return; | 25 | if (_loggingin) return; |
26 | 26 | ||
27 | _loggingin = true; | 27 | _loggingin = true; |
28 | iLogin(_account.user(), _account.pass()); | 28 | iLogin(_account.user(), _account.pass()); |
29 | } | 29 | } |
30 | 30 | ||
31 | QString IMAPHandler::iCapability() | 31 | QString IMAPHandler::iCapability() |
32 | { | 32 | { |
33 | _ibase->sendCommand(QString("%1 CAPABILITY\r\n") | 33 | _ibase->sendCommand(QString("%1 CAPABILITY\r\n") |
34 | .arg(tag())); | 34 | .arg(tag())); |
35 | return tag(false); | 35 | return tag(false); |
36 | } | 36 | } |
37 | 37 | ||
38 | QString IMAPHandler::iNoop() | 38 | QString IMAPHandler::iNoop() |
39 | { | 39 | { |
40 | _ibase->sendCommand(QString("%1 NOOP\r\n") | 40 | _ibase->sendCommand(QString("%1 NOOP\r\n") |
41 | .arg(tag())); | 41 | .arg(tag())); |
42 | return tag(false); | 42 | return tag(false); |
43 | } | 43 | } |
44 | 44 | ||
45 | QString IMAPHandler::iLogout() | 45 | QString IMAPHandler::iLogout() |
46 | { | 46 | { |
47 | _ibase->sendCommand(QString("%1 LOGOUT\r\n") | 47 | _ibase->sendCommand(QString("%1 LOGOUT\r\n") |
48 | .arg(tag())); | 48 | .arg(tag())); |
49 | return tag(false); | 49 | return tag(false); |
50 | } | 50 | } |
51 | 51 | ||
52 | QString IMAPHandler::iAuthenticate(const QString &mechanism) | 52 | QString IMAPHandler::iAuthenticate(const QString &mechanism) |
53 | { | 53 | { |
54 | _ibase->sendCommand(QString("%1 AUTHENTICATE \"%2\"\r\n") | 54 | _ibase->sendCommand(QString("%1 AUTHENTICATE \"%2\"\r\n") |
55 | .arg(tag()) | 55 | .arg(tag()) |
56 | .arg(escape(mechanism))); | 56 | .arg(escape(mechanism))); |
57 | return tag(false); | 57 | return tag(false); |
58 | } | 58 | } |
59 | 59 | ||
60 | QString IMAPHandler::iLogin(const QString &user, const QString &pass) | 60 | QString IMAPHandler::iLogin(const QString &user, const QString &pass) |
61 | { | 61 | { |
62 | _ibase->sendCommand(QString("%1 LOGIN \"%2\" \"%3\"\r\n") | 62 | _ibase->sendCommand(QString("%1 LOGIN \"%2\" \"%3\"\r\n") |
63 | .arg(tag()) | 63 | .arg(tag()) |
64 | .arg(escape(user)) | 64 | .arg(escape(user)) |
65 | .arg(escape(pass))); | 65 | .arg(escape(pass))); |
66 | return tag(false); | 66 | return tag(false); |
67 | } | 67 | } |
68 | 68 | ||
69 | QString IMAPHandler::iSelect(const QString &mailbox) | 69 | QString IMAPHandler::iSelect(const QString &mailbox) |
70 | { | 70 | { |
71 | doLogin(); | 71 | doLogin(); |
72 | 72 | ||
73 | _ibase->sendCommand(QString("%1 SELECT \"%2\"\r\n") | 73 | _ibase->sendCommand(QString("%1 SELECT \"%2\"\r\n") |
74 | .arg(tag()) | 74 | .arg(tag()) |
75 | .arg(escape(mailbox))); | 75 | .arg(escape(mailbox))); |
76 | return tag(false); | 76 | return tag(false); |
77 | } | 77 | } |
78 | 78 | ||
79 | QString IMAPHandler::iExamine(const QString &mailbox) | 79 | QString IMAPHandler::iExamine(const QString &mailbox) |
80 | { | 80 | { |
81 | doLogin(); | 81 | doLogin(); |
82 | 82 | ||
83 | _ibase->sendCommand(QString("%1 EXAMINE \"%2\"\r\n") | 83 | _ibase->sendCommand(QString("%1 EXAMINE \"%2\"\r\n") |
84 | .arg(tag()) | 84 | .arg(tag()) |
85 | .arg(escape(mailbox))); | 85 | .arg(escape(mailbox))); |
86 | return tag(false); | 86 | return tag(false); |
87 | } | 87 | } |
88 | 88 | ||
89 | QString IMAPHandler::iCreate(const QString &mailbox) | 89 | QString IMAPHandler::iCreate(const QString &mailbox) |
90 | { | 90 | { |
91 | doLogin(); | 91 | doLogin(); |
92 | 92 | ||
93 | _ibase->sendCommand(QString("%1 CREATE \"%2\"\r\n") | 93 | _ibase->sendCommand(QString("%1 CREATE \"%2\"\r\n") |
94 | .arg(tag()) | 94 | .arg(tag()) |
95 | .arg(escape(mailbox))); | 95 | .arg(escape(mailbox))); |
96 | return tag(false); | 96 | return tag(false); |
97 | } | 97 | } |
98 | 98 | ||
99 | QString IMAPHandler::iDelete(const QString &mailbox) | 99 | QString IMAPHandler::iDelete(const QString &mailbox) |
100 | { | 100 | { |
101 | doLogin(); | 101 | doLogin(); |
102 | 102 | ||
103 | _ibase->sendCommand(QString("%1 DELETE \"%2\"\r\n") | 103 | _ibase->sendCommand(QString("%1 DELETE \"%2\"\r\n") |
104 | .arg(tag()) | 104 | .arg(tag()) |
105 | .arg(escape(mailbox))); | 105 | .arg(escape(mailbox))); |
106 | return tag(false); | 106 | return tag(false); |
107 | } | 107 | } |
108 | 108 | ||
109 | QString IMAPHandler::iRename(const QString &mailbox, const QString &newMailbox) | 109 | QString IMAPHandler::iRename(const QString &mailbox, const QString &newMailbox) |
110 | { | 110 | { |
@@ -206,141 +206,141 @@ QString IMAPHandler::iExpunge() | |||
206 | { | 206 | { |
207 | doLogin(); | 207 | doLogin(); |
208 | 208 | ||
209 | _ibase->sendCommand(QString("%1 EXPUNGE\r\n") | 209 | _ibase->sendCommand(QString("%1 EXPUNGE\r\n") |
210 | .arg(tag())); | 210 | .arg(tag())); |
211 | return tag(false); | 211 | return tag(false); |
212 | } | 212 | } |
213 | 213 | ||
214 | QString IMAPHandler::iSearch(const QString &search, const QString &charset) | 214 | QString IMAPHandler::iSearch(const QString &search, const QString &charset) |
215 | { | 215 | { |
216 | doLogin(); | 216 | doLogin(); |
217 | 217 | ||
218 | _ibase->sendCommand(QString("%1 SEARCH %2 %3\r\n") | 218 | _ibase->sendCommand(QString("%1 SEARCH %2 %3\r\n") |
219 | .arg(tag()) | 219 | .arg(tag()) |
220 | .arg(charset.isEmpty() ? QString(0) : escape(charset)) | 220 | .arg(charset.isEmpty() ? QString(0) : escape(charset)) |
221 | .arg(search)); | 221 | .arg(search)); |
222 | return tag(false); | 222 | return tag(false); |
223 | } | 223 | } |
224 | 224 | ||
225 | QString IMAPHandler::iFetch(const QString &message, const QString &items) | 225 | QString IMAPHandler::iFetch(const QString &message, const QString &items) |
226 | { | 226 | { |
227 | doLogin(); | 227 | doLogin(); |
228 | 228 | ||
229 | _ibase->sendCommand(QString("%1 FETCH %2 (%3)\r\n") | 229 | _ibase->sendCommand(QString("%1 FETCH %2 (%3)\r\n") |
230 | .arg(tag()) | 230 | .arg(tag()) |
231 | .arg(message) | 231 | .arg(message) |
232 | .arg(items)); | 232 | .arg(items)); |
233 | return tag(false); | 233 | return tag(false); |
234 | } | 234 | } |
235 | 235 | ||
236 | QString IMAPHandler::iStore(const QString &message, const QString &items) | 236 | QString IMAPHandler::iStore(const QString &message, const QString &items) |
237 | { | 237 | { |
238 | doLogin(); | 238 | doLogin(); |
239 | 239 | ||
240 | _ibase->sendCommand(QString("%1 STORE %2 %3\r\n") | 240 | _ibase->sendCommand(QString("%1 STORE %2 %3\r\n") |
241 | .arg(tag()) | 241 | .arg(tag()) |
242 | .arg(message) | 242 | .arg(message) |
243 | .arg(items)); | 243 | .arg(items)); |
244 | return tag(false); | 244 | return tag(false); |
245 | } | 245 | } |
246 | 246 | ||
247 | QString IMAPHandler::iCopy(const QString &message, const QString &mailbox) | 247 | QString IMAPHandler::iCopy(const QString &message, const QString &mailbox) |
248 | { | 248 | { |
249 | doLogin(); | 249 | doLogin(); |
250 | 250 | ||
251 | _ibase->sendCommand(QString("%1 COPY %2 \"%3\"\r\n") | 251 | _ibase->sendCommand(QString("%1 COPY %2 \"%3\"\r\n") |
252 | .arg(tag()) | 252 | .arg(tag()) |
253 | .arg(message) | 253 | .arg(message) |
254 | .arg(escape(mailbox))); | 254 | .arg(escape(mailbox))); |
255 | return tag(false); | 255 | return tag(false); |
256 | } | 256 | } |
257 | 257 | ||
258 | QString IMAPHandler::iUid(const QString &command, const QString &arguments) | 258 | QString IMAPHandler::iUid(const QString &command, const QString &arguments) |
259 | { | 259 | { |
260 | doLogin(); | 260 | doLogin(); |
261 | 261 | ||
262 | _ibase->sendCommand(QString("%1 UID %2 %3\r\n") | 262 | _ibase->sendCommand(QString("%1 UID %2 %3\r\n") |
263 | .arg(tag()) | 263 | .arg(tag()) |
264 | .arg(command) | 264 | .arg(command) |
265 | .arg(arguments)); | 265 | .arg(arguments)); |
266 | return tag(false); | 266 | return tag(false); |
267 | } | 267 | } |
268 | 268 | ||
269 | QString IMAPHandler::iX(const QString &commandAtom, const QString &arguments) | 269 | QString IMAPHandler::iX(const QString &commandAtom, const QString &arguments) |
270 | { | 270 | { |
271 | doLogin(); | 271 | doLogin(); |
272 | 272 | ||
273 | _ibase->sendCommand(QString("%1 X%2 %3\r\n") | 273 | _ibase->sendCommand(QString("%1 X%2 %3\r\n") |
274 | .arg(tag()) | 274 | .arg(tag()) |
275 | .arg(commandAtom) | 275 | .arg(commandAtom) |
276 | .arg(arguments)); | 276 | .arg(arguments)); |
277 | return tag(false); | 277 | return tag(false); |
278 | } | 278 | } |
279 | 279 | ||
280 | QString IMAPHandler::escape(const QString &in) | 280 | QString IMAPHandler::escape(const QString &in) |
281 | { | 281 | { |
282 | QString in_ = in; | 282 | QString in_ = in; |
283 | return in_.replace(QRegExp("\""), "\\\""); | 283 | return in_.replace(QRegExp("\""), "\\\""); |
284 | } | 284 | } |
285 | 285 | ||
286 | QString IMAPHandler::tag(bool count) | 286 | QString IMAPHandler::tag(bool count) |
287 | { | 287 | { |
288 | return QString("a%1").arg(count ? _tag++ : _tag); | 288 | return QString("a%1").arg(count ? _tag++ : _tag); |
289 | } | 289 | } |
290 | 290 | ||
291 | void IMAPHandler::slotDataReceived(const QString &data) | 291 | void IMAPHandler::slotDataReceived(const QString &data) |
292 | { | 292 | { |
293 | if (!_ready) { | 293 | if (!_ready) { |
294 | // The first data is always the greeting string. | 294 | // The first data is always the greeting string. |
295 | // We can ignore it. | 295 | // We can ignore it. |
296 | _ready = true; | 296 | _ready = true; |
297 | return; | 297 | return; |
298 | } | 298 | } |
299 | 299 | ||
300 | 300 | ||
301 | IMAPResponseParser parser; | 301 | IMAPResponseParser parser; |
302 | //connect ( &parser, SIGNAL( needMoreData ( QString & )), _ibase, SLOT( tryRead ( QString & ))); | 302 | //connect ( &parser, SIGNAL( needMoreData(QString&)), _ibase, SLOT( tryRead(QString&))); |
303 | parser. parse ( data ); | 303 | parser. parse ( data ); |
304 | IMAPResponse response = parser.response(); | 304 | IMAPResponse response = parser.response(); |
305 | //disconnect ( &parser, SIGNAL( needMoreData ( QString & )), _ibase, SLOT( tryRead ( QString & ))); | 305 | //disconnect ( &parser, SIGNAL( needMoreData(QString&)), _ibase, SLOT( tryRead(QString&))); |
306 | response.setImapHandler(this); | 306 | response.setImapHandler(this); |
307 | 307 | ||
308 | if (!_loggingin) { qDebug("Emitting gotResponse!\n" ); emit gotResponse(response); } | 308 | if (!_loggingin) { qDebug("Emitting gotResponse!\n" ); emit gotResponse(response); } |
309 | else { | 309 | else { |
310 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 310 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
311 | _loggingin = false; | 311 | _loggingin = false; |
312 | _loggedin = true; | 312 | _loggedin = true; |
313 | qWarning("OK. Logged in. Leaving loggingin state."); | 313 | qWarning("OK. Logged in. Leaving loggingin state."); |
314 | } else { | 314 | } else { |
315 | _loggingin = false; | 315 | _loggingin = false; |
316 | emit IMAPError(IMAPBase::IMAPErrLoginFailed); | 316 | emit IMAPError(IMAPBase::IMAPErrLoginFailed); |
317 | } | 317 | } |
318 | } | 318 | } |
319 | } | 319 | } |
320 | 320 | ||
321 | void IMAPHandler::slotLookingUpHost() | 321 | void IMAPHandler::slotLookingUpHost() |
322 | { | 322 | { |
323 | emit IMAPLookingUpHost(); | 323 | emit IMAPLookingUpHost(); |
324 | } | 324 | } |
325 | 325 | ||
326 | void IMAPHandler::slotHostFound() | 326 | void IMAPHandler::slotHostFound() |
327 | { | 327 | { |
328 | emit IMAPHostFound(); | 328 | emit IMAPHostFound(); |
329 | } | 329 | } |
330 | 330 | ||
331 | void IMAPHandler::slotConnected() | 331 | void IMAPHandler::slotConnected() |
332 | { | 332 | { |
333 | emit IMAPConnected(); | 333 | emit IMAPConnected(); |
334 | } | 334 | } |
335 | 335 | ||
336 | void IMAPHandler::slotDisconnected() | 336 | void IMAPHandler::slotDisconnected() |
337 | { | 337 | { |
338 | _loggedin = false; | 338 | _loggedin = false; |
339 | emit IMAPDisconnected(); | 339 | emit IMAPDisconnected(); |
340 | } | 340 | } |
341 | 341 | ||
342 | void IMAPHandler::slotError(int err) | 342 | void IMAPHandler::slotError(int err) |
343 | { | 343 | { |
344 | emit IMAPError(err); | 344 | emit IMAPError(err); |
345 | } | 345 | } |
346 | 346 | ||
diff --git a/noncore/unsupported/mail2/listviewplus.cpp b/noncore/unsupported/mail2/listviewplus.cpp index ce5f35f..722b347 100644 --- a/noncore/unsupported/mail2/listviewplus.cpp +++ b/noncore/unsupported/mail2/listviewplus.cpp | |||
@@ -1,54 +1,54 @@ | |||
1 | #include <qpopupmenu.h> | 1 | #include <qpopupmenu.h> |
2 | #include <qtimer.h> | 2 | #include <qtimer.h> |
3 | 3 | ||
4 | #include "listviewplus.h" | 4 | #include "listviewplus.h" |
5 | 5 | ||
6 | ListViewPlus::ListViewPlus(QWidget *parent, const char *name, WFlags fl) | 6 | ListViewPlus::ListViewPlus(QWidget *parent, const char *name, WFlags fl) |
7 | : QListView(parent, name, fl) | 7 | : QListView(parent, name, fl) |
8 | { | 8 | { |
9 | 9 | ||
10 | } | 10 | } |
11 | 11 | ||
12 | void ListViewPlus::keyPressEvent(QKeyEvent *event) | 12 | void ListViewPlus::keyPressEvent(QKeyEvent *event) |
13 | { | 13 | { |
14 | switch(event->key()) { | 14 | switch(event->key()) { |
15 | case Qt::Key_Space: // FALLTHROUGH | 15 | case Qt::Key_Space: // FALLTHROUGH |
16 | case Qt::Key_Enter: | 16 | case Qt::Key_Enter: |
17 | if (currentItem() != 0) | 17 | if (currentItem() != 0) |
18 | emit clicked(currentItem()); | 18 | emit clicked(currentItem()); |
19 | break; | 19 | break; |
20 | default: break; | 20 | default: break; |
21 | } | 21 | } |
22 | 22 | ||
23 | QListView::keyPressEvent(event); | 23 | QListView::keyPressEvent(event); |
24 | } | 24 | } |
25 | 25 | ||
26 | void ListViewPlus::setPopup(QPopupMenu *popup, int delay) | 26 | void ListViewPlus::setPopup(QPopupMenu *popup, int delay) |
27 | { | 27 | { |
28 | _popup = popup; | 28 | _popup = popup; |
29 | _delay = delay; | 29 | _delay = delay; |
30 | 30 | ||
31 | connect(this, SIGNAL(pressed(QListViewItem *, const QPoint &, int)), SLOT(_initPopup(QListViewItem *, const QPoint &, int))); | 31 | connect(this, SIGNAL(pressed(QListViewItem*,const QPoint&,int)), SLOT(_initPopup(QListViewItem*,const QPoint&,int))); |
32 | connect(this, SIGNAL(clicked(QListViewItem *, const QPoint &, int)), SLOT(_cancelPopup(QListViewItem *, const QPoint &, int))); | 32 | connect(this, SIGNAL(clicked(QListViewItem*,const QPoint&,int)), SLOT(_cancelPopup(QListViewItem*,const QPoint&,int))); |
33 | } | 33 | } |
34 | 34 | ||
35 | void ListViewPlus::_initPopup(QListViewItem *, const QPoint &point, int) | 35 | void ListViewPlus::_initPopup(QListViewItem *, const QPoint &point, int) |
36 | { | 36 | { |
37 | _point = point; | 37 | _point = point; |
38 | 38 | ||
39 | _timer = new QTimer(); | 39 | _timer = new QTimer(); |
40 | _timer->start(_delay, true); | 40 | _timer->start(_delay, true); |
41 | 41 | ||
42 | connect(_timer, SIGNAL(timeout()), this, SLOT(_showPopup())); | 42 | connect(_timer, SIGNAL(timeout()), this, SLOT(_showPopup())); |
43 | } | 43 | } |
44 | 44 | ||
45 | void ListViewPlus::_cancelPopup(QListViewItem *, const QPoint &, int) | 45 | void ListViewPlus::_cancelPopup(QListViewItem *, const QPoint &, int) |
46 | { | 46 | { |
47 | delete _timer; | 47 | delete _timer; |
48 | } | 48 | } |
49 | 49 | ||
50 | void ListViewPlus::_showPopup() | 50 | void ListViewPlus::_showPopup() |
51 | { | 51 | { |
52 | _popup->popup(_point); | 52 | _popup->popup(_point); |
53 | } | 53 | } |
54 | 54 | ||
diff --git a/noncore/unsupported/mail2/mailtable.cpp b/noncore/unsupported/mail2/mailtable.cpp index fd179f0..56feab0 100644 --- a/noncore/unsupported/mail2/mailtable.cpp +++ b/noncore/unsupported/mail2/mailtable.cpp | |||
@@ -1,171 +1,171 @@ | |||
1 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
2 | #include <qpopupmenu.h> | 2 | #include <qpopupmenu.h> |
3 | #include <qheader.h> | 3 | #include <qheader.h> |
4 | #include <qtimer.h> | 4 | #include <qtimer.h> |
5 | 5 | ||
6 | #include "folderwidget.h" | 6 | #include "folderwidget.h" |
7 | #include "imaphandler.h" | 7 | #include "imaphandler.h" |
8 | #include "mailtable.h" | 8 | #include "mailtable.h" |
9 | 9 | ||
10 | MailTableItem::MailTableItem(QListView *parent, IMAPResponseFETCH fetch) | 10 | MailTableItem::MailTableItem(QListView *parent, IMAPResponseFETCH fetch) |
11 | : QListViewItem(parent), _fetch(fetch) | 11 | : QListViewItem(parent), _fetch(fetch) |
12 | { | 12 | { |
13 | _draft = false; | 13 | _draft = false; |
14 | _new = false; | 14 | _new = false; |
15 | _unseen = true; | 15 | _unseen = true; |
16 | 16 | ||
17 | QValueList<IMAPResponseEnums::IMAPResponseFlags>::Iterator it; | 17 | QValueList<IMAPResponseEnums::IMAPResponseFlags>::Iterator it; |
18 | QValueList<IMAPResponseEnums::IMAPResponseFlags> flags = fetch.flags(); | 18 | QValueList<IMAPResponseEnums::IMAPResponseFlags> flags = fetch.flags(); |
19 | for (it = flags.begin(); it != flags.end(); it++) { | 19 | for (it = flags.begin(); it != flags.end(); it++) { |
20 | if (*it == IMAPResponseEnums::Draft) _draft = true; | 20 | if (*it == IMAPResponseEnums::Draft) _draft = true; |
21 | else if (*it == IMAPResponseEnums::Recent) _new = true; | 21 | else if (*it == IMAPResponseEnums::Recent) _new = true; |
22 | else if (*it == IMAPResponseEnums::Seen) _unseen = false; | 22 | else if (*it == IMAPResponseEnums::Seen) _unseen = false; |
23 | } | 23 | } |
24 | 24 | ||
25 | setText(0, fetch.envelope().from()[0].name().isEmpty() ? QObject::tr("(no from)") : fetch.envelope().from()[0].name()); | 25 | setText(0, fetch.envelope().from()[0].name().isEmpty() ? QObject::tr("(no from)") : fetch.envelope().from()[0].name()); |
26 | setText(1, fetch.envelope().subject().isEmpty() ? QObject::tr("(no subject)") : fetch.envelope().subject()); | 26 | setText(1, fetch.envelope().subject().isEmpty() ? QObject::tr("(no subject)") : fetch.envelope().subject()); |
27 | setText(2, fetch.envelope().mailDate().isEmpty() ? QObject::tr("(no date)") : fetch.envelope().mailDate()); | 27 | setText(2, fetch.envelope().mailDate().isEmpty() ? QObject::tr("(no date)") : fetch.envelope().mailDate()); |
28 | } | 28 | } |
29 | 29 | ||
30 | void MailTableItem::paintCell(QPainter *painter, const QColorGroup &cg, int col, int width, int align) | 30 | void MailTableItem::paintCell(QPainter *painter, const QColorGroup &cg, int col, int width, int align) |
31 | { | 31 | { |
32 | QColor color = cg.color(QColorGroup::Text); | 32 | QColor color = cg.color(QColorGroup::Text); |
33 | QFont font = painter->font(); | 33 | QFont font = painter->font(); |
34 | if (_draft) { | 34 | if (_draft) { |
35 | color = QColor("#707070"); | 35 | color = QColor("#707070"); |
36 | } else if (_new) { | 36 | } else if (_new) { |
37 | color = QColor("#ff0000"); | 37 | color = QColor("#ff0000"); |
38 | font.setBold(true); | 38 | font.setBold(true); |
39 | } else if (_unseen) { | 39 | } else if (_unseen) { |
40 | font.setBold(true); | 40 | font.setBold(true); |
41 | } | 41 | } |
42 | 42 | ||
43 | painter->setFont(font); | 43 | painter->setFont(font); |
44 | QColorGroup cg_(cg); | 44 | QColorGroup cg_(cg); |
45 | cg_.setColor(QColorGroup::Text, color); | 45 | cg_.setColor(QColorGroup::Text, color); |
46 | 46 | ||
47 | QListViewItem::paintCell(painter, cg_, col, width, align); | 47 | QListViewItem::paintCell(painter, cg_, col, width, align); |
48 | } | 48 | } |
49 | 49 | ||
50 | MailTable::MailTable(QWidget *parent, const char *name, WFlags fl) | 50 | MailTable::MailTable(QWidget *parent, const char *name, WFlags fl) |
51 | : ListViewPlus(parent, name, fl), _parent(parent) | 51 | : ListViewPlus(parent, name, fl), _parent(parent) |
52 | { | 52 | { |
53 | _stopped = false; | 53 | _stopped = false; |
54 | 54 | ||
55 | setSorting(-1); | 55 | setSorting(-1); |
56 | 56 | ||
57 | setAllColumnsShowFocus(true); | 57 | setAllColumnsShowFocus(true); |
58 | addColumn(tr("From"), 100); | 58 | addColumn(tr("From"), 100); |
59 | addColumn(tr("Subject"), 100); | 59 | addColumn(tr("Subject"), 100); |
60 | addColumn(tr("Date"), 100); | 60 | addColumn(tr("Date"), 100); |
61 | 61 | ||
62 | QPopupMenu *menu = new QPopupMenu(this); | 62 | QPopupMenu *menu = new QPopupMenu(this); |
63 | menu->insertItem(tr("Copy"), MENU_COPY); | 63 | menu->insertItem(tr("Copy"), MENU_COPY); |
64 | 64 | ||
65 | QPopupMenu *markMenu = new QPopupMenu(this); | 65 | QPopupMenu *markMenu = new QPopupMenu(this); |
66 | markMenu->insertItem(tr("Seen"), MENU_MARK_READ); | 66 | markMenu->insertItem(tr("Seen"), MENU_MARK_READ); |
67 | markMenu->insertItem(tr("Unseen"), MENU_MARK_UNREAD); | 67 | markMenu->insertItem(tr("Unseen"), MENU_MARK_UNREAD); |
68 | markMenu->insertSeparator(); | 68 | markMenu->insertSeparator(); |
69 | markMenu->insertItem(tr("Marked"), MENU_MARK_MARKED); | 69 | markMenu->insertItem(tr("Marked"), MENU_MARK_MARKED); |
70 | markMenu->insertItem(tr("Unmarked"), MENU_MARK_UNMARKED); | 70 | markMenu->insertItem(tr("Unmarked"), MENU_MARK_UNMARKED); |
71 | 71 | ||
72 | menu->insertItem(tr("Mark as..."), markMenu, MENU_MARK); | 72 | menu->insertItem(tr("Mark as..."), markMenu, MENU_MARK); |
73 | menu->insertSeparator(); | 73 | menu->insertSeparator(); |
74 | menu->insertItem(tr("Delete Mail"), MENU_DELETE); | 74 | menu->insertItem(tr("Delete Mail"), MENU_DELETE); |
75 | setPopup(menu); | 75 | setPopup(menu); |
76 | 76 | ||
77 | connect(this, SIGNAL(clicked(QListViewItem *)), SLOT(itemClicked(QListViewItem *))); | 77 | connect(this, SIGNAL(clicked(QListViewItem*)), SLOT(itemClicked(QListViewItem*))); |
78 | } | 78 | } |
79 | 79 | ||
80 | void MailTable::setFolder(Folder folder) | 80 | void MailTable::setFolder(Folder folder) |
81 | { | 81 | { |
82 | folder.topFolder().handler()->iSelect(folder.fullName()); | 82 | folder.topFolder().handler()->iSelect(folder.fullName()); |
83 | _handler = folder.topFolder().handler(); | 83 | _handler = folder.topFolder().handler(); |
84 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPSelect(IMAPResponse &))); | 84 | connect(folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPSelect(IMAPResponse&))); |
85 | } | 85 | } |
86 | 86 | ||
87 | void MailTable::setHeaders(QValueList<IMAPResponseFETCH> response) | 87 | void MailTable::setHeaders(QValueList<IMAPResponseFETCH> response) |
88 | { | 88 | { |
89 | clear(); | 89 | clear(); |
90 | QValueList<IMAPResponseFETCH>::Iterator it; | 90 | QValueList<IMAPResponseFETCH>::Iterator it; |
91 | for (it = response.begin(); it != response.end(); it++) { | 91 | for (it = response.begin(); it != response.end(); it++) { |
92 | (void) new MailTableItem(this, *it); | 92 | (void) new MailTableItem(this, *it); |
93 | } | 93 | } |
94 | } | 94 | } |
95 | 95 | ||
96 | void MailTable::slotIMAPSelect(IMAPResponse &response) | 96 | void MailTable::slotIMAPSelect(IMAPResponse &response) |
97 | { | 97 | { |
98 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPSelect(IMAPResponse &))); | 98 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPSelect(IMAPResponse&))); |
99 | 99 | ||
100 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 100 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
101 | clear(); | 101 | clear(); |
102 | QString mails = response.EXISTS()[0].mails(); | 102 | QString mails = response.EXISTS()[0].mails(); |
103 | if (mails.toInt() == 0) { | 103 | if (mails.toInt() == 0) { |
104 | emit status(tr("Mailbox contained no mails.")); | 104 | emit status(tr("Mailbox contained no mails.")); |
105 | return; | 105 | return; |
106 | } | 106 | } |
107 | int a = mails.toInt() / 5; | 107 | int a = mails.toInt() / 5; |
108 | int b = mails.toInt() % 5; | 108 | int b = mails.toInt() % 5; |
109 | 109 | ||
110 | _downloadSteps = a; | 110 | _downloadSteps = a; |
111 | if (b > 0) _downloadSteps++; | 111 | if (b > 0) _downloadSteps++; |
112 | _lastStep = b; | 112 | _lastStep = b; |
113 | _currentProgress = 0; | 113 | _currentProgress = 0; |
114 | 114 | ||
115 | emit totalSteps(_downloadSteps); | 115 | emit totalSteps(_downloadSteps); |
116 | emit progress(_currentProgress); | 116 | emit progress(_currentProgress); |
117 | emit stopEnabled(true); | 117 | emit stopEnabled(true); |
118 | 118 | ||
119 | response.imapHandler()->iFetch(QString("1:%1").arg((a == 0) ? b : 5), "ENVELOPE FLAGS UID"); | 119 | response.imapHandler()->iFetch(QString("1:%1").arg((a == 0) ? b : 5), "ENVELOPE FLAGS UID"); |
120 | emit status(tr("Getting mail headers...")); | 120 | emit status(tr("Getting mail headers...")); |
121 | connect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPFetch(IMAPResponse &))); | 121 | connect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPFetch(IMAPResponse&))); |
122 | } else { | 122 | } else { |
123 | QMessageBox::warning(this, tr("Error"), tr("<p>An error occoured during the selection of the mailbox. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); | 123 | QMessageBox::warning(this, tr("Error"), tr("<p>An error occoured during the selection of the mailbox. (Server said: %1)</p>").arg(response.statusResponse().comment()), tr("Ok")); |
124 | } | 124 | } |
125 | } | 125 | } |
126 | 126 | ||
127 | void MailTable::slotIMAPFetch(IMAPResponse &response) | 127 | void MailTable::slotIMAPFetch(IMAPResponse &response) |
128 | { | 128 | { |
129 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPFetch(IMAPResponse &))); | 129 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPFetch(IMAPResponse&))); |
130 | 130 | ||
131 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 131 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
132 | QValueList<IMAPResponseFETCH>::Iterator it; | 132 | QValueList<IMAPResponseFETCH>::Iterator it; |
133 | QValueList<IMAPResponseFETCH> fetch = response.FETCH(); | 133 | QValueList<IMAPResponseFETCH> fetch = response.FETCH(); |
134 | for (it = fetch.begin(); it != fetch.end(); it++) { | 134 | for (it = fetch.begin(); it != fetch.end(); it++) { |
135 | (void) new MailTableItem(this, *it); | 135 | (void) new MailTableItem(this, *it); |
136 | } | 136 | } |
137 | emit progress(++_currentProgress); | 137 | emit progress(++_currentProgress); |
138 | 138 | ||
139 | if (_currentProgress != _downloadSteps) { | 139 | if (_currentProgress != _downloadSteps) { |
140 | if (_stopped) { | 140 | if (_stopped) { |
141 | _currentProgress = 0; | 141 | _currentProgress = 0; |
142 | _downloadSteps = 0; | 142 | _downloadSteps = 0; |
143 | _lastStep = 0; | 143 | _lastStep = 0; |
144 | _stopped = false; | 144 | _stopped = false; |
145 | emit status(tr("Stopped")); | 145 | emit status(tr("Stopped")); |
146 | emit resetProgress(); | 146 | emit resetProgress(); |
147 | emit stopEnabled(false); | 147 | emit stopEnabled(false); |
148 | } else { | 148 | } else { |
149 | response.imapHandler()->iFetch(QString("%1:%2").arg(_currentProgress * 5 + 1).arg((_currentProgress + 1 == _downloadSteps) ? _currentProgress * 5 + _lastStep : _currentProgress * 5 + 5), "ENVELOPE FLAGS UID"); | 149 | response.imapHandler()->iFetch(QString("%1:%2").arg(_currentProgress * 5 + 1).arg((_currentProgress + 1 == _downloadSteps) ? _currentProgress * 5 + _lastStep : _currentProgress * 5 + 5), "ENVELOPE FLAGS UID"); |
150 | connect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPFetch(IMAPResponse &))); | 150 | connect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPFetch(IMAPResponse&))); |
151 | } | 151 | } |
152 | } else { | 152 | } else { |
153 | _currentProgress = 0; | 153 | _currentProgress = 0; |
154 | _downloadSteps = 0; | 154 | _downloadSteps = 0; |
155 | _lastStep = 0; | 155 | _lastStep = 0; |
156 | emit status(tr("Got all mail headers.")); | 156 | emit status(tr("Got all mail headers.")); |
157 | emit resetProgress(); | 157 | emit resetProgress(); |
158 | emit stopEnabled(false); | 158 | emit stopEnabled(false); |
159 | } | 159 | } |
160 | } else { | 160 | } else { |
161 | emit status(tr("<font color=#ff0000>Couldn't fetch mail.")); | 161 | emit status(tr("<font color=#ff0000>Couldn't fetch mail.")); |
162 | } | 162 | } |
163 | } | 163 | } |
164 | 164 | ||
165 | void MailTable::itemClicked(QListViewItem *item) | 165 | void MailTable::itemClicked(QListViewItem *item) |
166 | { | 166 | { |
167 | if (item == NULL) return; | 167 | if (item == NULL) return; |
168 | emit mailClicked(((MailTableItem *)item)->fetch(), _handler); | 168 | emit mailClicked(((MailTableItem *)item)->fetch(), _handler); |
169 | } | 169 | } |
170 | 170 | ||
171 | 171 | ||
diff --git a/noncore/unsupported/mail2/mainwindow.cpp b/noncore/unsupported/mail2/mainwindow.cpp index 0d09ec8..ce80391 100644 --- a/noncore/unsupported/mail2/mainwindow.cpp +++ b/noncore/unsupported/mail2/mainwindow.cpp | |||
@@ -1,118 +1,118 @@ | |||
1 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
2 | #include <qaction.h> | 2 | #include <qaction.h> |
3 | #include <qapplication.h> | 3 | #include <qapplication.h> |
4 | 4 | ||
5 | #include <qpe/qcopenvelope_qws.h> | 5 | #include <qpe/qcopenvelope_qws.h> |
6 | 6 | ||
7 | #include "mailstatusbar.h" | 7 | #include "mailstatusbar.h" |
8 | #include "folderwidget.h" | 8 | #include "folderwidget.h" |
9 | #include "mainwindow.h" | 9 | #include "mainwindow.h" |
10 | #include "configdiag.h" | 10 | #include "configdiag.h" |
11 | #include "configfile.h" | 11 | #include "configfile.h" |
12 | #include "searchdiag.h" | 12 | #include "searchdiag.h" |
13 | #include "mailtable.h" | 13 | #include "mailtable.h" |
14 | #include "composer.h" | 14 | #include "composer.h" |
15 | #include "viewmail.h" | 15 | #include "viewmail.h" |
16 | #include "mailfactory.h" | 16 | #include "mailfactory.h" |
17 | 17 | ||
18 | MainWindow::MainWindow(QWidget *parent, const char *name, WFlags fl) | 18 | MainWindow::MainWindow(QWidget *parent, const char *name, WFlags fl) |
19 | : MainWindowBase(parent, name, fl) | 19 | : MainWindowBase(parent, name, fl) |
20 | { | 20 | { |
21 | status->setStopEnabled(false); | 21 | status->setStopEnabled(false); |
22 | 22 | ||
23 | connect(folderView, SIGNAL(status(const QString &)), status, SLOT(setStatusText(const QString &))); | 23 | connect(folderView, SIGNAL(status(const QString&)), status, SLOT(setStatusText(const QString&))); |
24 | connect(folderView, SIGNAL(folderSelected(Folder)), mailView, SLOT(setFolder(Folder))); | 24 | connect(folderView, SIGNAL(folderSelected(Folder)), mailView, SLOT(setFolder(Folder))); |
25 | 25 | ||
26 | connect(mailView, SIGNAL(mailClicked(IMAPResponseFETCH, IMAPHandler *)), SLOT(mailClicked(IMAPResponseFETCH, IMAPHandler *))); | 26 | connect(mailView, SIGNAL(mailClicked(IMAPResponseFETCH,IMAPHandler*)), SLOT(mailClicked(IMAPResponseFETCH,IMAPHandler*))); |
27 | connect(mailView, SIGNAL(status(const QString &)), status, SLOT(setStatusText(const QString &))); | 27 | connect(mailView, SIGNAL(status(const QString&)), status, SLOT(setStatusText(const QString&))); |
28 | connect(mailView, SIGNAL(totalSteps(int)), status, SLOT(setProgressTotalSteps(int))); | 28 | connect(mailView, SIGNAL(totalSteps(int)), status, SLOT(setProgressTotalSteps(int))); |
29 | connect(mailView, SIGNAL(progress(int)), status, SLOT(setProgress(int))); | 29 | connect(mailView, SIGNAL(progress(int)), status, SLOT(setProgress(int))); |
30 | connect(mailView, SIGNAL(resetProgress()), status, SLOT(resetProgress())); | 30 | connect(mailView, SIGNAL(resetProgress()), status, SLOT(resetProgress())); |
31 | connect(mailView, SIGNAL(stopEnabled(bool)), status, SLOT(setStopEnabled(bool))); | 31 | connect(mailView, SIGNAL(stopEnabled(bool)), status, SLOT(setStopEnabled(bool))); |
32 | 32 | ||
33 | connect(status, SIGNAL(stop()), mailView, SLOT(stop())); | 33 | connect(status, SIGNAL(stop()), mailView, SLOT(stop())); |
34 | 34 | ||
35 | connect(compose, SIGNAL(activated()), SLOT(slotComposeNoParams())); | 35 | connect(compose, SIGNAL(activated()), SLOT(slotComposeNoParams())); |
36 | connect(sendQueue, SIGNAL(activated()), SLOT(slotSendQueued())); | 36 | connect(sendQueue, SIGNAL(activated()), SLOT(slotSendQueued())); |
37 | connect(findmails, SIGNAL(activated()), SLOT(slotSearch())); | 37 | connect(findmails, SIGNAL(activated()), SLOT(slotSearch())); |
38 | connect(configure, SIGNAL(activated()), SLOT(slotConfigure())); | 38 | connect(configure, SIGNAL(activated()), SLOT(slotConfigure())); |
39 | 39 | ||
40 | // Added by Stefan Eilers to allow starting by addressbook.. | 40 | // Added by Stefan Eilers to allow starting by addressbook.. |
41 | #if !defined(QT_NO_COP) | 41 | #if !defined(QT_NO_COP) |
42 | // QCopChannel *addressChannel = new QCopChannel("QPE/Application/mail" , this ); | 42 | // QCopChannel *addressChannel = new QCopChannel("QPE/Application/mail" , this ); |
43 | // connect (addressChannel, SIGNAL( received(const QCString &, const QByteArray &)), | 43 | // connect (addressChannel, SIGNAL( received(const QCString&,const QByteArray&)), |
44 | // this, SLOT ( appMessage(const QCString &, const QByteArray &) ) ); | 44 | // this, SLOT ( appMessage(const QCString&,const QByteArray&) ) ); |
45 | connect( qApp, SIGNAL( appMessage( const QCString&, const QByteArray& ) ), | 45 | connect( qApp, SIGNAL( appMessage(const QCString&,const QByteArray&) ), |
46 | this, SLOT( appMessage( const QCString&, const QByteArray& ) ) ); | 46 | this, SLOT( appMessage(const QCString&,const QByteArray&) ) ); |
47 | #endif | 47 | #endif |
48 | } | 48 | } |
49 | 49 | ||
50 | // Added by Stefan Eilers to allow starting by addressbook.. | 50 | // Added by Stefan Eilers to allow starting by addressbook.. |
51 | void MainWindow::appMessage(const QCString &msg, const QByteArray &data) | 51 | void MainWindow::appMessage(const QCString &msg, const QByteArray &data) |
52 | { | 52 | { |
53 | if (msg == "writeMail(QString,QString)") { | 53 | if (msg == "writeMail(QString,QString)") { |
54 | QDataStream stream(data,IO_ReadOnly); | 54 | QDataStream stream(data,IO_ReadOnly); |
55 | QString name, email; | 55 | QString name, email; |
56 | stream >> name >> email; | 56 | stream >> name >> email; |
57 | 57 | ||
58 | qWarning("opie-mail:: Should send mail to %s with address %s", name.latin1(), email.latin1() ); | 58 | qWarning("opie-mail:: Should send mail to %s with address %s", name.latin1(), email.latin1() ); |
59 | 59 | ||
60 | slotCompose( name, email ); | 60 | slotCompose( name, email ); |
61 | 61 | ||
62 | }else{ | 62 | }else{ |
63 | QString str_message = msg; | 63 | QString str_message = msg; |
64 | qWarning("opie-mail:: Received unknown QCop-Message: %s", str_message.latin1() ); | 64 | qWarning("opie-mail:: Received unknown QCop-Message: %s", str_message.latin1() ); |
65 | } | 65 | } |
66 | } | 66 | } |
67 | 67 | ||
68 | void MainWindow::slotCompose( const QString& name, const QString& email ) | 68 | void MainWindow::slotCompose( const QString& name, const QString& email ) |
69 | { | 69 | { |
70 | Composer composer(this, 0, true); | 70 | Composer composer(this, 0, true); |
71 | 71 | ||
72 | // If there is a mailaddress given, create message.. | 72 | // If there is a mailaddress given, create message.. |
73 | if ( ! name.isEmpty() ){ | 73 | if ( ! name.isEmpty() ){ |
74 | qWarning("opie-mail:: Compose mail for %s with address %s", name.latin1(), email.latin1() ); | 74 | qWarning("opie-mail:: Compose mail for %s with address %s", name.latin1(), email.latin1() ); |
75 | SendMail compMail; | 75 | SendMail compMail; |
76 | compMail.setTo( "\"" + name + "\"" + " " + "<"+ email + ">"); | 76 | compMail.setTo( "\"" + name + "\"" + " " + "<"+ email + ">"); |
77 | composer.setSendMail( compMail ); | 77 | composer.setSendMail( compMail ); |
78 | } | 78 | } |
79 | composer.showMaximized(); | 79 | composer.showMaximized(); |
80 | composer.exec(); | 80 | composer.exec(); |
81 | } | 81 | } |
82 | 82 | ||
83 | void MainWindow::slotComposeNoParams() | 83 | void MainWindow::slotComposeNoParams() |
84 | { | 84 | { |
85 | slotCompose( 0l, 0l); | 85 | slotCompose( 0l, 0l); |
86 | } | 86 | } |
87 | 87 | ||
88 | void MainWindow::slotSendQueued() | 88 | void MainWindow::slotSendQueued() |
89 | { | 89 | { |
90 | Composer composer(this, 0, true, true); | 90 | Composer composer(this, 0, true, true); |
91 | // composer.sendQueue(); | 91 | // composer.sendQueue(); |
92 | composer.showMaximized(); | 92 | composer.showMaximized(); |
93 | composer.exec(); | 93 | composer.exec(); |
94 | //composer.close(); | 94 | //composer.close(); |
95 | } | 95 | } |
96 | 96 | ||
97 | void MainWindow::slotSearch() | 97 | void MainWindow::slotSearch() |
98 | { | 98 | { |
99 | SearchDiag searchDiag(this, 0, true); | 99 | SearchDiag searchDiag(this, 0, true); |
100 | searchDiag.showMaximized(); | 100 | searchDiag.showMaximized(); |
101 | searchDiag.exec(); | 101 | searchDiag.exec(); |
102 | } | 102 | } |
103 | 103 | ||
104 | void MainWindow::slotConfigure() | 104 | void MainWindow::slotConfigure() |
105 | { | 105 | { |
106 | ConfigDiag configDiag(this, 0, true); | 106 | ConfigDiag configDiag(this, 0, true); |
107 | configDiag.showMaximized(); | 107 | configDiag.showMaximized(); |
108 | configDiag.exec(); | 108 | configDiag.exec(); |
109 | 109 | ||
110 | connect(&configDiag, SIGNAL(changed()), folderView, SLOT(update())); | 110 | connect(&configDiag, SIGNAL(changed()), folderView, SLOT(update())); |
111 | } | 111 | } |
112 | 112 | ||
113 | void MainWindow::mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler) | 113 | void MainWindow::mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler) |
114 | { | 114 | { |
115 | ViewMail viewMail(mail, handler, this, 0, true); | 115 | ViewMail viewMail(mail, handler, this, 0, true); |
116 | viewMail.showMaximized(); | 116 | viewMail.showMaximized(); |
117 | viewMail.exec(); | 117 | viewMail.exec(); |
118 | } | 118 | } |
diff --git a/noncore/unsupported/mail2/searchdiag.cpp b/noncore/unsupported/mail2/searchdiag.cpp index 907f6ff..6fb4e4d 100644 --- a/noncore/unsupported/mail2/searchdiag.cpp +++ b/noncore/unsupported/mail2/searchdiag.cpp | |||
@@ -1,128 +1,128 @@ | |||
1 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
2 | #include <qpushbutton.h> | 2 | #include <qpushbutton.h> |
3 | #include <qcombobox.h> | 3 | #include <qcombobox.h> |
4 | #include <qlineedit.h> | 4 | #include <qlineedit.h> |
5 | 5 | ||
6 | #include <qpe/qpeapplication.h> | 6 | #include <qpe/qpeapplication.h> |
7 | 7 | ||
8 | #include "imaphandler.h" | 8 | #include "imaphandler.h" |
9 | #include "searchdiag.h" | 9 | #include "searchdiag.h" |
10 | #include "viewmail.h" | 10 | #include "viewmail.h" |
11 | 11 | ||
12 | #define INMENU_BODY0 | 12 | #define INMENU_BODY0 |
13 | #define INMENU_HEADERF1 | 13 | #define INMENU_HEADERF1 |
14 | #define INMENU_SUBJECT2 | 14 | #define INMENU_SUBJECT2 |
15 | #define INMENU_FROM3 | 15 | #define INMENU_FROM3 |
16 | #define INMENU_TO4 | 16 | #define INMENU_TO4 |
17 | 17 | ||
18 | SearchDiag::SearchDiag(QWidget *parent, const char *name, WFlags fl) | 18 | SearchDiag::SearchDiag(QWidget *parent, const char *name, WFlags fl) |
19 | : SearchDiagBase(parent, name, fl) | 19 | : SearchDiagBase(parent, name, fl) |
20 | { | 20 | { |
21 | _selected = false; | 21 | _selected = false; |
22 | 22 | ||
23 | in->insertItem(tr("Body"), INMENU_BODY); | 23 | in->insertItem(tr("Body"), INMENU_BODY); |
24 | in->insertItem(tr("Header Field"), INMENU_HEADERF); | 24 | in->insertItem(tr("Header Field"), INMENU_HEADERF); |
25 | in->insertItem(tr("Subject"), INMENU_SUBJECT); | 25 | in->insertItem(tr("Subject"), INMENU_SUBJECT); |
26 | in->insertItem(tr("From"), INMENU_FROM); | 26 | in->insertItem(tr("From"), INMENU_FROM); |
27 | in->insertItem(tr("To"), INMENU_TO); | 27 | in->insertItem(tr("To"), INMENU_TO); |
28 | 28 | ||
29 | connect(folderView, SIGNAL(folderSelected(Folder)), SLOT(folderSelected(Folder))); | 29 | connect(folderView, SIGNAL(folderSelected(Folder)), SLOT(folderSelected(Folder))); |
30 | connect(in, SIGNAL(activated(int)), SLOT(slotInItemActivated(int))); | 30 | connect(in, SIGNAL(activated(int)), SLOT(slotInItemActivated(int))); |
31 | connect(mailTable, SIGNAL(mailClicked(IMAPResponseFETCH, IMAPHandler *)), SLOT(slotMailClicked(IMAPResponseFETCH, IMAPHandler *))); | 31 | connect(mailTable, SIGNAL(mailClicked(IMAPResponseFETCH,IMAPHandler*)), SLOT(slotMailClicked(IMAPResponseFETCH,IMAPHandler*))); |
32 | } | 32 | } |
33 | 33 | ||
34 | void SearchDiag::accept() | 34 | void SearchDiag::accept() |
35 | { | 35 | { |
36 | if (searchFor->text().isEmpty()) { | 36 | if (searchFor->text().isEmpty()) { |
37 | QMessageBox::information(this, tr("Error"), tr("<p>Please enter what to search for.</p>"), tr("Ok")); | 37 | QMessageBox::information(this, tr("Error"), tr("<p>Please enter what to search for.</p>"), tr("Ok")); |
38 | return; | 38 | return; |
39 | } | 39 | } |
40 | 40 | ||
41 | if (!_selected) { | 41 | if (!_selected) { |
42 | QMessageBox::information(this, tr("Error"), tr("<p>Please select a folder.</p>"), tr("Ok")); | 42 | QMessageBox::information(this, tr("Error"), tr("<p>Please select a folder.</p>"), tr("Ok")); |
43 | return; | 43 | return; |
44 | } | 44 | } |
45 | 45 | ||
46 | if (in->currentItem() == INMENU_HEADERF && other->currentText().isEmpty()) { | 46 | if (in->currentItem() == INMENU_HEADERF && other->currentText().isEmpty()) { |
47 | QMessageBox::information(this, tr("Error"), tr("<p>Please enter a header field to search in.</p>"), tr("Ok")); | 47 | QMessageBox::information(this, tr("Error"), tr("<p>Please enter a header field to search in.</p>"), tr("Ok")); |
48 | return; | 48 | return; |
49 | } | 49 | } |
50 | 50 | ||
51 | _folder.topFolder().handler()->iSelect(_folder.fullName()); | 51 | _folder.topFolder().handler()->iSelect(_folder.fullName()); |
52 | connect(_folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPSelect(IMAPResponse &))); | 52 | connect(_folder.topFolder().handler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPSelect(IMAPResponse&))); |
53 | } | 53 | } |
54 | 54 | ||
55 | void SearchDiag::folderSelected(Folder folder) | 55 | void SearchDiag::folderSelected(Folder folder) |
56 | { | 56 | { |
57 | _selected = true; | 57 | _selected = true; |
58 | _folder = folder; | 58 | _folder = folder; |
59 | } | 59 | } |
60 | 60 | ||
61 | void SearchDiag::slotIMAPSelect(IMAPResponse &response) | 61 | void SearchDiag::slotIMAPSelect(IMAPResponse &response) |
62 | { | 62 | { |
63 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPSelect(IMAPResponse &))); | 63 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPSelect(IMAPResponse&))); |
64 | 64 | ||
65 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 65 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
66 | if (in->currentItem() == INMENU_BODY) { | 66 | if (in->currentItem() == INMENU_BODY) { |
67 | response.imapHandler()->iSearch("BODY \"" + searchFor->text() + "\""); | 67 | response.imapHandler()->iSearch("BODY \"" + searchFor->text() + "\""); |
68 | } else if (in->currentItem() == INMENU_HEADERF) { | 68 | } else if (in->currentItem() == INMENU_HEADERF) { |
69 | response.imapHandler()->iSearch("HEADER \""+ other->currentText() + "\" \"" + searchFor->text() + "\""); | 69 | response.imapHandler()->iSearch("HEADER \""+ other->currentText() + "\" \"" + searchFor->text() + "\""); |
70 | } else if (in->currentItem() == INMENU_SUBJECT) { | 70 | } else if (in->currentItem() == INMENU_SUBJECT) { |
71 | response.imapHandler()->iSearch("SUBJECT \"" + searchFor->text() + "\""); | 71 | response.imapHandler()->iSearch("SUBJECT \"" + searchFor->text() + "\""); |
72 | } else if (in->currentItem() == INMENU_FROM) { | 72 | } else if (in->currentItem() == INMENU_FROM) { |
73 | response.imapHandler()->iSearch("FROM \"" + searchFor->text() + "\""); | 73 | response.imapHandler()->iSearch("FROM \"" + searchFor->text() + "\""); |
74 | } else if (in->currentItem() == INMENU_TO) { | 74 | } else if (in->currentItem() == INMENU_TO) { |
75 | response.imapHandler()->iSearch("TO \"" + searchFor->text() + "\""); | 75 | response.imapHandler()->iSearch("TO \"" + searchFor->text() + "\""); |
76 | } else return; | 76 | } else return; |
77 | 77 | ||
78 | connect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPSearch(IMAPResponse &))); | 78 | connect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPSearch(IMAPResponse&))); |
79 | } else { | 79 | } else { |
80 | QMessageBox::warning(this, tr("Error"), tr("<p>Could not select the folder. Aborting. (Server said: %1)").arg(response.statusResponse().comment()), tr("Ok")); | 80 | QMessageBox::warning(this, tr("Error"), tr("<p>Could not select the folder. Aborting. (Server said: %1)").arg(response.statusResponse().comment()), tr("Ok")); |
81 | } | 81 | } |
82 | } | 82 | } |
83 | 83 | ||
84 | void SearchDiag::slotIMAPSearch(IMAPResponse &response) | 84 | void SearchDiag::slotIMAPSearch(IMAPResponse &response) |
85 | { | 85 | { |
86 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPSearch(IMAPResponse &))); | 86 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPSearch(IMAPResponse&))); |
87 | 87 | ||
88 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 88 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
89 | IMAPResponseSEARCH results = response.SEARCH()[0]; | 89 | IMAPResponseSEARCH results = response.SEARCH()[0]; |
90 | if (results.mails().count() == 0) { | 90 | if (results.mails().count() == 0) { |
91 | QMessageBox::information(this, tr("Results"), tr("<p>No mails match your criteria.</p>"), tr("Ok")); | 91 | QMessageBox::information(this, tr("Results"), tr("<p>No mails match your criteria.</p>"), tr("Ok")); |
92 | return; | 92 | return; |
93 | } | 93 | } |
94 | 94 | ||
95 | response.imapHandler()->iFetch(results.mails().join(","), "ENVELOPE FLAGS UID"); | 95 | response.imapHandler()->iFetch(results.mails().join(","), "ENVELOPE FLAGS UID"); |
96 | connect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPFetch(IMAPResponse &))); | 96 | connect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPFetch(IMAPResponse&))); |
97 | } else { | 97 | } else { |
98 | QMessageBox::warning(this, tr("Error"), tr("<p>Search failed. (Server said: %1)").arg(response.statusResponse().comment()), tr("Ok")); | 98 | QMessageBox::warning(this, tr("Error"), tr("<p>Search failed. (Server said: %1)").arg(response.statusResponse().comment()), tr("Ok")); |
99 | } | 99 | } |
100 | } | 100 | } |
101 | 101 | ||
102 | void SearchDiag::slotIMAPFetch(IMAPResponse &response) | 102 | void SearchDiag::slotIMAPFetch(IMAPResponse &response) |
103 | { | 103 | { |
104 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPSearch(IMAPResponse &))); | 104 | disconnect(response.imapHandler(), SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPSearch(IMAPResponse&))); |
105 | 105 | ||
106 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 106 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
107 | mailTable->setHeaders(response.FETCH()); | 107 | mailTable->setHeaders(response.FETCH()); |
108 | } else { | 108 | } else { |
109 | QMessageBox::warning(this, tr("Error"), tr("<p>Couldn't fetch the mail headers. (Server said: %1)").arg(response.statusResponse().comment())); | 109 | QMessageBox::warning(this, tr("Error"), tr("<p>Couldn't fetch the mail headers. (Server said: %1)").arg(response.statusResponse().comment())); |
110 | } | 110 | } |
111 | } | 111 | } |
112 | 112 | ||
113 | void SearchDiag::slotMailClicked(IMAPResponseFETCH fetch, IMAPHandler *) | 113 | void SearchDiag::slotMailClicked(IMAPResponseFETCH fetch, IMAPHandler *) |
114 | { | 114 | { |
115 | ViewMail viewMail(fetch, _folder.topFolder().handler(), this, 0, true); | 115 | ViewMail viewMail(fetch, _folder.topFolder().handler(), this, 0, true); |
116 | viewMail.showMaximized(); | 116 | viewMail.showMaximized(); |
117 | viewMail.exec(); | 117 | viewMail.exec(); |
118 | } | 118 | } |
119 | 119 | ||
120 | void SearchDiag::slotInItemActivated(int index) | 120 | void SearchDiag::slotInItemActivated(int index) |
121 | { | 121 | { |
122 | if (index == INMENU_HEADERF) { | 122 | if (index == INMENU_HEADERF) { |
123 | other->setEnabled(true); | 123 | other->setEnabled(true); |
124 | } else { | 124 | } else { |
125 | other->setEnabled(false); | 125 | other->setEnabled(false); |
126 | } | 126 | } |
127 | } | 127 | } |
128 | 128 | ||
diff --git a/noncore/unsupported/mail2/viewmail.cpp b/noncore/unsupported/mail2/viewmail.cpp index da6924d..0cfb6e5 100644 --- a/noncore/unsupported/mail2/viewmail.cpp +++ b/noncore/unsupported/mail2/viewmail.cpp | |||
@@ -1,198 +1,198 @@ | |||
1 | #include <qtextbrowser.h> | 1 | #include <qtextbrowser.h> |
2 | #include <qmessagebox.h> | 2 | #include <qmessagebox.h> |
3 | #include <qaction.h> | 3 | #include <qaction.h> |
4 | #include <qapplication.h> | 4 | #include <qapplication.h> |
5 | 5 | ||
6 | #include "mailfactory.h" | 6 | #include "mailfactory.h" |
7 | #include "composer.h" | 7 | #include "composer.h" |
8 | #include "viewmail.h" | 8 | #include "viewmail.h" |
9 | 9 | ||
10 | AttachItem::AttachItem(QListView *parent, AttachItemStore &attachItemStore) | 10 | AttachItem::AttachItem(QListView *parent, AttachItemStore &attachItemStore) |
11 | : QListViewItem(parent), _attachItemStore(attachItemStore) | 11 | : QListViewItem(parent), _attachItemStore(attachItemStore) |
12 | { | 12 | { |
13 | setText(0, _attachItemStore.mimeType()); | 13 | setText(0, _attachItemStore.mimeType()); |
14 | setText(1, _attachItemStore.fileName()); | 14 | setText(1, _attachItemStore.fileName()); |
15 | setText(2, _attachItemStore.description()); | 15 | setText(2, _attachItemStore.description()); |
16 | } | 16 | } |
17 | 17 | ||
18 | AttachItem::AttachItem(QListViewItem *parent, AttachItemStore &attachItemStore) | 18 | AttachItem::AttachItem(QListViewItem *parent, AttachItemStore &attachItemStore) |
19 | : QListViewItem(parent), _attachItemStore(attachItemStore) | 19 | : QListViewItem(parent), _attachItemStore(attachItemStore) |
20 | { | 20 | { |
21 | setText(0, _attachItemStore.mimeType()); | 21 | setText(0, _attachItemStore.mimeType()); |
22 | setText(1, _attachItemStore.fileName()); | 22 | setText(1, _attachItemStore.fileName()); |
23 | setText(2, _attachItemStore.description()); | 23 | setText(2, _attachItemStore.description()); |
24 | } | 24 | } |
25 | 25 | ||
26 | ViewMail::ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *parent, const char *name, WFlags fl) | 26 | ViewMail::ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *parent, const char *name, WFlags fl) |
27 | : ViewMailBase(parent, name, fl), _inLoop(false), _mail(mail), _handler(handler) | 27 | : ViewMailBase(parent, name, fl), _inLoop(false), _mail(mail), _handler(handler) |
28 | { | 28 | { |
29 | setCaption(caption().arg(mail.envelope().from()[0].name())); | 29 | setCaption(caption().arg(mail.envelope().from()[0].name())); |
30 | 30 | ||
31 | _gotBody = false; | 31 | _gotBody = false; |
32 | _mailHtml = tr( | 32 | _mailHtml = tr( |
33 | "<html><body>" | 33 | "<html><body>" |
34 | "<div align=center><b>%1</b></div>" | 34 | "<div align=center><b>%1</b></div>" |
35 | "<b>From:</b> %2<br>" | 35 | "<b>From:</b> %2<br>" |
36 | "<b>To:</b> %3<br>" | 36 | "<b>To:</b> %3<br>" |
37 | "%4" | 37 | "%4" |
38 | "%5" | 38 | "%5" |
39 | "<b>Date:</b> %6<hr>" | 39 | "<b>Date:</b> %6<hr>" |
40 | "<font face=fixed>%7</font>") | 40 | "<font face=fixed>%7</font>") |
41 | .arg(deHtml(mail.envelope().subject().isNull() ? tr("(no subject)") | 41 | .arg(deHtml(mail.envelope().subject().isNull() ? tr("(no subject)") |
42 | : deHtml(mail.envelope().subject()))) | 42 | : deHtml(mail.envelope().subject()))) |
43 | .arg(deHtml(mail.envelope().from().toString().isNull() ? tr("(no from)") | 43 | .arg(deHtml(mail.envelope().from().toString().isNull() ? tr("(no from)") |
44 | : mail.envelope().from().toString())) | 44 | : mail.envelope().from().toString())) |
45 | .arg(deHtml(mail.envelope().to().toString().isNull() ? tr("(no recipient)") | 45 | .arg(deHtml(mail.envelope().to().toString().isNull() ? tr("(no recipient)") |
46 | : mail.envelope().to().toString())) | 46 | : mail.envelope().to().toString())) |
47 | .arg(mail.envelope().cc().toString().isNull() ? QString(0) | 47 | .arg(mail.envelope().cc().toString().isNull() ? QString(0) |
48 | : tr("<b>Cc:</b> %1<br>").arg(deHtml(mail.envelope().cc().toString()))) | 48 | : tr("<b>Cc:</b> %1<br>").arg(deHtml(mail.envelope().cc().toString()))) |
49 | .arg(mail.envelope().bcc().toString().isNull() ? QString(0) | 49 | .arg(mail.envelope().bcc().toString().isNull() ? QString(0) |
50 | : tr("<b>Bcc:</b> %1<br>").arg(deHtml(mail.envelope().bcc().toString()))) | 50 | : tr("<b>Bcc:</b> %1<br>").arg(deHtml(mail.envelope().bcc().toString()))) |
51 | .arg(mail.envelope().mailDate().isNull() ? tr("(no date)") | 51 | .arg(mail.envelope().mailDate().isNull() ? tr("(no date)") |
52 | : mail.envelope().mailDate()) | 52 | : mail.envelope().mailDate()) |
53 | .arg("%1"); | 53 | .arg("%1"); |
54 | 54 | ||
55 | connect(reply, SIGNAL(activated()), SLOT(slotReply())); | 55 | connect(reply, SIGNAL(activated()), SLOT(slotReply())); |
56 | connect(forward, SIGNAL(activated()), SLOT(slotForward())); | 56 | connect(forward, SIGNAL(activated()), SLOT(slotForward())); |
57 | 57 | ||
58 | attachments->setEnabled(_gotBody); | 58 | attachments->setEnabled(_gotBody); |
59 | browser->setText(QString(_mailHtml).arg(tr("Getting mail body from server. Please wait..."))); | 59 | browser->setText(QString(_mailHtml).arg(tr("Getting mail body from server. Please wait..."))); |
60 | 60 | ||
61 | _handler->iUid("FETCH", QString("%1 (BODY[1])").arg(mail.uid())); | 61 | _handler->iUid("FETCH", QString("%1 (BODY[1])").arg(mail.uid())); |
62 | connect(_handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPUid(IMAPResponse &))); | 62 | connect(_handler, SIGNAL(gotResponse(IMAPResponse&)), SLOT(slotIMAPUid(IMAPResponse&))); |
63 | } | 63 | } |
64 | 64 | ||
65 | ViewMail::~ViewMail() | 65 | ViewMail::~ViewMail() |
66 | { | 66 | { |
67 | hide(); | 67 | hide(); |
68 | } | 68 | } |
69 | 69 | ||
70 | void ViewMail::hide() | 70 | void ViewMail::hide() |
71 | { | 71 | { |
72 | QWidget::hide(); | 72 | QWidget::hide(); |
73 | 73 | ||
74 | if (_inLoop) { | 74 | if (_inLoop) { |
75 | _inLoop = false; | 75 | _inLoop = false; |
76 | qApp->exit_loop(); | 76 | qApp->exit_loop(); |
77 | } | 77 | } |
78 | } | 78 | } |
79 | 79 | ||
80 | void ViewMail::exec() | 80 | void ViewMail::exec() |
81 | { | 81 | { |
82 | show(); | 82 | show(); |
83 | 83 | ||
84 | if (!_inLoop) { | 84 | if (!_inLoop) { |
85 | _inLoop = true; | 85 | _inLoop = true; |
86 | qApp->enter_loop(); | 86 | qApp->enter_loop(); |
87 | } | 87 | } |
88 | } | 88 | } |
89 | 89 | ||
90 | QString ViewMail::deHtml(const QString &string) | 90 | QString ViewMail::deHtml(const QString &string) |
91 | { | 91 | { |
92 | QString string_ = string; | 92 | QString string_ = string; |
93 | string_.replace(QRegExp("&"), "&"); | 93 | string_.replace(QRegExp("&"), "&"); |
94 | string_.replace(QRegExp("<"), "<"); | 94 | string_.replace(QRegExp("<"), "<"); |
95 | string_.replace(QRegExp(">"), ">"); | 95 | string_.replace(QRegExp(">"), ">"); |
96 | string_.replace(QRegExp("\\n"), "<br>"); | 96 | string_.replace(QRegExp("\\n"), "<br>"); |
97 | return string_; | 97 | return string_; |
98 | } | 98 | } |
99 | 99 | ||
100 | void ViewMail::slotReply() | 100 | void ViewMail::slotReply() |
101 | { | 101 | { |
102 | if (!_gotBody) { | 102 | if (!_gotBody) { |
103 | QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot reply yet."), tr("Ok")); | 103 | QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot reply yet."), tr("Ok")); |
104 | return; | 104 | return; |
105 | } | 105 | } |
106 | 106 | ||
107 | QString rtext; | 107 | QString rtext; |
108 | rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose | 108 | rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose |
109 | .arg(_mail.envelope().from()[0].toString()) | 109 | .arg(_mail.envelope().from()[0].toString()) |
110 | .arg(_mail.envelope().mailDate()); | 110 | .arg(_mail.envelope().mailDate()); |
111 | 111 | ||
112 | QString text = _mail.bodyPart(1).data(); | 112 | QString text = _mail.bodyPart(1).data(); |
113 | QStringList lines = QStringList::split(QRegExp("\\n"), text); | 113 | QStringList lines = QStringList::split(QRegExp("\\n"), text); |
114 | QStringList::Iterator it; | 114 | QStringList::Iterator it; |
115 | for (it = lines.begin(); it != lines.end(); it++) { | 115 | for (it = lines.begin(); it != lines.end(); it++) { |
116 | rtext += "> " + *it + "\n"; | 116 | rtext += "> " + *it + "\n"; |
117 | } | 117 | } |
118 | rtext += "\n"; | 118 | rtext += "\n"; |
119 | 119 | ||
120 | QString prefix; | 120 | QString prefix; |
121 | if (_mail.envelope().subject().find(QRegExp("^Re: *$")) != -1) prefix = ""; | 121 | if (_mail.envelope().subject().find(QRegExp("^Re: *$")) != -1) prefix = ""; |
122 | else prefix = "Re: "; // no i18n on purpose | 122 | else prefix = "Re: "; // no i18n on purpose |
123 | 123 | ||
124 | SendMail sendMail; | 124 | SendMail sendMail; |
125 | sendMail.setTo(_mail.envelope().from()[0].toString()); | 125 | sendMail.setTo(_mail.envelope().from()[0].toString()); |
126 | sendMail.setSubject(prefix + _mail.envelope().subject()); | 126 | sendMail.setSubject(prefix + _mail.envelope().subject()); |
127 | sendMail.setInReplyTo(_mail.envelope().messageId()); | 127 | sendMail.setInReplyTo(_mail.envelope().messageId()); |
128 | sendMail.setMessage(rtext); | 128 | sendMail.setMessage(rtext); |
129 | 129 | ||
130 | Composer composer(this, 0, true); | 130 | Composer composer(this, 0, true); |
131 | composer.setSendMail(sendMail); | 131 | composer.setSendMail(sendMail); |
132 | composer.showMaximized(); | 132 | composer.showMaximized(); |
133 | composer.exec(); | 133 | composer.exec(); |
134 | } | 134 | } |
135 | 135 | ||
136 | void ViewMail::slotForward() | 136 | void ViewMail::slotForward() |
137 | { | 137 | { |
138 | if (!_gotBody) { | 138 | if (!_gotBody) { |
139 | QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot forward yet."), tr("Ok")); | 139 | QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot forward yet."), tr("Ok")); |
140 | return; | 140 | return; |
141 | } | 141 | } |
142 | 142 | ||
143 | QString ftext; | 143 | QString ftext; |
144 | ftext += QString("\n----- Forwarded message from %1 -----\n\n") | 144 | ftext += QString("\n----- Forwarded message from %1 -----\n\n") |
145 | .arg(_mail.envelope().from()[0].toString()); | 145 | .arg(_mail.envelope().from()[0].toString()); |
146 | if (!_mail.envelope().mailDate().isNull()) | 146 | if (!_mail.envelope().mailDate().isNull()) |
147 | ftext += QString("Date: %1\n") | 147 | ftext += QString("Date: %1\n") |
148 | .arg(_mail.envelope().mailDate()); | 148 | .arg(_mail.envelope().mailDate()); |
149 | if (!_mail.envelope().from()[0].toString().isNull()) | 149 | if (!_mail.envelope().from()[0].toString().isNull()) |
150 | ftext += QString("From: %1\n") | 150 | ftext += QString("From: %1\n") |
151 | .arg(_mail.envelope().from()[0].toString()); | 151 | .arg(_mail.envelope().from()[0].toString()); |
152 | if (!_mail.envelope().to().toString().isNull()) | 152 | if (!_mail.envelope().to().toString().isNull()) |
153 | ftext += QString("To: %1\n") | 153 | ftext += QString("To: %1\n") |
154 | .arg(_mail.envelope().to().toString()); | 154 | .arg(_mail.envelope().to().toString()); |
155 | if (!_mail.envelope().cc().toString().isNull()) | 155 | if (!_mail.envelope().cc().toString().isNull()) |
156 | ftext += QString("Cc: %1\n") | 156 | ftext += QString("Cc: %1\n") |
157 | .arg(_mail.envelope().cc().toString()); | 157 | .arg(_mail.envelope().cc().toString()); |
158 | if (!_mail.envelope().bcc().toString().isNull()) | 158 | if (!_mail.envelope().bcc().toString().isNull()) |
159 | ftext += QString("Bcc: %1\n") | 159 | ftext += QString("Bcc: %1\n") |
160 | .arg(_mail.envelope().bcc().toString()); | 160 | .arg(_mail.envelope().bcc().toString()); |
161 | if (!_mail.envelope().subject().isNull()) | 161 | if (!_mail.envelope().subject().isNull()) |
162 | ftext += QString("Subject: %1\n") | 162 | ftext += QString("Subject: %1\n") |
163 | .arg(_mail.envelope().subject()); | 163 | .arg(_mail.envelope().subject()); |
164 | 164 | ||
165 | ftext += QString("\n%1\n") | 165 | ftext += QString("\n%1\n") |
166 | .arg(_mail.bodyPart(1).data()); | 166 | .arg(_mail.bodyPart(1).data()); |
167 | 167 | ||
168 | ftext += QString("----- End forwarded message -----\n"); | 168 | ftext += QString("----- End forwarded message -----\n"); |
169 | 169 | ||
170 | SendMail sendMail; | 170 | SendMail sendMail; |
171 | sendMail.setSubject("Fwd: " + _mail.envelope().subject()); | 171 | sendMail.setSubject("Fwd: " + _mail.envelope().subject()); |
172 | sendMail.setMessage(ftext); | 172 | sendMail.setMessage(ftext); |
173 | 173 | ||
174 | Composer composer(this, 0, true); | 174 | Composer composer(this, 0, true); |
175 | composer.setSendMail(sendMail); | 175 | composer.setSendMail(sendMail); |
176 | composer.showMaximized(); | 176 | composer.showMaximized(); |
177 | composer.exec(); | 177 | composer.exec(); |
178 | } | 178 | } |
179 | 179 | ||
180 | void ViewMail::slotIMAPUid(IMAPResponse &response) | 180 | void ViewMail::slotIMAPUid(IMAPResponse &response) |
181 | { | 181 | { |
182 | disconnect(_handler, SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPUid(IMAPResponse &))); | 182 | disconnect(_handler, SIGNAL(gotResponse(IMAPResponse&)), this, SLOT(slotIMAPUid(IMAPResponse&))); |
183 | 183 | ||
184 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { | 184 | if (response.statusResponse().status() == IMAPResponseEnums::OK) { |
185 | QValueList<IMAPResponseBodyPart> bodyParts; | 185 | QValueList<IMAPResponseBodyPart> bodyParts; |
186 | bodyParts.append(response.FETCH()[0].bodyPart(0)); | 186 | bodyParts.append(response.FETCH()[0].bodyPart(0)); |
187 | _mail.setBodyParts(bodyParts); | 187 | _mail.setBodyParts(bodyParts); |
188 | 188 | ||
189 | browser->setText(QString(_mailHtml).arg(deHtml(response.FETCH()[0].bodyPart(0).data()))); | 189 | browser->setText(QString(_mailHtml).arg(deHtml(response.FETCH()[0].bodyPart(0).data()))); |
190 | 190 | ||
191 | // fillList(response.FETCH()[0].bodyStructure()); | 191 | // fillList(response.FETCH()[0].bodyStructure()); |
192 | 192 | ||
193 | _gotBody = true; | 193 | _gotBody = true; |
194 | } else { | 194 | } else { |
195 | QMessageBox::warning(this, tr("Error"), tr("<p>I was unable to retrieve the mail from the server. You can try again later or give up.</p>"), tr("Ok")); | 195 | QMessageBox::warning(this, tr("Error"), tr("<p>I was unable to retrieve the mail from the server. You can try again later or give up.</p>"), tr("Ok")); |
196 | } | 196 | } |
197 | } | 197 | } |
198 | 198 | ||
diff --git a/noncore/unsupported/mailit/addatt.cpp b/noncore/unsupported/mailit/addatt.cpp index 19ac58f..420f84c 100644 --- a/noncore/unsupported/mailit/addatt.cpp +++ b/noncore/unsupported/mailit/addatt.cpp | |||
@@ -1,196 +1,196 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qt Palmtop Environment. | 4 | ** This file is part of Qt Palmtop 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 | #include <qlayout.h> | 20 | #include <qlayout.h> |
21 | #include <qhbox.h> | 21 | #include <qhbox.h> |
22 | #include <qdir.h> | 22 | #include <qdir.h> |
23 | #include <qstringlist.h> | 23 | #include <qstringlist.h> |
24 | #include <qpe/resource.h> | 24 | #include <qpe/resource.h> |
25 | #include "addatt.h" | 25 | #include "addatt.h" |
26 | 26 | ||
27 | FileItem::FileItem(QListView *parent, DocLnk* dl) | 27 | FileItem::FileItem(QListView *parent, DocLnk* dl) |
28 | : QListViewItem(parent) | 28 | : QListViewItem(parent) |
29 | { | 29 | { |
30 | /*file = fileInfo; | 30 | /*file = fileInfo; |
31 | type = fileType;*/ | 31 | type = fileType;*/ |
32 | 32 | ||
33 | doclnk=dl; | 33 | doclnk=dl; |
34 | 34 | ||
35 | setText(0, doclnk->name()); | 35 | setText(0, doclnk->name()); |
36 | 36 | ||
37 | /*if (fileType == "Picture") { | 37 | /*if (fileType == "Picture") { |
38 | setPixmap(0, Resource::loadPixmap("pixmap")); | 38 | setPixmap(0, Resource::loadPixmap("pixmap")); |
39 | } else if (fileType == "Document") { | 39 | } else if (fileType == "Document") { |
40 | setPixmap(0, Resource::loadPixmap("txt")); | 40 | setPixmap(0, Resource::loadPixmap("txt")); |
41 | } else if (fileType == "Sound") { | 41 | } else if (fileType == "Sound") { |
42 | setPixmap(0, Resource::loadPixmap("play")); | 42 | setPixmap(0, Resource::loadPixmap("play")); |
43 | } else if (fileType == "Movie") { | 43 | } else if (fileType == "Movie") { |
44 | setPixmap(0, Resource::loadPixmap("MPEGPlayer")); | 44 | setPixmap(0, Resource::loadPixmap("MPEGPlayer")); |
45 | } else if (fileType == "File") { | 45 | } else if (fileType == "File") { |
46 | setPixmap(0, Resource::loadPixmap("exec")); | 46 | setPixmap(0, Resource::loadPixmap("exec")); |
47 | }*/ | 47 | }*/ |
48 | } | 48 | } |
49 | 49 | ||
50 | FileItem::~FileItem() | 50 | FileItem::~FileItem() |
51 | { | 51 | { |
52 | if (doclnk!=NULL) delete doclnk; | 52 | if (doclnk!=NULL) delete doclnk; |
53 | doclnk=NULL; | 53 | doclnk=NULL; |
54 | } | 54 | } |
55 | 55 | ||
56 | AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f) | 56 | AddAtt::AddAtt(QWidget *parent, const char *name, WFlags f) |
57 | : QDialog(parent, name, f) | 57 | : QDialog(parent, name, f) |
58 | { | 58 | { |
59 | setCaption(tr("Adding attachments") ); | 59 | setCaption(tr("Adding attachments") ); |
60 | 60 | ||
61 | QGridLayout *top = new QGridLayout(this, 1,1 ); | 61 | QGridLayout *top = new QGridLayout(this, 1,1 ); |
62 | 62 | ||
63 | QHBox *buttons=new QHBox(this); | 63 | QHBox *buttons=new QHBox(this); |
64 | /*fileCategoryButton = new QPushButton(this);*/ | 64 | /*fileCategoryButton = new QPushButton(this);*/ |
65 | attachButton = new QPushButton(tr("attach..."), buttons); | 65 | attachButton = new QPushButton(tr("attach..."), buttons); |
66 | removeButton = new QPushButton(tr("Remove"), buttons); | 66 | removeButton = new QPushButton(tr("Remove"), buttons); |
67 | 67 | ||
68 | /*fileCategories = new QPopupMenu(fileCategoryButton); | 68 | /*fileCategories = new QPopupMenu(fileCategoryButton); |
69 | fileCategoryButton->setPopup(fileCategories); | 69 | fileCategoryButton->setPopup(fileCategories); |
70 | fileCategories->insertItem("Document"); | 70 | fileCategories->insertItem("Document"); |
71 | fileCategories->insertItem("Picture"); | 71 | fileCategories->insertItem("Picture"); |
72 | fileCategories->insertItem("Sound"); | 72 | fileCategories->insertItem("Sound"); |
73 | fileCategories->insertItem("Movie"); | 73 | fileCategories->insertItem("Movie"); |
74 | fileCategories->insertItem("File"); | 74 | fileCategories->insertItem("File"); |
75 | 75 | ||
76 | fileCategoryButton->setText("Document"); | 76 | fileCategoryButton->setText("Document"); |
77 | top->addWidget(fileCategoryButton, 0, 0);*/ | 77 | top->addWidget(fileCategoryButton, 0, 0);*/ |
78 | 78 | ||
79 | 79 | ||
80 | top->addWidget(buttons,1,0); | 80 | top->addWidget(buttons,1,0); |
81 | //buttons->addWidget(attachButton,0,0); | 81 | //buttons->addWidget(attachButton,0,0); |
82 | //buttons->addWidget(removeButton,0,1); | 82 | //buttons->addWidget(removeButton,0,1); |
83 | 83 | ||
84 | //connect(fileCategories, SIGNAL(activated(int)), this, | 84 | //connect(fileCategories, SIGNAL(activated(int)), this, |
85 | //SLOT(fileCategorySelected(int)) );*/ | 85 | //SLOT(fileCategorySelected(int)) );*/ |
86 | connect(attachButton, SIGNAL(clicked()), this, | 86 | connect(attachButton, SIGNAL(clicked()), this, |
87 | SLOT(addattachment()) ); | 87 | SLOT(addattachment()) ); |
88 | connect(removeButton, SIGNAL(clicked()), this, | 88 | connect(removeButton, SIGNAL(clicked()), this, |
89 | SLOT(removeattachment()) ); | 89 | SLOT(removeattachment()) ); |
90 | 90 | ||
91 | /*listView = new QListView(this, "AttView"); | 91 | /*listView = new QListView(this, "AttView"); |
92 | listView->addColumn("Documents");* | 92 | listView->addColumn("Documents");* |
93 | connect(listView, SIGNAL(doubleClicked(QListViewItem *)), this, | 93 | connect(listView, SIGNAL(doubleClicked(QListViewItem*)), this, |
94 | SLOT(addattachment()) );*/ | 94 | SLOT(addattachment()) );*/ |
95 | 95 | ||
96 | 96 | ||
97 | attView = new QListView(this, "Selected"); | 97 | attView = new QListView(this, "Selected"); |
98 | attView->addColumn(tr("Attached")); | 98 | attView->addColumn(tr("Attached")); |
99 | attView->addColumn(tr("File type")); | 99 | attView->addColumn(tr("File type")); |
100 | connect(attView, SIGNAL(doubleClicked(QListViewItem *)), this, | 100 | connect(attView, SIGNAL(doubleClicked(QListViewItem*)), this, |
101 | SLOT(removeattachment()) ); | 101 | SLOT(removeattachment()) ); |
102 | 102 | ||
103 | //top->addWidget(ofs, 0,0); | 103 | //top->addWidget(ofs, 0,0); |
104 | top->addWidget(attView, 0,0); | 104 | top->addWidget(attView, 0,0); |
105 | 105 | ||
106 | clear(); | 106 | clear(); |
107 | 107 | ||
108 | 108 | ||
109 | } | 109 | } |
110 | 110 | ||
111 | void AddAtt::clear() | 111 | void AddAtt::clear() |
112 | { | 112 | { |
113 | attView->clear(); | 113 | attView->clear(); |
114 | //getFiles(); | 114 | //getFiles(); |
115 | modified = FALSE; | 115 | modified = FALSE; |
116 | } | 116 | } |
117 | 117 | ||
118 | /*void AddAtt::fileCategorySelected(int id) | 118 | /*void AddAtt::fileCategorySelected(int id) |
119 | { | 119 | { |
120 | fileCategoryButton->setText(fileCategories->text(id)); | 120 | fileCategoryButton->setText(fileCategories->text(id)); |
121 | getFiles(); | 121 | getFiles(); |
122 | }*/ | 122 | }*/ |
123 | 123 | ||
124 | void AddAtt::addattachment() | 124 | void AddAtt::addattachment() |
125 | {// ### FIXME wrong use -zecke | 125 | {// ### FIXME wrong use -zecke |
126 | OFileDialog ofs("Attachments",this,0,0,"/root/Documents"); | 126 | OFileDialog ofs("Attachments",this,0,0,"/root/Documents"); |
127 | 127 | ||
128 | ofs.showMaximized(); | 128 | ofs.showMaximized(); |
129 | 129 | ||
130 | if (ofs.exec()==QDialog::Accepted) | 130 | if (ofs.exec()==QDialog::Accepted) |
131 | { | 131 | { |
132 | DocLnk* dl=new DocLnk(ofs.selectedDocument()); | 132 | DocLnk* dl=new DocLnk(ofs.selectedDocument()); |
133 | FileItem* fi=new FileItem(attView,dl); | 133 | FileItem* fi=new FileItem(attView,dl); |
134 | fi->setPixmap(0,dl->pixmap()); | 134 | fi->setPixmap(0,dl->pixmap()); |
135 | fi->setText(1,dl->type()); | 135 | fi->setText(1,dl->type()); |
136 | attView->insertItem(fi); | 136 | attView->insertItem(fi); |
137 | modified = TRUE; | 137 | modified = TRUE; |
138 | } | 138 | } |
139 | } | 139 | } |
140 | 140 | ||
141 | void AddAtt::removeattachment() | 141 | void AddAtt::removeattachment() |
142 | { | 142 | { |
143 | if (attView->selectedItem() != NULL) | 143 | if (attView->selectedItem() != NULL) |
144 | { | 144 | { |
145 | attView->takeItem(attView->selectedItem()); | 145 | attView->takeItem(attView->selectedItem()); |
146 | } | 146 | } |
147 | modified = TRUE; | 147 | modified = TRUE; |
148 | } | 148 | } |
149 | 149 | ||
150 | void AddAtt::reject() | 150 | void AddAtt::reject() |
151 | { | 151 | { |
152 | if (modified) { | 152 | if (modified) { |
153 | attView->clear(); | 153 | attView->clear(); |
154 | modified = FALSE; | 154 | modified = FALSE; |
155 | } | 155 | } |
156 | } | 156 | } |
157 | 157 | ||
158 | void AddAtt::accept() | 158 | void AddAtt::accept() |
159 | { | 159 | { |
160 | modified = FALSE; | 160 | modified = FALSE; |
161 | hide(); | 161 | hide(); |
162 | } | 162 | } |
163 | 163 | ||
164 | void AddAtt::getFiles() | 164 | void AddAtt::getFiles() |
165 | { | 165 | { |
166 | QString path, selected; | 166 | QString path, selected; |
167 | 167 | ||
168 | /*listView->clear(); | 168 | /*listView->clear(); |
169 | 169 | ||
170 | selected = fileCategoryButton->text(); | 170 | selected = fileCategoryButton->text(); |
171 | if (selected == "Picture") { | 171 | if (selected == "Picture") { |
172 | path = "../pics/"; | 172 | path = "../pics/"; |
173 | } else if (selected == "Document") { | 173 | } else if (selected == "Document") { |
174 | path = "" ; //sub-dirs not decided | 174 | path = "" ; //sub-dirs not decided |
175 | } else if (selected == "Sound") { | 175 | } else if (selected == "Sound") { |
176 | path = "../sounds/"; //sub-dirs not decided | 176 | path = "../sounds/"; //sub-dirs not decided |
177 | } else if (selected == "Movie") { | 177 | } else if (selected == "Movie") { |
178 | path = ""; //sub-dirs not decided | 178 | path = ""; //sub-dirs not decided |
179 | } else if (selected == "File") { | 179 | } else if (selected == "File") { |
180 | path = ""; //sub-dirs not decided | 180 | path = ""; //sub-dirs not decided |
181 | } | 181 | } |
182 | 182 | ||
183 | dir = new QDir(path); | 183 | dir = new QDir(path); |
184 | dir->setFilter(QDir::Files); | 184 | dir->setFilter(QDir::Files); |
185 | const QFileInfoList *dirInfoList = dir->entryInfoList(); | 185 | const QFileInfoList *dirInfoList = dir->entryInfoList(); |
186 | 186 | ||
187 | QFileInfoListIterator it(*dirInfoList); // create list iterator | 187 | QFileInfoListIterator it(*dirInfoList); // create list iterator |
188 | 188 | ||
189 | while ( (fi=it.current()) ) { // for each file... | 189 | while ( (fi=it.current()) ) { // for each file... |
190 | item = new FileItem(lis+ütView, *fi, selected); | 190 | item = new FileItem(lis+ütView, *fi, selected); |
191 | ++it; // goto next list element | 191 | ++it; // goto next list element |
192 | }*/ | 192 | }*/ |
193 | } | 193 | } |
194 | 194 | ||
195 | QStringList AddAtt::returnattachedFiles() | 195 | QStringList AddAtt::returnattachedFiles() |
196 | { | 196 | { |
diff --git a/noncore/unsupported/mailit/emailclient.cpp b/noncore/unsupported/mailit/emailclient.cpp index 8359acf..86c7987 100644 --- a/noncore/unsupported/mailit/emailclient.cpp +++ b/noncore/unsupported/mailit/emailclient.cpp | |||
@@ -1,319 +1,319 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qt Palmtop Environment. | 4 | ** This file is part of Qt Palmtop 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 | #include <qapplication.h> | 20 | #include <qapplication.h> |
21 | #include <qmessagebox.h> | 21 | #include <qmessagebox.h> |
22 | #include <qvbox.h> | 22 | #include <qvbox.h> |
23 | #include <qfile.h> | 23 | #include <qfile.h> |
24 | #include <qcheckbox.h> | 24 | #include <qcheckbox.h> |
25 | #include <qmenubar.h> | 25 | #include <qmenubar.h> |
26 | #include <qaction.h> | 26 | #include <qaction.h> |
27 | #include <qwhatsthis.h> | 27 | #include <qwhatsthis.h> |
28 | #include <qpe/resource.h> | 28 | #include <qpe/resource.h> |
29 | #include "emailclient.h" | 29 | #include "emailclient.h" |
30 | #include "writemail.h" | 30 | #include "writemail.h" |
31 | 31 | ||
32 | QCollection::Item AccountList::newItem(QCollection::Item d) | 32 | QCollection::Item AccountList::newItem(QCollection::Item d) |
33 | { | 33 | { |
34 | return dupl( (MailAccount *) d); | 34 | return dupl( (MailAccount *) d); |
35 | } | 35 | } |
36 | 36 | ||
37 | MailAccount* AccountList::dupl(MailAccount *in) | 37 | MailAccount* AccountList::dupl(MailAccount *in) |
38 | { | 38 | { |
39 | ac = new MailAccount(*in); | 39 | ac = new MailAccount(*in); |
40 | return ac; | 40 | return ac; |
41 | } | 41 | } |
42 | 42 | ||
43 | EmailClient::EmailClient( QWidget* parent, const char* name, WFlags fl ) | 43 | EmailClient::EmailClient( QWidget* parent, const char* name, WFlags fl ) |
44 | : QMainWindow( parent, name, fl ) | 44 | : QMainWindow( parent, name, fl ) |
45 | { | 45 | { |
46 | emailHandler = new EmailHandler(); | 46 | emailHandler = new EmailHandler(); |
47 | addressList = new AddressList(); | 47 | addressList = new AddressList(); |
48 | 48 | ||
49 | sending = FALSE; | 49 | sending = FALSE; |
50 | receiving = FALSE; | 50 | receiving = FALSE; |
51 | previewingMail = FALSE; | 51 | previewingMail = FALSE; |
52 | mailIdCount = 1; | 52 | mailIdCount = 1; |
53 | accountIdCount = 1; | 53 | accountIdCount = 1; |
54 | allAccounts = FALSE; | 54 | allAccounts = FALSE; |
55 | 55 | ||
56 | init(); | 56 | init(); |
57 | 57 | ||
58 | 58 | ||
59 | 59 | ||
60 | connect(emailHandler, SIGNAL(mailSent()), this, SLOT(mailSent()) ); | 60 | connect(emailHandler, SIGNAL(mailSent()), this, SLOT(mailSent()) ); |
61 | 61 | ||
62 | connect(emailHandler, SIGNAL(smtpError(int,const QString &)), this, | 62 | connect(emailHandler, SIGNAL(smtpError(int,const QString&)), this, |
63 | SLOT(smtpError(int,const QString &)) ); | 63 | SLOT(smtpError(int,const QString&)) ); |
64 | connect(emailHandler, SIGNAL(popError(int,const QString &)), this, | 64 | connect(emailHandler, SIGNAL(popError(int,const QString&)), this, |
65 | SLOT(popError(int,const QString &)) ); | 65 | SLOT(popError(int,const QString&)) ); |
66 | 66 | ||
67 | connect(inboxView, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(inboxItemSelected()) ); | 67 | connect(inboxView, SIGNAL(doubleClicked(QListViewItem*)), this, SLOT(inboxItemSelected()) ); |
68 | connect(outboxView, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(outboxItemSelected()) ); | 68 | connect(outboxView, SIGNAL(doubleClicked(QListViewItem*)), this, SLOT(outboxItemSelected()) ); |
69 | 69 | ||
70 | connect(inboxView, SIGNAL(pressed(QListViewItem *)), this, SLOT(inboxItemPressed()) ); | 70 | connect(inboxView, SIGNAL(pressed(QListViewItem*)), this, SLOT(inboxItemPressed()) ); |
71 | connect(inboxView, SIGNAL(clicked(QListViewItem *)), this, SLOT(inboxItemReleased()) ); | 71 | connect(inboxView, SIGNAL(clicked(QListViewItem*)), this, SLOT(inboxItemReleased()) ); |
72 | 72 | ||
73 | connect(emailHandler, SIGNAL(mailArrived(const Email &, bool)), this, | 73 | connect(emailHandler, SIGNAL(mailArrived(const Email&,bool)), this, |
74 | SLOT(mailArrived(const Email &, bool)) ); | 74 | SLOT(mailArrived(const Email&,bool)) ); |
75 | connect(emailHandler, SIGNAL(mailTransfered(int)), this, | 75 | connect(emailHandler, SIGNAL(mailTransfered(int)), this, |
76 | SLOT(allMailArrived(int)) ); | 76 | SLOT(allMailArrived(int)) ); |
77 | 77 | ||
78 | mailconf = new Config("mailit"); | 78 | mailconf = new Config("mailit"); |
79 | //In case Synchronize is not defined in settings.txt | 79 | //In case Synchronize is not defined in settings.txt |
80 | 80 | ||
81 | readSettings(); | 81 | readSettings(); |
82 | 82 | ||
83 | updateAccounts(); | 83 | updateAccounts(); |
84 | 84 | ||
85 | lineShift = "\n"; | 85 | lineShift = "\n"; |
86 | readMail(); | 86 | readMail(); |
87 | lineShift = "\r\n"; | 87 | lineShift = "\r\n"; |
88 | 88 | ||
89 | mailboxView->setCurrentTab(0); //ensure that inbox has focus | 89 | mailboxView->setCurrentTab(0); //ensure that inbox has focus |
90 | 90 | ||
91 | /*channel = new QCopChannel( "QPE/Application/mailit", this ); | 91 | /*channel = new QCopChannel( "QPE/Application/mailit", this ); |
92 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 92 | connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), |
93 | this, SLOT(receive(const QCString&, const QByteArray&)) );*/ | 93 | this, SLOT(receive(const QCString&,const QByteArray&)) );*/ |
94 | 94 | ||
95 | } | 95 | } |
96 | 96 | ||
97 | 97 | ||
98 | EmailClient::~EmailClient() | 98 | EmailClient::~EmailClient() |
99 | { | 99 | { |
100 | //needs to be moved from destructor to closewindow event | 100 | //needs to be moved from destructor to closewindow event |
101 | saveMail(getPath(FALSE) + "inbox.txt", inboxView); | 101 | saveMail(getPath(FALSE) + "inbox.txt", inboxView); |
102 | //does not currently work. Defining outbox in the same | 102 | //does not currently work. Defining outbox in the same |
103 | //format as inbox is not a good solution as they have | 103 | //format as inbox is not a good solution as they have |
104 | //different properties | 104 | //different properties |
105 | saveMail(getPath(FALSE) + "outbox.txt", outboxView); | 105 | saveMail(getPath(FALSE) + "outbox.txt", outboxView); |
106 | saveSettings(); | 106 | saveSettings(); |
107 | 107 | ||
108 | mailconf->write(); | 108 | mailconf->write(); |
109 | delete mailconf; | 109 | delete mailconf; |
110 | 110 | ||
111 | } | 111 | } |
112 | 112 | ||
113 | void EmailClient::init() | 113 | void EmailClient::init() |
114 | { | 114 | { |
115 | initStatusBar(this); | 115 | initStatusBar(this); |
116 | 116 | ||
117 | setToolBarsMovable(FALSE); | 117 | setToolBarsMovable(FALSE); |
118 | 118 | ||
119 | bar = new QToolBar(this); | 119 | bar = new QToolBar(this); |
120 | QWhatsThis::add(bar,tr("Main operation toolbar")); | 120 | QWhatsThis::add(bar,tr("Main operation toolbar")); |
121 | bar->setHorizontalStretchable( TRUE ); | 121 | bar->setHorizontalStretchable( TRUE ); |
122 | 122 | ||
123 | mb = new QMenuBar( bar ); | 123 | mb = new QMenuBar( bar ); |
124 | 124 | ||
125 | QPopupMenu *mail = new QPopupMenu(mb); | 125 | QPopupMenu *mail = new QPopupMenu(mb); |
126 | mb->insertItem( tr( "&Mail" ), mail); | 126 | mb->insertItem( tr( "&Mail" ), mail); |
127 | 127 | ||
128 | QPopupMenu *configure = new QPopupMenu(mb); | 128 | QPopupMenu *configure = new QPopupMenu(mb); |
129 | mb->insertItem( tr( "Accounts" ), configure); | 129 | mb->insertItem( tr( "Accounts" ), configure); |
130 | 130 | ||
131 | selectAccountMenu = new QPopupMenu(mb); | 131 | selectAccountMenu = new QPopupMenu(mb); |
132 | editAccountMenu = new QPopupMenu(mb); | 132 | editAccountMenu = new QPopupMenu(mb); |
133 | deleteAccountMenu = new QPopupMenu(mb); | 133 | deleteAccountMenu = new QPopupMenu(mb); |
134 | 134 | ||
135 | mail->insertItem(tr("Get Mail in"), selectAccountMenu); | 135 | mail->insertItem(tr("Get Mail in"), selectAccountMenu); |
136 | configure->insertItem(tr("Edit account"), editAccountMenu); | 136 | configure->insertItem(tr("Edit account"), editAccountMenu); |
137 | configure->insertItem(tr("Delete account"), deleteAccountMenu); | 137 | configure->insertItem(tr("Delete account"), deleteAccountMenu); |
138 | 138 | ||
139 | bar = new QToolBar(this); | 139 | bar = new QToolBar(this); |
140 | 140 | ||
141 | getMailButton = new QToolButton(Resource::loadPixmap("mailit/getmail"),tr("getMail"),tr("select account"), this,SLOT(getAllNewMail()),bar); | 141 | getMailButton = new QToolButton(Resource::loadPixmap("mailit/getmail"),tr("getMail"),tr("select account"), this,SLOT(getAllNewMail()),bar); |
142 | QWhatsThis::add(getMailButton,tr("Click to download mail via all available accounts.\n Press and hold to select the desired account.")); | 142 | QWhatsThis::add(getMailButton,tr("Click to download mail via all available accounts.\n Press and hold to select the desired account.")); |
143 | 143 | ||
144 | getMailButton->setPopup(selectAccountMenu); | 144 | getMailButton->setPopup(selectAccountMenu); |
145 | 145 | ||
146 | sendMailButton = new QAction(tr("Send mail"), Resource::loadPixmap("mailit/sendqueue"), QString::null, 0, this, 0); | 146 | sendMailButton = new QAction(tr("Send mail"), Resource::loadPixmap("mailit/sendqueue"), QString::null, 0, this, 0); |
147 | connect(sendMailButton, SIGNAL(activated()), this, SLOT(sendQuedMail()) ); | 147 | connect(sendMailButton, SIGNAL(activated()), this, SLOT(sendQuedMail()) ); |
148 | sendMailButton->addTo(bar); | 148 | sendMailButton->addTo(bar); |
149 | sendMailButton->addTo(mail); | 149 | sendMailButton->addTo(mail); |
150 | sendMailButton->setWhatsThis("Send mail queued in the outbox"); | 150 | sendMailButton->setWhatsThis("Send mail queued in the outbox"); |
151 | 151 | ||
152 | composeButton = new QAction(tr("Compose"), Resource::loadPixmap("new"), QString::null, 0, this, 0); | 152 | composeButton = new QAction(tr("Compose"), Resource::loadPixmap("new"), QString::null, 0, this, 0); |
153 | connect(composeButton, SIGNAL(activated()), this, SLOT(compose()) ); | 153 | connect(composeButton, SIGNAL(activated()), this, SLOT(compose()) ); |
154 | composeButton->addTo(bar); | 154 | composeButton->addTo(bar); |
155 | composeButton->addTo(mail); | 155 | composeButton->addTo(mail); |
156 | composeButton->setWhatsThis("Compose a new mail"); | 156 | composeButton->setWhatsThis("Compose a new mail"); |
157 | 157 | ||
158 | cancelButton = new QAction(tr("Cancel transfer"), Resource::loadPixmap("close"), QString::null, 0, this, 0); | 158 | cancelButton = new QAction(tr("Cancel transfer"), Resource::loadPixmap("close"), QString::null, 0, this, 0); |
159 | connect(cancelButton, SIGNAL(activated()), this, SLOT(cancel()) ); | 159 | connect(cancelButton, SIGNAL(activated()), this, SLOT(cancel()) ); |
160 | cancelButton->addTo(mail); | 160 | cancelButton->addTo(mail); |
161 | cancelButton->addTo(bar); | 161 | cancelButton->addTo(bar); |
162 | cancelButton->setEnabled(FALSE); | 162 | cancelButton->setEnabled(FALSE); |
163 | cancelButton->setWhatsThis("Stop the currently active mail transfer"); | 163 | cancelButton->setWhatsThis("Stop the currently active mail transfer"); |
164 | 164 | ||
165 | 165 | ||
166 | deleteButton = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, 0, this, 0 ); | 166 | deleteButton = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, 0, this, 0 ); |
167 | connect( deleteButton, SIGNAL( activated() ), this, SLOT( deleteItem() ) ); | 167 | connect( deleteButton, SIGNAL( activated() ), this, SLOT( deleteItem() ) ); |
168 | deleteButton->addTo(bar); | 168 | deleteButton->addTo(bar); |
169 | deleteButton->setWhatsThis("Remove the currently selected eMail(s)"); | 169 | deleteButton->setWhatsThis("Remove the currently selected eMail(s)"); |
170 | 170 | ||
171 | mailboxView = new OTabWidget( this, "mailboxView" ); | 171 | mailboxView = new OTabWidget( this, "mailboxView" ); |
172 | 172 | ||
173 | QWidget* widget = new QWidget( mailboxView, "widget" ); | 173 | QWidget* widget = new QWidget( mailboxView, "widget" ); |
174 | grid_2 = new QGridLayout( widget ); | 174 | grid_2 = new QGridLayout( widget ); |
175 | // grid_2->setSpacing(6); | 175 | // grid_2->setSpacing(6); |
176 | // grid_2->setMargin( 11 ); | 176 | // grid_2->setMargin( 11 ); |
177 | 177 | ||
178 | inboxView = new QListView( widget, "inboxView" ); | 178 | inboxView = new QListView( widget, "inboxView" ); |
179 | inboxView->addColumn( tr( "From" ) ); | 179 | inboxView->addColumn( tr( "From" ) ); |
180 | inboxView->addColumn( tr( "Subject" ) ); | 180 | inboxView->addColumn( tr( "Subject" ) ); |
181 | inboxView->addColumn( tr( "Date" ) ); | 181 | inboxView->addColumn( tr( "Date" ) ); |
182 | inboxView->setMinimumSize( QSize( 0, 0 ) ); | 182 | inboxView->setMinimumSize( QSize( 0, 0 ) ); |
183 | inboxView->setAllColumnsShowFocus(TRUE); | 183 | inboxView->setAllColumnsShowFocus(TRUE); |
184 | QWhatsThis::add(inboxView,QWidget::tr("This is the inbox view.\n" | 184 | QWhatsThis::add(inboxView,QWidget::tr("This is the inbox view.\n" |
185 | "It keeps the fetched mail which can be \n" | 185 | "It keeps the fetched mail which can be \n" |
186 | "viewed by double clicking the entry.\n" | 186 | "viewed by double clicking the entry.\n" |
187 | "blue attachment icon shows whether this \n" | 187 | "blue attachment icon shows whether this \n" |
188 | "mailhas attachments.\n")); | 188 | "mailhas attachments.\n")); |
189 | 189 | ||
190 | grid_2->addWidget( inboxView, 2, 0 ); | 190 | grid_2->addWidget( inboxView, 2, 0 ); |
191 | mailboxView->addTab( widget, "mailit/inbox", tr( "Inbox" ) ); | 191 | mailboxView->addTab( widget, "mailit/inbox", tr( "Inbox" ) ); |
192 | 192 | ||
193 | QWidget* widget_2 = new QWidget( mailboxView, "widget_2" ); | 193 | QWidget* widget_2 = new QWidget( mailboxView, "widget_2" ); |
194 | grid_3 = new QGridLayout( widget_2 ); | 194 | grid_3 = new QGridLayout( widget_2 ); |
195 | // grid_3->setSpacing(6); | 195 | // grid_3->setSpacing(6); |
196 | // grid_3->setMargin( 11 ); | 196 | // grid_3->setMargin( 11 ); |
197 | 197 | ||
198 | outboxView = new QListView( widget_2, "outboxView" ); | 198 | outboxView = new QListView( widget_2, "outboxView" ); |
199 | outboxView->addColumn( tr( "To" ) ); | 199 | outboxView->addColumn( tr( "To" ) ); |
200 | outboxView->addColumn( tr( "Subject" ) ); | 200 | outboxView->addColumn( tr( "Subject" ) ); |
201 | outboxView->setAllColumnsShowFocus(TRUE); | 201 | outboxView->setAllColumnsShowFocus(TRUE); |
202 | 202 | ||
203 | QWhatsThis::add(outboxView,QWidget::tr("This is the outbox view.\n" | 203 | QWhatsThis::add(outboxView,QWidget::tr("This is the outbox view.\n" |
204 | "It keeps the queued mails to send which can be \n" | 204 | "It keeps the queued mails to send which can be \n" |
205 | "reviewed by double clicking the entry.")); | 205 | "reviewed by double clicking the entry.")); |
206 | grid_3->addWidget( outboxView, 0, 0 ); | 206 | grid_3->addWidget( outboxView, 0, 0 ); |
207 | mailboxView->addTab( widget_2,"mailit/outbox", tr( "Outbox" ) ); | 207 | mailboxView->addTab( widget_2,"mailit/outbox", tr( "Outbox" ) ); |
208 | 208 | ||
209 | setCentralWidget(mailboxView); | 209 | setCentralWidget(mailboxView); |
210 | 210 | ||
211 | } | 211 | } |
212 | 212 | ||
213 | void EmailClient::initStatusBar(QWidget* parent) | 213 | void EmailClient::initStatusBar(QWidget* parent) |
214 | { | 214 | { |
215 | statusBar = new QStatusBar(parent); | 215 | statusBar = new QStatusBar(parent); |
216 | statusBar->setSizeGripEnabled(FALSE); | 216 | statusBar->setSizeGripEnabled(FALSE); |
217 | 217 | ||
218 | status1Label = new QLabel( tr("Idle"), statusBar); | 218 | status1Label = new QLabel( tr("Idle"), statusBar); |
219 | status2Label = new QLabel("", statusBar); | 219 | status2Label = new QLabel("", statusBar); |
220 | connect(emailHandler, SIGNAL(updatePopStatus(const QString &)), | 220 | connect(emailHandler, SIGNAL(updatePopStatus(const QString&)), |
221 | status2Label, SLOT(setText(const QString &)) ); | 221 | status2Label, SLOT(setText(const QString&)) ); |
222 | connect(emailHandler, SIGNAL(updateSmtpStatus(const QString &)), | 222 | connect(emailHandler, SIGNAL(updateSmtpStatus(const QString&)), |
223 | status2Label, SLOT(setText(const QString &)) ); | 223 | status2Label, SLOT(setText(const QString&)) ); |
224 | 224 | ||
225 | progressBar = new QProgressBar(statusBar); | 225 | progressBar = new QProgressBar(statusBar); |
226 | 226 | ||
227 | connect(emailHandler, SIGNAL(mailboxSize(int)), | 227 | connect(emailHandler, SIGNAL(mailboxSize(int)), |
228 | this, SLOT(setTotalSize(int)) ); | 228 | this, SLOT(setTotalSize(int)) ); |
229 | connect(emailHandler, SIGNAL(currentMailSize(int)), | 229 | connect(emailHandler, SIGNAL(currentMailSize(int)), |
230 | this, SLOT(setMailSize(int)) ); | 230 | this, SLOT(setMailSize(int)) ); |
231 | connect(emailHandler, SIGNAL(downloadedSize(int)), | 231 | connect(emailHandler, SIGNAL(downloadedSize(int)), |
232 | this, SLOT(setDownloadedSize(int)) ); | 232 | this, SLOT(setDownloadedSize(int)) ); |
233 | 233 | ||
234 | statusBar->addWidget(status1Label); | 234 | statusBar->addWidget(status1Label); |
235 | statusBar->addWidget(progressBar); | 235 | statusBar->addWidget(progressBar); |
236 | statusBar->addWidget(status2Label); | 236 | statusBar->addWidget(status2Label); |
237 | 237 | ||
238 | } | 238 | } |
239 | 239 | ||
240 | void EmailClient::compose() | 240 | void EmailClient::compose() |
241 | { | 241 | { |
242 | emit composeRequested(); | 242 | emit composeRequested(); |
243 | } | 243 | } |
244 | 244 | ||
245 | void EmailClient::cancel() | 245 | void EmailClient::cancel() |
246 | { | 246 | { |
247 | emailHandler->cancel(); | 247 | emailHandler->cancel(); |
248 | } | 248 | } |
249 | 249 | ||
250 | AddressList* EmailClient::getAdrListRef() | 250 | AddressList* EmailClient::getAdrListRef() |
251 | { | 251 | { |
252 | return addressList; | 252 | return addressList; |
253 | } | 253 | } |
254 | 254 | ||
255 | //this needs to be rewritten to syncronize with outboxView | 255 | //this needs to be rewritten to syncronize with outboxView |
256 | void EmailClient::enqueMail(const Email &mail) | 256 | void EmailClient::enqueMail(const Email &mail) |
257 | { | 257 | { |
258 | if (accountList.count() == 0) { | 258 | if (accountList.count() == 0) { |
259 | QMessageBox::warning(qApp->activeWindow(), | 259 | QMessageBox::warning(qApp->activeWindow(), |
260 | tr("No account selected"), tr("You must create an account"), "OK\n"); | 260 | tr("No account selected"), tr("You must create an account"), "OK\n"); |
261 | return; | 261 | return; |
262 | } | 262 | } |
263 | 263 | ||
264 | if (accountList.count() > 0) { | 264 | if (accountList.count() > 0) { |
265 | currentAccount = accountList.first(); | 265 | currentAccount = accountList.first(); |
266 | qWarning("using account " + currentAccount->name); | 266 | qWarning("using account " + currentAccount->name); |
267 | } | 267 | } |
268 | 268 | ||
269 | Email addMail = mail; | 269 | Email addMail = mail; |
270 | addMail.from = currentAccount->name; | 270 | addMail.from = currentAccount->name; |
271 | addMail.fromMail = currentAccount->emailAddress; | 271 | addMail.fromMail = currentAccount->emailAddress; |
272 | addMail.rawMail.prepend("From: \"" + addMail.from + "\" <" + addMail.fromMail + ">\n"); | 272 | addMail.rawMail.prepend("From: \"" + addMail.from + "\" <" + addMail.fromMail + ">\n"); |
273 | item = new EmailListItem(outboxView, addMail, false); | 273 | item = new EmailListItem(outboxView, addMail, false); |
274 | 274 | ||
275 | mailboxView->setCurrentTab(1); | 275 | mailboxView->setCurrentTab(1); |
276 | 276 | ||
277 | } | 277 | } |
278 | 278 | ||
279 | void EmailClient::sendQuedMail() | 279 | void EmailClient::sendQuedMail() |
280 | { | 280 | { |
281 | int count = 0; | 281 | int count = 0; |
282 | 282 | ||
283 | if (accountList.count() == 0) { | 283 | if (accountList.count() == 0) { |
284 | QMessageBox::warning(qApp->activeWindow(), tr("No account selected"), tr("You must create an account"), "OK\n"); | 284 | QMessageBox::warning(qApp->activeWindow(), tr("No account selected"), tr("You must create an account"), "OK\n"); |
285 | return; | 285 | return; |
286 | } | 286 | } |
287 | //traverse listview, find messages to send | 287 | //traverse listview, find messages to send |
288 | if (! sending) { | 288 | if (! sending) { |
289 | item = (EmailListItem *) outboxView->firstChild(); | 289 | item = (EmailListItem *) outboxView->firstChild(); |
290 | if (item != NULL) { | 290 | if (item != NULL) { |
291 | while (item != NULL) { | 291 | while (item != NULL) { |
292 | quedMessages.append(item->getMail()); | 292 | quedMessages.append(item->getMail()); |
293 | item = (EmailListItem *) item->nextSibling(); | 293 | item = (EmailListItem *) item->nextSibling(); |
294 | count++; | 294 | count++; |
295 | } | 295 | } |
296 | setMailAccount(); | 296 | setMailAccount(); |
297 | emailHandler->sendMail(&quedMessages); | 297 | emailHandler->sendMail(&quedMessages); |
298 | sending = TRUE; | 298 | sending = TRUE; |
299 | sendMailButton->setEnabled(FALSE); | 299 | sendMailButton->setEnabled(FALSE); |
300 | cancelButton->setEnabled(TRUE); | 300 | cancelButton->setEnabled(TRUE); |
301 | } else { | 301 | } else { |
302 | qWarning("sendQuedMail(): no messages to send"); | 302 | qWarning("sendQuedMail(): no messages to send"); |
303 | } | 303 | } |
304 | } | 304 | } |
305 | } | 305 | } |
306 | 306 | ||
307 | void EmailClient::setMailAccount() | 307 | void EmailClient::setMailAccount() |
308 | { | 308 | { |
309 | emailHandler->setAccount(*currentAccount); | 309 | emailHandler->setAccount(*currentAccount); |
310 | } | 310 | } |
311 | 311 | ||
312 | void EmailClient::mailSent() | 312 | void EmailClient::mailSent() |
313 | { | 313 | { |
314 | sending = FALSE; | 314 | sending = FALSE; |
315 | sendMailButton->setEnabled(TRUE); | 315 | sendMailButton->setEnabled(TRUE); |
316 | 316 | ||
317 | quedMessages.clear(); | 317 | quedMessages.clear(); |
318 | outboxView->clear(); //should be moved to an sentBox | 318 | outboxView->clear(); //should be moved to an sentBox |
319 | } | 319 | } |
diff --git a/noncore/unsupported/mailit/emailhandler.cpp b/noncore/unsupported/mailit/emailhandler.cpp index 06e978d..02b3e9a 100644 --- a/noncore/unsupported/mailit/emailhandler.cpp +++ b/noncore/unsupported/mailit/emailhandler.cpp | |||
@@ -1,154 +1,154 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qt Palmtop Environment. | 4 | ** This file is part of Qt Palmtop 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 | #include <qfileinfo.h> | 20 | #include <qfileinfo.h> |
21 | #include <stdlib.h> | 21 | #include <stdlib.h> |
22 | #include <qapplication.h> | 22 | #include <qapplication.h> |
23 | #include <qmessagebox.h> | 23 | #include <qmessagebox.h> |
24 | #include <qcstring.h> | 24 | #include <qcstring.h> |
25 | #include "emailhandler.h" | 25 | #include "emailhandler.h" |
26 | #include <qpe/applnk.h> | 26 | #include <qpe/applnk.h> |
27 | #include <qpe/filemanager.h> | 27 | #include <qpe/filemanager.h> |
28 | 28 | ||
29 | QCollection::Item EnclosureList::newItem(QCollection::Item d) | 29 | QCollection::Item EnclosureList::newItem(QCollection::Item d) |
30 | { | 30 | { |
31 | return dupl( (Enclosure *) d); | 31 | return dupl( (Enclosure *) d); |
32 | } | 32 | } |
33 | 33 | ||
34 | Enclosure* EnclosureList::dupl(Enclosure *in) | 34 | Enclosure* EnclosureList::dupl(Enclosure *in) |
35 | { | 35 | { |
36 | ac = new Enclosure(*in); | 36 | ac = new Enclosure(*in); |
37 | return ac; | 37 | return ac; |
38 | } | 38 | } |
39 | 39 | ||
40 | EmailHandler::EmailHandler() | 40 | EmailHandler::EmailHandler() |
41 | { | 41 | { |
42 | qDebug("EMailHandler::EmailHandler"); | 42 | qDebug("EMailHandler::EmailHandler"); |
43 | 43 | ||
44 | smtpClient = new SmtpClient(); | 44 | smtpClient = new SmtpClient(); |
45 | popClient = new PopClient(); | 45 | popClient = new PopClient(); |
46 | 46 | ||
47 | connect(smtpClient, SIGNAL(errorOccurred(int, const QString &)), this, | 47 | connect(smtpClient, SIGNAL(errorOccurred(int,const QString&)), this, |
48 | SIGNAL(smtpError(int, const QString &)) ); | 48 | SIGNAL(smtpError(int,const QString&)) ); |
49 | connect(smtpClient, SIGNAL(mailSent()), this, SIGNAL(mailSent()) ); | 49 | connect(smtpClient, SIGNAL(mailSent()), this, SIGNAL(mailSent()) ); |
50 | connect(smtpClient, SIGNAL(updateStatus(const QString &)), this, | 50 | connect(smtpClient, SIGNAL(updateStatus(const QString&)), this, |
51 | SIGNAL(updateSmtpStatus(const QString &)) ); | 51 | SIGNAL(updateSmtpStatus(const QString&)) ); |
52 | 52 | ||
53 | connect(popClient, SIGNAL(errorOccurred(int, const QString &)), this, | 53 | connect(popClient, SIGNAL(errorOccurred(int,const QString&)), this, |
54 | SIGNAL(popError(int, const QString &)) ); | 54 | SIGNAL(popError(int,const QString&)) ); |
55 | connect(popClient, SIGNAL(newMessage(const QString &, int, uint, bool)), | 55 | connect(popClient, SIGNAL(newMessage(const QString&,int,uint,bool)), |
56 | this, SLOT(messageArrived(const QString &, int, uint, bool)) ); | 56 | this, SLOT(messageArrived(const QString&,int,uint,bool)) ); |
57 | connect(popClient, SIGNAL(updateStatus(const QString &)), this, | 57 | connect(popClient, SIGNAL(updateStatus(const QString&)), this, |
58 | SIGNAL(updatePopStatus(const QString &)) ); | 58 | SIGNAL(updatePopStatus(const QString&)) ); |
59 | connect(popClient, SIGNAL(mailTransfered(int)), this, | 59 | connect(popClient, SIGNAL(mailTransfered(int)), this, |
60 | SIGNAL(mailTransfered(int)) ); | 60 | SIGNAL(mailTransfered(int)) ); |
61 | 61 | ||
62 | 62 | ||
63 | //relaying size information | 63 | //relaying size information |
64 | connect(popClient, SIGNAL(currentMailSize(int)), | 64 | connect(popClient, SIGNAL(currentMailSize(int)), |
65 | this, SIGNAL(currentMailSize(int)) ); | 65 | this, SIGNAL(currentMailSize(int)) ); |
66 | connect(popClient, SIGNAL(downloadedSize(int)), | 66 | connect(popClient, SIGNAL(downloadedSize(int)), |
67 | this, SIGNAL(downloadedSize(int)) ); | 67 | this, SIGNAL(downloadedSize(int)) ); |
68 | } | 68 | } |
69 | 69 | ||
70 | void EmailHandler::sendMail(QList<Email> *mailList) | 70 | void EmailHandler::sendMail(QList<Email> *mailList) |
71 | { | 71 | { |
72 | Email *currentMail; | 72 | Email *currentMail; |
73 | QString temp; | 73 | QString temp; |
74 | QString userName = QString::null; | 74 | QString userName = QString::null; |
75 | // not supported by ALL SMTP servers in the MAIL From field | 75 | // not supported by ALL SMTP servers in the MAIL From field |
76 | // userName = "\""+mailAccount.name+"\""; | 76 | // userName = "\""+mailAccount.name+"\""; |
77 | userName += "<" + mailAccount.emailAddress + ">"; | 77 | userName += "<" + mailAccount.emailAddress + ">"; |
78 | 78 | ||
79 | for (currentMail = mailList->first(); currentMail != 0; | 79 | for (currentMail = mailList->first(); currentMail != 0; |
80 | currentMail = mailList->next()) { | 80 | currentMail = mailList->next()) { |
81 | 81 | ||
82 | if (encodeMime(currentMail) == 0) { | 82 | if (encodeMime(currentMail) == 0) { |
83 | smtpClient->addMail(userName, currentMail->subject, | 83 | smtpClient->addMail(userName, currentMail->subject, |
84 | currentMail->recipients, currentMail->rawMail); | 84 | currentMail->recipients, currentMail->rawMail); |
85 | } else { //error | 85 | } else { //error |
86 | temp = tr("Could not locate all files in \nmail with subject: ") + | 86 | temp = tr("Could not locate all files in \nmail with subject: ") + |
87 | currentMail->subject; | 87 | currentMail->subject; |
88 | temp += tr("\nMail has NOT been sent"); | 88 | temp += tr("\nMail has NOT been sent"); |
89 | QMessageBox::warning(qApp->activeWindow(), tr("Attachment error"), temp, tr("OK\n")); | 89 | QMessageBox::warning(qApp->activeWindow(), tr("Attachment error"), temp, tr("OK\n")); |
90 | 90 | ||
91 | } | 91 | } |
92 | } | 92 | } |
93 | smtpClient->newConnection(mailAccount.smtpServer, 25); | 93 | smtpClient->newConnection(mailAccount.smtpServer, 25); |
94 | } | 94 | } |
95 | 95 | ||
96 | void EmailHandler::setAccount(MailAccount account) | 96 | void EmailHandler::setAccount(MailAccount account) |
97 | { | 97 | { |
98 | mailAccount = account; | 98 | mailAccount = account; |
99 | } | 99 | } |
100 | 100 | ||
101 | void EmailHandler::getMail() | 101 | void EmailHandler::getMail() |
102 | { | 102 | { |
103 | popClient->setAccount(mailAccount.popUserName, mailAccount.popPasswd); | 103 | popClient->setAccount(mailAccount.popUserName, mailAccount.popPasswd); |
104 | if (mailAccount.synchronize) { | 104 | if (mailAccount.synchronize) { |
105 | popClient->setSynchronize(mailAccount.lastServerMailCount); | 105 | popClient->setSynchronize(mailAccount.lastServerMailCount); |
106 | } else { | 106 | } else { |
107 | popClient->removeSynchronize(); | 107 | popClient->removeSynchronize(); |
108 | } | 108 | } |
109 | 109 | ||
110 | headers = FALSE; | 110 | headers = FALSE; |
111 | //popClient->headersOnly(headers, 0); | 111 | //popClient->headersOnly(headers, 0); |
112 | popClient->newConnection(mailAccount.popServer, 110); | 112 | popClient->newConnection(mailAccount.popServer, 110); |
113 | } | 113 | } |
114 | 114 | ||
115 | void EmailHandler::getMailHeaders() | 115 | void EmailHandler::getMailHeaders() |
116 | { | 116 | { |
117 | popClient->setAccount(mailAccount.popUserName, mailAccount.popPasswd); | 117 | popClient->setAccount(mailAccount.popUserName, mailAccount.popPasswd); |
118 | mailAccount.synchronize ? popClient->setSynchronize(mailAccount.lastServerMailCount): popClient->removeSynchronize(); | 118 | mailAccount.synchronize ? popClient->setSynchronize(mailAccount.lastServerMailCount): popClient->removeSynchronize(); |
119 | 119 | ||
120 | headers = TRUE; | 120 | headers = TRUE; |
121 | popClient->headersOnly(headers, mailAccount.syncLimit); //less than requested syncLimit, download all | 121 | popClient->headersOnly(headers, mailAccount.syncLimit); //less than requested syncLimit, download all |
122 | qDebug("Initiating connection"); | 122 | qDebug("Initiating connection"); |
123 | popClient->newConnection(mailAccount.popServer, 110); | 123 | popClient->newConnection(mailAccount.popServer, 110); |
124 | } | 124 | } |
125 | 125 | ||
126 | void EmailHandler::getMailByList(MailList *mailList) | 126 | void EmailHandler::getMailByList(MailList *mailList) |
127 | { | 127 | { |
128 | if (mailList->count() == 0) { //should not occur though | 128 | if (mailList->count() == 0) { //should not occur though |
129 | emit mailTransfered(0); | 129 | emit mailTransfered(0); |
130 | return; | 130 | return; |
131 | } | 131 | } |
132 | 132 | ||
133 | headers = FALSE; | 133 | headers = FALSE; |
134 | popClient->headersOnly(FALSE, 0); | 134 | popClient->headersOnly(FALSE, 0); |
135 | 135 | ||
136 | popClient->setAccount(mailAccount.popUserName,mailAccount.popPasswd); | 136 | popClient->setAccount(mailAccount.popUserName,mailAccount.popPasswd); |
137 | popClient->setSelectedMails(mailList); | 137 | popClient->setSelectedMails(mailList); |
138 | popClient->newConnection(mailAccount.popServer, 110); | 138 | popClient->newConnection(mailAccount.popServer, 110); |
139 | } | 139 | } |
140 | 140 | ||
141 | void EmailHandler::messageArrived(const QString &message, int id, uint size, bool complete) | 141 | void EmailHandler::messageArrived(const QString &message, int id, uint size, bool complete) |
142 | { | 142 | { |
143 | Email mail; | 143 | Email mail; |
144 | 144 | ||
145 | mail.rawMail = message; | 145 | mail.rawMail = message; |
146 | mail.serverId = id; | 146 | mail.serverId = id; |
147 | mail.size = size; | 147 | mail.size = size; |
148 | mail.downloaded = complete; | 148 | mail.downloaded = complete; |
149 | 149 | ||
150 | emit mailArrived(mail, FALSE); | 150 | emit mailArrived(mail, FALSE); |
151 | } | 151 | } |
152 | 152 | ||
153 | bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mail) | 153 | bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mail) |
154 | { | 154 | { |
diff --git a/noncore/unsupported/mailit/mailitwindow.cpp b/noncore/unsupported/mailit/mailitwindow.cpp index 6e298c7..fec4d78 100644 --- a/noncore/unsupported/mailit/mailitwindow.cpp +++ b/noncore/unsupported/mailit/mailitwindow.cpp | |||
@@ -1,161 +1,161 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qt Palmtop Environment. | 4 | ** This file is part of Qt Palmtop 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 | #include <qwhatsthis.h> | 20 | #include <qwhatsthis.h> |
21 | #include <qmessagebox.h> | 21 | #include <qmessagebox.h> |
22 | #include "mailitwindow.h" | 22 | #include "mailitwindow.h" |
23 | 23 | ||
24 | MailItWindow::MailItWindow(QWidget *parent, const char *name, WFlags /*fl*/) | 24 | MailItWindow::MailItWindow(QWidget *parent, const char *name, WFlags /*fl*/) |
25 | : QMainWindow(parent, name, WStyle_ContextHelp) | 25 | : QMainWindow(parent, name, WStyle_ContextHelp) |
26 | { | 26 | { |
27 | currentCaption = tr("Mailit"); | 27 | currentCaption = tr("Mailit"); |
28 | setCaption(tr(currentCaption)); | 28 | setCaption(tr(currentCaption)); |
29 | views = new QWidgetStack(this); | 29 | views = new QWidgetStack(this); |
30 | setCentralWidget(views); | 30 | setCentralWidget(views); |
31 | QWhatsThis::add(views,tr("Central view area")); | 31 | QWhatsThis::add(views,tr("Central view area")); |
32 | emailClient = new EmailClient(views, "client"); | 32 | emailClient = new EmailClient(views, "client"); |
33 | writeMail = new WriteMail(views, "writing"); | 33 | writeMail = new WriteMail(views, "writing"); |
34 | readMail = new ReadMail(views, "reading"); | 34 | readMail = new ReadMail(views, "reading"); |
35 | 35 | ||
36 | views->raiseWidget(emailClient); | 36 | views->raiseWidget(emailClient); |
37 | 37 | ||
38 | connect(emailClient, SIGNAL(composeRequested()), | 38 | connect(emailClient, SIGNAL(composeRequested()), |
39 | this, SLOT(compose()) ); | 39 | this, SLOT(compose()) ); |
40 | connect(emailClient, SIGNAL(viewEmail(QListView *, Email *)), this, | 40 | connect(emailClient, SIGNAL(viewEmail(QListView*,Email*)), this, |
41 | SLOT(viewMail(QListView *, Email *)) ); | 41 | SLOT(viewMail(QListView*,Email*)) ); |
42 | connect(emailClient, SIGNAL(mailUpdated(Email *)), this, | 42 | connect(emailClient, SIGNAL(mailUpdated(Email*)), this, |
43 | SLOT(updateMailView(Email *)) ); | 43 | SLOT(updateMailView(Email*)) ); |
44 | 44 | ||
45 | connect(writeMail, SIGNAL(cancelMail()), this, SLOT(showEmailClient()) ); | 45 | connect(writeMail, SIGNAL(cancelMail()), this, SLOT(showEmailClient()) ); |
46 | connect(writeMail, SIGNAL(sendMailRequested(const Email &)), this, | 46 | connect(writeMail, SIGNAL(sendMailRequested(const Email&)), this, |
47 | SLOT(showEmailClient()) ); | 47 | SLOT(showEmailClient()) ); |
48 | connect(writeMail, SIGNAL(sendMailRequested(const Email &)), emailClient, | 48 | connect(writeMail, SIGNAL(sendMailRequested(const Email&)), emailClient, |
49 | SLOT(enqueMail(const Email &)) ); | 49 | SLOT(enqueMail(const Email&)) ); |
50 | 50 | ||
51 | connect(readMail, SIGNAL(cancelView()), this, SLOT(showEmailClient()) ); | 51 | connect(readMail, SIGNAL(cancelView()), this, SLOT(showEmailClient()) ); |
52 | connect(readMail, SIGNAL(replyRequested(Email &, bool&)), this, | 52 | connect(readMail, SIGNAL(replyRequested(Email&,bool&)), this, |
53 | SLOT(composeReply(Email &, bool&)) ); | 53 | SLOT(composeReply(Email&,bool&)) ); |
54 | connect(readMail, SIGNAL(forwardRequested(Email &)), this, | 54 | connect(readMail, SIGNAL(forwardRequested(Email&)), this, |
55 | SLOT(composeForward(Email &)) ); | 55 | SLOT(composeForward(Email&)) ); |
56 | 56 | ||
57 | connect(readMail, SIGNAL(removeItem(EmailListItem *, bool &)), emailClient, | 57 | connect(readMail, SIGNAL(removeItem(EmailListItem*,bool&)), emailClient, |
58 | SLOT(deleteMail(EmailListItem *, bool &)) ); | 58 | SLOT(deleteMail(EmailListItem*,bool&)) ); |
59 | connect(readMail, SIGNAL(viewingMail(Email *)), emailClient, | 59 | connect(readMail, SIGNAL(viewingMail(Email*)), emailClient, |
60 | SLOT(moveMailFront(Email *)) ); | 60 | SLOT(moveMailFront(Email*)) ); |
61 | 61 | ||
62 | connect(emailClient, SIGNAL(newCaption(const QString &)), | 62 | connect(emailClient, SIGNAL(newCaption(const QString&)), |
63 | this, SLOT(updateCaption(const QString &)) ); | 63 | this, SLOT(updateCaption(const QString&)) ); |
64 | 64 | ||
65 | connect(readMail, SIGNAL(download(Email *)), emailClient, SLOT(download(Email*)) ); | 65 | connect(readMail, SIGNAL(download(Email*)), emailClient, SLOT(download(Email*)) ); |
66 | 66 | ||
67 | viewingMail = FALSE; | 67 | viewingMail = FALSE; |
68 | } | 68 | } |
69 | 69 | ||
70 | MailItWindow::~MailItWindow() | 70 | MailItWindow::~MailItWindow() |
71 | { | 71 | { |
72 | } | 72 | } |
73 | 73 | ||
74 | void MailItWindow::closeEvent(QCloseEvent *e) | 74 | void MailItWindow::closeEvent(QCloseEvent *e) |
75 | { | 75 | { |
76 | if (views->visibleWidget() == emailClient) { | 76 | if (views->visibleWidget() == emailClient) { |
77 | e->accept(); | 77 | e->accept(); |
78 | } else { | 78 | } else { |
79 | showEmailClient(); | 79 | showEmailClient(); |
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
83 | void MailItWindow::compose() | 83 | void MailItWindow::compose() |
84 | { | 84 | { |
85 | viewingMail = FALSE; | 85 | viewingMail = FALSE; |
86 | emailClient->hide(); | 86 | emailClient->hide(); |
87 | readMail->hide(); | 87 | readMail->hide(); |
88 | views->raiseWidget(writeMail); | 88 | views->raiseWidget(writeMail); |
89 | writeMail->setAddressList(emailClient->getAdrListRef()); | 89 | writeMail->setAddressList(emailClient->getAdrListRef()); |
90 | writeMail->newMail(); | 90 | writeMail->newMail(); |
91 | setCaption( tr( "Write mail" ) ); | 91 | setCaption( tr( "Write mail" ) ); |
92 | } | 92 | } |
93 | 93 | ||
94 | void MailItWindow::composeReply(Email &mail, bool& replyAll) | 94 | void MailItWindow::composeReply(Email &mail, bool& replyAll) |
95 | { | 95 | { |
96 | compose(); | 96 | compose(); |
97 | writeMail->reply(mail,replyAll) ; | 97 | writeMail->reply(mail,replyAll) ; |
98 | } | 98 | } |
99 | 99 | ||
100 | void MailItWindow::composeForward(Email &mail) | 100 | void MailItWindow::composeForward(Email &mail) |
101 | { | 101 | { |
102 | compose(); | 102 | compose(); |
103 | writeMail->forward(mail) ; | 103 | writeMail->forward(mail) ; |
104 | } | 104 | } |
105 | 105 | ||
106 | 106 | ||
107 | void MailItWindow::showEmailClient() | 107 | void MailItWindow::showEmailClient() |
108 | { | 108 | { |
109 | viewingMail = FALSE; | 109 | viewingMail = FALSE; |
110 | writeMail->hide(); | 110 | writeMail->hide(); |
111 | readMail->hide(); | 111 | readMail->hide(); |
112 | views->raiseWidget(emailClient); | 112 | views->raiseWidget(emailClient); |
113 | setCaption( tr(currentCaption) ); | 113 | setCaption( tr(currentCaption) ); |
114 | } | 114 | } |
115 | 115 | ||
116 | void MailItWindow::viewMail(QListView *view, Email *mail) | 116 | void MailItWindow::viewMail(QListView *view, Email *mail) |
117 | { | 117 | { |
118 | viewingMail = TRUE; | 118 | viewingMail = TRUE; |
119 | emailClient->hide(); | 119 | emailClient->hide(); |
120 | 120 | ||
121 | int result=0; | 121 | int result=0; |
122 | 122 | ||
123 | if ((mail->received)&&(!mail->downloaded)) | 123 | if ((mail->received)&&(!mail->downloaded)) |
124 | { | 124 | { |
125 | QMessageBox mb( tr("Mail not downloaded"), | 125 | QMessageBox mb( tr("Mail not downloaded"), |
126 | tr("The mail you have clicked \n" | 126 | tr("The mail you have clicked \n" |
127 | "has not been downloaded yet.\n " | 127 | "has not been downloaded yet.\n " |
128 | "Would you like to do it now ?"), | 128 | "Would you like to do it now ?"), |
129 | QMessageBox::Information, | 129 | QMessageBox::Information, |
130 | QMessageBox::Yes | QMessageBox::Default, | 130 | QMessageBox::Yes | QMessageBox::Default, |
131 | QMessageBox::No | QMessageBox::Escape,0 ); | 131 | QMessageBox::No | QMessageBox::Escape,0 ); |
132 | 132 | ||
133 | result=mb.exec(); | 133 | result=mb.exec(); |
134 | 134 | ||
135 | if (result==QMessageBox::Yes) | 135 | if (result==QMessageBox::Yes) |
136 | { | 136 | { |
137 | emailClient->download(mail); | 137 | emailClient->download(mail); |
138 | } | 138 | } |
139 | } | 139 | } |
140 | 140 | ||
141 | readMail->update(view, mail); | 141 | readMail->update(view, mail); |
142 | views->raiseWidget(readMail); | 142 | views->raiseWidget(readMail); |
143 | setCaption( tr( "Read Mail" ) ); | 143 | setCaption( tr( "Read Mail" ) ); |
144 | } | 144 | } |
145 | 145 | ||
146 | void MailItWindow::updateMailView(Email *mail) | 146 | void MailItWindow::updateMailView(Email *mail) |
147 | { | 147 | { |
148 | if (viewingMail) { | 148 | if (viewingMail) { |
149 | readMail->mailUpdated(mail); | 149 | readMail->mailUpdated(mail); |
150 | } | 150 | } |
151 | } | 151 | } |
152 | 152 | ||
153 | void MailItWindow::updateCaption(const QString &newCaption) | 153 | void MailItWindow::updateCaption(const QString &newCaption) |
154 | { | 154 | { |
155 | currentCaption = newCaption; | 155 | currentCaption = newCaption; |
156 | setCaption(tr(currentCaption)); | 156 | setCaption(tr(currentCaption)); |
157 | } | 157 | } |
158 | 158 | ||
159 | void MailItWindow::setDocument(const QString &_address) | 159 | void MailItWindow::setDocument(const QString &_address) |
160 | { | 160 | { |
161 | // strip leading 'mailto:' | 161 | // strip leading 'mailto:' |
diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp index a09bc30..7f1c0b8 100644 --- a/noncore/unsupported/oipkg/mainwindow.cpp +++ b/noncore/unsupported/oipkg/mainwindow.cpp | |||
@@ -83,214 +83,214 @@ void MainWindow::makeMenu() | |||
83 | { | 83 | { |
84 | 84 | ||
85 | QToolBar *toolBar = new QToolBar( this ); | 85 | QToolBar *toolBar = new QToolBar( this ); |
86 | QMenuBar *menuBar = new QMenuBar( toolBar ); | 86 | QMenuBar *menuBar = new QMenuBar( toolBar ); |
87 | QPopupMenu *srvMenu = new QPopupMenu( menuBar ); | 87 | QPopupMenu *srvMenu = new QPopupMenu( menuBar ); |
88 | QPopupMenu *viewMenu = new QPopupMenu( menuBar ); | 88 | QPopupMenu *viewMenu = new QPopupMenu( menuBar ); |
89 | QPopupMenu *cfgMenu = new QPopupMenu( menuBar ); | 89 | QPopupMenu *cfgMenu = new QPopupMenu( menuBar ); |
90 | QPopupMenu *helpMenu = new QPopupMenu( menuBar ); | 90 | QPopupMenu *helpMenu = new QPopupMenu( menuBar ); |
91 | 91 | ||
92 | setToolBarsMovable( false ); | 92 | setToolBarsMovable( false ); |
93 | toolBar->setHorizontalStretchable( true ); | 93 | toolBar->setHorizontalStretchable( true ); |
94 | menuBar->insertItem( tr( "Package" ), srvMenu ); | 94 | menuBar->insertItem( tr( "Package" ), srvMenu ); |
95 | menuBar->insertItem( tr( "View" ), viewMenu ); | 95 | menuBar->insertItem( tr( "View" ), viewMenu ); |
96 | menuBar->insertItem( tr( "Settings" ), cfgMenu ); | 96 | menuBar->insertItem( tr( "Settings" ), cfgMenu ); |
97 | menuBar->insertItem( tr( "Help" ), helpMenu ); | 97 | menuBar->insertItem( tr( "Help" ), helpMenu ); |
98 | 98 | ||
99 | // QLabel *spacer; | 99 | // QLabel *spacer; |
100 | // spacer = new QLabel( "", toolBar ); | 100 | // spacer = new QLabel( "", toolBar ); |
101 | // spacer->setBackgroundColor( toolBar->backgroundColor() ); | 101 | // spacer->setBackgroundColor( toolBar->backgroundColor() ); |
102 | // toolBar->setStretchableWidget( spacer ); | 102 | // toolBar->setStretchableWidget( spacer ); |
103 | 103 | ||
104 | 104 | ||
105 | runAction = new QAction( tr( "Apply" ), | 105 | runAction = new QAction( tr( "Apply" ), |
106 | Resource::loadPixmap( "oipkg/install" ), | 106 | Resource::loadPixmap( "oipkg/install" ), |
107 | QString::null, 0, this, 0 ); | 107 | QString::null, 0, this, 0 ); |
108 | connect( runAction, SIGNAL( activated() ), | 108 | connect( runAction, SIGNAL( activated() ), |
109 | this, SLOT( runIpkg() ) ); | 109 | this, SLOT( runIpkg() ) ); |
110 | runAction->addTo( toolBar ); | 110 | runAction->addTo( toolBar ); |
111 | runAction->addTo( srvMenu ); | 111 | runAction->addTo( srvMenu ); |
112 | 112 | ||
113 | srvMenu->insertSeparator(); | 113 | srvMenu->insertSeparator(); |
114 | 114 | ||
115 | updateAction = new QAction( tr( "Update" ), | 115 | updateAction = new QAction( tr( "Update" ), |
116 | Resource::loadIconSet( "oipkg/update" ), | 116 | Resource::loadIconSet( "oipkg/update" ), |
117 | QString::null, 0, this, 0 ); | 117 | QString::null, 0, this, 0 ); |
118 | connect( updateAction, SIGNAL( activated() ), | 118 | connect( updateAction, SIGNAL( activated() ), |
119 | this , SLOT( updateList() ) ); | 119 | this , SLOT( updateList() ) ); |
120 | updateAction->addTo( toolBar ); | 120 | updateAction->addTo( toolBar ); |
121 | updateAction->addTo( srvMenu ); | 121 | updateAction->addTo( srvMenu ); |
122 | 122 | ||
123 | QAction *cfgact; | 123 | QAction *cfgact; |
124 | 124 | ||
125 | cfgact = new QAction( tr( "Setups" ), | 125 | cfgact = new QAction( tr( "Setups" ), |
126 | QString::null, 0, this, 0 ); | 126 | QString::null, 0, this, 0 ); |
127 | connect( cfgact, SIGNAL( activated() ), | 127 | connect( cfgact, SIGNAL( activated() ), |
128 | SLOT( showSettingsSetup() ) ); | 128 | SLOT( showSettingsSetup() ) ); |
129 | cfgact->addTo( cfgMenu ); | 129 | cfgact->addTo( cfgMenu ); |
130 | 130 | ||
131 | cfgact = new QAction( tr( "Servers" ), | 131 | cfgact = new QAction( tr( "Servers" ), |
132 | QString::null, 0, this, 0 ); | 132 | QString::null, 0, this, 0 ); |
133 | connect( cfgact, SIGNAL( activated() ), | 133 | connect( cfgact, SIGNAL( activated() ), |
134 | SLOT( showSettingsSrv() ) ); | 134 | SLOT( showSettingsSrv() ) ); |
135 | cfgact->addTo( cfgMenu ); | 135 | cfgact->addTo( cfgMenu ); |
136 | cfgact = new QAction( tr( "Destinations" ), | 136 | cfgact = new QAction( tr( "Destinations" ), |
137 | QString::null, 0, this, 0 ); | 137 | QString::null, 0, this, 0 ); |
138 | connect( cfgact, SIGNAL( activated() ), | 138 | connect( cfgact, SIGNAL( activated() ), |
139 | SLOT( showSettingsDst() ) ); | 139 | SLOT( showSettingsDst() ) ); |
140 | cfgact->addTo( cfgMenu ); | 140 | cfgact->addTo( cfgMenu ); |
141 | 141 | ||
142 | QAction *a; | 142 | QAction *a; |
143 | 143 | ||
144 | // SECTIONS | 144 | // SECTIONS |
145 | sectionBar = new QToolBar( this ); | 145 | sectionBar = new QToolBar( this ); |
146 | addToolBar( sectionBar, "Section", QMainWindow::Top, TRUE ); | 146 | addToolBar( sectionBar, "Section", QMainWindow::Top, TRUE ); |
147 | sectionBar->setHorizontalStretchable( true ); | 147 | sectionBar->setHorizontalStretchable( true ); |
148 | QLabel *label = new QLabel( sectionBar, "section" ); | 148 | QLabel *label = new QLabel( sectionBar, "section" ); |
149 | // label->setBackgroundMode( NoBackground ); | 149 | // label->setBackgroundMode( NoBackground ); |
150 | label->font().setPointSize( 8 ); | 150 | label->font().setPointSize( 8 ); |
151 | label->setText( tr( "Section:" ) ); | 151 | label->setText( tr( "Section:" ) ); |
152 | sectionBar->setStretchableWidget( label ); | 152 | sectionBar->setStretchableWidget( label ); |
153 | section = new QComboBox( false, sectionBar ); | 153 | section = new QComboBox( false, sectionBar ); |
154 | section->font().setPointSize( 8 ); | 154 | section->font().setPointSize( 8 ); |
155 | label = new QLabel( " / ", sectionBar ); | 155 | label = new QLabel( " / ", sectionBar ); |
156 | label->font().setPointSize( 8 ); | 156 | label->font().setPointSize( 8 ); |
157 | // label->setBackgroundMode( PaletteForeground ); | 157 | // label->setBackgroundMode( PaletteForeground ); |
158 | subsection = new QComboBox( false, sectionBar ); | 158 | subsection = new QComboBox( false, sectionBar ); |
159 | subsection->font().setPointSize( 8 ); | 159 | subsection->font().setPointSize( 8 ); |
160 | a = new QAction( tr( "Close Section" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); | 160 | a = new QAction( tr( "Close Section" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); |
161 | connect( a, SIGNAL( activated() ), this, SLOT( sectionClose() ) ); | 161 | connect( a, SIGNAL( activated() ), this, SLOT( sectionClose() ) ); |
162 | a->addTo( sectionBar ); | 162 | a->addTo( sectionBar ); |
163 | setSections(); | 163 | setSections(); |
164 | setSubSections(); | 164 | setSubSections(); |
165 | sectionAction = new QAction( tr( "Sections" ), QString::null, 0, this, 0 ); | 165 | sectionAction = new QAction( tr( "Sections" ), QString::null, 0, this, 0 ); |
166 | connect( sectionAction, SIGNAL( toggled(bool) ), this, SLOT( sectionShow(bool) ) ); | 166 | connect( sectionAction, SIGNAL( toggled(bool) ), this, SLOT( sectionShow(bool) ) ); |
167 | sectionAction->setToggleAction( true ); | 167 | sectionAction->setToggleAction( true ); |
168 | sectionAction->addTo( viewMenu ); | 168 | sectionAction->addTo( viewMenu ); |
169 | // sectionBar->setStretchableWidget( section ); | 169 | // sectionBar->setStretchableWidget( section ); |
170 | 170 | ||
171 | //FIND | 171 | //FIND |
172 | findBar = new QToolBar(this); | 172 | findBar = new QToolBar(this); |
173 | addToolBar( findBar, "Filter", QMainWindow::Top, TRUE ); | 173 | addToolBar( findBar, "Filter", QMainWindow::Top, TRUE ); |
174 | label = new QLabel( tr("Filter: "), findBar ); | 174 | label = new QLabel( tr("Filter: "), findBar ); |
175 | // label->setBackgroundMode( PaletteForeground ); | 175 | // label->setBackgroundMode( PaletteForeground ); |
176 | findBar->setHorizontalStretchable( TRUE ); | 176 | findBar->setHorizontalStretchable( TRUE ); |
177 | findEdit = new QLineEdit( findBar, "findEdit" ); | 177 | findEdit = new QLineEdit( findBar, "findEdit" ); |
178 | findBar->setStretchableWidget( findEdit ); | 178 | findBar->setStretchableWidget( findEdit ); |
179 | connect( findEdit, SIGNAL( textChanged( const QString & ) ), | 179 | connect( findEdit, SIGNAL( textChanged(const QString&) ), |
180 | this, SLOT( displayList() ) ); | 180 | this, SLOT( displayList() ) ); |
181 | a = new QAction( tr( "Clear Find" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 ); | 181 | a = new QAction( tr( "Clear Find" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 ); |
182 | connect( a, SIGNAL( activated() ), findEdit, SLOT( clear() ) ); | 182 | connect( a, SIGNAL( activated() ), findEdit, SLOT( clear() ) ); |
183 | a->addTo( findBar ); | 183 | a->addTo( findBar ); |
184 | a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); | 184 | a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); |
185 | connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); | 185 | connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); |
186 | a->addTo( findBar ); | 186 | a->addTo( findBar ); |
187 | findAction = new QAction( tr( "Filter" ), QString::null, 0, this, 0 ); | 187 | findAction = new QAction( tr( "Filter" ), QString::null, 0, this, 0 ); |
188 | connect( findAction, SIGNAL( toggled(bool) ), this, SLOT( findShow(bool) ) ); | 188 | connect( findAction, SIGNAL( toggled(bool) ), this, SLOT( findShow(bool) ) ); |
189 | findAction->setToggleAction( true ); | 189 | findAction->setToggleAction( true ); |
190 | findAction->addTo( viewMenu ); | 190 | findAction->addTo( viewMenu ); |
191 | 191 | ||
192 | //SEARCH | 192 | //SEARCH |
193 | searchBar = new QToolBar(this); | 193 | searchBar = new QToolBar(this); |
194 | addToolBar( searchBar, "Search", QMainWindow::Top, TRUE ); | 194 | addToolBar( searchBar, "Search", QMainWindow::Top, TRUE ); |
195 | label = new QLabel( tr("Search: "), searchBar ); | 195 | label = new QLabel( tr("Search: "), searchBar ); |
196 | // label->setBackgroundMode( PaletteForeground ); | 196 | // label->setBackgroundMode( PaletteForeground ); |
197 | searchBar->setHorizontalStretchable( TRUE ); | 197 | searchBar->setHorizontalStretchable( TRUE ); |
198 | searchEdit = new QLineEdit( searchBar, "seachEdit" ); | 198 | searchEdit = new QLineEdit( searchBar, "seachEdit" ); |
199 | searchBar->setStretchableWidget( searchEdit ); | 199 | searchBar->setStretchableWidget( searchEdit ); |
200 | // connect( searchEdit, SIGNAL( textChanged( const QString & ) ), | 200 | // connect( searchEdit, SIGNAL( textChanged(const QString&) ), |
201 | // this, SLOT( displayList() ) ); | 201 | // this, SLOT( displayList() ) ); |
202 | a = new QAction( tr( "Clear Search" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 ); | 202 | a = new QAction( tr( "Clear Search" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 ); |
203 | connect( a, SIGNAL( activated() ), searchEdit, SLOT( clear() ) ); | 203 | connect( a, SIGNAL( activated() ), searchEdit, SLOT( clear() ) ); |
204 | a->addTo( searchBar ); | 204 | a->addTo( searchBar ); |
205 | searchCommit = new QAction( tr( "Do Search" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); | 205 | searchCommit = new QAction( tr( "Do Search" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); |
206 | connect( searchCommit, SIGNAL( activated() ), SLOT( remotePackageQuery() ) ); | 206 | connect( searchCommit, SIGNAL( activated() ), SLOT( remotePackageQuery() ) ); |
207 | searchCommit->addTo( searchBar ); | 207 | searchCommit->addTo( searchBar ); |
208 | a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); | 208 | a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); |
209 | connect( a, SIGNAL( activated() ), this, SLOT( searchClose() ) ); | 209 | connect( a, SIGNAL( activated() ), this, SLOT( searchClose() ) ); |
210 | a->addTo( searchBar ); | 210 | a->addTo( searchBar ); |
211 | searchAction = new QAction( tr( "Search" ), QString::null, 0, this, 0 ); | 211 | searchAction = new QAction( tr( "Search" ), QString::null, 0, this, 0 ); |
212 | connect( searchAction, SIGNAL( toggled(bool) ), this, SLOT( searchShow(bool) ) ); | 212 | connect( searchAction, SIGNAL( toggled(bool) ), this, SLOT( searchShow(bool) ) ); |
213 | searchAction->setToggleAction( true ); | 213 | searchAction->setToggleAction( true ); |
214 | searchAction->addTo( viewMenu ); | 214 | searchAction->addTo( viewMenu ); |
215 | 215 | ||
216 | //DEST | 216 | //DEST |
217 | destBar = new QToolBar(this); | 217 | destBar = new QToolBar(this); |
218 | addToolBar( destBar, "Destination", QMainWindow::Top, TRUE ); | 218 | addToolBar( destBar, "Destination", QMainWindow::Top, TRUE ); |
219 | label = new QLabel( tr("Destination: "), destBar ); | 219 | label = new QLabel( tr("Destination: "), destBar ); |
220 | // label->setBackgroundMode( PaletteForeground ); | 220 | // label->setBackgroundMode( PaletteForeground ); |
221 | destBar->setHorizontalStretchable( TRUE ); | 221 | destBar->setHorizontalStretchable( TRUE ); |
222 | destination = new QComboBox( false, destBar ); | 222 | destination = new QComboBox( false, destBar ); |
223 | destination->insertStringList( settings->getDestinationNames() ); | 223 | destination->insertStringList( settings->getDestinationNames() ); |
224 | setComboName(destination,settings->getDestinationName()); | 224 | setComboName(destination,settings->getDestinationName()); |
225 | connect( destination, SIGNAL(activated(int)), | 225 | connect( destination, SIGNAL(activated(int)), |
226 | settings, SLOT(activeDestinationChange(int)) ); | 226 | settings, SLOT(activeDestinationChange(int)) ); |
227 | // space->setBackgroundMode( PaletteForeground ); | 227 | // space->setBackgroundMode( PaletteForeground ); |
228 | CheckBoxLink = new QCheckBox( tr("Link"), destBar); | 228 | CheckBoxLink = new QCheckBox( tr("Link"), destBar); |
229 | // CheckBoxLink->setBackgroundMode( PaletteForeground ); | 229 | // CheckBoxLink->setBackgroundMode( PaletteForeground ); |
230 | CheckBoxLink->setChecked( settings->createLinks() ); | 230 | CheckBoxLink->setChecked( settings->createLinks() ); |
231 | connect( CheckBoxLink, SIGNAL(toggled(bool)), | 231 | connect( CheckBoxLink, SIGNAL(toggled(bool)), |
232 | settings, SLOT(linkEnabled(bool)) ); | 232 | settings, SLOT(linkEnabled(bool)) ); |
233 | destAction = new QAction( tr( "Destinations" ), QString::null, 0, this, 0 ); | 233 | destAction = new QAction( tr( "Destinations" ), QString::null, 0, this, 0 ); |
234 | connect( destAction, SIGNAL( toggled(bool) ), SLOT( destShow(bool) ) ); | 234 | connect( destAction, SIGNAL( toggled(bool) ), SLOT( destShow(bool) ) ); |
235 | a = new QAction( tr( "Close Destinations" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); | 235 | a = new QAction( tr( "Close Destinations" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); |
236 | connect( a, SIGNAL( activated() ), SLOT( destClose() ) ); | 236 | connect( a, SIGNAL( activated() ), SLOT( destClose() ) ); |
237 | a->addTo( destBar ); | 237 | a->addTo( destBar ); |
238 | destBar->setStretchableWidget( CheckBoxLink ); | 238 | destBar->setStretchableWidget( CheckBoxLink ); |
239 | destAction->setToggleAction( true ); | 239 | destAction->setToggleAction( true ); |
240 | destAction->addTo( viewMenu ); | 240 | destAction->addTo( viewMenu ); |
241 | 241 | ||
242 | // helpMenu | 242 | // helpMenu |
243 | helpMenu->insertSeparator(); | 243 | helpMenu->insertSeparator(); |
244 | a = new QAction( tr( "Package Actions" ), QString::null, 0, this, 0 ); | 244 | a = new QAction( tr( "Package Actions" ), QString::null, 0, this, 0 ); |
245 | a->addTo( helpMenu ); | 245 | a->addTo( helpMenu ); |
246 | helpMenu->insertSeparator(); | 246 | helpMenu->insertSeparator(); |
247 | a = new QAction( tr( "Install" ), | 247 | a = new QAction( tr( "Install" ), |
248 | Resource::loadPixmap( "oipkg/install" ), QString::null, 0, this, 0 ); | 248 | Resource::loadPixmap( "oipkg/install" ), QString::null, 0, this, 0 ); |
249 | a->addTo( helpMenu ); | 249 | a->addTo( helpMenu ); |
250 | a = new QAction( tr( "Remove" ), | 250 | a = new QAction( tr( "Remove" ), |
251 | Resource::loadPixmap( "oipkg/uninstall" ), QString::null, 0, this, 0 ); | 251 | Resource::loadPixmap( "oipkg/uninstall" ), QString::null, 0, this, 0 ); |
252 | a->addTo( helpMenu ); | 252 | a->addTo( helpMenu ); |
253 | helpMenu->insertSeparator(); | 253 | helpMenu->insertSeparator(); |
254 | a = new QAction( tr( "Package Status" ), QString::null, 0, this, 0 ); | 254 | a = new QAction( tr( "Package Status" ), QString::null, 0, this, 0 ); |
255 | a->addTo( helpMenu ); | 255 | a->addTo( helpMenu ); |
256 | helpMenu->insertSeparator(); | 256 | helpMenu->insertSeparator(); |
257 | a = new QAction( tr( "New version, installed" ), | 257 | a = new QAction( tr( "New version, installed" ), |
258 | Resource::loadPixmap( "oipkg/installed" ), QString::null, 0, this, 0 ); | 258 | Resource::loadPixmap( "oipkg/installed" ), QString::null, 0, this, 0 ); |
259 | a->addTo( helpMenu ); | 259 | a->addTo( helpMenu ); |
260 | a = new QAction( tr( "New version, not installed" ), | 260 | a = new QAction( tr( "New version, not installed" ), |
261 | Resource::loadPixmap( "oipkg/uninstalled" ), QString::null, 0, this, 0 ); | 261 | Resource::loadPixmap( "oipkg/uninstalled" ), QString::null, 0, this, 0 ); |
262 | a->addTo( helpMenu ); | 262 | a->addTo( helpMenu ); |
263 | a = new QAction( tr( "Old version, installed" ), | 263 | a = new QAction( tr( "Old version, installed" ), |
264 | Resource::loadPixmap( "oipkg/installedOld" ), QString::null, 0, this, 0 ); | 264 | Resource::loadPixmap( "oipkg/installedOld" ), QString::null, 0, this, 0 ); |
265 | a->addTo( helpMenu ); | 265 | a->addTo( helpMenu ); |
266 | a = new QAction( tr( "Old version, not installed" ), | 266 | a = new QAction( tr( "Old version, not installed" ), |
267 | Resource::loadPixmap( "oipkg/uninstalledOld" ), QString::null, 0, this, 0 ); | 267 | Resource::loadPixmap( "oipkg/uninstalledOld" ), QString::null, 0, this, 0 ); |
268 | a->addTo( helpMenu ); | 268 | a->addTo( helpMenu ); |
269 | a = new QAction( tr( "Old version, new version installed" ), | 269 | a = new QAction( tr( "Old version, new version installed" ), |
270 | Resource::loadPixmap( "oipkg/uninstalledOldinstalledNew" ), QString::null, 0, this, 0 ); | 270 | Resource::loadPixmap( "oipkg/uninstalledOldinstalledNew" ), QString::null, 0, this, 0 ); |
271 | a->addTo( helpMenu ); | 271 | a->addTo( helpMenu ); |
272 | a = new QAction( tr( "New version, old version installed" ), | 272 | a = new QAction( tr( "New version, old version installed" ), |
273 | Resource::loadPixmap( "oipkg/uninstalledInstalledOld" ), QString::null, 0, this, 0 ); | 273 | Resource::loadPixmap( "oipkg/uninstalledInstalledOld" ), QString::null, 0, this, 0 ); |
274 | a->addTo( helpMenu ); | 274 | a->addTo( helpMenu ); |
275 | //a = new QAction( tr( "" ), | 275 | //a = new QAction( tr( "" ), |
276 | // Resource::loadPixmap( "oipkg/" ), QString::null, 0, this, 0 ); | 276 | // Resource::loadPixmap( "oipkg/" ), QString::null, 0, this, 0 ); |
277 | // a->addTo( helpMenu ); | 277 | // a->addTo( helpMenu ); |
278 | 278 | ||
279 | // configure the menus | 279 | // configure the menus |
280 | Config cfg( "oipkg", Config::User ); | 280 | Config cfg( "oipkg", Config::User ); |
281 | cfg.setGroup( "gui" ); | 281 | cfg.setGroup( "gui" ); |
282 | 282 | ||
283 | findShow( cfg.readBoolEntry( "findBar", true ) ); | 283 | findShow( cfg.readBoolEntry( "findBar", true ) ); |
284 | searchShow( cfg.readBoolEntry( "searchBar", true ) ); | 284 | searchShow( cfg.readBoolEntry( "searchBar", true ) ); |
285 | sectionShow( cfg.readBoolEntry( "sectionBar", true ) ); | 285 | sectionShow( cfg.readBoolEntry( "sectionBar", true ) ); |
286 | destShow( cfg.readBoolEntry( "destBar", false ) ); | 286 | destShow( cfg.readBoolEntry( "destBar", false ) ); |
287 | setComboName(section,cfg.readEntry("default_section")); | 287 | setComboName(section,cfg.readEntry("default_section")); |
288 | sectionChanged(); | 288 | sectionChanged(); |
289 | } | 289 | } |
290 | 290 | ||
291 | MainWindow::~MainWindow() | 291 | MainWindow::~MainWindow() |
292 | { | 292 | { |
293 | Config cfg( "oipkg", Config::User ); | 293 | Config cfg( "oipkg", Config::User ); |
294 | cfg.setGroup( "gui" ); | 294 | cfg.setGroup( "gui" ); |
295 | cfg.writeEntry( "findBar", !findBar->isHidden() ); | 295 | cfg.writeEntry( "findBar", !findBar->isHidden() ); |
296 | cfg.writeEntry( "searchBar", !searchBar->isHidden() ); | 296 | cfg.writeEntry( "searchBar", !searchBar->isHidden() ); |
@@ -375,141 +375,141 @@ void MainWindow::setSections() | |||
375 | { | 375 | { |
376 | section->clear(); | 376 | section->clear(); |
377 | section->insertStringList( packageListServers.getSections() ); | 377 | section->insertStringList( packageListServers.getSections() ); |
378 | } | 378 | } |
379 | 379 | ||
380 | void MainWindow::setSubSections() | 380 | void MainWindow::setSubSections() |
381 | { | 381 | { |
382 | subsection->clear(); | 382 | subsection->clear(); |
383 | subsection->insertStringList( packageListServers.getSubSections() ); | 383 | subsection->insertStringList( packageListServers.getSubSections() ); |
384 | } | 384 | } |
385 | 385 | ||
386 | 386 | ||
387 | void MainWindow::showSettings(int i) | 387 | void MainWindow::showSettings(int i) |
388 | { | 388 | { |
389 | if ( settings->showDialog( i ) ) | 389 | if ( settings->showDialog( i ) ) |
390 | { | 390 | { |
391 | updateList(); | 391 | updateList(); |
392 | } | 392 | } |
393 | setComboName(destination,settings->getDestinationName()); | 393 | setComboName(destination,settings->getDestinationName()); |
394 | CheckBoxLink->setChecked( settings->createLinks() ); | 394 | CheckBoxLink->setChecked( settings->createLinks() ); |
395 | } | 395 | } |
396 | void MainWindow::showSettingsSetup() | 396 | void MainWindow::showSettingsSetup() |
397 | { | 397 | { |
398 | showSettings(0); | 398 | showSettings(0); |
399 | } | 399 | } |
400 | void MainWindow::showSettingsSrv() | 400 | void MainWindow::showSettingsSrv() |
401 | { | 401 | { |
402 | showSettings(1); | 402 | showSettings(1); |
403 | } | 403 | } |
404 | void MainWindow::showSettingsDst() | 404 | void MainWindow::showSettingsDst() |
405 | { | 405 | { |
406 | showSettings(2); | 406 | showSettings(2); |
407 | } | 407 | } |
408 | 408 | ||
409 | void MainWindow::sectionShow(bool b) | 409 | void MainWindow::sectionShow(bool b) |
410 | { | 410 | { |
411 | if (b) sectionBar->show(); | 411 | if (b) sectionBar->show(); |
412 | else sectionBar->hide(); | 412 | else sectionBar->hide(); |
413 | sectionAction->setOn( b ); | 413 | sectionAction->setOn( b ); |
414 | } | 414 | } |
415 | 415 | ||
416 | void MainWindow::sectionClose() | 416 | void MainWindow::sectionClose() |
417 | { | 417 | { |
418 | sectionAction->setOn( false ); | 418 | sectionAction->setOn( false ); |
419 | } | 419 | } |
420 | 420 | ||
421 | void MainWindow::findShow(bool b) | 421 | void MainWindow::findShow(bool b) |
422 | { | 422 | { |
423 | if (b) findBar->show(); | 423 | if (b) findBar->show(); |
424 | else findBar->hide(); | 424 | else findBar->hide(); |
425 | findAction->setOn( b ); | 425 | findAction->setOn( b ); |
426 | } | 426 | } |
427 | 427 | ||
428 | void MainWindow::findClose() | 428 | void MainWindow::findClose() |
429 | { | 429 | { |
430 | findAction->setOn( false ); | 430 | findAction->setOn( false ); |
431 | } | 431 | } |
432 | 432 | ||
433 | void MainWindow::searchShow(bool b) | 433 | void MainWindow::searchShow(bool b) |
434 | { | 434 | { |
435 | if (b) searchBar->show(); | 435 | if (b) searchBar->show(); |
436 | else searchBar->hide(); | 436 | else searchBar->hide(); |
437 | searchAction->setOn( b ); | 437 | searchAction->setOn( b ); |
438 | } | 438 | } |
439 | 439 | ||
440 | void MainWindow::searchClose() | 440 | void MainWindow::searchClose() |
441 | { | 441 | { |
442 | searchAction->setOn( false ); | 442 | searchAction->setOn( false ); |
443 | } | 443 | } |
444 | 444 | ||
445 | 445 | ||
446 | void MainWindow::destShow(bool b) | 446 | void MainWindow::destShow(bool b) |
447 | { | 447 | { |
448 | if (b) destBar->show(); | 448 | if (b) destBar->show(); |
449 | else destBar->hide(); | 449 | else destBar->hide(); |
450 | destAction->setOn( b ); | 450 | destAction->setOn( b ); |
451 | } | 451 | } |
452 | 452 | ||
453 | void MainWindow::destClose() | 453 | void MainWindow::destClose() |
454 | { | 454 | { |
455 | destAction->setOn( false ); | 455 | destAction->setOn( false ); |
456 | } | 456 | } |
457 | 457 | ||
458 | void MainWindow::setDocument(const QString &fileName) | 458 | void MainWindow::setDocument(const QString &fileName) |
459 | { | 459 | { |
460 | if ( !QFile::exists( fileName ) ) return; | 460 | if ( !QFile::exists( fileName ) ) return; |
461 | ipkg->installFile( fileName ); | 461 | ipkg->installFile( fileName ); |
462 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); | 462 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); |
463 | QString lf = QString::null; | 463 | QString lf = QString::null; |
464 | e << lf; | 464 | e << lf; |
465 | } | 465 | } |
466 | 466 | ||
467 | 467 | ||
468 | void MainWindow::makeChannel() | 468 | void MainWindow::makeChannel() |
469 | { | 469 | { |
470 | channel = new QCopChannel( "QPE/Application/oipkg", this ); | 470 | channel = new QCopChannel( "QPE/Application/oipkg", this ); |
471 | connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), | 471 | connect( channel, SIGNAL(received(const QCString&,const QByteArray&)), |
472 | this, SLOT(receive(const QCString&, const QByteArray&)) ); | 472 | this, SLOT(receive(const QCString&,const QByteArray&)) ); |
473 | } | 473 | } |
474 | 474 | ||
475 | 475 | ||
476 | 476 | ||
477 | void MainWindow::receive(const QCString &msg, const QByteArray &arg) | 477 | void MainWindow::receive(const QCString &msg, const QByteArray &arg) |
478 | { | 478 | { |
479 | pvDebug(3, "QCop "+msg+" "+QCString(arg)); | 479 | pvDebug(3, "QCop "+msg+" "+QCString(arg)); |
480 | if ( msg == "installFile(QString)" ) | 480 | if ( msg == "installFile(QString)" ) |
481 | { | 481 | { |
482 | ipkg->installFile( QString(arg) ); | 482 | ipkg->installFile( QString(arg) ); |
483 | }else if( msg == "removeFile(QString)" ) | 483 | }else if( msg == "removeFile(QString)" ) |
484 | { | 484 | { |
485 | ipkg->removeFile( QString(arg) ); | 485 | ipkg->removeFile( QString(arg) ); |
486 | }else if( msg == "createLinks(QString)" ) | 486 | }else if( msg == "createLinks(QString)" ) |
487 | { | 487 | { |
488 | ipkg->createLinks( QString(arg) ); | 488 | ipkg->createLinks( QString(arg) ); |
489 | }else if( msg == "removeLinks(QString)" ) | 489 | }else if( msg == "removeLinks(QString)" ) |
490 | { | 490 | { |
491 | ipkg->removeLinks( QString(arg) ); | 491 | ipkg->removeLinks( QString(arg) ); |
492 | }else{ | 492 | }else{ |
493 | pvDebug(2,"Huh what do ya want") | 493 | pvDebug(2,"Huh what do ya want") |
494 | } | 494 | } |
495 | } | 495 | } |
496 | 496 | ||
497 | 497 | ||
498 | void MainWindow::createLinks() | 498 | void MainWindow::createLinks() |
499 | { | 499 | { |
500 | pvDebug(2,"creating links..."); | 500 | pvDebug(2,"creating links..."); |
501 | ipkg->createLinks( settings->destinationurl->text() ); | 501 | ipkg->createLinks( settings->destinationurl->text() ); |
502 | } | 502 | } |
503 | 503 | ||
504 | void MainWindow::removeLinks() | 504 | void MainWindow::removeLinks() |
505 | { | 505 | { |
506 | pvDebug(2,"removing links..."); | 506 | pvDebug(2,"removing links..."); |
507 | ipkg->removeLinks( settings->destinationurl->text() ); | 507 | ipkg->removeLinks( settings->destinationurl->text() ); |
508 | } | 508 | } |
509 | 509 | ||
510 | void MainWindow::remotePackageQuery() | 510 | void MainWindow::remotePackageQuery() |
511 | { | 511 | { |
512 | packageListSearch.query( searchEdit->text() ); | 512 | packageListSearch.query( searchEdit->text() ); |
513 | packageListSearch.update(); | 513 | packageListSearch.update(); |
514 | displayList(); | 514 | displayList(); |
515 | } | 515 | } |
diff --git a/noncore/unsupported/oipkg/packagelistitem.cpp b/noncore/unsupported/oipkg/packagelistitem.cpp index 1610a37..1b4812d 100644 --- a/noncore/unsupported/oipkg/packagelistitem.cpp +++ b/noncore/unsupported/oipkg/packagelistitem.cpp | |||
@@ -118,123 +118,123 @@ void PackageListItem::paintCell( QPainter *p, const QColorGroup & cg, | |||
118 | 118 | ||
119 | void PackageListItem::paintFocus( QPainter *p, const QColorGroup & cg, | 119 | void PackageListItem::paintFocus( QPainter *p, const QColorGroup & cg, |
120 | const QRect & r ) | 120 | const QRect & r ) |
121 | { | 121 | { |
122 | // Skip QCheckListItem | 122 | // Skip QCheckListItem |
123 | // (makes you wonder what we're getting from QCheckListItem) | 123 | // (makes you wonder what we're getting from QCheckListItem) |
124 | QListViewItem::paintFocus(p,cg,r); | 124 | QListViewItem::paintFocus(p,cg,r); |
125 | } | 125 | } |
126 | 126 | ||
127 | QPixmap PackageListItem::statePixmap() const | 127 | QPixmap PackageListItem::statePixmap() const |
128 | { | 128 | { |
129 | bool installed = package->installed(); | 129 | bool installed = package->installed(); |
130 | bool old = package->isOld(); | 130 | bool old = package->isOld(); |
131 | bool verinstalled = package->otherInstalled(); | 131 | bool verinstalled = package->otherInstalled(); |
132 | if ( !package->toProcess() ) { | 132 | if ( !package->toProcess() ) { |
133 | if ( !installed ) | 133 | if ( !installed ) |
134 | if (old) | 134 | if (old) |
135 | { | 135 | { |
136 | if (verinstalled) return *pm_uninstalled_old_installed_new; | 136 | if (verinstalled) return *pm_uninstalled_old_installed_new; |
137 | else return *pm_uninstalled_old; | 137 | else return *pm_uninstalled_old; |
138 | } | 138 | } |
139 | else | 139 | else |
140 | { | 140 | { |
141 | if (verinstalled) return *pm_uninstalled_installed_old; | 141 | if (verinstalled) return *pm_uninstalled_installed_old; |
142 | else return *pm_uninstalled; | 142 | else return *pm_uninstalled; |
143 | } | 143 | } |
144 | else | 144 | else |
145 | if (old) return *pm_installed_old; | 145 | if (old) return *pm_installed_old; |
146 | else return *pm_installed; | 146 | else return *pm_installed; |
147 | } else { //toProcess() == true | 147 | } else { //toProcess() == true |
148 | if ( !installed ) | 148 | if ( !installed ) |
149 | return *pm_install; | 149 | return *pm_install; |
150 | else | 150 | else |
151 | return *pm_uninstall; | 151 | return *pm_uninstall; |
152 | } | 152 | } |
153 | } | 153 | } |
154 | 154 | ||
155 | QString PackageListItem::key( int column, bool ascending ) const | 155 | QString PackageListItem::key( int column, bool ascending ) const |
156 | { | 156 | { |
157 | if ( column == 2 ) { | 157 | if ( column == 2 ) { |
158 | QString t = text(2); | 158 | QString t = text(2); |
159 | double bytes=t.toDouble(); | 159 | double bytes=t.toDouble(); |
160 | if ( t.contains('M') ) bytes*=1024*1024; | 160 | if ( t.contains('M') ) bytes*=1024*1024; |
161 | else if ( t.contains('K') || t.contains('k') ) bytes*=1024; | 161 | else if ( t.contains('K') || t.contains('k') ) bytes*=1024; |
162 | if ( !ascending ) bytes=999999999-bytes; | 162 | if ( !ascending ) bytes=999999999-bytes; |
163 | return QString().sprintf("%09d",(int)bytes); | 163 | return QString().sprintf("%09d",(int)bytes); |
164 | } else { | 164 | } else { |
165 | return QListViewItem::key(column,ascending); | 165 | return QListViewItem::key(column,ascending); |
166 | } | 166 | } |
167 | } | 167 | } |
168 | 168 | ||
169 | void PackageListItem::setOn( bool b ) | 169 | void PackageListItem::setOn( bool b ) |
170 | { | 170 | { |
171 | QCheckListItem::setOn( b ); | 171 | QCheckListItem::setOn( b ); |
172 | package->toggleProcess(); | 172 | package->toggleProcess(); |
173 | package->setLink( settings->createLinks() ); | 173 | package->setLink( settings->createLinks() ); |
174 | displayDetails(); | 174 | displayDetails(); |
175 | } | 175 | } |
176 | 176 | ||
177 | void PackageListItem::displayDetails() | 177 | void PackageListItem::displayDetails() |
178 | { | 178 | { |
179 | QString sod; | 179 | QString sod; |
180 | sod += package->sizeUnits().isEmpty()?QString(""):QString(package->sizeUnits()); | 180 | sod += package->sizeUnits().isEmpty()?QString(""):QString(package->sizeUnits()); |
181 | //sod += QString(package->dest().isEmpty()?"":QObject::tr(" on ")+package->dest()); | 181 | //sod += QString(package->dest().isEmpty()?"":QObject::tr(" on ")+package->dest()); |
182 | sod += package->dest().isEmpty()?QString(""):QString(QObject::tr(" on ")+package->dest()); | 182 | sod += package->dest().isEmpty()?QString(""):QString(QObject::tr(" on ")+package->dest()); |
183 | sod = sod.isEmpty()?QString(""):QString(" ("+sod+")"); | 183 | sod = sod.isEmpty()?QString(""):QString(" ("+sod+")"); |
184 | setText(0, package->name()+sod ); | 184 | setText(0, package->name()+sod ); |
185 | nameItem->setText( 0, QObject::tr("Name: ")+package->name()); | 185 | nameItem->setText( 0, QObject::tr("Name: ")+package->name()); |
186 | linkItem->setText( 0, QObject::tr("Link: ")+(package->link()?QObject::tr("Yes"):QObject::tr("No"))); | 186 | linkItem->setText( 0, QObject::tr("Link: ")+(package->link()?QObject::tr("Yes"):QObject::tr("No"))); |
187 | destItem->setText( 0, QObject::tr("Destination: ")+package->dest() ); | 187 | destItem->setText( 0, QObject::tr("Destination: ")+package->dest() ); |
188 | statusItem->setText( 0, QObject::tr("Status: ")+package->status() ); | 188 | statusItem->setText( 0, QObject::tr("Status: ")+package->status() ); |
189 | repaint(); | 189 | repaint(); |
190 | } | 190 | } |
191 | 191 | ||
192 | QPopupMenu* PackageListItem::getPopupMenu() | 192 | QPopupMenu* PackageListItem::getPopupMenu() |
193 | { | 193 | { |
194 | popupMenu->clear(); | 194 | popupMenu->clear(); |
195 | destsMenu->clear(); | 195 | destsMenu->clear(); |
196 | 196 | ||
197 | QAction *popupAction; | 197 | QAction *popupAction; |
198 | qDebug("PackageListItem::showPopup "); | 198 | qDebug("PackageListItem::showPopup "); |
199 | 199 | ||
200 | if (!package->installed()){ | 200 | if (!package->installed()){ |
201 | popupMenu->insertItem( QObject::tr("Install to"), destsMenu ); | 201 | popupMenu->insertItem( QObject::tr("Install to"), destsMenu ); |
202 | QStringList dests = settings->getDestinationNames(); | 202 | QStringList dests = settings->getDestinationNames(); |
203 | QString ad = settings->getDestinationName(); | 203 | QString ad = settings->getDestinationName(); |
204 | for (uint i = 0; i < dests.count(); i++ ) | 204 | for (uint i = 0; i < dests.count(); i++ ) |
205 | { | 205 | { |
206 | popupAction = new QAction( dests[i], QString::null, 0, popupMenu, 0 ); | 206 | popupAction = new QAction( dests[i], QString::null, 0, popupMenu, 0 ); |
207 | popupAction->addTo( destsMenu ); | 207 | popupAction->addTo( destsMenu ); |
208 | if ( dests[i] == ad && getPackage()->toInstall() ) | 208 | if ( dests[i] == ad && getPackage()->toInstall() ) |
209 | { | 209 | { |
210 | popupAction->setToggleAction( true ); | 210 | popupAction->setToggleAction( true ); |
211 | popupAction->setOn(true); | 211 | popupAction->setOn(true); |
212 | } | 212 | } |
213 | } | 213 | } |
214 | connect( destsMenu, SIGNAL( activated( int ) ), | 214 | connect( destsMenu, SIGNAL( activated(int) ), |
215 | this, SLOT( menuAction( int ) ) ); | 215 | this, SLOT( menuAction(int) ) ); |
216 | popupMenu->popup( QCursor::pos() ); | 216 | popupMenu->popup( QCursor::pos() ); |
217 | }else{ | 217 | }else{ |
218 | popupMenu->insertItem( QObject::tr("Remove")); | 218 | popupMenu->insertItem( QObject::tr("Remove")); |
219 | connect( popupMenu, SIGNAL( activated( int ) ), | 219 | connect( popupMenu, SIGNAL( activated(int) ), |
220 | this, SLOT( menuAction( int ) ) ); | 220 | this, SLOT( menuAction(int) ) ); |
221 | popupMenu->popup( QCursor::pos() ); | 221 | popupMenu->popup( QCursor::pos() ); |
222 | } | 222 | } |
223 | return popupMenu; | 223 | return popupMenu; |
224 | } | 224 | } |
225 | 225 | ||
226 | void PackageListItem::menuAction( int i ) | 226 | void PackageListItem::menuAction( int i ) |
227 | { | 227 | { |
228 | if (!package->installed()){ | 228 | if (!package->installed()){ |
229 | package->setDest( destsMenu->text(i) ); | 229 | package->setDest( destsMenu->text(i) ); |
230 | package->setLink( settings->createLinks() ); | 230 | package->setLink( settings->createLinks() ); |
231 | } | 231 | } |
232 | package->setOn(); | 232 | package->setOn(); |
233 | displayDetails(); | 233 | displayDetails(); |
234 | } | 234 | } |
235 | 235 | ||
236 | //void PackageListItem::toggleProcess() | 236 | //void PackageListItem::toggleProcess() |
237 | //{ | 237 | //{ |
238 | // package->toggleProcess() ; | 238 | // package->toggleProcess() ; |
239 | // displayDetails(); | 239 | // displayDetails(); |
240 | //} | 240 | //} |
diff --git a/noncore/unsupported/oipkg/packagelistview.cpp b/noncore/unsupported/oipkg/packagelistview.cpp index 3c7435d..98ebf88 100644 --- a/noncore/unsupported/oipkg/packagelistview.cpp +++ b/noncore/unsupported/oipkg/packagelistview.cpp | |||
@@ -1,118 +1,118 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * This program is free software; you can redistribute it and/or modify * | 3 | * This program is free software; you can redistribute it and/or modify * |
4 | * it under the terms of the GNU General Public License as published by * | 4 | * it under the terms of the GNU General Public License as published by * |
5 | * the Free Software Foundation; either version 2 of the License, or * | 5 | * the Free Software Foundation; either version 2 of the License, or * |
6 | * (at your option) any later version. * | 6 | * (at your option) any later version. * |
7 | * * | 7 | * * |
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | // (c) 2002 Patrick S. Vogt <tille@handhelds.org> | 9 | // (c) 2002 Patrick S. Vogt <tille@handhelds.org> |
10 | #include "packagelistview.h" | 10 | #include "packagelistview.h" |
11 | 11 | ||
12 | #include <qpopupmenu.h> | 12 | #include <qpopupmenu.h> |
13 | #include <qaction.h> | 13 | #include <qaction.h> |
14 | 14 | ||
15 | #include "listviewitemoipkg.h" | 15 | #include "listviewitemoipkg.h" |
16 | #include "packagelistitem.h" | 16 | #include "packagelistitem.h" |
17 | #include "pksettings.h" | 17 | #include "pksettings.h" |
18 | 18 | ||
19 | PackageListView::PackageListView(QWidget *p, const char* n, PackageManagerSettings *s) | 19 | PackageListView::PackageListView(QWidget *p, const char* n, PackageManagerSettings *s) |
20 | : QListView(p,n) | 20 | : QListView(p,n) |
21 | { | 21 | { |
22 | settings = s; | 22 | settings = s; |
23 | popupTimer = new QTimer( this ); | 23 | popupTimer = new QTimer( this ); |
24 | setSelectionMode(QListView::NoSelection); | 24 | setSelectionMode(QListView::NoSelection); |
25 | addColumn( tr("Package") ); | 25 | addColumn( tr("Package") ); |
26 | setRootIsDecorated( true ); | 26 | setRootIsDecorated( true ); |
27 | 27 | ||
28 | connect( popupTimer, SIGNAL(timeout()), | 28 | connect( popupTimer, SIGNAL(timeout()), |
29 | this, SLOT(showPopup()) ); | 29 | this, SLOT(showPopup()) ); |
30 | connect( this, SIGNAL( pressed( QListViewItem* ) ), | 30 | connect( this, SIGNAL( pressed(QListViewItem*) ), |
31 | this, SLOT( setCurrent( QListViewItem* ) ) ); | 31 | this, SLOT( setCurrent(QListViewItem*) ) ); |
32 | connect( this, SIGNAL( clicked( QListViewItem* ) ), | 32 | connect( this, SIGNAL( clicked(QListViewItem*) ), |
33 | this, SLOT( stopTimer( QListViewItem* ) ) ); | 33 | this, SLOT( stopTimer(QListViewItem*) ) ); |
34 | 34 | ||
35 | } | 35 | } |
36 | 36 | ||
37 | //PackageListView::~PackageListView() | 37 | //PackageListView::~PackageListView() |
38 | //{ | 38 | //{ |
39 | //} | 39 | //} |
40 | 40 | ||
41 | void PackageListView::setCurrent( QListViewItem* p ) | 41 | void PackageListView::setCurrent( QListViewItem* p ) |
42 | { | 42 | { |
43 | qDebug("PackageListView::setCurrent "); | 43 | qDebug("PackageListView::setCurrent "); |
44 | activeItem = (ListViewItemOipkg*)p; | 44 | activeItem = (ListViewItemOipkg*)p; |
45 | 45 | ||
46 | if ( activeItem != 0 ) popupTimer->start( 750, true ); | 46 | if ( activeItem != 0 ) popupTimer->start( 750, true ); |
47 | 47 | ||
48 | // if ( activeItem->getType() != ListViewItemOipkg::Package ){ | 48 | // if ( activeItem->getType() != ListViewItemOipkg::Package ){ |
49 | // qDebug("PackageListView::setCurrent !p "); | 49 | // qDebug("PackageListView::setCurrent !p "); |
50 | // activePackage = 0; | 50 | // activePackage = 0; |
51 | // activePackageListItem = 0; | 51 | // activePackageListItem = 0; |
52 | // qDebug("PackageListView::setCurrent returning "); | 52 | // qDebug("PackageListView::setCurrent returning "); |
53 | // return; | 53 | // return; |
54 | // }; | 54 | // }; |
55 | // activePackageListItem = (PackageListItem*)p; | 55 | // activePackageListItem = (PackageListItem*)p; |
56 | // activePackage = activePackageListItem->getPackage(); | 56 | // activePackage = activePackageListItem->getPackage(); |
57 | // if (activePackage == 0 ) | 57 | // if (activePackage == 0 ) |
58 | // { | 58 | // { |
59 | // qDebug("PackageListView::setCurrent if (!activePackage)"); | 59 | // qDebug("PackageListView::setCurrent if (!activePackage)"); |
60 | // return; | 60 | // return; |
61 | // } | 61 | // } |
62 | 62 | ||
63 | 63 | ||
64 | qDebug("PackageListView::setCurrent popupTimer->start"); | 64 | qDebug("PackageListView::setCurrent popupTimer->start"); |
65 | } | 65 | } |
66 | 66 | ||
67 | 67 | ||
68 | void PackageListView::showPopup() | 68 | void PackageListView::showPopup() |
69 | { | 69 | { |
70 | qDebug("PackageListView::showPopup"); | 70 | qDebug("PackageListView::showPopup"); |
71 | QPopupMenu *popup = activeItem->getPopupMenu(); | 71 | QPopupMenu *popup = activeItem->getPopupMenu(); |
72 | if (popup == 0) return; | 72 | if (popup == 0) return; |
73 | popup->popup( QCursor::pos() ); | 73 | popup->popup( QCursor::pos() ); |
74 | qDebug("PackageListView::showPopup"); | 74 | qDebug("PackageListView::showPopup"); |
75 | } | 75 | } |
76 | 76 | ||
77 | void PackageListView::stopTimer( QListViewItem* ) | 77 | void PackageListView::stopTimer( QListViewItem* ) |
78 | { | 78 | { |
79 | popupTimer->stop(); | 79 | popupTimer->stop(); |
80 | } | 80 | } |
81 | 81 | ||
82 | 82 | ||
83 | void PackageListView::display() | 83 | void PackageListView::display() |
84 | { | 84 | { |
85 | QDictIterator<PackageList> list( PackageLists ); | 85 | QDictIterator<PackageList> list( PackageLists ); |
86 | PackageList *packlist; | 86 | PackageList *packlist; |
87 | OipkgPackage *pack; | 87 | OipkgPackage *pack; |
88 | PackageListItem *item; | 88 | PackageListItem *item; |
89 | ListViewItemOipkg *rootItem; | 89 | ListViewItemOipkg *rootItem; |
90 | QListViewItem* it; | 90 | QListViewItem* it; |
91 | QListViewItem* itdel; | 91 | QListViewItem* itdel; |
92 | while ( list.current() ) { | 92 | while ( list.current() ) { |
93 | packlist = list.current(); | 93 | packlist = list.current(); |
94 | rootItem = rootItems.find( list.currentKey() ); | 94 | rootItem = rootItems.find( list.currentKey() ); |
95 | //rootItem->clear(); | 95 | //rootItem->clear(); |
96 | it=rootItem->firstChild(); | 96 | it=rootItem->firstChild(); |
97 | while ( it ) | 97 | while ( it ) |
98 | { | 98 | { |
99 | itdel = it; | 99 | itdel = it; |
100 | it = it->nextSibling(); | 100 | it = it->nextSibling(); |
101 | delete itdel; | 101 | delete itdel; |
102 | } | 102 | } |
103 | pack = packlist->first(); | 103 | pack = packlist->first(); |
104 | while( pack ) | 104 | while( pack ) |
105 | { | 105 | { |
106 | item = new PackageListItem( rootItem, pack, settings ); | 106 | item = new PackageListItem( rootItem, pack, settings ); |
107 | pack = packlist->next(); | 107 | pack = packlist->next(); |
108 | } | 108 | } |
109 | ++list; | 109 | ++list; |
110 | } | 110 | } |
111 | } | 111 | } |
112 | 112 | ||
113 | void PackageListView::addList( QString n, PackageList* pl) | 113 | void PackageListView::addList( QString n, PackageList* pl) |
114 | { | 114 | { |
115 | PackageLists.insert(n, pl); | 115 | PackageLists.insert(n, pl); |
116 | ListViewItemOipkg *item = new ListViewItemOipkg(this,n,ListViewItemOipkg::Feed); | 116 | ListViewItemOipkg *item = new ListViewItemOipkg(this,n,ListViewItemOipkg::Feed); |
117 | rootItems.insert(n, item); | 117 | rootItems.insert(n, item); |
118 | } | 118 | } |
diff --git a/noncore/unsupported/oipkg/pksettings.cpp b/noncore/unsupported/oipkg/pksettings.cpp index 063b018..aac011e 100644 --- a/noncore/unsupported/oipkg/pksettings.cpp +++ b/noncore/unsupported/oipkg/pksettings.cpp | |||
@@ -1,145 +1,145 @@ | |||
1 | #include "pksettings.h" | 1 | #include "pksettings.h" |
2 | 2 | ||
3 | #include <qpe/process.h> | 3 | #include <qpe/process.h> |
4 | #include <qpe/resource.h> | 4 | #include <qpe/resource.h> |
5 | #include <qpe/stringutil.h> | 5 | #include <qpe/stringutil.h> |
6 | #include <qpe/qpeapplication.h> | 6 | #include <qpe/qpeapplication.h> |
7 | #include <qpe/qcopenvelope_qws.h> | 7 | #include <qpe/qcopenvelope_qws.h> |
8 | #include <qpe/applnk.h> | 8 | #include <qpe/applnk.h> |
9 | #include <qpe/config.h> | 9 | #include <qpe/config.h> |
10 | 10 | ||
11 | #include <qprogressbar.h> | 11 | #include <qprogressbar.h> |
12 | #include <qcombobox.h> | 12 | #include <qcombobox.h> |
13 | #include <qdict.h> | 13 | #include <qdict.h> |
14 | #include <qfile.h> | 14 | #include <qfile.h> |
15 | #include <qlineedit.h> | 15 | #include <qlineedit.h> |
16 | #include <qpushbutton.h> | 16 | #include <qpushbutton.h> |
17 | #include <qlistview.h> | 17 | #include <qlistview.h> |
18 | #include <qlistbox.h> | 18 | #include <qlistbox.h> |
19 | #include <qcheckbox.h> | 19 | #include <qcheckbox.h> |
20 | #include <qmessagebox.h> | 20 | #include <qmessagebox.h> |
21 | #include <qpainter.h> | 21 | #include <qpainter.h> |
22 | #include <qpixmap.h> | 22 | #include <qpixmap.h> |
23 | #include <qregexp.h> | 23 | #include <qregexp.h> |
24 | #include <qstring.h> | 24 | #include <qstring.h> |
25 | #include <qobject.h> | 25 | #include <qobject.h> |
26 | #include <qtextstream.h> | 26 | #include <qtextstream.h> |
27 | #include <qtextview.h> | 27 | #include <qtextview.h> |
28 | #include <qtoolbutton.h> | 28 | #include <qtoolbutton.h> |
29 | #include <qtabwidget.h> | 29 | #include <qtabwidget.h> |
30 | 30 | ||
31 | #include <stdlib.h> | 31 | #include <stdlib.h> |
32 | #include <unistd.h> | 32 | #include <unistd.h> |
33 | #include "debug.h" | 33 | #include "debug.h" |
34 | //#include "utils.h" | 34 | //#include "utils.h" |
35 | 35 | ||
36 | PackageManagerSettings::PackageManagerSettings( QWidget* parent, const char* name, WFlags fl ) | 36 | PackageManagerSettings::PackageManagerSettings( QWidget* parent, const char* name, WFlags fl ) |
37 | : PackageManagerSettingsBase( parent, name, fl ) | 37 | : PackageManagerSettingsBase( parent, name, fl ) |
38 | { | 38 | { |
39 | connect( newserver, SIGNAL(clicked()), this, SLOT(newServer()) ); | 39 | connect( newserver, SIGNAL(clicked()), this, SLOT(newServer()) ); |
40 | connect( removeserver, SIGNAL(clicked()), this, SLOT(removeServer()) ); | 40 | connect( removeserver, SIGNAL(clicked()), this, SLOT(removeServer()) ); |
41 | connect( servers, SIGNAL(highlighted(int)), this, SLOT(editServer(int)) ); | 41 | connect( servers, SIGNAL(highlighted(int)), this, SLOT(editServer(int)) ); |
42 | connect( newdestination, SIGNAL(clicked()), this, SLOT(newDestination()) ); | 42 | connect( newdestination, SIGNAL(clicked()), this, SLOT(newDestination()) ); |
43 | connect( removedestination, SIGNAL(clicked()), this, SLOT(removeDestination()) ); | 43 | connect( removedestination, SIGNAL(clicked()), this, SLOT(removeDestination()) ); |
44 | connect( destinations, SIGNAL(highlighted(int)), this, SLOT(editDestination(int)) ); | 44 | connect( destinations, SIGNAL(highlighted(int)), this, SLOT(editDestination(int)) ); |
45 | // connect( CheckBoxLink, SIGNAL(toggled(bool)), | 45 | // connect( CheckBoxLink, SIGNAL(toggled(bool)), |
46 | // activeLinkDestination, SLOT(setEnabled(bool)) ); | 46 | // activeLinkDestination, SLOT(setEnabled(bool)) ); |
47 | 47 | ||
48 | // connect( settingName, SIGNAL(activated(int)), this, SLOT(installationSettingChange(int)) ); | 48 | // connect( settingName, SIGNAL(activated(int)), this, SLOT(installationSettingChange(int)) ); |
49 | // connect( settingName, SIGNAL(textChanged(const QString &)), this, SLOT(installationSettingSetName(const QString &)) ); | 49 | // connect( settingName, SIGNAL(textChanged(const QString&)), this, SLOT(installationSettingSetName(const QString&)) ); |
50 | // connect( newsetting, SIGNAL(clicked()), this, SLOT(newInstallationSetting()) ); | 50 | // connect( newsetting, SIGNAL(clicked()), this, SLOT(newInstallationSetting()) ); |
51 | // connect( renamesetting, SIGNAL(clicked()), this, SLOT(renameInstallationSetting()) ); | 51 | // connect( renamesetting, SIGNAL(clicked()), this, SLOT(renameInstallationSetting()) ); |
52 | // connect( removesetting, SIGNAL(clicked()), this, SLOT(removeInstallationSetting()) ); | 52 | // connect( removesetting, SIGNAL(clicked()), this, SLOT(removeInstallationSetting()) ); |
53 | servername->setEnabled(FALSE); | 53 | servername->setEnabled(FALSE); |
54 | serverurl->setEnabled(FALSE); | 54 | serverurl->setEnabled(FALSE); |
55 | serverurlDic.setAutoDelete(TRUE); | 55 | serverurlDic.setAutoDelete(TRUE); |
56 | destinationname->setEnabled(FALSE); | 56 | destinationname->setEnabled(FALSE); |
57 | destinationurl->setEnabled(FALSE); | 57 | destinationurl->setEnabled(FALSE); |
58 | destinationurlDic.setAutoDelete(TRUE); | 58 | destinationurlDic.setAutoDelete(TRUE); |
59 | readSettings(); | 59 | readSettings(); |
60 | activeLinkDestination->hide(); | 60 | activeLinkDestination->hide(); |
61 | serverChanged = false; | 61 | serverChanged = false; |
62 | 62 | ||
63 | // get rid of setups | 63 | // get rid of setups |
64 | // Settings->hide(); | 64 | // Settings->hide(); |
65 | // settingName->hide(); | 65 | // settingName->hide(); |
66 | // newsetting->hide(); | 66 | // newsetting->hide(); |
67 | // renamesetting->hide(); | 67 | // renamesetting->hide(); |
68 | // removesetting->hide(); | 68 | // removesetting->hide(); |
69 | } | 69 | } |
70 | 70 | ||
71 | PackageManagerSettings::~PackageManagerSettings() | 71 | PackageManagerSettings::~PackageManagerSettings() |
72 | { | 72 | { |
73 | } | 73 | } |
74 | 74 | ||
75 | 75 | ||
76 | void PackageManagerSettings::newServer() | 76 | void PackageManagerSettings::newServer() |
77 | { | 77 | { |
78 | int i = servers->count(); | 78 | int i = servers->count(); |
79 | if ( servername->isEnabled() || serverurl->text().isEmpty() ) { | 79 | if ( servername->isEnabled() || serverurl->text().isEmpty() ) { |
80 | serverurlDic.insert(i,new QString("http://")); | 80 | serverurlDic.insert(i,new QString("http://")); |
81 | servers->insertItem(tr("New")); | 81 | servers->insertItem(tr("New")); |
82 | activeServers->insertItem(tr("New")); | 82 | activeServers->insertItem(tr("New")); |
83 | } else { | 83 | } else { |
84 | // allows one-level undo | 84 | // allows one-level undo |
85 | serverurlDic.insert(i,new QString(serverurl->text())); | 85 | serverurlDic.insert(i,new QString(serverurl->text())); |
86 | servers->insertItem(servername->text()); | 86 | servers->insertItem(servername->text()); |
87 | activeServers->insertItem(servername->text()); | 87 | activeServers->insertItem(servername->text()); |
88 | } | 88 | } |
89 | changed = true; | 89 | changed = true; |
90 | servers->setSelected(i,TRUE); | 90 | servers->setSelected(i,TRUE); |
91 | editServer(i); | 91 | editServer(i); |
92 | changed = true; | 92 | changed = true; |
93 | } | 93 | } |
94 | 94 | ||
95 | void PackageManagerSettings::newDestination() | 95 | void PackageManagerSettings::newDestination() |
96 | { | 96 | { |
97 | int i = destinations->count(); | 97 | int i = destinations->count(); |
98 | if ( destinationname->isEnabled() || destinationurl->text().isEmpty() ) { | 98 | if ( destinationname->isEnabled() || destinationurl->text().isEmpty() ) { |
99 | destinationurlDic.insert(i,new QString("/")); | 99 | destinationurlDic.insert(i,new QString("/")); |
100 | destinations->insertItem(tr("New")); | 100 | destinations->insertItem(tr("New")); |
101 | activeDestination->insertItem(tr("New")); | 101 | activeDestination->insertItem(tr("New")); |
102 | activeLinkDestination->insertItem(tr("New")); | 102 | activeLinkDestination->insertItem(tr("New")); |
103 | } else { | 103 | } else { |
104 | // allows one-level undo | 104 | // allows one-level undo |
105 | destinationurlDic.insert(i,new QString(destinationurl->text())); | 105 | destinationurlDic.insert(i,new QString(destinationurl->text())); |
106 | destinations->insertItem(destinationname->text()); | 106 | destinations->insertItem(destinationname->text()); |
107 | activeDestination->insertItem(destinationname->text()); | 107 | activeDestination->insertItem(destinationname->text()); |
108 | activeLinkDestination->insertItem(destinationname->text()); | 108 | activeLinkDestination->insertItem(destinationname->text()); |
109 | } | 109 | } |
110 | destinations->setSelected(i,TRUE); | 110 | destinations->setSelected(i,TRUE); |
111 | editDestination(i); | 111 | editDestination(i); |
112 | changed = true; | 112 | changed = true; |
113 | } | 113 | } |
114 | 114 | ||
115 | 115 | ||
116 | void PackageManagerSettings::editServer(int i) | 116 | void PackageManagerSettings::editServer(int i) |
117 | { | 117 | { |
118 | if ( servername->isEnabled() ) { | 118 | if ( servername->isEnabled() ) { |
119 | disconnect( servername, SIGNAL(textChanged(const QString&)), this, SLOT(serverNameChanged(const QString&)) ); | 119 | disconnect( servername, SIGNAL(textChanged(const QString&)), this, SLOT(serverNameChanged(const QString&)) ); |
120 | disconnect( serverurl, SIGNAL(textChanged(const QString&)), this, SLOT(serverUrlChanged(const QString&)) ); | 120 | disconnect( serverurl, SIGNAL(textChanged(const QString&)), this, SLOT(serverUrlChanged(const QString&)) ); |
121 | } else { | 121 | } else { |
122 | servername->setEnabled(TRUE); | 122 | servername->setEnabled(TRUE); |
123 | serverurl->setEnabled(TRUE); | 123 | serverurl->setEnabled(TRUE); |
124 | } | 124 | } |
125 | 125 | ||
126 | servername->setText( servers->text(i) ); | 126 | servername->setText( servers->text(i) ); |
127 | serverurl->setText( *serverurlDic[i] ); | 127 | serverurl->setText( *serverurlDic[i] ); |
128 | 128 | ||
129 | editedserver = i; | 129 | editedserver = i; |
130 | serverChanged = true; | 130 | serverChanged = true; |
131 | connect( servername, SIGNAL(textChanged(const QString&)), this, SLOT(serverNameChanged(const QString&)) ); | 131 | connect( servername, SIGNAL(textChanged(const QString&)), this, SLOT(serverNameChanged(const QString&)) ); |
132 | connect( serverurl, SIGNAL(textChanged(const QString&)), this, SLOT(serverUrlChanged(const QString&)) ); | 132 | connect( serverurl, SIGNAL(textChanged(const QString&)), this, SLOT(serverUrlChanged(const QString&)) ); |
133 | changed = true; | 133 | changed = true; |
134 | } | 134 | } |
135 | 135 | ||
136 | 136 | ||
137 | void PackageManagerSettings::editDestination(int i) | 137 | void PackageManagerSettings::editDestination(int i) |
138 | { | 138 | { |
139 | if ( destinationname->isEnabled() ) { | 139 | if ( destinationname->isEnabled() ) { |
140 | disconnect( destinationname, SIGNAL(textChanged(const QString&)), this, SLOT(destNameChanged(const QString&)) ); | 140 | disconnect( destinationname, SIGNAL(textChanged(const QString&)), this, SLOT(destNameChanged(const QString&)) ); |
141 | disconnect( destinationurl, SIGNAL(textChanged(const QString&)), this, SLOT(destUrlChanged(const QString&)) ); | 141 | disconnect( destinationurl, SIGNAL(textChanged(const QString&)), this, SLOT(destUrlChanged(const QString&)) ); |
142 | } else { | 142 | } else { |
143 | destinationname->setEnabled(TRUE); | 143 | destinationname->setEnabled(TRUE); |
144 | destinationurl->setEnabled(TRUE); | 144 | destinationurl->setEnabled(TRUE); |
145 | //since it does not work anyway | 145 | //since it does not work anyway |
diff --git a/noncore/unsupported/qpdf/qbusybar.cpp b/noncore/unsupported/qpdf/qbusybar.cpp index ce7ab8e..e942f06 100644 --- a/noncore/unsupported/qpdf/qbusybar.cpp +++ b/noncore/unsupported/qpdf/qbusybar.cpp | |||
@@ -1,116 +1,116 @@ | |||
1 | #include <qapplication.h> | 1 | #include <qapplication.h> |
2 | #include <qtimer.h> | 2 | #include <qtimer.h> |
3 | #include <qpainter.h> | 3 | #include <qpainter.h> |
4 | 4 | ||
5 | #include "qbusybar.h" | 5 | #include "qbusybar.h" |
6 | 6 | ||
7 | 7 | ||
8 | 8 | ||
9 | QBusyBar::QBusyBar ( QWidget *parent, const char *name, int flags ) : QWidget ( parent, name, flags | WRepaintNoErase ) | 9 | QBusyBar::QBusyBar ( QWidget *parent, const char *name, int flags ) : QWidget ( parent, name, flags | WRepaintNoErase ) |
10 | { | 10 | { |
11 | m_busy = 0; | 11 | m_busy = 0; |
12 | 12 | ||
13 | m_div = 0; | 13 | m_div = 0; |
14 | m_pos = 0; | 14 | m_pos = 0; |
15 | m_fade = 0; | 15 | m_fade = 0; |
16 | m_fadecols = 0; | 16 | m_fadecols = 0; |
17 | m_speed = 500; | 17 | m_speed = 500; |
18 | 18 | ||
19 | m_timer = new QTimer ( this ); | 19 | m_timer = new QTimer ( this ); |
20 | connect ( m_timer, SIGNAL( timeout ( )), this, SLOT( slotTimeout ( ))); | 20 | connect ( m_timer, SIGNAL( timeout()), this, SLOT( slotTimeout())); |
21 | 21 | ||
22 | setParameters ( 12, 8, 200 ); | 22 | setParameters ( 12, 8, 200 ); |
23 | } | 23 | } |
24 | 24 | ||
25 | void QBusyBar::setParameters ( int d, int s, int v ) | 25 | void QBusyBar::setParameters ( int d, int s, int v ) |
26 | { | 26 | { |
27 | bool running = m_timer-> isActive ( ); | 27 | bool running = m_timer-> isActive ( ); |
28 | 28 | ||
29 | if ( running ) | 29 | if ( running ) |
30 | m_timer-> stop ( ); | 30 | m_timer-> stop ( ); |
31 | 31 | ||
32 | m_div = d; | 32 | m_div = d; |
33 | m_speed = v; | 33 | m_speed = v; |
34 | 34 | ||
35 | delete [] m_fadecols; | 35 | delete [] m_fadecols; |
36 | m_fade = s; | 36 | m_fade = s; |
37 | m_fadecols = new QColor [m_fade]; | 37 | m_fadecols = new QColor [m_fade]; |
38 | 38 | ||
39 | int rt, gt, bt; | 39 | int rt, gt, bt; |
40 | int rf, gf, bf; | 40 | int rf, gf, bf; |
41 | 41 | ||
42 | colorGroup ( ). color ( QColorGroup::Highlight ). rgb ( &rf, &gf, &bf ); | 42 | colorGroup ( ). color ( QColorGroup::Highlight ). rgb ( &rf, &gf, &bf ); |
43 | colorGroup ( ). color ( QColorGroup::Background ). rgb ( &rt, >, &bt ); | 43 | colorGroup ( ). color ( QColorGroup::Background ). rgb ( &rt, >, &bt ); |
44 | 44 | ||
45 | for ( int i = 0; i < s; i++ ) | 45 | for ( int i = 0; i < s; i++ ) |
46 | m_fadecols [i]. setRgb ( rf + ( rt - rf ) * i / s, gf + ( gt - gf ) * i / s, bf + ( bt - bf ) * i / s ); | 46 | m_fadecols [i]. setRgb ( rf + ( rt - rf ) * i / s, gf + ( gt - gf ) * i / s, bf + ( bt - bf ) * i / s ); |
47 | 47 | ||
48 | if ( running ) { | 48 | if ( running ) { |
49 | m_pos = 0; | 49 | m_pos = 0; |
50 | m_timer-> start ( m_speed ); | 50 | m_timer-> start ( m_speed ); |
51 | } | 51 | } |
52 | } | 52 | } |
53 | 53 | ||
54 | QBusyBar::~QBusyBar ( ) | 54 | QBusyBar::~QBusyBar ( ) |
55 | { | 55 | { |
56 | delete [] m_fadecols; | 56 | delete [] m_fadecols; |
57 | } | 57 | } |
58 | 58 | ||
59 | bool QBusyBar::isBusy ( ) const | 59 | bool QBusyBar::isBusy ( ) const |
60 | { | 60 | { |
61 | return m_busy; | 61 | return m_busy; |
62 | } | 62 | } |
63 | 63 | ||
64 | void QBusyBar::beginBusy ( ) | 64 | void QBusyBar::beginBusy ( ) |
65 | { | 65 | { |
66 | setBusy ( true ); | 66 | setBusy ( true ); |
67 | } | 67 | } |
68 | 68 | ||
69 | void QBusyBar::endBusy ( ) | 69 | void QBusyBar::endBusy ( ) |
70 | { | 70 | { |
71 | setBusy ( false ); | 71 | setBusy ( false ); |
72 | } | 72 | } |
73 | 73 | ||
74 | void QBusyBar::setBusy ( bool b ) | 74 | void QBusyBar::setBusy ( bool b ) |
75 | { | 75 | { |
76 | int busy = m_busy + ( b ? 1 : -1 ); | 76 | int busy = m_busy + ( b ? 1 : -1 ); |
77 | 77 | ||
78 | if ( busy < 0 ) | 78 | if ( busy < 0 ) |
79 | busy = 0; | 79 | busy = 0; |
80 | 80 | ||
81 | if (( m_busy == 0 ) && ( busy > 0 )) { // Changed stateto on | 81 | if (( m_busy == 0 ) && ( busy > 0 )) { // Changed stateto on |
82 | m_pos = 0; | 82 | m_pos = 0; |
83 | m_timer-> start ( m_speed ); | 83 | m_timer-> start ( m_speed ); |
84 | update ( ); | 84 | update ( ); |
85 | } | 85 | } |
86 | else if (( m_busy > 0 ) && ( busy == 0 )) { // Changed state to off | 86 | else if (( m_busy > 0 ) && ( busy == 0 )) { // Changed state to off |
87 | m_timer-> stop ( ); | 87 | m_timer-> stop ( ); |
88 | update ( ); | 88 | update ( ); |
89 | } | 89 | } |
90 | 90 | ||
91 | m_busy = busy; | 91 | m_busy = busy; |
92 | } | 92 | } |
93 | 93 | ||
94 | void QBusyBar::slotTimeout ( ) | 94 | void QBusyBar::slotTimeout ( ) |
95 | { | 95 | { |
96 | m_pos++; | 96 | m_pos++; |
97 | m_pos %= ( 2 * ( m_fade + m_div )); | 97 | m_pos %= ( 2 * ( m_fade + m_div )); |
98 | 98 | ||
99 | update ( ); | 99 | update ( ); |
100 | } | 100 | } |
101 | 101 | ||
102 | void QBusyBar::paintEvent ( QPaintEvent *e ) | 102 | void QBusyBar::paintEvent ( QPaintEvent *e ) |
103 | { | 103 | { |
104 | QPainter p ( this ); | 104 | QPainter p ( this ); |
105 | 105 | ||
106 | QRect clip = e-> rect ( ); | 106 | QRect clip = e-> rect ( ); |
107 | 107 | ||
108 | int x = 0; | 108 | int x = 0; |
109 | int dx = width ( ) / m_div; | 109 | int dx = width ( ) / m_div; |
110 | int y = clip. top ( ); | 110 | int y = clip. top ( ); |
111 | int dy = clip. height ( ); | 111 | int dy = clip. height ( ); |
112 | 112 | ||
113 | if ( m_busy ) { | 113 | if ( m_busy ) { |
114 | int dir = ( m_pos < ( m_fade + m_div )) ? 1 : -1; | 114 | int dir = ( m_pos < ( m_fade + m_div )) ? 1 : -1; |
115 | int pos = ( dir > 0 ) ? m_pos : ( 2 * ( m_div + m_fade )) - m_pos - m_fade - 1; | 115 | int pos = ( dir > 0 ) ? m_pos : ( 2 * ( m_div + m_fade )) - m_pos - m_fade - 1; |
116 | 116 | ||
diff --git a/noncore/unsupported/qpdf/qpdf.cpp b/noncore/unsupported/qpdf/qpdf.cpp index 5cdcccf..75e86d0 100644 --- a/noncore/unsupported/qpdf/qpdf.cpp +++ b/noncore/unsupported/qpdf/qpdf.cpp | |||
@@ -1,242 +1,242 @@ | |||
1 | //======================================================================== | 1 | //======================================================================== |
2 | // | 2 | // |
3 | // qpdf.cc | 3 | // qpdf.cc |
4 | // | 4 | // |
5 | // Copyright 2001 Robert Griebl | 5 | // Copyright 2001 Robert Griebl |
6 | // | 6 | // |
7 | //======================================================================== | 7 | //======================================================================== |
8 | 8 | ||
9 | #include "aconf.h" | 9 | #include "aconf.h" |
10 | #include "GString.h" | 10 | #include "GString.h" |
11 | #include "PDFDoc.h" | 11 | #include "PDFDoc.h" |
12 | #include "TextOutputDev.h" | 12 | #include "TextOutputDev.h" |
13 | 13 | ||
14 | #include "QPEOutputDev.h" | 14 | #include "QPEOutputDev.h" |
15 | 15 | ||
16 | #include <qpe/qpeapplication.h> | 16 | #include <qpe/qpeapplication.h> |
17 | #include <qpe/resource.h> | 17 | #include <qpe/resource.h> |
18 | #include <qpe/applnk.h> | 18 | #include <qpe/applnk.h> |
19 | #include <qpe/qcopenvelope_qws.h> | 19 | #include <qpe/qcopenvelope_qws.h> |
20 | 20 | ||
21 | 21 | ||
22 | #include <qclipboard.h> | 22 | #include <qclipboard.h> |
23 | #include <qpe/qpetoolbar.h> | 23 | #include <qpe/qpetoolbar.h> |
24 | #include <qtoolbutton.h> | 24 | #include <qtoolbutton.h> |
25 | #include <qmenubar.h> | 25 | #include <qmenubar.h> |
26 | #include <qpopupmenu.h> | 26 | #include <qpopupmenu.h> |
27 | #include <qwidgetstack.h> | 27 | #include <qwidgetstack.h> |
28 | #include <qtimer.h> | 28 | #include <qtimer.h> |
29 | #include <qfileinfo.h> | 29 | #include <qfileinfo.h> |
30 | #include <qstring.h> | 30 | #include <qstring.h> |
31 | #include <qlineedit.h> | 31 | #include <qlineedit.h> |
32 | #include <qspinbox.h> | 32 | #include <qspinbox.h> |
33 | #include <qlayout.h> | 33 | #include <qlayout.h> |
34 | #include <qdialog.h> | 34 | #include <qdialog.h> |
35 | #include <qlabel.h> | 35 | #include <qlabel.h> |
36 | #include <qmessagebox.h> | 36 | #include <qmessagebox.h> |
37 | 37 | ||
38 | #include "qpdf.h" | 38 | #include "qpdf.h" |
39 | 39 | ||
40 | #ifdef QPDF_QPE_ONLY | 40 | #ifdef QPDF_QPE_ONLY |
41 | #include <qpe/fileselector.h> | 41 | #include <qpe/fileselector.h> |
42 | #else | 42 | #else |
43 | #include <opie/ofileselector.h> | 43 | #include <opie/ofileselector.h> |
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | 46 | ||
47 | int main ( int argc, char **argv ) | 47 | int main ( int argc, char **argv ) |
48 | { | 48 | { |
49 | QPEApplication app ( argc, argv ); | 49 | QPEApplication app ( argc, argv ); |
50 | 50 | ||
51 | // read config file | 51 | // read config file |
52 | globalParams = new GlobalParams ( "" ); | 52 | globalParams = new GlobalParams ( "" ); |
53 | globalParams-> setErrQuiet ( true ); | 53 | globalParams-> setErrQuiet ( true ); |
54 | 54 | ||
55 | QPdfDlg *dlg = new QPdfDlg ( ); | 55 | QPdfDlg *dlg = new QPdfDlg ( ); |
56 | app. showMainDocumentWidget ( dlg ); | 56 | app. showMainDocumentWidget ( dlg ); |
57 | 57 | ||
58 | if (( app. argc ( ) == 3 ) && ( app. argv ( ) [1] == QCString ( "-f" ))) | 58 | if (( app. argc ( ) == 3 ) && ( app. argv ( ) [1] == QCString ( "-f" ))) |
59 | dlg-> openFile ( app. argv ( ) [2] ); | 59 | dlg-> openFile ( app. argv ( ) [2] ); |
60 | 60 | ||
61 | return app. exec ( ); | 61 | return app. exec ( ); |
62 | } | 62 | } |
63 | 63 | ||
64 | 64 | ||
65 | QPdfDlg::QPdfDlg ( ) : QMainWindow ( ) | 65 | QPdfDlg::QPdfDlg ( ) : QMainWindow ( ) |
66 | { | 66 | { |
67 | setCaption ( tr( "QPdf" )); | 67 | setCaption ( tr( "QPdf" )); |
68 | setIcon ( Resource::loadPixmap ( "qpdf_icon" )); | 68 | setIcon ( Resource::loadPixmap ( "qpdf_icon" )); |
69 | 69 | ||
70 | m_busy = false; | 70 | m_busy = false; |
71 | 71 | ||
72 | m_doc = 0; | 72 | m_doc = 0; |
73 | m_pages = 0; | 73 | m_pages = 0; |
74 | m_zoom = 72; | 74 | m_zoom = 72; |
75 | m_currentpage = 0; | 75 | m_currentpage = 0; |
76 | 76 | ||
77 | m_fullscreen = false; | 77 | m_fullscreen = false; |
78 | m_renderok = false; | 78 | m_renderok = false; |
79 | 79 | ||
80 | 80 | ||
81 | setToolBarsMovable ( false ); | 81 | setToolBarsMovable ( false ); |
82 | 82 | ||
83 | m_stack = new QWidgetStack ( this ); | 83 | m_stack = new QWidgetStack ( this ); |
84 | m_stack-> setSizePolicy ( QSizePolicy ( QSizePolicy::Expanding, QSizePolicy::Expanding )); | 84 | m_stack-> setSizePolicy ( QSizePolicy ( QSizePolicy::Expanding, QSizePolicy::Expanding )); |
85 | setCentralWidget ( m_stack ); | 85 | setCentralWidget ( m_stack ); |
86 | 86 | ||
87 | m_outdev = new QPEOutputDev ( m_stack ); | 87 | m_outdev = new QPEOutputDev ( m_stack ); |
88 | connect ( m_outdev, SIGNAL( selectionChanged ( const QRect & )), this, SLOT( copyToClipboard ( const QRect & ))); | 88 | connect ( m_outdev, SIGNAL( selectionChanged(const QRect&)), this, SLOT( copyToClipboard(const QRect&))); |
89 | 89 | ||
90 | #ifdef QPDF_QPE_ONLY | 90 | #ifdef QPDF_QPE_ONLY |
91 | m_filesel = new FileSelector ( "application/pdf", m_stack, "fs", false, true ); | 91 | m_filesel = new FileSelector ( "application/pdf", m_stack, "fs", false, true ); |
92 | #else | 92 | #else |
93 | m_filesel = new OFileSelector ( "application/pdf", m_stack, "fs", false, true ); | 93 | m_filesel = new OFileSelector ( "application/pdf", m_stack, "fs", false, true ); |
94 | #endif | 94 | #endif |
95 | 95 | ||
96 | connect ( m_filesel, SIGNAL( closeMe ( )), this, SLOT( closeFileSelector ( ))); | 96 | connect ( m_filesel, SIGNAL( closeMe()), this, SLOT( closeFileSelector())); |
97 | connect ( m_filesel, SIGNAL( fileSelected ( const DocLnk & )), this, SLOT( openFile ( const DocLnk & ))); | 97 | connect ( m_filesel, SIGNAL( fileSelected(const DocLnk&)), this, SLOT( openFile(const DocLnk&))); |
98 | 98 | ||
99 | m_tb_menu = new QToolBar ( this ); | 99 | m_tb_menu = new QToolBar ( this ); |
100 | m_tb_menu-> setHorizontalStretchable ( true ); | 100 | m_tb_menu-> setHorizontalStretchable ( true ); |
101 | 101 | ||
102 | QMenuBar *mb = new QMenuBar ( m_tb_menu ); | 102 | QMenuBar *mb = new QMenuBar ( m_tb_menu ); |
103 | 103 | ||
104 | m_pm_zoom = new QPopupMenu ( mb ); | 104 | m_pm_zoom = new QPopupMenu ( mb ); |
105 | m_pm_zoom-> setCheckable ( true ); | 105 | m_pm_zoom-> setCheckable ( true ); |
106 | 106 | ||
107 | mb-> insertItem ( tr( "Zoom" ), m_pm_zoom ); | 107 | mb-> insertItem ( tr( "Zoom" ), m_pm_zoom ); |
108 | 108 | ||
109 | m_pm_zoom-> insertItem ( tr( "Fit to width" ), 1 ); | 109 | m_pm_zoom-> insertItem ( tr( "Fit to width" ), 1 ); |
110 | m_pm_zoom-> insertItem ( tr( "Fit to page" ), 2 ); | 110 | m_pm_zoom-> insertItem ( tr( "Fit to page" ), 2 ); |
111 | m_pm_zoom-> insertSeparator ( ); | 111 | m_pm_zoom-> insertSeparator ( ); |
112 | m_pm_zoom-> insertItem ( tr( "50%" ), 50 ); | 112 | m_pm_zoom-> insertItem ( tr( "50%" ), 50 ); |
113 | m_pm_zoom-> insertItem ( tr( "75%" ), 75 ); | 113 | m_pm_zoom-> insertItem ( tr( "75%" ), 75 ); |
114 | m_pm_zoom-> insertItem ( tr( "100%" ), 100 ); | 114 | m_pm_zoom-> insertItem ( tr( "100%" ), 100 ); |
115 | m_pm_zoom-> insertItem ( tr( "125%" ), 125 ); | 115 | m_pm_zoom-> insertItem ( tr( "125%" ), 125 ); |
116 | m_pm_zoom-> insertItem ( tr( "150%" ), 150 ); | 116 | m_pm_zoom-> insertItem ( tr( "150%" ), 150 ); |
117 | m_pm_zoom-> insertItem ( tr( "200%" ), 200 ); | 117 | m_pm_zoom-> insertItem ( tr( "200%" ), 200 ); |
118 | 118 | ||
119 | connect ( m_pm_zoom, SIGNAL( activated ( int )), this, SLOT( setZoom ( int ))); | 119 | connect ( m_pm_zoom, SIGNAL( activated(int)), this, SLOT( setZoom(int))); |
120 | 120 | ||
121 | m_tb_tool = new QToolBar ( this ); | 121 | m_tb_tool = new QToolBar ( this ); |
122 | 122 | ||
123 | new QToolButton ( Resource::loadIconSet ( "fileopen" ), tr( "Open..." ), QString::null, this, SLOT( openFile ( )), m_tb_tool, "open" ); | 123 | new QToolButton ( Resource::loadIconSet ( "fileopen" ), tr( "Open..." ), QString::null, this, SLOT( openFile()), m_tb_tool, "open" ); |
124 | m_tb_tool-> addSeparator ( ); | 124 | m_tb_tool-> addSeparator ( ); |
125 | m_to_find = new QToolButton ( Resource::loadIconSet ( "find" ), tr( "Find..." ), QString::null, this, SLOT( toggleFindBar ( )), m_tb_tool, "find" ); | 125 | m_to_find = new QToolButton ( Resource::loadIconSet ( "find" ), tr( "Find..." ), QString::null, this, SLOT( toggleFindBar()), m_tb_tool, "find" ); |
126 | m_to_find-> setToggleButton ( true ); | 126 | m_to_find-> setToggleButton ( true ); |
127 | m_tb_tool-> addSeparator ( ); | 127 | m_tb_tool-> addSeparator ( ); |
128 | m_to_full = new QToolButton ( Resource::loadIconSet ( "fullscreen" ), tr( "Fullscreen" ), QString::null, this, SLOT( toggleFullscreen ( )), m_tb_tool, "fullscreen" ); | 128 | m_to_full = new QToolButton ( Resource::loadIconSet ( "fullscreen" ), tr( "Fullscreen" ), QString::null, this, SLOT( toggleFullscreen()), m_tb_tool, "fullscreen" ); |
129 | m_to_full-> setToggleButton ( true ); | 129 | m_to_full-> setToggleButton ( true ); |
130 | m_tb_tool-> addSeparator ( ); | 130 | m_tb_tool-> addSeparator ( ); |
131 | new QToolButton ( Resource::loadIconSet ( "fastback" ), tr( "First page" ), QString::null, this, SLOT( firstPage ( )), m_tb_tool, "first" ); | 131 | new QToolButton ( Resource::loadIconSet ( "fastback" ), tr( "First page" ), QString::null, this, SLOT( firstPage()), m_tb_tool, "first" ); |
132 | new QToolButton ( Resource::loadIconSet ( "back" ), tr( "Previous page" ), QString::null, this, SLOT( prevPage ( )), m_tb_tool, "prev" ); | 132 | new QToolButton ( Resource::loadIconSet ( "back" ), tr( "Previous page" ), QString::null, this, SLOT( prevPage()), m_tb_tool, "prev" ); |
133 | new QToolButton ( Resource::loadIconSet ( "down" ), tr( "Goto page..." ), QString::null, this, SLOT( gotoPageDialog ( )), m_tb_tool, "goto" ); | 133 | new QToolButton ( Resource::loadIconSet ( "down" ), tr( "Goto page..." ), QString::null, this, SLOT( gotoPageDialog()), m_tb_tool, "goto" ); |
134 | new QToolButton ( Resource::loadIconSet ( "forward" ), tr( "Next page" ), QString::null, this, SLOT( nextPage ( )), m_tb_tool, "next" ); | 134 | new QToolButton ( Resource::loadIconSet ( "forward" ), tr( "Next page" ), QString::null, this, SLOT( nextPage()), m_tb_tool, "next" ); |
135 | new QToolButton ( Resource::loadIconSet ( "fastforward" ), tr( "Last page" ), QString::null, this, SLOT( lastPage ( )), m_tb_tool, "last" ); | 135 | new QToolButton ( Resource::loadIconSet ( "fastforward" ), tr( "Last page" ), QString::null, this, SLOT( lastPage()), m_tb_tool, "last" ); |
136 | 136 | ||
137 | m_tb_find = new QToolBar ( this ); | 137 | m_tb_find = new QToolBar ( this ); |
138 | addToolBar ( m_tb_find, "Search", QMainWindow::Top, true ); | 138 | addToolBar ( m_tb_find, "Search", QMainWindow::Top, true ); |
139 | m_tb_find-> setHorizontalStretchable ( true ); | 139 | m_tb_find-> setHorizontalStretchable ( true ); |
140 | m_tb_find-> hide ( ); | 140 | m_tb_find-> hide ( ); |
141 | 141 | ||
142 | m_findedit = new QLineEdit ( m_tb_find, "findedit" ); | 142 | m_findedit = new QLineEdit ( m_tb_find, "findedit" ); |
143 | m_tb_find-> setStretchableWidget ( m_findedit ); | 143 | m_tb_find-> setStretchableWidget ( m_findedit ); |
144 | connect ( m_findedit, SIGNAL( textChanged ( const QString & )), this, SLOT( findText ( const QString & ))); | 144 | connect ( m_findedit, SIGNAL( textChanged(const QString&)), this, SLOT( findText(const QString&))); |
145 | 145 | ||
146 | new QToolButton ( Resource::loadIconSet ( "next" ), tr( "Next" ), QString::null, this, SLOT( findText ( )), m_tb_find, "findnext" ); | 146 | new QToolButton ( Resource::loadIconSet ( "next" ), tr( "Next" ), QString::null, this, SLOT( findText()), m_tb_find, "findnext" ); |
147 | 147 | ||
148 | openFile ( ); | 148 | openFile ( ); |
149 | } | 149 | } |
150 | 150 | ||
151 | QPdfDlg::~QPdfDlg ( ) | 151 | QPdfDlg::~QPdfDlg ( ) |
152 | { | 152 | { |
153 | delete m_doc; | 153 | delete m_doc; |
154 | } | 154 | } |
155 | 155 | ||
156 | // vv Fullscreen handling (for broken QT-lib) [David Hedbor, www.eongames.com] | 156 | // vv Fullscreen handling (for broken QT-lib) [David Hedbor, www.eongames.com] |
157 | 157 | ||
158 | void QPdfDlg::resizeEvent ( QResizeEvent * ) | 158 | void QPdfDlg::resizeEvent ( QResizeEvent * ) |
159 | { | 159 | { |
160 | if ( m_fullscreen && ( size ( ) != qApp-> desktop ( )-> size ( ))) | 160 | if ( m_fullscreen && ( size ( ) != qApp-> desktop ( )-> size ( ))) |
161 | setFullscreen ( true ); | 161 | setFullscreen ( true ); |
162 | } | 162 | } |
163 | 163 | ||
164 | void QPdfDlg::focusInEvent ( QFocusEvent * ) | 164 | void QPdfDlg::focusInEvent ( QFocusEvent * ) |
165 | { | 165 | { |
166 | if ( m_fullscreen ) | 166 | if ( m_fullscreen ) |
167 | setFullscreen ( true ); | 167 | setFullscreen ( true ); |
168 | } | 168 | } |
169 | 169 | ||
170 | void QPdfDlg::toggleFullscreen ( ) | 170 | void QPdfDlg::toggleFullscreen ( ) |
171 | { | 171 | { |
172 | if ( m_to_full-> isOn ( ) == m_fullscreen ) | 172 | if ( m_to_full-> isOn ( ) == m_fullscreen ) |
173 | m_to_full-> setOn ( !m_fullscreen ); | 173 | m_to_full-> setOn ( !m_fullscreen ); |
174 | 174 | ||
175 | m_fullscreen = !m_fullscreen; | 175 | m_fullscreen = !m_fullscreen; |
176 | setFullscreen ( m_fullscreen ); | 176 | setFullscreen ( m_fullscreen ); |
177 | } | 177 | } |
178 | 178 | ||
179 | void QPdfDlg::setFullscreen ( bool b ) | 179 | void QPdfDlg::setFullscreen ( bool b ) |
180 | { | 180 | { |
181 | static QSize normalsize; | 181 | static QSize normalsize; |
182 | 182 | ||
183 | if ( b ) { | 183 | if ( b ) { |
184 | if ( !normalsize. isValid ( )) | 184 | if ( !normalsize. isValid ( )) |
185 | normalsize = size ( ); | 185 | normalsize = size ( ); |
186 | 186 | ||
187 | setFixedSize ( qApp-> desktop ( )-> size ( )); | 187 | setFixedSize ( qApp-> desktop ( )-> size ( )); |
188 | showNormal ( ); | 188 | showNormal ( ); |
189 | reparent ( 0, WStyle_Customize | WStyle_NoBorder, QPoint ( 0, 0 )); | 189 | reparent ( 0, WStyle_Customize | WStyle_NoBorder, QPoint ( 0, 0 )); |
190 | showFullScreen ( ); | 190 | showFullScreen ( ); |
191 | } | 191 | } |
192 | else { | 192 | else { |
193 | showNormal ( ); | 193 | showNormal ( ); |
194 | reparent ( 0, 0, QPoint ( 0, 0 )); | 194 | reparent ( 0, 0, QPoint ( 0, 0 )); |
195 | resize ( normalsize ); | 195 | resize ( normalsize ); |
196 | showMaximized ( ); | 196 | showMaximized ( ); |
197 | normalsize = QSize ( ); | 197 | normalsize = QSize ( ); |
198 | } | 198 | } |
199 | } | 199 | } |
200 | 200 | ||
201 | // ^^ Fullscreen handling (for broken QT-lib) | 201 | // ^^ Fullscreen handling (for broken QT-lib) |
202 | 202 | ||
203 | void QPdfDlg::setBusy ( bool b ) | 203 | void QPdfDlg::setBusy ( bool b ) |
204 | { | 204 | { |
205 | if ( b != m_busy ) { | 205 | if ( b != m_busy ) { |
206 | m_busy = b; | 206 | m_busy = b; |
207 | 207 | ||
208 | m_outdev-> setBusy ( m_busy ); | 208 | m_outdev-> setBusy ( m_busy ); |
209 | setEnabled ( !m_busy ); | 209 | setEnabled ( !m_busy ); |
210 | } | 210 | } |
211 | } | 211 | } |
212 | 212 | ||
213 | bool QPdfDlg::busy ( ) const | 213 | bool QPdfDlg::busy ( ) const |
214 | { | 214 | { |
215 | return m_busy; | 215 | return m_busy; |
216 | } | 216 | } |
217 | 217 | ||
218 | 218 | ||
219 | void QPdfDlg::updateCaption ( ) | 219 | void QPdfDlg::updateCaption ( ) |
220 | { | 220 | { |
221 | QString cap = ""; | 221 | QString cap = ""; |
222 | 222 | ||
223 | if ( !m_currentdoc. isEmpty ( )) | 223 | if ( !m_currentdoc. isEmpty ( )) |
224 | cap = QString ( "%1 - " ). arg ( m_currentdoc ); | 224 | cap = QString ( "%1 - " ). arg ( m_currentdoc ); |
225 | cap += "QPdf"; | 225 | cap += "QPdf"; |
226 | 226 | ||
227 | setCaption ( cap ); | 227 | setCaption ( cap ); |
228 | } | 228 | } |
229 | 229 | ||
230 | 230 | ||
231 | void QPdfDlg::setZoom ( int id ) | 231 | void QPdfDlg::setZoom ( int id ) |
232 | { | 232 | { |
233 | int dpi = 0; | 233 | int dpi = 0; |
234 | 234 | ||
235 | switch ( id ) { | 235 | switch ( id ) { |
236 | case 1: | 236 | case 1: |
237 | if ( m_doc && m_doc-> isOk ( )) | 237 | if ( m_doc && m_doc-> isOk ( )) |
238 | dpi = m_outdev-> visibleWidth ( ) * 72 / m_doc-> getPageWidth ( m_currentpage ); | 238 | dpi = m_outdev-> visibleWidth ( ) * 72 / m_doc-> getPageWidth ( m_currentpage ); |
239 | break; | 239 | break; |
240 | 240 | ||
241 | case 2: | 241 | case 2: |
242 | if ( m_doc && m_doc-> isOk ( )) | 242 | if ( m_doc && m_doc-> isOk ( )) |
@@ -402,139 +402,139 @@ void QPdfDlg::copyToClipboard ( const QRect &r ) | |||
402 | qApp-> clipboard ( )-> setText ( m_outdev-> getText ( r )); | 402 | qApp-> clipboard ( )-> setText ( m_outdev-> getText ( r )); |
403 | } | 403 | } |
404 | 404 | ||
405 | void QPdfDlg::firstPage ( ) | 405 | void QPdfDlg::firstPage ( ) |
406 | { | 406 | { |
407 | gotoPage ( 1 ); | 407 | gotoPage ( 1 ); |
408 | } | 408 | } |
409 | 409 | ||
410 | void QPdfDlg::prevPage ( ) | 410 | void QPdfDlg::prevPage ( ) |
411 | { | 411 | { |
412 | gotoPage ( m_currentpage - 1 ); | 412 | gotoPage ( m_currentpage - 1 ); |
413 | } | 413 | } |
414 | 414 | ||
415 | void QPdfDlg::nextPage ( ) | 415 | void QPdfDlg::nextPage ( ) |
416 | { | 416 | { |
417 | gotoPage ( m_currentpage + 1 ); | 417 | gotoPage ( m_currentpage + 1 ); |
418 | } | 418 | } |
419 | 419 | ||
420 | void QPdfDlg::lastPage ( ) | 420 | void QPdfDlg::lastPage ( ) |
421 | { | 421 | { |
422 | gotoPage ( m_pages ); | 422 | gotoPage ( m_pages ); |
423 | } | 423 | } |
424 | 424 | ||
425 | void QPdfDlg::gotoPage ( int n ) | 425 | void QPdfDlg::gotoPage ( int n ) |
426 | { | 426 | { |
427 | if ( n < 1 ) | 427 | if ( n < 1 ) |
428 | n = 1; | 428 | n = 1; |
429 | if ( n > m_pages ) | 429 | if ( n > m_pages ) |
430 | n = m_pages; | 430 | n = m_pages; |
431 | 431 | ||
432 | if ( n != m_currentpage ) { | 432 | if ( n != m_currentpage ) { |
433 | m_currentpage = n; | 433 | m_currentpage = n; |
434 | 434 | ||
435 | renderPage ( ); | 435 | renderPage ( ); |
436 | } | 436 | } |
437 | } | 437 | } |
438 | 438 | ||
439 | void QPdfDlg::renderPage ( ) | 439 | void QPdfDlg::renderPage ( ) |
440 | { | 440 | { |
441 | if ( m_renderok && m_doc && m_doc-> isOk ( )) { | 441 | if ( m_renderok && m_doc && m_doc-> isOk ( )) { |
442 | m_renderok = false; | 442 | m_renderok = false; |
443 | 443 | ||
444 | setBusy ( true ); | 444 | setBusy ( true ); |
445 | m_doc-> displayPage ( m_outdev, m_currentpage, m_zoom, 0, true ); | 445 | m_doc-> displayPage ( m_outdev, m_currentpage, m_zoom, 0, true ); |
446 | setBusy ( false ); | 446 | setBusy ( false ); |
447 | 447 | ||
448 | m_outdev-> setPageCount ( m_currentpage, m_pages ); | 448 | m_outdev-> setPageCount ( m_currentpage, m_pages ); |
449 | 449 | ||
450 | m_renderok = true; | 450 | m_renderok = true; |
451 | } | 451 | } |
452 | } | 452 | } |
453 | 453 | ||
454 | void QPdfDlg::closeFileSelector ( ) | 454 | void QPdfDlg::closeFileSelector ( ) |
455 | { | 455 | { |
456 | m_tb_menu-> show ( ); | 456 | m_tb_menu-> show ( ); |
457 | m_tb_tool-> show ( ); | 457 | m_tb_tool-> show ( ); |
458 | m_stack-> raiseWidget ( m_outdev ); | 458 | m_stack-> raiseWidget ( m_outdev ); |
459 | } | 459 | } |
460 | 460 | ||
461 | void QPdfDlg::openFile ( ) | 461 | void QPdfDlg::openFile ( ) |
462 | { | 462 | { |
463 | m_tb_menu-> hide ( ); | 463 | m_tb_menu-> hide ( ); |
464 | m_tb_tool-> hide ( ); | 464 | m_tb_tool-> hide ( ); |
465 | m_tb_find-> hide ( ); | 465 | m_tb_find-> hide ( ); |
466 | m_stack-> raiseWidget ( m_filesel ); | 466 | m_stack-> raiseWidget ( m_filesel ); |
467 | } | 467 | } |
468 | 468 | ||
469 | void QPdfDlg::openFile ( const QString &f ) | 469 | void QPdfDlg::openFile ( const QString &f ) |
470 | { | 470 | { |
471 | DocLnk nf; | 471 | DocLnk nf; |
472 | nf. setType ( "application/pdf" ); | 472 | nf. setType ( "application/pdf" ); |
473 | nf. setFile ( f ); | 473 | nf. setFile ( f ); |
474 | QFileInfo fi ( f ); | 474 | QFileInfo fi ( f ); |
475 | nf. setName ( fi. baseName ( )); | 475 | nf. setName ( fi. baseName ( )); |
476 | openFile ( nf ); | 476 | openFile ( nf ); |
477 | } | 477 | } |
478 | 478 | ||
479 | void QPdfDlg::openFile ( const DocLnk &f ) | 479 | void QPdfDlg::openFile ( const DocLnk &f ) |
480 | { | 480 | { |
481 | QString fn = f. file ( ); | 481 | QString fn = f. file ( ); |
482 | QFileInfo fi ( fn ); | 482 | QFileInfo fi ( fn ); |
483 | 483 | ||
484 | if ( fi. exists ( )) { | 484 | if ( fi. exists ( )) { |
485 | delete m_doc; | 485 | delete m_doc; |
486 | 486 | ||
487 | m_doc = new PDFDoc ( new GString ( fn. local8Bit ( )), 0, 0 ); | 487 | m_doc = new PDFDoc ( new GString ( fn. local8Bit ( )), 0, 0 ); |
488 | 488 | ||
489 | if ( m_doc-> isOk ( )) { | 489 | if ( m_doc-> isOk ( )) { |
490 | m_currentdoc = f. name ( ); | 490 | m_currentdoc = f. name ( ); |
491 | int sep = m_currentdoc. findRev ( '/' ); | 491 | int sep = m_currentdoc. findRev ( '/' ); |
492 | if ( sep > 0 ) | 492 | if ( sep > 0 ) |
493 | m_currentdoc = m_currentdoc. mid ( sep + 1 ); | 493 | m_currentdoc = m_currentdoc. mid ( sep + 1 ); |
494 | 494 | ||
495 | m_pages = m_doc-> getNumPages ( ); | 495 | m_pages = m_doc-> getNumPages ( ); |
496 | m_currentpage = 0; | 496 | m_currentpage = 0; |
497 | 497 | ||
498 | QTimer::singleShot ( 0, this, SLOT( delayedInit ( ))); | 498 | QTimer::singleShot ( 0, this, SLOT( delayedInit())); |
499 | } | 499 | } |
500 | else { | 500 | else { |
501 | delete m_doc; | 501 | delete m_doc; |
502 | m_doc = 0; | 502 | m_doc = 0; |
503 | 503 | ||
504 | m_currentdoc = QString::null; | 504 | m_currentdoc = QString::null; |
505 | } | 505 | } |
506 | 506 | ||
507 | updateCaption ( ); | 507 | updateCaption ( ); |
508 | } | 508 | } |
509 | else | 509 | else |
510 | QMessageBox::warning ( this, tr( "Error" ), tr( "File does not exist!" )); | 510 | QMessageBox::warning ( this, tr( "Error" ), tr( "File does not exist!" )); |
511 | } | 511 | } |
512 | 512 | ||
513 | void QPdfDlg::setDocument ( const QString &f ) | 513 | void QPdfDlg::setDocument ( const QString &f ) |
514 | { | 514 | { |
515 | if ( f. find ( ".desktop", 0, true ) == -1 ) | 515 | if ( f. find ( ".desktop", 0, true ) == -1 ) |
516 | openFile ( f ); | 516 | openFile ( f ); |
517 | else | 517 | else |
518 | openFile ( DocLnk ( f )); | 518 | openFile ( DocLnk ( f )); |
519 | 519 | ||
520 | closeFileSelector ( ); | 520 | closeFileSelector ( ); |
521 | } | 521 | } |
522 | 522 | ||
523 | void QPdfDlg::delayedInit ( ) | 523 | void QPdfDlg::delayedInit ( ) |
524 | { | 524 | { |
525 | closeFileSelector ( ); | 525 | closeFileSelector ( ); |
526 | 526 | ||
527 | m_currentpage = 0; | 527 | m_currentpage = 0; |
528 | m_zoom = 0; | 528 | m_zoom = 0; |
529 | m_renderok = false; | 529 | m_renderok = false; |
530 | 530 | ||
531 | setZoom ( 100 ); | 531 | setZoom ( 100 ); |
532 | gotoPage ( 1 ); | 532 | gotoPage ( 1 ); |
533 | 533 | ||
534 | m_renderok = true; | 534 | m_renderok = true; |
535 | 535 | ||
536 | renderPage ( ); | 536 | renderPage ( ); |
537 | 537 | ||
538 | m_outdev-> setFocus ( ); | 538 | m_outdev-> setFocus ( ); |
539 | } | 539 | } |
540 | 540 | ||