author | mickeyl <mickeyl> | 2003-10-29 18:18:19 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-10-29 18:18:19 (UTC) |
commit | 1af1f1d9f398d38a2bc666cd2edff5725da7a770 (patch) (unidiff) | |
tree | b3bb0d90cafc1e933b5b9297a7b2669ce3b184ea | |
parent | 35615947e11575a61456c8483e7f6d67fe59d5ed (diff) | |
download | opie-1af1f1d9f398d38a2bc666cd2edff5725da7a770.zip opie-1af1f1d9f398d38a2bc666cd2edff5725da7a770.tar.gz opie-1af1f1d9f398d38a2bc666cd2edff5725da7a770.tar.bz2 |
mrege noncore/net/*
42 files changed, 1626 insertions, 791 deletions
diff --git a/noncore/net/mailit/emailclient.cpp b/noncore/net/mailit/emailclient.cpp index 90664bb..8359acf 100644 --- a/noncore/net/mailit/emailclient.cpp +++ b/noncore/net/mailit/emailclient.cpp | |||
@@ -1,1042 +1,1042 @@ | |||
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(), "No account selected", "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 | } |
320 | 320 | ||
321 | void EmailClient::getNewMail() { | 321 | void EmailClient::getNewMail() { |
322 | 322 | ||
323 | if (accountList.count() == 0) { | 323 | if (accountList.count() == 0) { |
324 | QMessageBox::warning(qApp->activeWindow(),"No account selected", | 324 | QMessageBox::warning(qApp->activeWindow(),tr("No account selected"), |
325 | "You must create an account", "OK\n"); | 325 | tr("You must create an account"), "OK\n"); |
326 | return; | 326 | return; |
327 | } | 327 | } |
328 | 328 | ||
329 | setMailAccount(); | 329 | setMailAccount(); |
330 | 330 | ||
331 | receiving = TRUE; | 331 | receiving = TRUE; |
332 | previewingMail = TRUE; | 332 | previewingMail = TRUE; |
333 | getMailButton->setEnabled(FALSE); | 333 | getMailButton->setEnabled(FALSE); |
334 | cancelButton->setEnabled(TRUE); | 334 | cancelButton->setEnabled(TRUE); |
335 | selectAccountMenu->setEnabled(FALSE); | 335 | selectAccountMenu->setEnabled(FALSE); |
336 | 336 | ||
337 | status1Label->setText(currentAccount->accountName + " headers"); | 337 | status1Label->setText(currentAccount->accountName + " headers"); |
338 | progressBar->reset(); | 338 | progressBar->reset(); |
339 | 339 | ||
340 | //get any previous mails not downloaded and add to queue | 340 | //get any previous mails not downloaded and add to queue |
341 | /*mailDownloadList.clear(); | 341 | /*mailDownloadList.clear(); |
342 | Email *mailPtr; | 342 | Email *mailPtr; |
343 | item = (EmailListItem *) inboxView->firstChild(); | 343 | item = (EmailListItem *) inboxView->firstChild(); |
344 | while (item != NULL) { | 344 | while (item != NULL) { |
345 | mailPtr = item->getMail(); | 345 | mailPtr = item->getMail(); |
346 | if ( (!mailPtr->downloaded) && (mailPtr->fromAccountId == currentAccount->id) ) { | 346 | if ( (!mailPtr->downloaded) && (mailPtr->fromAccountId == currentAccount->id) ) { |
347 | mailDownloadList.sizeInsert(mailPtr->serverId, mailPtr->size); | 347 | mailDownloadList.sizeInsert(mailPtr->serverId, mailPtr->size); |
348 | } | 348 | } |
349 | item = (EmailListItem *) item->nextSibling(); | 349 | item = (EmailListItem *) item->nextSibling(); |
350 | }*/ | 350 | }*/ |
351 | 351 | ||
352 | emailHandler->getMailHeaders(); | 352 | emailHandler->getMailHeaders(); |
353 | 353 | ||
354 | } | 354 | } |
355 | 355 | ||
356 | void EmailClient::getAllNewMail() | 356 | void EmailClient::getAllNewMail() |
357 | { | 357 | { |
358 | allAccounts = TRUE; | 358 | allAccounts = TRUE; |
359 | currentAccount = accountList.first(); | 359 | currentAccount = accountList.first(); |
360 | getNewMail(); | 360 | getNewMail(); |
361 | } | 361 | } |
362 | 362 | ||
363 | void EmailClient::mailArrived(const Email &mail, bool fromDisk) | 363 | void EmailClient::mailArrived(const Email &mail, bool fromDisk) |
364 | { | 364 | { |
365 | Enclosure *ePtr; | 365 | Enclosure *ePtr; |
366 | Email newMail; | 366 | Email newMail; |
367 | int thisMailId; | 367 | int thisMailId; |
368 | emailHandler->parse( mail.rawMail, lineShift, &newMail); | 368 | emailHandler->parse( mail.rawMail, lineShift, &newMail); |
369 | mailconf->setGroup(newMail.id); | 369 | mailconf->setGroup(newMail.id); |
370 | 370 | ||
371 | if (fromDisk) | 371 | if (fromDisk) |
372 | { | 372 | { |
373 | 373 | ||
374 | newMail.downloaded = mailconf->readBoolEntry("downloaded"); | 374 | newMail.downloaded = mailconf->readBoolEntry("downloaded"); |
375 | newMail.size = mailconf->readNumEntry("size"); | 375 | newMail.size = mailconf->readNumEntry("size"); |
376 | newMail.serverId = mailconf->readNumEntry("serverid"); | 376 | newMail.serverId = mailconf->readNumEntry("serverid"); |
377 | newMail.fromAccountId = mailconf->readNumEntry("fromaccountid"); | 377 | newMail.fromAccountId = mailconf->readNumEntry("fromaccountid"); |
378 | } | 378 | } |
379 | else | 379 | else |
380 | { //mail arrived from server | 380 | { //mail arrived from server |
381 | 381 | ||
382 | newMail.serverId = mail.serverId; | 382 | newMail.serverId = mail.serverId; |
383 | newMail.size = mail.size; | 383 | newMail.size = mail.size; |
384 | newMail.downloaded = mail.downloaded; | 384 | newMail.downloaded = mail.downloaded; |
385 | 385 | ||
386 | newMail.fromAccountId = emailHandler->getAccount()->id; | 386 | newMail.fromAccountId = emailHandler->getAccount()->id; |
387 | mailconf->writeEntry("fromaccountid", newMail.fromAccountId); | 387 | mailconf->writeEntry("fromaccountid", newMail.fromAccountId); |
388 | } | 388 | } |
389 | 389 | ||
390 | //add if read or not | 390 | //add if read or not |
391 | newMail.read = mailconf->readBoolEntry("mailread"); | 391 | newMail.read = mailconf->readBoolEntry("mailread"); |
392 | 392 | ||
393 | //check if new mail | 393 | //check if new mail |
394 | if ( (thisMailId = mailconf->readNumEntry("internalmailid", -1)) == -1) { | 394 | if ( (thisMailId = mailconf->readNumEntry("internalmailid", -1)) == -1) { |
395 | thisMailId = mailIdCount; | 395 | thisMailId = mailIdCount; |
396 | mailIdCount++; | 396 | mailIdCount++; |
397 | 397 | ||
398 | //set server count, so that if the user aborts, the new | 398 | //set server count, so that if the user aborts, the new |
399 | //header is not reloaded | 399 | //header is not reloaded |
400 | if ((currentAccount)&&(currentAccount->synchronize)) | 400 | if ((currentAccount)&&(currentAccount->synchronize)) |
401 | currentAccount->lastServerMailCount++; | 401 | currentAccount->lastServerMailCount++; |
402 | 402 | ||
403 | mailconf->writeEntry("internalmailid", thisMailId); | 403 | mailconf->writeEntry("internalmailid", thisMailId); |
404 | mailconf->writeEntry("downloaded", newMail.downloaded); | 404 | mailconf->writeEntry("downloaded", newMail.downloaded); |
405 | mailconf->writeEntry("size", (int) newMail.size); | 405 | mailconf->writeEntry("size", (int) newMail.size); |
406 | mailconf->writeEntry("serverid", newMail.serverId); | 406 | mailconf->writeEntry("serverid", newMail.serverId); |
407 | 407 | ||
408 | //addressList->addContact(newMail.fromMail, newMail.from); | 408 | //addressList->addContact(newMail.fromMail, newMail.from); |
409 | } | 409 | } |
410 | 410 | ||
411 | mailconf->writeEntry("downloaded", newMail.downloaded); | 411 | mailconf->writeEntry("downloaded", newMail.downloaded); |
412 | 412 | ||
413 | QString stringMailId; | 413 | QString stringMailId; |
414 | stringMailId.setNum(thisMailId); | 414 | stringMailId.setNum(thisMailId); |
415 | //see if any attatchments needs to be stored | 415 | //see if any attatchments needs to be stored |
416 | 416 | ||
417 | for ( ePtr=newMail.files.first(); ePtr != 0; ePtr=newMail.files.next() ) { | 417 | for ( ePtr=newMail.files.first(); ePtr != 0; ePtr=newMail.files.next() ) { |
418 | QString stringId; | 418 | QString stringId; |
419 | stringId.setNum(ePtr->id); | 419 | stringId.setNum(ePtr->id); |
420 | 420 | ||
421 | int id = mailconf->readNumEntry("enclosureid_" + stringId); | 421 | int id = mailconf->readNumEntry("enclosureid_" + stringId); |
422 | if (id != ePtr->id) { //new entry | 422 | if (id != ePtr->id) { //new entry |
423 | mailconf->writeEntry("enclosureid_" + stringId, ePtr->id); | 423 | mailconf->writeEntry("enclosureid_" + stringId, ePtr->id); |
424 | mailconf->writeEntry("name_" + stringId, ePtr->originalName); | 424 | mailconf->writeEntry("name_" + stringId, ePtr->originalName); |
425 | mailconf->writeEntry("contenttype_" + stringId, ePtr->contentType); | 425 | mailconf->writeEntry("contenttype_" + stringId, ePtr->contentType); |
426 | mailconf->writeEntry("contentattribute_" + stringId, ePtr->contentAttribute); | 426 | mailconf->writeEntry("contentattribute_" + stringId, ePtr->contentAttribute); |
427 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); | 427 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); |
428 | mailconf->writeEntry("installed_" + stringId, FALSE); | 428 | mailconf->writeEntry("installed_" + stringId, FALSE); |
429 | 429 | ||
430 | ePtr->name = stringMailId + "_" + stringId; | 430 | ePtr->name = stringMailId + "_" + stringId; |
431 | ePtr->path = getPath(TRUE); | 431 | ePtr->path = getPath(TRUE); |
432 | if (emailHandler->getEnclosure(ePtr)) { //file saved | 432 | if (emailHandler->getEnclosure(ePtr)) { //file saved |
433 | ePtr->saved = TRUE; | 433 | ePtr->saved = TRUE; |
434 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); | 434 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); |
435 | mailconf->writeEntry("filename_" + stringId, ePtr->name); | 435 | mailconf->writeEntry("filename_" + stringId, ePtr->name); |
436 | mailconf->writeEntry("path_" + stringId, ePtr->path); | 436 | mailconf->writeEntry("path_" + stringId, ePtr->path); |
437 | } else { | 437 | } else { |
438 | ePtr->saved = FALSE; | 438 | ePtr->saved = FALSE; |
439 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); | 439 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); |
440 | } | 440 | } |
441 | } else { | 441 | } else { |
442 | ePtr->saved = mailconf->readBoolEntry("saved_" + stringId); | 442 | ePtr->saved = mailconf->readBoolEntry("saved_" + stringId); |
443 | ePtr->installed = mailconf->readBoolEntry("installed_" + stringId); | 443 | ePtr->installed = mailconf->readBoolEntry("installed_" + stringId); |
444 | if (ePtr->saved) { | 444 | if (ePtr->saved) { |
445 | ePtr->name = mailconf->readEntry("filename_" + stringId); | 445 | ePtr->name = mailconf->readEntry("filename_" + stringId); |
446 | ePtr->path = mailconf->readEntry("path_" + stringId); | 446 | ePtr->path = mailconf->readEntry("path_" + stringId); |
447 | } | 447 | } |
448 | } | 448 | } |
449 | } | 449 | } |
450 | 450 | ||
451 | bool found=false; | 451 | bool found=false; |
452 | 452 | ||
453 | if (!fromDisk) | 453 | if (!fromDisk) |
454 | { | 454 | { |
455 | 455 | ||
456 | Email *mailPtr; | 456 | Email *mailPtr; |
457 | item = (EmailListItem *) inboxView->firstChild(); | 457 | item = (EmailListItem *) inboxView->firstChild(); |
458 | while ((item != NULL)&&(!found)) | 458 | while ((item != NULL)&&(!found)) |
459 | { | 459 | { |
460 | mailPtr = item->getMail(); | 460 | mailPtr = item->getMail(); |
461 | if (mailPtr->id == newMail.id) { | 461 | if (mailPtr->id == newMail.id) { |
462 | item->setMail(newMail); | 462 | item->setMail(newMail); |
463 | emit mailUpdated(item->getMail()); | 463 | emit mailUpdated(item->getMail()); |
464 | found = true; | 464 | found = true; |
465 | } | 465 | } |
466 | item = (EmailListItem *) item->nextSibling(); | 466 | item = (EmailListItem *) item->nextSibling(); |
467 | } | 467 | } |
468 | } | 468 | } |
469 | if ((!found)||(fromDisk)) { | 469 | if ((!found)||(fromDisk)) { |
470 | item = new EmailListItem(inboxView, newMail, TRUE); | 470 | item = new EmailListItem(inboxView, newMail, TRUE); |
471 | } | 471 | } |
472 | // if (item->getMail()->files.count()>0) | 472 | // if (item->getMail()->files.count()>0) |
473 | // { | 473 | // { |
474 | // item->setPixmap(0, Resource::loadPixmap("mailit/attach")); | 474 | // item->setPixmap(0, Resource::loadPixmap("mailit/attach")); |
475 | // } | 475 | // } |
476 | /*if (!newMail.downloaded) | 476 | /*if (!newMail.downloaded) |
477 | mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ | 477 | mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ |
478 | 478 | ||
479 | mailboxView->setCurrentTab(0); | 479 | mailboxView->setCurrentTab(0); |
480 | 480 | ||
481 | } | 481 | } |
482 | 482 | ||
483 | void EmailClient::allMailArrived(int /*count*/) | 483 | void EmailClient::allMailArrived(int /*count*/) |
484 | { | 484 | { |
485 | // not previewing means all mailtransfer has been done | 485 | // not previewing means all mailtransfer has been done |
486 | /*if (!previewingMail) {*/ | 486 | /*if (!previewingMail) {*/ |
487 | if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { | 487 | if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { |
488 | emit newCaption("Mailit - " + currentAccount->accountName); | 488 | emit newCaption("Mailit - " + currentAccount->accountName); |
489 | getNewMail(); | 489 | getNewMail(); |
490 | return; | 490 | return; |
491 | } else { | 491 | } else { |
492 | allAccounts = FALSE; | 492 | allAccounts = FALSE; |
493 | receiving = FALSE; | 493 | receiving = FALSE; |
494 | getMailButton->setEnabled(TRUE); | 494 | getMailButton->setEnabled(TRUE); |
495 | cancelButton->setEnabled(FALSE); | 495 | cancelButton->setEnabled(FALSE); |
496 | selectAccountMenu->setEnabled(TRUE); | 496 | selectAccountMenu->setEnabled(TRUE); |
497 | status1Label->setText("Idle"); | 497 | status1Label->setText("Idle"); |
498 | 498 | ||
499 | progressBar->reset(); | 499 | progressBar->reset(); |
500 | return; | 500 | return; |
501 | } | 501 | } |
502 | //} | 502 | //} |
503 | 503 | ||
504 | // all headers downloaded from server, start downloading remaining mails | 504 | // all headers downloaded from server, start downloading remaining mails |
505 | previewingMail = FALSE; | 505 | previewingMail = FALSE; |
506 | status1Label->setText(currentAccount->accountName); | 506 | status1Label->setText(currentAccount->accountName); |
507 | progressBar->reset(); | 507 | progressBar->reset(); |
508 | 508 | ||
509 | 509 | ||
510 | mailboxView->setCurrentTab(0); | 510 | mailboxView->setCurrentTab(0); |
511 | } | 511 | } |
512 | 512 | ||
513 | 513 | ||
514 | void EmailClient::moveMailFront(Email *mailPtr) | 514 | void EmailClient::moveMailFront(Email *mailPtr) |
515 | { | 515 | { |
516 | if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) { | 516 | if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) { |
517 | mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size); | 517 | mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size); |
518 | } | 518 | } |
519 | } | 519 | } |
520 | 520 | ||
521 | void EmailClient::smtpError(int code, const QString & Msg) | 521 | void EmailClient::smtpError(int code, const QString & Msg) |
522 | { | 522 | { |
523 | QString temp; | 523 | QString temp; |
524 | 524 | ||
525 | if (code == ErrUnknownResponse) { | 525 | if (code == ErrUnknownResponse) { |
526 | temp = tr("<qt>Unknown response from server</qt>"); | 526 | temp = tr("<qt>Unknown response from server</qt>"); |
527 | if( ! Msg.isEmpty() ) | 527 | if( ! Msg.isEmpty() ) |
528 | temp += Msg; | 528 | temp += Msg; |
529 | } else if (code == QSocket::ErrHostNotFound) { | 529 | } else if (code == QSocket::ErrHostNotFound) { |
530 | temp = tr("<qt>host not found</qt>"); | 530 | temp = tr("<qt>host not found</qt>"); |
531 | } else if (code == QSocket::ErrConnectionRefused) { | 531 | } else if (code == QSocket::ErrConnectionRefused) { |
532 | temp = tr("<qt>connection refused</qt>"); | 532 | temp = tr("<qt>connection refused</qt>"); |
533 | } else if (code == QSocket::ErrSocketRead) { | 533 | } else if (code == QSocket::ErrSocketRead) { |
534 | temp = tr("<qt>socket packet error</qt>"); | 534 | temp = tr("<qt>socket packet error</qt>"); |
535 | } | 535 | } |
536 | 536 | ||
537 | if (code != ErrCancel) { | 537 | if (code != ErrCancel) { |
538 | QMessageBox::warning(qApp->activeWindow(), "Sending error", temp, "OK\n"); | 538 | QMessageBox::warning(qApp->activeWindow(), "Sending error", temp, "OK\n"); |
539 | } else { | 539 | } else { |
540 | status2Label->setText("Aborted by user"); | 540 | status2Label->setText("Aborted by user"); |
541 | } | 541 | } |
542 | 542 | ||
543 | sending = FALSE; | 543 | sending = FALSE; |
544 | sendMailButton->setEnabled(TRUE); | 544 | sendMailButton->setEnabled(TRUE); |
545 | cancelButton->setEnabled(FALSE); | 545 | cancelButton->setEnabled(FALSE); |
546 | quedMessages.clear(); | 546 | quedMessages.clear(); |
547 | } | 547 | } |
548 | 548 | ||
549 | void EmailClient::popError(int code, const QString & Msg) | 549 | void EmailClient::popError(int code, const QString & Msg) |
550 | { | 550 | { |
551 | QString temp; | 551 | QString temp; |
552 | 552 | ||
553 | if (code == ErrUnknownResponse) { | 553 | if (code == ErrUnknownResponse) { |
554 | temp = tr("<qt>Unknown response from server</qt>"); | 554 | temp = tr("<qt>Unknown response from server</qt>"); |
555 | if( ! Msg.isEmpty() ) | 555 | if( ! Msg.isEmpty() ) |
556 | temp += Msg; | 556 | temp += Msg; |
557 | } else if (code == ErrLoginFailed) { | 557 | } else if (code == ErrLoginFailed) { |
558 | temp = tr("<qt>Login failed\nCheck user name and password</qt>"); | 558 | temp = tr("<qt>Login failed\nCheck user name and password</qt>"); |
559 | } else if (code == QSocket::ErrHostNotFound) { | 559 | } else if (code == QSocket::ErrHostNotFound) { |
560 | temp = tr("<qt>host not found</qt>"); | 560 | temp = tr("<qt>host not found</qt>"); |
561 | } else if (code == QSocket::ErrConnectionRefused) { | 561 | } else if (code == QSocket::ErrConnectionRefused) { |
562 | temp = tr("<qt>connection refused</qt>"); | 562 | temp = tr("<qt>connection refused</qt>"); |
563 | } else if (code == QSocket::ErrSocketRead) { | 563 | } else if (code == QSocket::ErrSocketRead) { |
564 | temp = tr("<qt>socket packet error</qt>"); | 564 | temp = tr("<qt>socket packet error</qt>"); |
565 | } | 565 | } |
566 | 566 | ||
567 | if (code != ErrCancel) { | 567 | if (code != ErrCancel) { |
568 | QMessageBox::warning(qApp->activeWindow(), tr("Receiving error"), temp, tr("OK\n")); | 568 | QMessageBox::warning(qApp->activeWindow(), tr("Receiving error"), temp, tr("OK\n")); |
569 | 569 | ||
570 | } else { | 570 | } else { |
571 | status2Label->setText("Aborted by user"); | 571 | status2Label->setText("Aborted by user"); |
572 | } | 572 | } |
573 | 573 | ||
574 | receiving = FALSE; | 574 | receiving = FALSE; |
575 | getMailButton->setEnabled(TRUE); | 575 | getMailButton->setEnabled(TRUE); |
576 | cancelButton->setEnabled(FALSE); | 576 | cancelButton->setEnabled(FALSE); |
577 | selectAccountMenu->setEnabled(TRUE); | 577 | selectAccountMenu->setEnabled(TRUE); |
578 | } | 578 | } |
579 | 579 | ||
580 | void EmailClient::inboxItemSelected() | 580 | void EmailClient::inboxItemSelected() |
581 | { | 581 | { |
582 | //killTimer(timerID); | 582 | //killTimer(timerID); |
583 | 583 | ||
584 | item = (EmailListItem*) inboxView->selectedItem(); | 584 | item = (EmailListItem*) inboxView->selectedItem(); |
585 | if (item != NULL) { | 585 | if (item != NULL) { |
586 | emit viewEmail(inboxView, item->getMail()); | 586 | emit viewEmail(inboxView, item->getMail()); |
587 | } | 587 | } |
588 | } | 588 | } |
589 | 589 | ||
590 | void EmailClient::outboxItemSelected() | 590 | void EmailClient::outboxItemSelected() |
591 | { | 591 | { |
592 | //killTimer(timerID); | 592 | //killTimer(timerID); |
593 | 593 | ||
594 | item = (EmailListItem*) outboxView->selectedItem(); | 594 | item = (EmailListItem*) outboxView->selectedItem(); |
595 | if (item != NULL) { | 595 | if (item != NULL) { |
596 | emit viewEmail(outboxView, item->getMail()); | 596 | emit viewEmail(outboxView, item->getMail()); |
597 | } | 597 | } |
598 | 598 | ||
599 | } | 599 | } |
600 | 600 | ||
601 | void EmailClient::readMail() | 601 | void EmailClient::readMail() |
602 | { | 602 | { |
603 | Email mail; | 603 | Email mail; |
604 | int start, stop; | 604 | int start, stop; |
605 | QString s, del; | 605 | QString s, del; |
606 | 606 | ||
607 | QFile f(getPath(FALSE) + "inbox.txt"); | 607 | QFile f(getPath(FALSE) + "inbox.txt"); |
608 | 608 | ||
609 | if ( f.open(IO_ReadOnly) ) { // file opened successfully | 609 | if ( f.open(IO_ReadOnly) ) { // file opened successfully |
610 | QTextStream t( &f ); // use a text stream | 610 | QTextStream t( &f ); // use a text stream |
611 | s = t.read(); | 611 | s = t.read(); |
612 | f.close(); | 612 | f.close(); |
613 | 613 | ||
614 | start = 0; | 614 | start = 0; |
615 | del = "\n.\n"; | 615 | del = "\n.\n"; |
616 | while ((uint) start < s.length()) { | 616 | while ((uint) start < s.length()) { |
617 | stop = s.find(del, start); | 617 | stop = s.find(del, start); |
618 | if (stop == -1) | 618 | if (stop == -1) |
619 | stop = s.length() - del.length(); | 619 | stop = s.length() - del.length(); |
620 | 620 | ||
621 | mail.rawMail = s.mid(start, stop + del.length() - start ); | 621 | mail.rawMail = s.mid(start, stop + del.length() - start ); |
622 | start = stop + del.length(); | 622 | start = stop + del.length(); |
623 | mailArrived(mail, TRUE); | 623 | mailArrived(mail, TRUE); |
624 | } | 624 | } |
625 | } | 625 | } |
626 | 626 | ||
627 | QFile fo(getPath(FALSE) + "outbox.txt"); | 627 | QFile fo(getPath(FALSE) + "outbox.txt"); |
628 | if ( fo.open(IO_ReadOnly) ) { // file opened successfully | 628 | if ( fo.open(IO_ReadOnly) ) { // file opened successfully |
629 | QTextStream t( &fo ); // use a text stream | 629 | QTextStream t( &fo ); // use a text stream |
630 | s = t.read(); | 630 | s = t.read(); |
631 | fo.close(); | 631 | fo.close(); |
632 | 632 | ||
633 | start = 0; | 633 | start = 0; |
634 | del = "\n.\n"; | 634 | del = "\n.\n"; |
635 | while ((uint) start < s.length()) { | 635 | while ((uint) start < s.length()) { |
636 | stop = s.find(del, start); | 636 | stop = s.find(del, start); |
637 | if (stop == -1) | 637 | if (stop == -1) |
638 | stop = s.length() - del.length(); | 638 | stop = s.length() - del.length(); |
639 | 639 | ||
640 | mail.rawMail = s.mid(start, stop + del.length() - start ); | 640 | mail.rawMail = s.mid(start, stop + del.length() - start ); |
641 | start = stop + del.length(); | 641 | start = stop + del.length(); |
642 | emailHandler->parse(mail.rawMail, lineShift, &mail); | 642 | emailHandler->parse(mail.rawMail, lineShift, &mail); |
643 | mail.sent = false; | 643 | mail.sent = false; |
644 | mail.received = false; | 644 | mail.received = false; |
645 | enqueMail(mail); | 645 | enqueMail(mail); |
646 | 646 | ||
647 | } | 647 | } |
648 | } | 648 | } |
649 | } | 649 | } |
650 | 650 | ||
651 | void EmailClient::saveMail(const QString &fileName, QListView *view) | 651 | void EmailClient::saveMail(const QString &fileName, QListView *view) |
652 | { | 652 | { |
653 | QFile f(fileName); | 653 | QFile f(fileName); |
654 | Email *mail; | 654 | Email *mail; |
655 | 655 | ||
656 | if (! f.open(IO_WriteOnly) ) { | 656 | if (! f.open(IO_WriteOnly) ) { |
657 | qWarning("could not open file"); | 657 | qWarning("could not open file"); |
658 | return; | 658 | return; |
659 | } | 659 | } |
660 | item = (EmailListItem *) view->firstChild(); | 660 | item = (EmailListItem *) view->firstChild(); |
661 | QTextStream t(&f); | 661 | QTextStream t(&f); |
662 | while (item != NULL) { | 662 | while (item != NULL) { |
663 | mail = item->getMail(); | 663 | mail = item->getMail(); |
664 | t << mail->rawMail; | 664 | t << mail->rawMail; |
665 | 665 | ||
666 | mailconf->setGroup(mail->id); | 666 | mailconf->setGroup(mail->id); |
667 | mailconf->writeEntry("mailread", mail->read); | 667 | mailconf->writeEntry("mailread", mail->read); |
668 | 668 | ||
669 | item = (EmailListItem *) item->nextSibling(); | 669 | item = (EmailListItem *) item->nextSibling(); |
670 | } | 670 | } |
671 | f.close(); | 671 | f.close(); |
672 | } | 672 | } |
673 | 673 | ||
674 | //paths for mailit, is settings, inbox, enclosures | 674 | //paths for mailit, is settings, inbox, enclosures |
675 | QString EmailClient::getPath(bool enclosurePath) | 675 | QString EmailClient::getPath(bool enclosurePath) |
676 | { | 676 | { |
677 | QString basePath = "qtmail"; | 677 | QString basePath = "qtmail"; |
678 | QString enclosures = "enclosures"; | 678 | QString enclosures = "enclosures"; |
679 | 679 | ||
680 | QDir dir = (QString(getenv("HOME")) + "/Applications/" + basePath); | 680 | QDir dir = (QString(getenv("HOME")) + "/Applications/" + basePath); |
681 | if ( !dir.exists() ) | 681 | if ( !dir.exists() ) |
682 | dir.mkdir( dir.path() ); | 682 | dir.mkdir( dir.path() ); |
683 | 683 | ||
684 | if (enclosurePath) { | 684 | if (enclosurePath) { |
685 | dir = (QString(getenv("HOME")) + "/Applications/" + basePath + "/" + enclosures); | 685 | dir = (QString(getenv("HOME")) + "/Applications/" + basePath + "/" + enclosures); |
686 | 686 | ||
687 | if ( !dir.exists() ) | 687 | if ( !dir.exists() ) |
688 | dir.mkdir( dir.path() ); | 688 | dir.mkdir( dir.path() ); |
689 | 689 | ||
690 | return (dir.path() + "/"); | 690 | return (dir.path() + "/"); |
691 | 691 | ||
692 | } | 692 | } |
693 | return (dir.path() + "/"); | 693 | return (dir.path() + "/"); |
694 | } | 694 | } |
695 | 695 | ||
696 | void EmailClient::readSettings() | 696 | void EmailClient::readSettings() |
697 | { | 697 | { |
698 | int y,acc_count; | 698 | int y,acc_count; |
699 | 699 | ||
700 | mailconf->setGroup("mailitglobal"); | 700 | mailconf->setGroup("mailitglobal"); |
701 | acc_count=mailconf->readNumEntry("Accounts",0); | 701 | acc_count=mailconf->readNumEntry("Accounts",0); |
702 | 702 | ||
703 | for (int accountPos = 0;accountPos<acc_count ; accountPos++) | 703 | for (int accountPos = 0;accountPos<acc_count ; accountPos++) |
704 | { | 704 | { |
705 | mailconf->setGroup("Account_"+QString::number(accountPos+1)); //Account numbers start at 1 ... | 705 | mailconf->setGroup("Account_"+QString::number(accountPos+1)); //Account numbers start at 1 ... |
706 | account.accountName = mailconf->readEntry("AccName",""); | 706 | account.accountName = mailconf->readEntry("AccName",""); |
707 | account.name = mailconf->readEntry("UserName",""); | 707 | account.name = mailconf->readEntry("UserName",""); |
708 | account.emailAddress = mailconf->readEntry("Email",""); | 708 | account.emailAddress = mailconf->readEntry("Email",""); |
709 | account.popUserName = mailconf->readEntry("POPUser",""); | 709 | account.popUserName = mailconf->readEntry("POPUser",""); |
710 | account.popPasswd = mailconf->readEntryCrypt("POPPassword",""); | 710 | account.popPasswd = mailconf->readEntryCrypt("POPPassword",""); |
711 | account.popServer = mailconf->readEntry("POPServer",""); | 711 | account.popServer = mailconf->readEntry("POPServer",""); |
712 | account.smtpServer = mailconf->readEntry("SMTPServer",""); | 712 | account.smtpServer = mailconf->readEntry("SMTPServer",""); |
713 | account.id = mailconf->readNumEntry("AccountId",0); | 713 | account.id = mailconf->readNumEntry("AccountId",0); |
714 | account.syncLimit = mailconf->readNumEntry("HeaderLimit",0); | 714 | account.syncLimit = mailconf->readNumEntry("HeaderLimit",0); |
715 | account.lastServerMailCount = 0; | 715 | account.lastServerMailCount = 0; |
716 | account.synchronize = FALSE; | 716 | account.synchronize = FALSE; |
717 | 717 | ||
718 | account.synchronize = (mailconf->readEntry("Synchronize","No")=="Yes"); | 718 | account.synchronize = (mailconf->readEntry("Synchronize","No")=="Yes"); |
719 | if (account.synchronize) | 719 | if (account.synchronize) |
720 | { | 720 | { |
721 | mailconf->readNumEntry("LASTSERVERMAILCOUNT",0); | 721 | mailconf->readNumEntry("LASTSERVERMAILCOUNT",0); |
722 | } | 722 | } |
723 | 723 | ||
724 | accountList.append(&account); | 724 | accountList.append(&account); |
725 | } | 725 | } |
726 | 726 | ||
727 | mailconf->setGroup("mailitglobal"); | 727 | mailconf->setGroup("mailitglobal"); |
728 | 728 | ||
729 | if ( (y = mailconf->readNumEntry("mailidcount", -1)) != -1) | 729 | if ( (y = mailconf->readNumEntry("mailidcount", -1)) != -1) |
730 | { | 730 | { |
731 | mailIdCount = y; | 731 | mailIdCount = y; |
732 | } | 732 | } |
733 | if ( (y = mailconf->readNumEntry("accountidcount", -1)) != -1) | 733 | if ( (y = mailconf->readNumEntry("accountidcount", -1)) != -1) |
734 | { | 734 | { |
735 | accountIdCount = y; | 735 | accountIdCount = y; |
736 | } | 736 | } |
737 | } | 737 | } |
738 | 738 | ||
739 | void EmailClient::saveSettings() | 739 | void EmailClient::saveSettings() |
740 | { | 740 | { |
741 | int acc_count=0; | 741 | int acc_count=0; |
742 | MailAccount *accountPtr; | 742 | MailAccount *accountPtr; |
743 | 743 | ||
744 | 744 | ||
745 | if (!mailconf) | 745 | if (!mailconf) |
746 | { | 746 | { |
747 | qWarning("could not save settings"); | 747 | qWarning("could not save settings"); |
748 | return; | 748 | return; |
749 | } | 749 | } |
750 | 750 | ||
751 | for (accountPtr = accountList.first(); accountPtr != 0; | 751 | for (accountPtr = accountList.first(); accountPtr != 0; |
752 | accountPtr = accountList.next()) | 752 | accountPtr = accountList.next()) |
753 | { | 753 | { |
754 | mailconf->setGroup("Account_"+QString::number(++acc_count)); | 754 | mailconf->setGroup("Account_"+QString::number(++acc_count)); |
755 | mailconf->writeEntry("AccName",accountPtr->accountName ); | 755 | mailconf->writeEntry("AccName",accountPtr->accountName ); |
756 | mailconf->writeEntry("UserName",accountPtr->name); | 756 | mailconf->writeEntry("UserName",accountPtr->name); |
757 | mailconf->writeEntry("Email",accountPtr->emailAddress); | 757 | mailconf->writeEntry("Email",accountPtr->emailAddress); |
758 | mailconf->writeEntry("POPUser",accountPtr->popUserName); | 758 | mailconf->writeEntry("POPUser",accountPtr->popUserName); |
759 | mailconf->writeEntryCrypt("POPPassword",accountPtr->popPasswd); | 759 | mailconf->writeEntryCrypt("POPPassword",accountPtr->popPasswd); |
760 | mailconf->writeEntry("POPServer",accountPtr->popServer); | 760 | mailconf->writeEntry("POPServer",accountPtr->popServer); |
761 | mailconf->writeEntry("SMTPServer",accountPtr->smtpServer); | 761 | mailconf->writeEntry("SMTPServer",accountPtr->smtpServer); |
762 | mailconf->writeEntry("AccountId",accountPtr->id); | 762 | mailconf->writeEntry("AccountId",accountPtr->id); |
763 | if (accountPtr->synchronize) | 763 | if (accountPtr->synchronize) |
764 | { | 764 | { |
765 | mailconf->writeEntry("Synchronize","Yes"); | 765 | mailconf->writeEntry("Synchronize","Yes"); |
766 | mailconf->writeEntry("HeaderLimit",accountPtr->syncLimit); | 766 | mailconf->writeEntry("HeaderLimit",accountPtr->syncLimit); |
767 | mailconf->writeEntry("LastServerMailCount",accountPtr->lastServerMailCount); | 767 | mailconf->writeEntry("LastServerMailCount",accountPtr->lastServerMailCount); |
768 | } | 768 | } |
769 | else | 769 | else |
770 | { | 770 | { |
771 | mailconf->writeEntry("Synchronize", "No"); | 771 | mailconf->writeEntry("Synchronize", "No"); |
772 | } | 772 | } |
773 | } | 773 | } |
774 | 774 | ||
775 | mailconf->setGroup("mailitglobal"); | 775 | mailconf->setGroup("mailitglobal"); |
776 | mailconf->writeEntry("Accounts",acc_count); | 776 | mailconf->writeEntry("Accounts",acc_count); |
777 | mailconf->writeEntry("mailidcount", mailIdCount); | 777 | mailconf->writeEntry("mailidcount", mailIdCount); |
778 | mailconf->writeEntry("accountidcount", accountIdCount); | 778 | mailconf->writeEntry("accountidcount", accountIdCount); |
779 | } | 779 | } |
780 | 780 | ||
781 | void EmailClient::selectAccount(int id) | 781 | void EmailClient::selectAccount(int id) |
782 | { | 782 | { |
783 | if (accountList.count() > 0) { | 783 | if (accountList.count() > 0) { |
784 | currentAccount = accountList.at(id); | 784 | currentAccount = accountList.at(id); |
785 | emit newCaption("Mailit - " + currentAccount->accountName); | 785 | emit newCaption("Mailit - " + currentAccount->accountName); |
786 | getNewMail(); | 786 | getNewMail(); |
787 | } else { | 787 | } else { |
788 | emit newCaption("Mailit ! No account defined"); | 788 | emit newCaption( tr("Mailit ! No account defined") ); |
789 | } | 789 | } |
790 | } | 790 | } |
791 | 791 | ||
792 | void EmailClient::editAccount(int id) | 792 | void EmailClient::editAccount(int id) |
793 | { | 793 | { |
794 | MailAccount *newAccount; | 794 | MailAccount *newAccount; |
795 | 795 | ||
796 | editAccountView = new EditAccount(this, "account", TRUE); | 796 | editAccountView = new EditAccount(this, "account", TRUE); |
797 | if (id == newAccountId) { //new account | 797 | if (id == newAccountId) { //new account |
798 | newAccount = new MailAccount; | 798 | newAccount = new MailAccount; |
799 | editAccountView->setAccount(newAccount); | 799 | editAccountView->setAccount(newAccount); |
800 | } else { | 800 | } else { |
801 | newAccount = accountList.at(id); | 801 | newAccount = accountList.at(id); |
802 | editAccountView->setAccount(newAccount, FALSE); | 802 | editAccountView->setAccount(newAccount, FALSE); |
803 | } | 803 | } |
804 | 804 | ||
805 | editAccountView->showMaximized(); | 805 | editAccountView->showMaximized(); |
806 | editAccountView->exec(); | 806 | editAccountView->exec(); |
807 | 807 | ||
808 | if (editAccountView->result() == QDialog::Accepted) { | 808 | if (editAccountView->result() == QDialog::Accepted) { |
809 | if (id == newAccountId) { | 809 | if (id == newAccountId) { |
810 | newAccount->id = accountIdCount; | 810 | newAccount->id = accountIdCount; |
811 | accountIdCount++; | 811 | accountIdCount++; |
812 | accountList.append(newAccount); | 812 | accountList.append(newAccount); |
813 | updateAccounts(); | 813 | updateAccounts(); |
814 | } else { | 814 | } else { |
815 | updateAccounts(); | 815 | updateAccounts(); |
816 | } | 816 | } |
817 | } | 817 | } |
818 | 818 | ||
819 | delete editAccountView; | 819 | delete editAccountView; |
820 | } | 820 | } |
821 | 821 | ||
822 | void EmailClient::deleteAccount(int id) | 822 | void EmailClient::deleteAccount(int id) |
823 | { | 823 | { |
824 | MailAccount *newAccount; | 824 | MailAccount *newAccount; |
825 | QString message; | 825 | QString message; |
826 | 826 | ||
827 | newAccount = accountList.at(id); | 827 | newAccount = accountList.at(id); |
828 | message = "Delete account:\n" + newAccount->accountName; | 828 | message = tr("Delete account:\n") + newAccount->accountName; |
829 | switch( QMessageBox::warning( this, "Mailit", message, | 829 | switch( QMessageBox::warning( this, "Mailit", message, |
830 | "Yes", "No", 0, 0, 1 ) ) { | 830 | "Yes", "No", 0, 0, 1 ) ) { |
831 | 831 | ||
832 | case 0: accountList.remove(id); | 832 | case 0: accountList.remove(id); |
833 | updateAccounts(); | 833 | updateAccounts(); |
834 | break; | 834 | break; |
835 | case 1: | 835 | case 1: |
836 | break; | 836 | break; |
837 | } | 837 | } |
838 | } | 838 | } |
839 | 839 | ||
840 | void EmailClient::updateAccounts() | 840 | void EmailClient::updateAccounts() |
841 | { | 841 | { |
842 | MailAccount *accountPtr; | 842 | MailAccount *accountPtr; |
843 | 843 | ||
844 | //rebuild menus, clear all first | 844 | //rebuild menus, clear all first |
845 | editAccountMenu->clear(); | 845 | editAccountMenu->clear(); |
846 | selectAccountMenu->clear(); | 846 | selectAccountMenu->clear(); |
847 | deleteAccountMenu->clear(); | 847 | deleteAccountMenu->clear(); |
848 | 848 | ||
849 | newAccountId = editAccountMenu->insertItem("New", this, | 849 | newAccountId = editAccountMenu->insertItem( tr("New"), this, |
850 | SLOT(editAccount(int)) ); | 850 | SLOT(editAccount(int)) ); |
851 | editAccountMenu->insertSeparator(); | 851 | editAccountMenu->insertSeparator(); |
852 | 852 | ||
853 | idCount = 0; | 853 | idCount = 0; |
854 | for (accountPtr = accountList.first(); accountPtr != 0; | 854 | for (accountPtr = accountList.first(); accountPtr != 0; |
855 | accountPtr = accountList.next()) { | 855 | accountPtr = accountList.next()) { |
856 | 856 | ||
857 | editAccountMenu->insertItem(accountPtr->accountName, | 857 | editAccountMenu->insertItem(accountPtr->accountName, |
858 | this, SLOT(editAccount(int)), 0, idCount); | 858 | this, SLOT(editAccount(int)), 0, idCount); |
859 | selectAccountMenu->insertItem(accountPtr->accountName, | 859 | selectAccountMenu->insertItem(accountPtr->accountName, |
860 | this, SLOT(selectAccount(int)), 0, idCount); | 860 | this, SLOT(selectAccount(int)), 0, idCount); |
861 | deleteAccountMenu->insertItem(accountPtr->accountName, | 861 | deleteAccountMenu->insertItem(accountPtr->accountName, |
862 | this, SLOT(deleteAccount(int)), 0, idCount); | 862 | this, SLOT(deleteAccount(int)), 0, idCount); |
863 | idCount++; | 863 | idCount++; |
864 | } | 864 | } |
865 | } | 865 | } |
866 | 866 | ||
867 | void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox) | 867 | void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox) |
868 | { | 868 | { |
869 | Email *mPtr; | 869 | Email *mPtr; |
870 | Enclosure *ePtr; | 870 | Enclosure *ePtr; |
871 | 871 | ||
872 | if (inbox) | 872 | if (inbox) |
873 | { | 873 | { |
874 | mPtr = mailItem->getMail(); | 874 | mPtr = mailItem->getMail(); |
875 | 875 | ||
876 | //if mail is in queue for download, remove it from | 876 | //if mail is in queue for download, remove it from |
877 | //queue if possible | 877 | //queue if possible |
878 | if ( (receiving) && (mPtr->fromAccountId == currentAccount->id) ) { | 878 | if ( (receiving) && (mPtr->fromAccountId == currentAccount->id) ) { |
879 | if ( !mPtr->downloaded ) | 879 | if ( !mPtr->downloaded ) |
880 | mailDownloadList.remove(mPtr->serverId, mPtr->size); | 880 | mailDownloadList.remove(mPtr->serverId, mPtr->size); |
881 | } | 881 | } |
882 | 882 | ||
883 | mailconf->setGroup(mPtr->id); | 883 | mailconf->setGroup(mPtr->id); |
884 | mailconf->clearGroup(); | 884 | mailconf->clearGroup(); |
885 | 885 | ||
886 | //delete any temporary attatchemnts storing | 886 | //delete any temporary attatchemnts storing |
887 | for ( ePtr=mPtr->files.first(); ePtr != 0; ePtr=mPtr->files.next() ) { | 887 | for ( ePtr=mPtr->files.first(); ePtr != 0; ePtr=mPtr->files.next() ) { |
888 | if (ePtr->saved) { | 888 | if (ePtr->saved) { |
889 | QFile::remove( (ePtr->path + ePtr->name) ); | 889 | QFile::remove( (ePtr->path + ePtr->name) ); |
890 | } | 890 | } |
891 | } | 891 | } |
892 | inboxView->takeItem(mailItem); | 892 | inboxView->takeItem(mailItem); |
893 | } | 893 | } |
894 | else | 894 | else |
895 | { | 895 | { |
896 | outboxView->takeItem(mailItem); | 896 | outboxView->takeItem(mailItem); |
897 | } | 897 | } |
898 | } | 898 | } |
899 | 899 | ||
900 | void EmailClient::setMailSize(int size) | 900 | void EmailClient::setMailSize(int size) |
901 | { | 901 | { |
902 | progressBar->reset(); | 902 | progressBar->reset(); |
903 | progressBar->setTotalSteps(size); | 903 | progressBar->setTotalSteps(size); |
904 | } | 904 | } |
905 | 905 | ||
906 | void EmailClient::setTotalSize(int /*size*/) | 906 | void EmailClient::setTotalSize(int /*size*/) |
907 | { | 907 | { |
908 | 908 | ||
909 | } | 909 | } |
910 | 910 | ||
911 | void EmailClient::setDownloadedSize(int size) | 911 | void EmailClient::setDownloadedSize(int size) |
912 | { | 912 | { |
913 | int total = progressBar->totalSteps(); | 913 | int total = progressBar->totalSteps(); |
914 | 914 | ||
915 | if (size < total) { | 915 | if (size < total) { |
916 | progressBar->setProgress(size); | 916 | progressBar->setProgress(size); |
917 | } else { | 917 | } else { |
918 | progressBar->setProgress(total); | 918 | progressBar->setProgress(total); |
919 | } | 919 | } |
920 | } | 920 | } |
921 | 921 | ||
922 | void EmailClient::deleteItem() | 922 | void EmailClient::deleteItem() |
923 | { | 923 | { |
924 | bool inbox=mailboxView->currentTab()==0; | 924 | bool inbox=mailboxView->currentTab()==0; |
925 | QListView* box; | 925 | QListView* box; |
926 | 926 | ||
927 | EmailListItem* eli; | 927 | EmailListItem* eli; |
928 | // int pos; | 928 | // int pos; |
929 | 929 | ||
930 | inbox ? box=inboxView : box=outboxView; | 930 | inbox ? box=inboxView : box=outboxView; |
931 | 931 | ||
932 | eli=(EmailListItem*)box->selectedItem(); | 932 | eli=(EmailListItem*)box->selectedItem(); |
933 | 933 | ||
934 | if (eli) | 934 | if (eli) |
935 | { | 935 | { |
936 | box->setSelected(eli->itemBelow(),true); //select the previous item | 936 | box->setSelected(eli->itemBelow(),true); //select the previous item |
937 | 937 | ||
938 | deleteMail(eli,(bool&)inbox); //remove mail entry | 938 | deleteMail(eli,(bool&)inbox); //remove mail entry |
939 | } | 939 | } |
940 | } | 940 | } |
941 | 941 | ||
942 | void EmailClient::inboxItemPressed() | 942 | void EmailClient::inboxItemPressed() |
943 | { | 943 | { |
944 | // timerID=startTimer(500); | 944 | // timerID=startTimer(500); |
945 | } | 945 | } |
946 | 946 | ||
947 | void EmailClient::inboxItemReleased() | 947 | void EmailClient::inboxItemReleased() |
948 | { | 948 | { |
949 | // killTimer(timerID); | 949 | // killTimer(timerID); |
950 | } | 950 | } |
951 | 951 | ||
952 | /*void EmailClient::timerEvent(QTimerEvent *e) | 952 | /*void EmailClient::timerEvent(QTimerEvent *e) |
953 | { | 953 | { |
954 | //killTimer(timerID); | 954 | //killTimer(timerID); |
955 | 955 | ||
956 | 956 | ||
957 | QPopupMenu *action = new QPopupMenu(this); | 957 | QPopupMenu *action = new QPopupMenu(this); |
958 | 958 | ||
959 | int reply=0; | 959 | int reply=0; |
960 | 960 | ||
961 | action->insertItem(tr( "Reply To" ),this,SLOT(reply())); | 961 | action->insertItem(tr( "Reply To" ),this,SLOT(reply())); |
962 | action->insertItem( tr( "Reply All" ),this,SLOT(replyAll())); | 962 | action->insertItem( tr( "Reply All" ),this,SLOT(replyAll())); |
963 | action->insertItem( tr( "Forward" ), this,SLOT(forward())); | 963 | action->insertItem( tr( "Forward" ), this,SLOT(forward())); |
964 | action->insertItem( tr( "Remove Mail" ), this,SLOT(remove())); | 964 | action->insertItem( tr( "Remove Mail" ), this,SLOT(remove())); |
965 | 965 | ||
966 | action->exec(QCursor::pos()); | 966 | action->exec(QCursor::pos()); |
967 | 967 | ||
968 | if (action) delete action; | 968 | if (action) delete action; |
969 | 969 | ||
970 | }*/ | 970 | }*/ |
971 | 971 | ||
972 | Email* EmailClient::getCurrentMail() | 972 | Email* EmailClient::getCurrentMail() |
973 | { | 973 | { |
974 | EmailListItem *eli=(EmailListItem* ) (inboxView->selectedItem()); | 974 | EmailListItem *eli=(EmailListItem* ) (inboxView->selectedItem()); |
975 | if (eli!=NULL) | 975 | if (eli!=NULL) |
976 | return eli->getMail(); | 976 | return eli->getMail(); |
977 | else | 977 | else |
978 | return NULL; | 978 | return NULL; |
979 | } | 979 | } |
980 | 980 | ||
981 | void EmailClient::download(Email* mail) | 981 | void EmailClient::download(Email* mail) |
982 | { | 982 | { |
983 | MailAccount* acc=0; | 983 | MailAccount* acc=0; |
984 | 984 | ||
985 | tempMailDownloadList.clear(); | 985 | tempMailDownloadList.clear(); |
986 | tempMailDownloadList.sizeInsert(mail->serverId, mail->size); | 986 | tempMailDownloadList.sizeInsert(mail->serverId, mail->size); |
987 | 987 | ||
988 | acc=accountList.at(mail->fromAccountId-1); | 988 | acc=accountList.at(mail->fromAccountId-1); |
989 | if (acc) | 989 | if (acc) |
990 | { | 990 | { |
991 | emailHandler->setAccount(*acc); | 991 | emailHandler->setAccount(*acc); |
992 | emailHandler->getMailByList(&tempMailDownloadList); | 992 | emailHandler->getMailByList(&tempMailDownloadList); |
993 | } | 993 | } |
994 | else | 994 | else |
995 | QMessageBox::warning(qApp->activeWindow(), | 995 | QMessageBox::warning(qApp->activeWindow(), |
996 | tr("No account associated"), tr("There is no active account \nassociated to this mail\n it can not be downloaded"), "Abort\n"); | 996 | tr("No account associated"), tr("There is no active account \nassociated to this mail\n it can not be downloaded"), "Abort\n"); |
997 | } | 997 | } |
998 | 998 | ||
999 | void EmailClient::receive(const QCString& /*msg*/, const QByteArray& /*data*/) | 999 | void EmailClient::receive(const QCString& /*msg*/, const QByteArray& /*data*/) |
1000 | { | 1000 | { |
1001 | /*if (msg=="getMail()") | 1001 | /*if (msg=="getMail()") |
1002 | { | 1002 | { |
1003 | //QDialog qd(qApp->activeWindow(),"Getting mail",true); | 1003 | //QDialog qd(qApp->activeWindow(),"Getting mail",true); |
1004 | QVBoxLayout *vbProg = new QVBoxLayout( &qd ); | 1004 | QVBoxLayout *vbProg = new QVBoxLayout( &qd ); |
1005 | 1005 | ||
1006 | initStatusBar(&qd); | 1006 | initStatusBar(&qd); |
1007 | 1007 | ||
1008 | if (statusBar==0) | 1008 | if (statusBar==0) |
1009 | { | 1009 | { |
1010 | qDebug("No Bar ..."); | 1010 | qDebug("No Bar ..."); |
1011 | //statusBar=new ProgressBar(&qd); | 1011 | //statusBar=new ProgressBar(&qd); |
1012 | } | 1012 | } |
1013 | statusBar->show(); | 1013 | statusBar->show(); |
1014 | vbProg->addWidget(statusBar); | 1014 | vbProg->addWidget(statusBar); |
1015 | qd.showMaximized(); | 1015 | qd.showMaximized(); |
1016 | qd.show(); | 1016 | qd.show(); |
1017 | emit getAllNewMail(); | 1017 | emit getAllNewMail(); |
1018 | //qd.exec(); | 1018 | //qd.exec(); |
1019 | } | 1019 | } |
1020 | else if (msg=="compose()") | 1020 | else if (msg=="compose()") |
1021 | { | 1021 | { |
1022 | QDialog qd(qApp->activeWindow(),"Getting mail",true); | 1022 | QDialog qd(qApp->activeWindow(),"Getting mail",true); |
1023 | 1023 | ||
1024 | WriteMail wm(&qd,"write new mail"); | 1024 | WriteMail wm(&qd,"write new mail"); |
1025 | QVBoxLayout vbProg( &qd ); | 1025 | QVBoxLayout vbProg( &qd ); |
1026 | 1026 | ||
1027 | wm.showMaximized(); | 1027 | wm.showMaximized(); |
1028 | vbProg.addWidget(&wm); | 1028 | vbProg.addWidget(&wm); |
1029 | 1029 | ||
1030 | qd.showMaximized(); | 1030 | qd.showMaximized(); |
1031 | 1031 | ||
1032 | emit composeRequested(); | 1032 | emit composeRequested(); |
1033 | qd.exec(); | 1033 | qd.exec(); |
1034 | 1034 | ||
1035 | QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n"); | 1035 | QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n"); |
1036 | } | 1036 | } |
1037 | 1037 | ||
1038 | else if (msg=="dialog()") | 1038 | else if (msg=="dialog()") |
1039 | { | 1039 | { |
1040 | QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n"); | 1040 | QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n"); |
1041 | }*/ | 1041 | }*/ |
1042 | } | 1042 | } |
diff --git a/noncore/net/mailit/emaillistitem.cpp b/noncore/net/mailit/emaillistitem.cpp index fc9f766..a25f93a 100644 --- a/noncore/net/mailit/emaillistitem.cpp +++ b/noncore/net/mailit/emaillistitem.cpp | |||
@@ -1,99 +1,158 @@ | |||
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 <qstring.h> | 20 | #include <qstring.h> |
21 | #include <qpe/resource.h> | 21 | #include <qpe/resource.h> |
22 | #include "emaillistitem.h" | 22 | #include "emaillistitem.h" |
23 | 23 | ||
24 | EmailListItem::EmailListItem(QListView *parent, Email mailIn, bool inbox) | 24 | EmailListItem::EmailListItem(QListView *parent, Email mailIn, bool inbox) |
25 | : QListViewItem(parent) | 25 | : QListViewItem(parent) |
26 | { | 26 | { |
27 | QString temp; | 27 | QString temp; |
28 | 28 | ||
29 | mail = mailIn; | 29 | mail = mailIn; |
30 | 30 | ||
31 | if (inbox) { | 31 | if (inbox) { |
32 | setText(0, mail.from); | 32 | setText(0, mail.from); |
33 | } else { | 33 | } else { |
34 | QStringList::Iterator it = mail.recipients.begin(); | 34 | QStringList::Iterator it = mail.recipients.begin(); |
35 | temp = *it; | 35 | temp = *it; |
36 | if (mail.recipients.count() > 1) | 36 | if (mail.recipients.count() > 1) |
37 | temp += "..."; | 37 | temp += "..."; |
38 | setText(0, temp); | 38 | setText(0, temp); |
39 | } | 39 | } |
40 | setText(1, mail.subject); | 40 | setText(1, mail.subject); |
41 | setText(2,mail.date); | 41 | // setText(2,mail.date); |
42 | 42 | setText(2,dateFromULCString(mail.date)); | |
43 | |||
43 | if (mailIn.files.count()>0) | 44 | if (mailIn.files.count()>0) |
44 | { | 45 | { |
45 | setPixmap(0, Resource::loadPixmap("mailit/attach")); | 46 | setPixmap(0, Resource::loadPixmap("mailit/attach")); |
46 | } | 47 | } |
47 | 48 | ||
48 | selected = FALSE; | 49 | selected = FALSE; |
49 | } | 50 | } |
50 | 51 | ||
51 | Email* EmailListItem::getMail() | 52 | Email* EmailListItem::getMail() |
52 | { | 53 | { |
53 | return &mail; | 54 | return &mail; |
54 | } | 55 | } |
55 | 56 | ||
56 | void EmailListItem::setMail(Email newMail) | 57 | void EmailListItem::setMail(Email newMail) |
57 | { | 58 | { |
58 | mail = newMail; | 59 | mail = newMail; |
59 | repaint(); | 60 | repaint(); |
60 | } | 61 | } |
61 | 62 | ||
62 | void EmailListItem::setItemSelected(bool enable) | 63 | void EmailListItem::setItemSelected(bool enable) |
63 | { | 64 | { |
64 | selected = enable; | 65 | selected = enable; |
65 | setSelected(enable); | 66 | setSelected(enable); |
66 | repaint(); | 67 | repaint(); |
67 | } | 68 | } |
68 | 69 | ||
69 | bool EmailListItem::isItemSelected() | 70 | bool EmailListItem::isItemSelected() |
70 | { | 71 | { |
71 | return selected; | 72 | return selected; |
72 | } | 73 | } |
73 | 74 | ||
74 | void EmailListItem::paintCell( QPainter *p, const QColorGroup &cg, | 75 | void EmailListItem::paintCell( QPainter *p, const QColorGroup &cg, |
75 | int column, int width, int alignment ) | 76 | int column, int width, int alignment ) |
76 | { | 77 | { |
77 | 78 | ||
78 | QColorGroup _cg( cg ); | 79 | QColorGroup _cg( cg ); |
79 | QColor c = _cg.text(); | 80 | QColor c = _cg.text(); |
80 | 81 | ||
81 | if ( (! mail.read) && (mail.received) ) | 82 | if ( (! mail.read) && (mail.received) ) |
82 | _cg.setColor( QColorGroup::Text, Qt::blue); | 83 | _cg.setColor( QColorGroup::Text, Qt::blue); |
83 | if (!mail.downloaded) | 84 | if (!mail.downloaded) |
84 | _cg.setColor( QColorGroup::Text, Qt::red); | 85 | _cg.setColor( QColorGroup::Text, Qt::red); |
85 | 86 | ||
86 | /* if (selected) { | 87 | /* if (selected) { |
87 | _cg.setColor(QColorGroup::Base, Qt::blue); | 88 | _cg.setColor(QColorGroup::Base, Qt::blue); |
88 | _cg.setColor(QColorGroup::Text, Qt::yellow); | 89 | _cg.setColor(QColorGroup::Text, Qt::yellow); |
89 | if (isSelected()) { | 90 | if (isSelected()) { |
90 | _cg.setColor(QColorGroup::HighlightedText, Qt::yellow); | 91 | _cg.setColor(QColorGroup::HighlightedText, Qt::yellow); |
91 | } else { | 92 | } else { |
92 | _cg.setColor(QColorGroup::Highlight, Qt::blue); | 93 | _cg.setColor(QColorGroup::Highlight, Qt::blue); |
93 | } | 94 | } |
94 | } | 95 | } |
95 | */ | 96 | */ |
96 | QListViewItem::paintCell( p, _cg, column, width, alignment ); | 97 | QListViewItem::paintCell( p, _cg, column, width, alignment ); |
97 | 98 | ||
98 | _cg.setColor( QColorGroup::Text, c ); | 99 | _cg.setColor( QColorGroup::Text, c ); |
99 | } | 100 | } |
101 | |||
102 | /* | ||
103 | * Converts an E-Mail date (ULC) RFC 2822 conform to a QDateTime. | ||
104 | * Returning a QString with formatting of "YYYY-MM-DD HH:MM:SS" | ||
105 | * (zodiac: This method was tested with more than 300 inbox mails, | ||
106 | * it didn't slow down the loading of mail-it.) | ||
107 | */ | ||
108 | QString EmailListItem::dateFromULCString( QString ulcDate ) | ||
109 | { | ||
110 | QString sTemp, sTime; | ||
111 | int iPos, iDay, iMon=1, iYear; | ||
112 | |||
113 | iPos=ulcDate.find(','); | ||
114 | if (iPos) { // it has a day-of-week | ||
115 | ulcDate=ulcDate.remove(0,++iPos); //.stripWhiteSpace(); | ||
116 | } | ||
117 | |||
118 | QStringList dateEntries = QStringList::split(" ",ulcDate,FALSE); | ||
119 | QStringList::Iterator iter = dateEntries.begin(); | ||
120 | |||
121 | // Get day as DD | ||
122 | iDay = (*iter++).toInt(); | ||
123 | |||
124 | // Get month as string Mmm | ||
125 | sTemp = (*iter++); | ||
126 | if (sTemp =="Jan") {iMon=1;} else | ||
127 | if (sTemp =="Feb") {iMon=2;} else | ||
128 | if (sTemp =="Mar") {iMon=3;} else | ||
129 | if (sTemp =="Apr") {iMon=4;} else | ||
130 | if (sTemp =="May") {iMon=5;} else | ||
131 | if (sTemp =="Jun") {iMon=6;} else | ||
132 | if (sTemp =="Jul") {iMon=7;} else | ||
133 | if (sTemp =="Aug") {iMon=8;} else | ||
134 | if (sTemp =="Sep") {iMon=9;} else | ||
135 | if (sTemp =="Oct") {iMon=10;} else | ||
136 | if (sTemp =="Nov") {iMon=11;} else | ||
137 | if (sTemp =="Dec") {iMon=12;} | ||
138 | |||
139 | // Get year as YYYY or YY | ||
140 | iYear = (*iter++).toInt(); | ||
141 | |||
142 | QDate date = QDate(iYear, iMon, iDay); | ||
143 | |||
144 | // Convert timestring into a QTime | ||
145 | QStringList timeEntries = QStringList::split(":",(*iter++),FALSE); | ||
146 | QStringList::Iterator iterTime = timeEntries.begin(); | ||
147 | iYear=(*iterTime++).toInt(); // var reuse.. *cough* | ||
148 | iMon=(*iterTime++).toInt(); | ||
149 | iDay=(*iterTime++).toInt(); | ||
150 | QTime time = QTime(iYear,iMon,iDay); | ||
151 | |||
152 | return QString::number(date.year())+"-" | ||
153 | +QString::number(date.month()).rightJustify(2,'0')+"-" | ||
154 | +QString::number(date.day()).rightJustify(2,'0')+" " | ||
155 | +time.toString(); | ||
156 | } | ||
157 | |||
158 | |||
diff --git a/noncore/net/mailit/emaillistitem.h b/noncore/net/mailit/emaillistitem.h index 642932c..129a774 100644 --- a/noncore/net/mailit/emaillistitem.h +++ b/noncore/net/mailit/emaillistitem.h | |||
@@ -1,44 +1,45 @@ | |||
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 | #ifndef EMAILLISTITEM_H | 20 | #ifndef EMAILLISTITEM_H |
21 | #define EMAILLISTITEM_H | 21 | #define EMAILLISTITEM_H |
22 | 22 | ||
23 | #include <qlistview.h> | 23 | #include <qlistview.h> |
24 | #include "emailhandler.h" | 24 | #include "emailhandler.h" |
25 | 25 | ||
26 | class EmailListItem: public QListViewItem | 26 | class EmailListItem: public QListViewItem |
27 | { | 27 | { |
28 | public: | 28 | public: |
29 | EmailListItem(QListView *parent, Email mailIn, bool inbox); | 29 | EmailListItem(QListView *parent, Email mailIn, bool inbox); |
30 | Email* getMail(); | 30 | Email* getMail(); |
31 | void setMail(Email newMail); | 31 | void setMail(Email newMail); |
32 | void setItemSelected(bool enable); | 32 | void setItemSelected(bool enable); |
33 | bool isItemSelected(); | 33 | bool isItemSelected(); |
34 | bool itemSelected(); | 34 | bool itemSelected(); |
35 | 35 | ||
36 | protected: | 36 | protected: |
37 | void paintCell( QPainter *p, const QColorGroup &cg, | 37 | void paintCell( QPainter *p, const QColorGroup &cg, |
38 | int column, int width, int alignment ); | 38 | int column, int width, int alignment ); |
39 | private: | 39 | private: |
40 | Email mail; | 40 | Email mail; |
41 | bool selected; | 41 | bool selected; |
42 | QString dateFromULCString( QString ulc ); | ||
42 | }; | 43 | }; |
43 | 44 | ||
44 | #endif | 45 | #endif |
diff --git a/noncore/net/mailit/mailit.pro b/noncore/net/mailit/mailit.pro index 5e9a83a..0224886 100644 --- a/noncore/net/mailit/mailit.pro +++ b/noncore/net/mailit/mailit.pro | |||
@@ -1,63 +1,59 @@ | |||
1 | TEMPLATE = app | ||
2 | TARGET = mailit | 1 | TARGET = mailit |
3 | CONFIG = qt warn_on release | 2 | CONFIG = qt warn_on release quick-app |
4 | HEADERS = emailclient.h \ | 3 | HEADERS = emailclient.h \ |
5 | emailhandler.h \ | 4 | emailhandler.h \ |
6 | emaillistitem.h \ | 5 | emaillistitem.h \ |
7 | mailitwindow.h \ | 6 | mailitwindow.h \ |
8 | md5.h \ | 7 | md5.h \ |
9 | popclient.h \ | 8 | popclient.h \ |
10 | readmail.h \ | 9 | readmail.h \ |
11 | smtpclient.h \ | 10 | smtpclient.h \ |
12 | writemail.h \ | 11 | writemail.h \ |
13 | textparser.h \ | 12 | textparser.h \ |
14 | viewatt.h \ | 13 | viewatt.h \ |
15 | addatt.h \ | 14 | addatt.h \ |
16 | editaccount.h \ | 15 | editaccount.h \ |
17 | maillist.h \ | 16 | maillist.h \ |
18 | addresslist.h | 17 | addresslist.h |
19 | SOURCES = emailclient.cpp \ | 18 | SOURCES = emailclient.cpp \ |
20 | emailhandler.cpp \ | 19 | emailhandler.cpp \ |
21 | emaillistitem.cpp \ | 20 | emaillistitem.cpp \ |
22 | mailitwindow.cpp \ | 21 | mailitwindow.cpp \ |
23 | main.cpp \ | 22 | main.cpp \ |
24 | md5.c \ | 23 | md5.c \ |
25 | popclient.cpp \ | 24 | popclient.cpp \ |
26 | readmail.cpp \ | 25 | readmail.cpp \ |
27 | smtpclient.cpp \ | 26 | smtpclient.cpp \ |
28 | writemail.cpp \ | 27 | writemail.cpp \ |
29 | textparser.cpp \ | 28 | textparser.cpp \ |
30 | viewatt.cpp \ | 29 | viewatt.cpp \ |
31 | addatt.cpp \ | 30 | addatt.cpp \ |
32 | editaccount.cpp \ | 31 | editaccount.cpp \ |
33 | maillist.cpp \ | 32 | maillist.cpp \ |
34 | addresslist.cpp | 33 | addresslist.cpp |
35 | 34 | ||
36 | INCLUDEPATH += $(OPIEDIR)/include | 35 | INCLUDEPATH += $(OPIEDIR)/include |
37 | DEPENDPATH += $(OPIEDIR)/include | 36 | DEPENDPATH += $(OPIEDIR)/include |
38 | LIBS += -lqpe -lopie | 37 | LIBS += -lqpe -lopie |
39 | # -lssl | 38 | # -lssl |
40 | MOC_DIR=qpeobj | ||
41 | OBJECTS_DIR=qpeobj | ||
42 | DESTDIR=$(OPIEDIR)/bin | ||
43 | 39 | ||
44 | TRANSLATIONS = ../../../i18n/de/mailit.ts \ | 40 | TRANSLATIONS = ../../../i18n/de/mailit.ts \ |
45 | ../../../i18n/nl/mailit.ts \ | 41 | ../../../i18n/nl/mailit.ts \ |
46 | ../../../i18n/da/mailit.ts \ | 42 | ../../../i18n/da/mailit.ts \ |
47 | ../../../i18n/xx/mailit.ts \ | 43 | ../../../i18n/xx/mailit.ts \ |
48 | ../../../i18n/it/mailit.ts \ | 44 | ../../../i18n/it/mailit.ts \ |
49 | ../../../i18n/en/mailit.ts \ | 45 | ../../../i18n/en/mailit.ts \ |
50 | ../../../i18n/es/mailit.ts \ | 46 | ../../../i18n/es/mailit.ts \ |
51 | ../../../i18n/fr/mailit.ts \ | 47 | ../../../i18n/fr/mailit.ts \ |
52 | ../../../i18n/hu/mailit.ts \ | 48 | ../../../i18n/hu/mailit.ts \ |
53 | ../../../i18n/ja/mailit.ts \ | 49 | ../../../i18n/ja/mailit.ts \ |
54 | ../../../i18n/ko/mailit.ts \ | 50 | ../../../i18n/ko/mailit.ts \ |
55 | ../../../i18n/no/mailit.ts \ | 51 | ../../../i18n/no/mailit.ts \ |
56 | ../../../i18n/pl/mailit.ts \ | 52 | ../../../i18n/pl/mailit.ts \ |
57 | ../../../i18n/pt/mailit.ts \ | 53 | ../../../i18n/pt/mailit.ts \ |
58 | ../../../i18n/pt_BR/mailit.ts \ | 54 | ../../../i18n/pt_BR/mailit.ts \ |
59 | ../../../i18n/sl/mailit.ts \ | 55 | ../../../i18n/sl/mailit.ts \ |
60 | ../../../i18n/zh_CN/mailit.ts \ | 56 | ../../../i18n/zh_CN/mailit.ts \ |
61 | ../../../i18n/zh_TW/mailit.ts | 57 | ../../../i18n/zh_TW/mailit.ts |
62 | 58 | ||
63 | include ( $(OPIEDIR)/include.pro ) | 59 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/net/mailit/mailitwindow.h b/noncore/net/mailit/mailitwindow.h index e818d32..11e56b9 100644 --- a/noncore/net/mailit/mailitwindow.h +++ b/noncore/net/mailit/mailitwindow.h | |||
@@ -1,64 +1,65 @@ | |||
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 | #ifndef MailItWindow_H | 20 | #ifndef MailItWindow_H |
21 | #define MailItWindow_H | 21 | #define MailItWindow_H |
22 | 22 | ||
23 | #include <qmainwindow.h> | 23 | #include <qmainwindow.h> |
24 | #include <qwidgetstack.h> | 24 | #include <qwidgetstack.h> |
25 | #include <qevent.h> | 25 | #include <qevent.h> |
26 | //#include <qlayout.h> | 26 | //#include <qlayout.h> |
27 | #include "emailclient.h" | 27 | #include "emailclient.h" |
28 | #include "writemail.h" | 28 | #include "writemail.h" |
29 | #include "readmail.h" | 29 | #include "readmail.h" |
30 | #include "addresslist.h" | 30 | #include "addresslist.h" |
31 | 31 | ||
32 | class MailItWindow: public QMainWindow | 32 | class MailItWindow: public QMainWindow |
33 | { | 33 | { |
34 | Q_OBJECT | 34 | Q_OBJECT |
35 | public: | 35 | public: |
36 | static QString appName() { return QString::fromLatin1("mailit"); } | ||
36 | MailItWindow(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); | 37 | MailItWindow(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); |
37 | ~MailItWindow(); | 38 | ~MailItWindow(); |
38 | 39 | ||
39 | signals: | 40 | signals: |
40 | public slots: | 41 | public slots: |
41 | void compose(); | 42 | void compose(); |
42 | void composeReply(Email &, bool&); | 43 | void composeReply(Email &, bool&); |
43 | void composeForward(Email &); | 44 | void composeForward(Email &); |
44 | void showEmailClient(); | 45 | void showEmailClient(); |
45 | void viewMail(QListView *, Email *mail); | 46 | void viewMail(QListView *, Email *mail); |
46 | void updateMailView(Email *mail); | 47 | void updateMailView(Email *mail); |
47 | void closeEvent(QCloseEvent *e); | 48 | void closeEvent(QCloseEvent *e); |
48 | void updateCaption(const QString &); | 49 | void updateCaption(const QString &); |
49 | void setDocument(const QString &); | 50 | void setDocument(const QString &); |
50 | /*void reply(Email&); | 51 | /*void reply(Email&); |
51 | void replyAll(Email&); | 52 | void replyAll(Email&); |
52 | void forward(Email&); | 53 | void forward(Email&); |
53 | void remove(Email&);*/ | 54 | void remove(Email&);*/ |
54 | 55 | ||
55 | private: | 56 | private: |
56 | EmailClient *emailClient; | 57 | EmailClient *emailClient; |
57 | WriteMail *writeMail; | 58 | WriteMail *writeMail; |
58 | ReadMail *readMail; | 59 | ReadMail *readMail; |
59 | QWidgetStack *views; | 60 | QWidgetStack *views; |
60 | QString currentCaption; | 61 | QString currentCaption; |
61 | bool viewingMail; | 62 | bool viewingMail; |
62 | }; | 63 | }; |
63 | 64 | ||
64 | #endif | 65 | #endif |
diff --git a/noncore/net/mailit/main.cpp b/noncore/net/mailit/main.cpp index 3a3e1fc..71f8877 100644 --- a/noncore/net/mailit/main.cpp +++ b/noncore/net/mailit/main.cpp | |||
@@ -1,29 +1,25 @@ | |||
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 <qpe/qpeapplication.h> | 20 | #include <qpe/qpeapplication.h> |
21 | #include "mailitwindow.h" | 21 | #include "mailitwindow.h" |
22 | 22 | ||
23 | int main(int argc, char* argv[]) | 23 | #include <opie/oapplicationfactory.h> |
24 | { | 24 | |
25 | QPEApplication a( argc, argv ); | 25 | OPIE_EXPORT_APP( OApplicationFactory<MailItWindow> ) \ No newline at end of file |
26 | MailItWindow mw(0, 0); | ||
27 | a.showMainDocumentWidget(&mw); | ||
28 | return a.exec(); | ||
29 | } | ||
diff --git a/noncore/net/opieftp/main.cpp b/noncore/net/opieftp/main.cpp index 4f5a7d4..0217e41 100644 --- a/noncore/net/opieftp/main.cpp +++ b/noncore/net/opieftp/main.cpp | |||
@@ -1,27 +1,16 @@ | |||
1 | 1 | ||
2 | /*************************************************************************** | 2 | /*************************************************************************** |
3 | main.cpp - description | 3 | main.cpp - description |
4 | ------------------- | 4 | ------------------- |
5 | begin : March 10, 2002 | 5 | begin : March 10, 2002 |
6 | copyright : (C) 2002 by llornkcor | 6 | copyright : (C) 2002 by llornkcor |
7 | email : ljp@llornkcor.com | 7 | email : ljp@llornkcor.com |
8 | * This program is free software; you can redistribute it and/or modify * | 8 | * This program is free software; you can redistribute it and/or modify * |
9 | * it under the terms of the GNU General Public License as published by * | 9 | * it under the terms of the GNU General Public License as published by * |
10 | * the Free Software Foundation; either version 2 of the License, or * | 10 | * the Free Software Foundation; either version 2 of the License, or * |
11 | * (at your option) any later version. * | 11 | * (at your option) any later version. * |
12 | ***************************************************************************/ | 12 | ***************************************************************************/ |
13 | #include <qpe/qpeapplication.h> | 13 | #include <opie/oapplicationfactory.h> |
14 | |||
15 | |||
16 | |||
17 | #include "opieftp.h" | 14 | #include "opieftp.h" |
18 | 15 | ||
19 | int main(int argc, char *argv[]) | 16 | OPIE_EXPORT_APP( OApplicationFactory<OpieFtp> ) |
20 | { | ||
21 | QPEApplication a(argc, argv); | ||
22 | |||
23 | OpieFtp opieftp; | ||
24 | a.showMainWidget( &opieftp); | ||
25 | return a.exec(); | ||
26 | } | ||
27 | |||
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp index 269449e..ee7d32f 100644 --- a/noncore/net/opieftp/opieftp.cpp +++ b/noncore/net/opieftp/opieftp.cpp | |||
@@ -1,1515 +1,1515 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | opieftp.cpp | 2 | opieftp.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 | 13 | ||
14 | #include "opieftp.h" | 14 | #include "opieftp.h" |
15 | 15 | ||
16 | extern "C" { | 16 | extern "C" { |
17 | #include "../ftplib/ftplib.h" | 17 | #include "../ftplib/ftplib.h" |
18 | } | 18 | } |
19 | 19 | ||
20 | #include "inputDialog.h" | 20 | #include "inputDialog.h" |
21 | 21 | ||
22 | #include <qpe/qpemenubar.h> | 22 | #include <qpe/qpemenubar.h> |
23 | #include <qpe/qpeapplication.h> | 23 | #include <qpe/qpeapplication.h> |
24 | #include <qpe/resource.h> | 24 | #include <qpe/resource.h> |
25 | #include <qpe/config.h> | 25 | #include <qpe/config.h> |
26 | #include <qpe/mimetype.h> | 26 | #include <qpe/mimetype.h> |
27 | 27 | ||
28 | #include <qtextstream.h> | 28 | #include <qtextstream.h> |
29 | #include <qpushbutton.h> | 29 | #include <qpushbutton.h> |
30 | #include <qtoolbutton.h> | 30 | #include <qtoolbutton.h> |
31 | #include <qcombobox.h> | 31 | #include <qcombobox.h> |
32 | #include <qlistview.h> | 32 | #include <qlistview.h> |
33 | #include <qlabel.h> | 33 | #include <qlabel.h> |
34 | #include <qprogressbar.h> | 34 | #include <qprogressbar.h> |
35 | #include <qspinbox.h> | 35 | #include <qspinbox.h> |
36 | #include <qtabwidget.h> | 36 | #include <qtabwidget.h> |
37 | #include <qlayout.h> | 37 | #include <qlayout.h> |
38 | #include <qmessagebox.h> | 38 | #include <qmessagebox.h> |
39 | #include <qlineedit.h> | 39 | #include <qlineedit.h> |
40 | #include <qlistbox.h> | 40 | #include <qlistbox.h> |
41 | 41 | ||
42 | #include <unistd.h> | 42 | #include <unistd.h> |
43 | #include <stdlib.h> | 43 | #include <stdlib.h> |
44 | 44 | ||
45 | 45 | ||
46 | QProgressBar *ProgressBar; | 46 | QProgressBar *ProgressBar; |
47 | static netbuf *conn=NULL; | 47 | static netbuf *conn=NULL; |
48 | 48 | ||
49 | static int log_progress(netbuf *, int xfered, void *) | 49 | static int log_progress(netbuf *, int xfered, void *) |
50 | { | 50 | { |
51 | // int fsz = *(int *)arg; | 51 | // int fsz = *(int *)arg; |
52 | // int pct = (xfered * 100) / fsz; | 52 | // int pct = (xfered * 100) / fsz; |
53 | // printf("%3d%%\r", pct); | 53 | // printf("%3d%%\r", pct); |
54 | // fflush(stdout); | 54 | // fflush(stdout); |
55 | ProgressBar->setProgress(xfered); | 55 | ProgressBar->setProgress(xfered); |
56 | qApp->processEvents(); | 56 | qApp->processEvents(); |
57 | return 1; | 57 | return 1; |
58 | } | 58 | } |
59 | 59 | ||
60 | OpieFtp::OpieFtp( ) | 60 | OpieFtp::OpieFtp( QWidget* parent, const char* name, WFlags fl) |
61 | : QMainWindow( ) | 61 | : QMainWindow( parent, name, fl ) |
62 | { | 62 | { |
63 | setCaption( tr( "OpieFtp" ) ); | 63 | setCaption( tr( "OpieFtp" ) ); |
64 | fuckeduphack=FALSE; | 64 | fuckeduphack=FALSE; |
65 | QGridLayout *layout = new QGridLayout( this ); | 65 | QGridLayout *layout = new QGridLayout( this ); |
66 | layout->setSpacing( 2); | 66 | layout->setSpacing( 2); |
67 | layout->setMargin( 2); | 67 | layout->setMargin( 2); |
68 | 68 | ||
69 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); | 69 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); |
70 | 70 | ||
71 | QPEMenuBar *menuBar = new QPEMenuBar(this); | 71 | QPEMenuBar *menuBar = new QPEMenuBar(this); |
72 | // QPEToolBar *menuBar = new QPEToolBar(this); | 72 | // QPEToolBar *menuBar = new QPEToolBar(this); |
73 | // menuBar->setHorizontalStretchable( TRUE ); | 73 | // menuBar->setHorizontalStretchable( TRUE ); |
74 | 74 | ||
75 | QWMatrix matrix; | 75 | QWMatrix matrix; |
76 | QPixmap pix(Resource::loadPixmap( "UnknownDocument" )); | 76 | QPixmap pix(Resource::loadPixmap( "UnknownDocument" )); |
77 | matrix.scale( .4, .4); | 77 | matrix.scale( .4, .4); |
78 | unknownXpm = pix.xForm(matrix); | 78 | unknownXpm = pix.xForm(matrix); |
79 | 79 | ||
80 | connectionMenu = new QPopupMenu( this ); | 80 | connectionMenu = new QPopupMenu( this ); |
81 | localMenu = new QPopupMenu( this ); | 81 | localMenu = new QPopupMenu( this ); |
82 | remoteMenu = new QPopupMenu( this ); | 82 | remoteMenu = new QPopupMenu( this ); |
83 | tabMenu = new QPopupMenu( this ); | 83 | tabMenu = new QPopupMenu( this ); |
84 | 84 | ||
85 | layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 ); | 85 | layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 ); |
86 | 86 | ||
87 | menuBar->insertItem( tr( "Connection" ), connectionMenu); | 87 | menuBar->insertItem( tr( "Connection" ), connectionMenu); |
88 | // menuBar->insertItem( tr( "Local" ), localMenu); | 88 | // menuBar->insertItem( tr( "Local" ), localMenu); |
89 | // menuBar->insertItem( tr( "Remote" ), remoteMenu); | 89 | // menuBar->insertItem( tr( "Remote" ), remoteMenu); |
90 | menuBar->insertItem( tr( "View" ), tabMenu); | 90 | menuBar->insertItem( tr( "View" ), tabMenu); |
91 | 91 | ||
92 | tabMenu->insertItem( tr( "Local" ), localMenu); | 92 | tabMenu->insertItem( tr( "Local" ), localMenu); |
93 | tabMenu->insertItem( tr( "Remote" ), remoteMenu); | 93 | tabMenu->insertItem( tr( "Remote" ), remoteMenu); |
94 | 94 | ||
95 | connectionMenu->insertItem( tr( "New" ), this, SLOT( newConnection() )); | 95 | connectionMenu->insertItem( tr( "New" ), this, SLOT( newConnection() )); |
96 | connectionMenu->insertItem( tr( "Connect" ), this, SLOT( connector() )); | 96 | connectionMenu->insertItem( tr( "Connect" ), this, SLOT( connector() )); |
97 | connectionMenu->insertItem( tr( "Disconnect" ), this, SLOT( disConnector() )); | 97 | connectionMenu->insertItem( tr( "Disconnect" ), this, SLOT( disConnector() )); |
98 | 98 | ||
99 | localMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); | 99 | localMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); |
100 | localMenu->insertSeparator(); | 100 | localMenu->insertSeparator(); |
101 | localMenu->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); | 101 | localMenu->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); |
102 | localMenu->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); | 102 | localMenu->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); |
103 | localMenu->insertItem( tr( "Rename" ), this, SLOT( localRename() )); | 103 | localMenu->insertItem( tr( "Rename" ), this, SLOT( localRename() )); |
104 | localMenu->insertSeparator(); | 104 | localMenu->insertSeparator(); |
105 | localMenu->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); | 105 | localMenu->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); |
106 | localMenu->setCheckable(TRUE); | 106 | localMenu->setCheckable(TRUE); |
107 | 107 | ||
108 | remoteMenu->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); | 108 | remoteMenu->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); |
109 | remoteMenu->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); | 109 | remoteMenu->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); |
110 | remoteMenu->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); | 110 | remoteMenu->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); |
111 | remoteMenu->insertSeparator(); | 111 | remoteMenu->insertSeparator(); |
112 | remoteMenu->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); | 112 | remoteMenu->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); |
113 | 113 | ||
114 | tabMenu->insertSeparator(); | 114 | tabMenu->insertSeparator(); |
115 | tabMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() )); | 115 | tabMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() )); |
116 | tabMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() )); | 116 | tabMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() )); |
117 | tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() )); | 117 | tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() )); |
118 | tabMenu->insertSeparator(); | 118 | tabMenu->insertSeparator(); |
119 | // tabMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); | 119 | // tabMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); |
120 | tabMenu->setCheckable(TRUE); | 120 | tabMenu->setCheckable(TRUE); |
121 | 121 | ||
122 | 122 | ||
123 | 123 | ||
124 | cdUpButton = new QToolButton( this,"cdUpButton"); | 124 | cdUpButton = new QToolButton( this,"cdUpButton"); |
125 | cdUpButton->setPixmap(Resource::loadPixmap("up")); | 125 | cdUpButton->setPixmap(Resource::loadPixmap("up")); |
126 | cdUpButton ->setFixedSize( QSize( 20, 20 ) ); | 126 | cdUpButton ->setFixedSize( QSize( 20, 20 ) ); |
127 | connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) ); | 127 | connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) ); |
128 | layout->addMultiCellWidget( cdUpButton, 0, 0, 3, 3 ); | 128 | layout->addMultiCellWidget( cdUpButton, 0, 0, 3, 3 ); |
129 | cdUpButton->hide(); | 129 | cdUpButton->hide(); |
130 | 130 | ||
131 | // docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); | 131 | // docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); |
132 | // docButton->setFixedSize( QSize( 20, 20 ) ); | 132 | // docButton->setFixedSize( QSize( 20, 20 ) ); |
133 | // connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); | 133 | // connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); |
134 | // docButton->setFlat(TRUE); | 134 | // docButton->setFlat(TRUE); |
135 | // layout->addMultiCellWidget( docButton, 0, 0, 6, 6 ); | 135 | // layout->addMultiCellWidget( docButton, 0, 0, 6, 6 ); |
136 | 136 | ||
137 | homeButton = new QToolButton(this,"homeButton"); | 137 | homeButton = new QToolButton(this,"homeButton"); |
138 | homeButton->setPixmap( Resource::loadPixmap("home")); | 138 | homeButton->setPixmap( Resource::loadPixmap("home")); |
139 | homeButton->setFixedSize( QSize( 20, 20 ) ); | 139 | homeButton->setFixedSize( QSize( 20, 20 ) ); |
140 | connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); | 140 | connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); |
141 | layout->addMultiCellWidget( homeButton, 0, 0, 4, 4); | 141 | layout->addMultiCellWidget( homeButton, 0, 0, 4, 4); |
142 | homeButton->hide(); | 142 | homeButton->hide(); |
143 | 143 | ||
144 | TabWidget = new QTabWidget( this, "TabWidget" ); | 144 | TabWidget = new QTabWidget( this, "TabWidget" ); |
145 | layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 ); | 145 | layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 ); |
146 | 146 | ||
147 | // TabWidget->setTabShape(QTabWidget::Triangular); | 147 | // TabWidget->setTabShape(QTabWidget::Triangular); |
148 | 148 | ||
149 | tab = new QWidget( TabWidget, "tab" ); | 149 | tab = new QWidget( TabWidget, "tab" ); |
150 | tabLayout = new QGridLayout( tab ); | 150 | tabLayout = new QGridLayout( tab ); |
151 | tabLayout->setSpacing( 2); | 151 | tabLayout->setSpacing( 2); |
152 | tabLayout->setMargin( 2); | 152 | tabLayout->setMargin( 2); |
153 | 153 | ||
154 | Local_View = new QListView( tab, "Local_View" ); | 154 | Local_View = new QListView( tab, "Local_View" ); |
155 | // Local_View->setResizePolicy( QListView::AutoOneFit ); | 155 | // Local_View->setResizePolicy( QListView::AutoOneFit ); |
156 | Local_View->addColumn( tr("File"),150); | 156 | Local_View->addColumn( tr("File"),150); |
157 | Local_View->addColumn( tr("Date"),-1); | 157 | Local_View->addColumn( tr("Date"),-1); |
158 | Local_View->setColumnAlignment(1,QListView::AlignRight); | 158 | Local_View->setColumnAlignment(1,QListView::AlignRight); |
159 | Local_View->addColumn( tr("Size"),-1); | 159 | Local_View->addColumn( tr("Size"),-1); |
160 | Local_View->setColumnAlignment(2,QListView::AlignRight); | 160 | Local_View->setColumnAlignment(2,QListView::AlignRight); |
161 | Local_View->setAllColumnsShowFocus(TRUE); | 161 | Local_View->setAllColumnsShowFocus(TRUE); |
162 | 162 | ||
163 | Local_View->setMultiSelection( TRUE); | 163 | Local_View->setMultiSelection( TRUE); |
164 | Local_View->setSelectionMode(QListView::Extended); | 164 | Local_View->setSelectionMode(QListView::Extended); |
165 | Local_View->setFocusPolicy(QWidget::ClickFocus); | 165 | Local_View->setFocusPolicy(QWidget::ClickFocus); |
166 | 166 | ||
167 | QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); | 167 | QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); |
168 | 168 | ||
169 | tabLayout->addWidget( Local_View, 0, 0 ); | 169 | tabLayout->addWidget( Local_View, 0, 0 ); |
170 | 170 | ||
171 | connect( Local_View, SIGNAL( clicked( QListViewItem*)), | 171 | connect( Local_View, SIGNAL( clicked( QListViewItem*)), |
172 | this,SLOT( localListClicked(QListViewItem *)) ); | 172 | this,SLOT( localListClicked(QListViewItem *)) ); |
173 | // connect( Local_View, SIGNAL( doubleClicked( QListViewItem*)), | 173 | // connect( Local_View, SIGNAL( doubleClicked( QListViewItem*)), |
174 | // this,SLOT( localListClicked(QListViewItem *)) ); | 174 | // this,SLOT( localListClicked(QListViewItem *)) ); |
175 | connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 175 | connect( Local_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), |
176 | this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); | 176 | this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); |
177 | 177 | ||
178 | TabWidget->insertTab( tab, tr( "Local" ) ); | 178 | TabWidget->insertTab( tab, tr( "Local" ) ); |
179 | 179 | ||
180 | tab_2 = new QWidget( TabWidget, "tab_2" ); | 180 | tab_2 = new QWidget( TabWidget, "tab_2" ); |
181 | tabLayout_2 = new QGridLayout( tab_2 ); | 181 | tabLayout_2 = new QGridLayout( tab_2 ); |
182 | tabLayout_2->setSpacing( 2); | 182 | tabLayout_2->setSpacing( 2); |
183 | tabLayout_2->setMargin( 2); | 183 | tabLayout_2->setMargin( 2); |
184 | 184 | ||
185 | Remote_View = new QListView( tab_2, "Remote_View" ); | 185 | Remote_View = new QListView( tab_2, "Remote_View" ); |
186 | Remote_View->addColumn( tr("File"),150); | 186 | Remote_View->addColumn( tr("File"),150); |
187 | Remote_View->addColumn( tr("Date"),-1); | 187 | Remote_View->addColumn( tr("Date"),-1); |
188 | // Remote_View->setColumnAlignment(1,QListView::AlignRight); | 188 | // Remote_View->setColumnAlignment(1,QListView::AlignRight); |
189 | Remote_View->addColumn( tr("Size"),-1); | 189 | Remote_View->addColumn( tr("Size"),-1); |
190 | Remote_View->setColumnAlignment(2,QListView::AlignRight); | 190 | Remote_View->setColumnAlignment(2,QListView::AlignRight); |
191 | Remote_View->setColumnAlignment(3,QListView::AlignCenter); | 191 | Remote_View->setColumnAlignment(3,QListView::AlignCenter); |
192 | Remote_View->addColumn( tr("Dir"),-1); | 192 | Remote_View->addColumn( tr("Dir"),-1); |
193 | Remote_View->setColumnAlignment(4,QListView::AlignRight); | 193 | Remote_View->setColumnAlignment(4,QListView::AlignRight); |
194 | Remote_View->setAllColumnsShowFocus(TRUE); | 194 | Remote_View->setAllColumnsShowFocus(TRUE); |
195 | 195 | ||
196 | Remote_View->setMultiSelection( FALSE); | 196 | Remote_View->setMultiSelection( FALSE); |
197 | Remote_View->setSelectionMode(QListView::Extended); | 197 | Remote_View->setSelectionMode(QListView::Extended); |
198 | Remote_View->setFocusPolicy(QWidget::ClickFocus); | 198 | Remote_View->setFocusPolicy(QWidget::ClickFocus); |
199 | 199 | ||
200 | QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); | 200 | QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); |
201 | 201 | ||
202 | connect( Remote_View, SIGNAL( clicked( QListViewItem*)), | 202 | connect( Remote_View, SIGNAL( clicked( QListViewItem*)), |
203 | this,SLOT( remoteListClicked(QListViewItem *)) ); | 203 | this,SLOT( remoteListClicked(QListViewItem *)) ); |
204 | connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 204 | connect( Remote_View, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), |
205 | this,SLOT( RemoteListPressed(int, QListViewItem *, const QPoint&, int)) ); | 205 | this,SLOT( RemoteListPressed(int, QListViewItem *, const QPoint&, int)) ); |
206 | 206 | ||
207 | tabLayout_2->addWidget( Remote_View, 0, 0 ); | 207 | tabLayout_2->addWidget( Remote_View, 0, 0 ); |
208 | 208 | ||
209 | TabWidget->insertTab( tab_2, tr( "Remote" ) ); | 209 | TabWidget->insertTab( tab_2, tr( "Remote" ) ); |
210 | 210 | ||
211 | tab_3 = new QWidget( TabWidget, "tab_3" ); | 211 | tab_3 = new QWidget( TabWidget, "tab_3" ); |
212 | tabLayout_3 = new QGridLayout( tab_3 ); | 212 | tabLayout_3 = new QGridLayout( tab_3 ); |
213 | tabLayout_3->setSpacing( 2); | 213 | tabLayout_3->setSpacing( 2); |
214 | tabLayout_3->setMargin( 2); | 214 | tabLayout_3->setMargin( 2); |
215 | 215 | ||
216 | TextLabel1 = new QLabel( tab_3, "TextLabel1" ); | 216 | TextLabel1 = new QLabel( tab_3, "TextLabel1" ); |
217 | TextLabel1->setText( tr( "Username" ) ); | 217 | TextLabel1->setText( tr( "Username" ) ); |
218 | tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 ); | 218 | tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 ); |
219 | 219 | ||
220 | UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" ); | 220 | UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" ); |
221 | UsernameComboBox->setEditable(TRUE); | 221 | UsernameComboBox->setEditable(TRUE); |
222 | tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 ); | 222 | tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 ); |
223 | 223 | ||
224 | connect( UsernameComboBox,SIGNAL(textChanged(const QString &)),this, | 224 | connect( UsernameComboBox,SIGNAL(textChanged(const QString &)),this, |
225 | SLOT( UsernameComboBoxEdited(const QString & ) )); | 225 | SLOT( UsernameComboBoxEdited(const QString & ) )); |
226 | 226 | ||
227 | TextLabel2 = new QLabel( tab_3, "TextLabel2" ); | 227 | TextLabel2 = new QLabel( tab_3, "TextLabel2" ); |
228 | TextLabel2->setText( tr( "Password" ) ); | 228 | TextLabel2->setText( tr( "Password" ) ); |
229 | tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 ); | 229 | tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 ); |
230 | 230 | ||
231 | PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" ); | 231 | PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" ); |
232 | PasswordEdit->setEchoMode(QLineEdit::Password); | 232 | PasswordEdit->setEchoMode(QLineEdit::Password); |
233 | tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 ); | 233 | tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 ); |
234 | 234 | ||
235 | connect( PasswordEdit,SIGNAL(textChanged(const QString &)),this, | 235 | connect( PasswordEdit,SIGNAL(textChanged(const QString &)),this, |
236 | SLOT( PasswordEditEdited(const QString & ) )); | 236 | SLOT( PasswordEditEdited(const QString & ) )); |
237 | 237 | ||
238 | //PasswordEdit->setFixedWidth(85); | 238 | //PasswordEdit->setFixedWidth(85); |
239 | TextLabel3 = new QLabel( tab_3, "TextLabel3" ); | 239 | TextLabel3 = new QLabel( tab_3, "TextLabel3" ); |
240 | TextLabel3->setText( tr( "Remote server" ) ); | 240 | TextLabel3->setText( tr( "Remote server" ) ); |
241 | tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); | 241 | tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); |
242 | 242 | ||
243 | ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" ); | 243 | ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" ); |
244 | ServerComboBox->setEditable(TRUE); | 244 | ServerComboBox->setEditable(TRUE); |
245 | tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 ); | 245 | tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 ); |
246 | 246 | ||
247 | connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int ) )); | 247 | connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int ) )); |
248 | connect(ServerComboBox,SIGNAL(textChanged(const QString &)),this, | 248 | connect(ServerComboBox,SIGNAL(textChanged(const QString &)),this, |
249 | SLOT(serverComboEdited(const QString & ) )); | 249 | SLOT(serverComboEdited(const QString & ) )); |
250 | 250 | ||
251 | QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" ); | 251 | QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" ); |
252 | TextLabel5->setText( tr( "Remote path" ) ); | 252 | TextLabel5->setText( tr( "Remote path" ) ); |
253 | tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 ); | 253 | tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 ); |
254 | 254 | ||
255 | 255 | ||
256 | remotePath = new QLineEdit( "/", tab_3, "remotePath" ); | 256 | remotePath = new QLineEdit( "/", tab_3, "remotePath" ); |
257 | tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 ); | 257 | tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 ); |
258 | TextLabel4 = new QLabel( tab_3, "TextLabel4" ); | 258 | TextLabel4 = new QLabel( tab_3, "TextLabel4" ); |
259 | TextLabel4->setText( tr( "Port" ) ); | 259 | TextLabel4->setText( tr( "Port" ) ); |
260 | tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 ); | 260 | tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 ); |
261 | 261 | ||
262 | PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" ); | 262 | PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" ); |
263 | PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows ); | 263 | PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows ); |
264 | PortSpinBox->setMaxValue(32786); | 264 | PortSpinBox->setMaxValue(32786); |
265 | tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1); | 265 | tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1); |
266 | 266 | ||
267 | serverListView = new QListBox( tab_3, "ServerListView" ); | 267 | serverListView = new QListBox( tab_3, "ServerListView" ); |
268 | tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5); | 268 | tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5); |
269 | 269 | ||
270 | connect( serverListView, SIGNAL( highlighted( const QString &)), | 270 | connect( serverListView, SIGNAL( highlighted( const QString &)), |
271 | this,SLOT( serverListClicked( const QString &) ) ); | 271 | this,SLOT( serverListClicked( const QString &) ) ); |
272 | 272 | ||
273 | connectServerBtn = new QPushButton( "Connect", tab_3 , "ConnectButton" ); | 273 | connectServerBtn = new QPushButton( tr("Connect"), tab_3 , "ConnectButton" ); |
274 | tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1); | 274 | tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1); |
275 | connectServerBtn->setToggleButton(TRUE); | 275 | connectServerBtn->setToggleButton(TRUE); |
276 | connect(connectServerBtn,SIGNAL( toggled( bool)),SLOT( connectorBtnToggled(bool) )); | 276 | connect(connectServerBtn,SIGNAL( toggled( bool)),SLOT( connectorBtnToggled(bool) )); |
277 | 277 | ||
278 | newServerButton= new QPushButton( "Add", tab_3 , "NewServerButton" ); | 278 | newServerButton= new QPushButton( tr("Add"), tab_3 , "NewServerButton" ); |
279 | tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2); | 279 | tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2); |
280 | connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() )); | 280 | connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() )); |
281 | 281 | ||
282 | QPushButton *deleteServerBtn; | 282 | QPushButton *deleteServerBtn; |
283 | deleteServerBtn = new QPushButton( "Delete", tab_3 , "OpenButton" ); | 283 | deleteServerBtn = new QPushButton( tr("Delete"), tab_3 , "OpenButton" ); |
284 | tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3); | 284 | tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3); |
285 | 285 | ||
286 | connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer())); | 286 | connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer())); |
287 | 287 | ||
288 | 288 | ||
289 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); | 289 | QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); |
290 | tabLayout_3->addItem( spacer, 5, 0 ); | 290 | tabLayout_3->addItem( spacer, 5, 0 ); |
291 | 291 | ||
292 | TabWidget->insertTab( tab_3, tr( "Config" ) ); | 292 | TabWidget->insertTab( tab_3, tr( "Config" ) ); |
293 | 293 | ||
294 | connect(TabWidget,SIGNAL(currentChanged(QWidget *)), | 294 | connect(TabWidget,SIGNAL(currentChanged(QWidget *)), |
295 | this,SLOT(tabChanged(QWidget*))); | 295 | this,SLOT(tabChanged(QWidget*))); |
296 | 296 | ||
297 | currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); | 297 | currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); |
298 | currentDir.setPath( QDir::currentDirPath()); | 298 | currentDir.setPath( QDir::currentDirPath()); |
299 | // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 299 | // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
300 | 300 | ||
301 | currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" ); | 301 | currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" ); |
302 | layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4); | 302 | layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4); |
303 | currentPathCombo ->setFixedWidth(220); | 303 | currentPathCombo ->setFixedWidth(220); |
304 | currentPathCombo->setEditable(TRUE); | 304 | currentPathCombo->setEditable(TRUE); |
305 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); | 305 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); |
306 | 306 | ||
307 | connect( currentPathCombo, SIGNAL( activated( const QString & ) ), | 307 | connect( currentPathCombo, SIGNAL( activated( const QString & ) ), |
308 | this, SLOT( currentPathComboActivated( const QString & ) ) ); | 308 | this, SLOT( currentPathComboActivated( const QString & ) ) ); |
309 | 309 | ||
310 | connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), | 310 | connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), |
311 | this,SLOT(currentPathComboChanged())); | 311 | this,SLOT(currentPathComboChanged())); |
312 | 312 | ||
313 | ProgressBar = new QProgressBar( this, "ProgressBar" ); | 313 | ProgressBar = new QProgressBar( this, "ProgressBar" ); |
314 | layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4); | 314 | layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4); |
315 | ProgressBar->setMaximumHeight(10); | 315 | ProgressBar->setMaximumHeight(10); |
316 | filterStr="*"; | 316 | filterStr="*"; |
317 | b=FALSE; | 317 | b=FALSE; |
318 | populateLocalView(); | 318 | populateLocalView(); |
319 | readConfig(); | 319 | readConfig(); |
320 | 320 | ||
321 | // ServerComboBox->setCurrentItem(currentServerConfig); | 321 | // ServerComboBox->setCurrentItem(currentServerConfig); |
322 | 322 | ||
323 | TabWidget->setCurrentPage(2); | 323 | TabWidget->setCurrentPage(2); |
324 | } | 324 | } |
325 | 325 | ||
326 | OpieFtp::~OpieFtp() | 326 | OpieFtp::~OpieFtp() |
327 | { | 327 | { |
328 | } | 328 | } |
329 | 329 | ||
330 | void OpieFtp::cleanUp() | 330 | void OpieFtp::cleanUp() |
331 | { | 331 | { |
332 | if(conn) | 332 | if(conn) |
333 | FtpQuit(conn); | 333 | FtpQuit(conn); |
334 | QString sfile=QDir::homeDirPath(); | 334 | QString sfile=QDir::homeDirPath(); |
335 | if(sfile.right(1) != "/") | 335 | if(sfile.right(1) != "/") |
336 | sfile+="/._temp"; | 336 | sfile+="/._temp"; |
337 | else | 337 | else |
338 | sfile+="._temp"; | 338 | sfile+="._temp"; |
339 | QFile file( sfile); | 339 | QFile file( sfile); |
340 | if(file.exists()) | 340 | if(file.exists()) |
341 | file.remove(); | 341 | file.remove(); |
342 | Config cfg("opieftp"); | 342 | Config cfg("opieftp"); |
343 | cfg.setGroup("Server"); | 343 | cfg.setGroup("Server"); |
344 | cfg.writeEntry("currentServer", currentServerConfig); | 344 | cfg.writeEntry("currentServer", currentServerConfig); |
345 | 345 | ||
346 | exit(0); | 346 | exit(0); |
347 | } | 347 | } |
348 | 348 | ||
349 | void OpieFtp::tabChanged(QWidget *) | 349 | void OpieFtp::tabChanged(QWidget *) |
350 | { | 350 | { |
351 | if (TabWidget->currentPageIndex() == 0) { | 351 | if (TabWidget->currentPageIndex() == 0) { |
352 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); | 352 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); |
353 | tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); | 353 | tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); |
354 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); | 354 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); |
355 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); | 355 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); |
356 | if(cdUpButton->isHidden()) | 356 | if(cdUpButton->isHidden()) |
357 | cdUpButton->show(); | 357 | cdUpButton->show(); |
358 | if(homeButton->isHidden()) | 358 | if(homeButton->isHidden()) |
359 | homeButton->show(); | 359 | homeButton->show(); |
360 | 360 | ||
361 | } | 361 | } |
362 | if (TabWidget->currentPageIndex() == 1) { | 362 | if (TabWidget->currentPageIndex() == 1) { |
363 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); | 363 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); |
364 | tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); | 364 | tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); |
365 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); | 365 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); |
366 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); | 366 | tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); |
367 | if(cdUpButton->isHidden()) | 367 | if(cdUpButton->isHidden()) |
368 | cdUpButton->show(); | 368 | cdUpButton->show(); |
369 | homeButton->hide(); | 369 | homeButton->hide(); |
370 | 370 | ||
371 | } | 371 | } |
372 | if (TabWidget->currentPageIndex() == 2) { | 372 | if (TabWidget->currentPageIndex() == 2) { |
373 | tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); | 373 | tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); |
374 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); | 374 | tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); |
375 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); | 375 | tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); |
376 | cdUpButton->hide(); | 376 | cdUpButton->hide(); |
377 | homeButton->hide(); | 377 | homeButton->hide(); |
378 | } | 378 | } |
379 | } | 379 | } |
380 | 380 | ||
381 | void OpieFtp::newConnection() | 381 | void OpieFtp::newConnection() |
382 | { | 382 | { |
383 | UsernameComboBox->lineEdit()->setText(""); | 383 | UsernameComboBox->lineEdit()->setText(""); |
384 | PasswordEdit->setText( "" ); | 384 | PasswordEdit->setText( "" ); |
385 | ServerComboBox->lineEdit()->setText( ""); | 385 | ServerComboBox->lineEdit()->setText( ""); |
386 | remotePath->setText( currentRemoteDir = "/"); | 386 | remotePath->setText( currentRemoteDir = "/"); |
387 | PortSpinBox->setValue( 21); | 387 | PortSpinBox->setValue( 21); |
388 | TabWidget->setCurrentPage(2); | 388 | TabWidget->setCurrentPage(2); |
389 | } | 389 | } |
390 | 390 | ||
391 | void OpieFtp::serverComboEdited(const QString & ) | 391 | void OpieFtp::serverComboEdited(const QString & ) |
392 | { | 392 | { |
393 | // if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) { | 393 | // if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) { |
394 | // qDebug("ServerComboEdited"); | 394 | // qDebug("ServerComboEdited"); |
395 | // // currentServerConfig = -1; | 395 | // // currentServerConfig = -1; |
396 | // } | 396 | // } |
397 | } | 397 | } |
398 | 398 | ||
399 | void OpieFtp::UsernameComboBoxEdited(const QString &) { | 399 | void OpieFtp::UsernameComboBoxEdited(const QString &) { |
400 | // currentServerConfig = -1; | 400 | // currentServerConfig = -1; |
401 | } | 401 | } |
402 | 402 | ||
403 | void OpieFtp::PasswordEditEdited(const QString & ) { | 403 | void OpieFtp::PasswordEditEdited(const QString & ) { |
404 | // currentServerConfig = -1; | 404 | // currentServerConfig = -1; |
405 | } | 405 | } |
406 | 406 | ||
407 | void OpieFtp::connectorBtnToggled(bool On) | 407 | void OpieFtp::connectorBtnToggled(bool On) |
408 | { | 408 | { |
409 | if(On) { | 409 | if(On) { |
410 | connector(); | 410 | connector(); |
411 | } else { | 411 | } else { |
412 | disConnector(); | 412 | disConnector(); |
413 | } | 413 | } |
414 | 414 | ||
415 | } | 415 | } |
416 | 416 | ||
417 | void OpieFtp::connector() | 417 | void OpieFtp::connector() |
418 | { | 418 | { |
419 | // QCopEnvelope ( "QPE/System", "busy()" ); | 419 | // QCopEnvelope ( "QPE/System", "busy()" ); |
420 | // qApp->processEvents(); | 420 | // qApp->processEvents(); |
421 | currentRemoteDir=remotePath->text(); | 421 | currentRemoteDir=remotePath->text(); |
422 | 422 | ||
423 | if( ServerComboBox->currentText().isEmpty()) { | 423 | if( ServerComboBox->currentText().isEmpty()) { |
424 | 424 | ||
425 | QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0); | 425 | QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0); |
426 | TabWidget->setCurrentPage(2); | 426 | TabWidget->setCurrentPage(2); |
427 | ServerComboBox->setFocus(); | 427 | ServerComboBox->setFocus(); |
428 | connectServerBtn->setOn(FALSE); | 428 | connectServerBtn->setOn(FALSE); |
429 | connectServerBtn->setText( tr("Connect")); | 429 | connectServerBtn->setText( tr("Connect")); |
430 | return; | 430 | return; |
431 | } | 431 | } |
432 | 432 | ||
433 | FtpInit(); | 433 | FtpInit(); |
434 | 434 | ||
435 | TabWidget->setCurrentPage(1); | 435 | TabWidget->setCurrentPage(1); |
436 | QString ftp_host = ServerComboBox->currentText(); | 436 | QString ftp_host = ServerComboBox->currentText(); |
437 | QString ftp_user = UsernameComboBox->currentText(); | 437 | QString ftp_user = UsernameComboBox->currentText(); |
438 | QString ftp_pass = PasswordEdit->text(); | 438 | QString ftp_pass = PasswordEdit->text(); |
439 | QString port=PortSpinBox->cleanText(); | 439 | QString port=PortSpinBox->cleanText(); |
440 | port.stripWhiteSpace(); | 440 | port.stripWhiteSpace(); |
441 | 441 | ||
442 | Config cfg("opieftp"); | 442 | Config cfg("opieftp"); |
443 | cfg.setGroup("Server"); | 443 | cfg.setGroup("Server"); |
444 | // int current=cfg.readNumEntry("currentServer", 1); | 444 | // int current=cfg.readNumEntry("currentServer", 1); |
445 | 445 | ||
446 | // if(ftp_host!= cfg.readEntry(QString::number( current))) | 446 | // if(ftp_host!= cfg.readEntry(QString::number( current))) |
447 | // currentServerConfig=-1; | 447 | // currentServerConfig=-1; |
448 | // cfg.setGroup(QString::number(current)); | 448 | // cfg.setGroup(QString::number(current)); |
449 | // if( ftp_user != cfg.readEntry("Username")) | 449 | // if( ftp_user != cfg.readEntry("Username")) |
450 | // currentServerConfig=-1; | 450 | // currentServerConfig=-1; |
451 | // if(ftp_pass != cfg.readEntry(cfg.readEntry("Username"))) | 451 | // if(ftp_pass != cfg.readEntry(cfg.readEntry("Username"))) |
452 | // currentServerConfig=-1; | 452 | // currentServerConfig=-1; |
453 | 453 | ||
454 | 454 | ||
455 | if(ftp_host.find("ftp://",0, TRUE) != -1 ) | 455 | if(ftp_host.find("ftp://",0, TRUE) != -1 ) |
456 | ftp_host=ftp_host.right(ftp_host.length()-6); | 456 | ftp_host=ftp_host.right(ftp_host.length()-6); |
457 | ftp_host+=":"+port; | 457 | ftp_host+=":"+port; |
458 | 458 | ||
459 | if (!FtpConnect( ftp_host.latin1(), &conn)) { | 459 | if (!FtpConnect( ftp_host.latin1(), &conn)) { |
460 | QMessageBox::message(tr("Note"),tr("Unable to connect to\n")+ftp_host); | 460 | QMessageBox::message(tr("Note"),tr("Unable to connect to\n")+ftp_host); |
461 | connectServerBtn->setOn(FALSE); | 461 | connectServerBtn->setOn(FALSE); |
462 | connectServerBtn->setText( tr("Connect")); | 462 | connectServerBtn->setText( tr("Connect")); |
463 | return ; | 463 | return ; |
464 | } | 464 | } |
465 | 465 | ||
466 | if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { | 466 | if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { |
467 | QString msg; | 467 | QString msg; |
468 | msg.sprintf(tr("Unable to log in\n")+"%s",FtpLastResponse(conn)); | 468 | msg.sprintf(tr("Unable to log in\n")+"%s",FtpLastResponse(conn)); |
469 | msg.replace(QRegExp(":"),"\n"); | 469 | msg.replace(QRegExp(":"),"\n"); |
470 | QMessageBox::message(tr("Note"),msg); | 470 | QMessageBox::message(tr("Note"),msg); |
471 | if(conn) | 471 | if(conn) |
472 | FtpQuit(conn); | 472 | FtpQuit(conn); |
473 | connectServerBtn->setOn(FALSE); | 473 | connectServerBtn->setOn(FALSE); |
474 | connectServerBtn->setText( tr("Connect")); | 474 | connectServerBtn->setText( tr("Connect")); |
475 | return ; | 475 | return ; |
476 | } | 476 | } |
477 | 477 | ||
478 | remoteDirList("/") ; | 478 | remoteDirList("/") ; |
479 | setCaption(ftp_host); | 479 | setCaption(ftp_host); |
480 | if( currentServerConfig == -1) | 480 | if( currentServerConfig == -1) |
481 | writeConfig(); | 481 | writeConfig(); |
482 | connectServerBtn->setText( tr("Disconnect")); | 482 | connectServerBtn->setText( tr("Disconnect")); |
483 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 483 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
484 | } | 484 | } |
485 | 485 | ||
486 | void OpieFtp::disConnector() | 486 | void OpieFtp::disConnector() |
487 | { | 487 | { |
488 | if(conn) | 488 | if(conn) |
489 | FtpQuit(conn); | 489 | FtpQuit(conn); |
490 | setCaption("OpieFtp"); | 490 | setCaption("OpieFtp"); |
491 | currentRemoteDir="/"; | 491 | currentRemoteDir="/"; |
492 | Remote_View->clear(); | 492 | Remote_View->clear(); |
493 | connectServerBtn->setText( tr("Connect")); | 493 | connectServerBtn->setText( tr("Connect")); |
494 | connectServerBtn->setOn(FALSE); | 494 | connectServerBtn->setOn(FALSE); |
495 | setCaption("OpieFtp"); | 495 | setCaption("OpieFtp"); |
496 | } | 496 | } |
497 | 497 | ||
498 | void OpieFtp::localUpload() | 498 | void OpieFtp::localUpload() |
499 | { | 499 | { |
500 | int fsz; | 500 | int fsz; |
501 | // QCopEnvelope ( "QPE/System", "busy()" ); | 501 | // QCopEnvelope ( "QPE/System", "busy()" ); |
502 | // qApp->processEvents(); | 502 | // qApp->processEvents(); |
503 | QList<QListViewItem> * getSelectedItems( QListView * Local_View ); | 503 | QList<QListViewItem> * getSelectedItems( QListView * Local_View ); |
504 | QListViewItemIterator it( Local_View ); | 504 | QListViewItemIterator it( Local_View ); |
505 | for ( ; it.current(); ++it ) { | 505 | for ( ; it.current(); ++it ) { |
506 | if ( it.current()->isSelected() ) { | 506 | if ( it.current()->isSelected() ) { |
507 | QString strItem = it.current()->text(0); | 507 | QString strItem = it.current()->text(0); |
508 | QString localFile = currentDir.canonicalPath()+"/"+strItem; | 508 | QString localFile = currentDir.canonicalPath()+"/"+strItem; |
509 | QString remoteFile= currentRemoteDir+strItem; | 509 | QString remoteFile= currentRemoteDir+strItem; |
510 | QFileInfo fi(localFile); | 510 | QFileInfo fi(localFile); |
511 | if( !fi.isDir()) { | 511 | if( !fi.isDir()) { |
512 | fsz=fi.size(); | 512 | fsz=fi.size(); |
513 | ProgressBar->setTotalSteps(fsz); | 513 | ProgressBar->setTotalSteps(fsz); |
514 | 514 | ||
515 | FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn); | 515 | FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn); |
516 | FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn); | 516 | FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn); |
517 | FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn); | 517 | FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn); |
518 | FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn); | 518 | FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn); |
519 | qDebug("Put: %s, %s",localFile.latin1(),remoteFile.latin1()); | 519 | qDebug("Put: %s, %s",localFile.latin1(),remoteFile.latin1()); |
520 | 520 | ||
521 | if( !FtpPut( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) { | 521 | if( !FtpPut( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) { |
522 | QString msg; | 522 | QString msg; |
523 | msg.sprintf(tr("Unable to upload\n")+"%s",FtpLastResponse(conn)); | 523 | msg.sprintf(tr("Unable to upload\n")+"%s",FtpLastResponse(conn)); |
524 | msg.replace(QRegExp(":"),"\n"); | 524 | msg.replace(QRegExp(":"),"\n"); |
525 | QMessageBox::message(tr("Note"),msg); | 525 | QMessageBox::message(tr("Note"),msg); |
526 | } | 526 | } |
527 | } else { | 527 | } else { |
528 | QMessageBox::message(tr("Note"),tr("Cannot upload directories")); | 528 | QMessageBox::message(tr("Note"),tr("Cannot upload directories")); |
529 | } | 529 | } |
530 | ProgressBar->reset(); | 530 | ProgressBar->reset(); |
531 | nullifyCallBack(); | 531 | nullifyCallBack(); |
532 | it.current()->setSelected(FALSE); | 532 | it.current()->setSelected(FALSE); |
533 | } //end currentSelected | 533 | } //end currentSelected |
534 | } | 534 | } |
535 | for ( ; it.current(); ++it ) { | 535 | for ( ; it.current(); ++it ) { |
536 | Local_View->clearSelection(); | 536 | Local_View->clearSelection(); |
537 | } | 537 | } |
538 | Local_View->clearFocus(); | 538 | Local_View->clearFocus(); |
539 | TabWidget->setCurrentPage(1); | 539 | TabWidget->setCurrentPage(1); |
540 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 540 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
541 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 541 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
542 | } | 542 | } |
543 | 543 | ||
544 | void OpieFtp::nullifyCallBack() | 544 | void OpieFtp::nullifyCallBack() |
545 | { | 545 | { |
546 | FtpOptions(FTPLIB_CALLBACK, 0, conn); | 546 | FtpOptions(FTPLIB_CALLBACK, 0, conn); |
547 | FtpOptions(FTPLIB_IDLETIME, 0, conn); | 547 | FtpOptions(FTPLIB_IDLETIME, 0, conn); |
548 | FtpOptions(FTPLIB_CALLBACKARG, 0, conn); | 548 | FtpOptions(FTPLIB_CALLBACKARG, 0, conn); |
549 | FtpOptions(FTPLIB_CALLBACKBYTES, 0, conn); | 549 | FtpOptions(FTPLIB_CALLBACKBYTES, 0, conn); |
550 | } | 550 | } |
551 | 551 | ||
552 | void OpieFtp::remoteDownload() | 552 | void OpieFtp::remoteDownload() |
553 | { | 553 | { |
554 | // qApp->processEvents(); | 554 | // qApp->processEvents(); |
555 | int fsz; | 555 | int fsz; |
556 | // QCopEnvelope ( "QPE/System", "busy()" ); | 556 | // QCopEnvelope ( "QPE/System", "busy()" ); |
557 | 557 | ||
558 | QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); | 558 | QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); |
559 | QListViewItemIterator it( Remote_View ); | 559 | QListViewItemIterator it( Remote_View ); |
560 | for ( ; it.current(); ++it ) { | 560 | for ( ; it.current(); ++it ) { |
561 | if ( it.current()->isSelected() ) { | 561 | if ( it.current()->isSelected() ) { |
562 | QString strItem = it.current()->text(0); | 562 | QString strItem = it.current()->text(0); |
563 | // strItem=strItem.right(strItem.length()-1); | 563 | // strItem=strItem.right(strItem.length()-1); |
564 | QString localFile = currentDir.canonicalPath(); | 564 | QString localFile = currentDir.canonicalPath(); |
565 | if(localFile.right(1).find("/",0,TRUE) == -1) | 565 | if(localFile.right(1).find("/",0,TRUE) == -1) |
566 | localFile += "/"; | 566 | localFile += "/"; |
567 | localFile += strItem; | 567 | localFile += strItem; |
568 | // QString localFile = currentDir.canonicalPath()+"/"+strItem; | 568 | // QString localFile = currentDir.canonicalPath()+"/"+strItem; |
569 | QString remoteFile= currentRemoteDir+strItem; | 569 | QString remoteFile= currentRemoteDir+strItem; |
570 | if (!FtpSize( remoteFile.latin1(), &fsz, FTPLIB_ASCII, conn)) | 570 | if (!FtpSize( remoteFile.latin1(), &fsz, FTPLIB_ASCII, conn)) |
571 | fsz = 0; | 571 | fsz = 0; |
572 | QString temp; | 572 | QString temp; |
573 | temp.sprintf( remoteFile+" "+" %dkb", fsz); | 573 | temp.sprintf( remoteFile+" "+" %dkb", fsz); |
574 | 574 | ||
575 | ProgressBar->setTotalSteps(fsz); | 575 | ProgressBar->setTotalSteps(fsz); |
576 | FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn); | 576 | FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn); |
577 | FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn); | 577 | FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn); |
578 | FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn); | 578 | FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn); |
579 | FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn); | 579 | FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn); |
580 | qDebug("Get: %s, %s",localFile.latin1(),remoteFile.latin1()); | 580 | qDebug("Get: %s, %s",localFile.latin1(),remoteFile.latin1()); |
581 | 581 | ||
582 | if(!FtpGet( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) { | 582 | if(!FtpGet( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) { |
583 | QString msg; | 583 | QString msg; |
584 | msg.sprintf(tr("Unable to download \n")+"%s",FtpLastResponse(conn)); | 584 | msg.sprintf(tr("Unable to download \n")+"%s",FtpLastResponse(conn)); |
585 | msg.replace(QRegExp(":"),"\n"); | 585 | msg.replace(QRegExp(":"),"\n"); |
586 | QMessageBox::message(tr("Note"),msg); | 586 | QMessageBox::message(tr("Note"),msg); |
587 | } | 587 | } |
588 | ProgressBar->reset(); | 588 | ProgressBar->reset(); |
589 | nullifyCallBack(); | 589 | nullifyCallBack(); |
590 | it.current()->setSelected(FALSE); | 590 | it.current()->setSelected(FALSE); |
591 | } | 591 | } |
592 | } | 592 | } |
593 | for ( ; it.current(); ++it ) { | 593 | for ( ; it.current(); ++it ) { |
594 | Remote_View->clearSelection(); | 594 | Remote_View->clearSelection(); |
595 | } | 595 | } |
596 | Remote_View->setFocus(); | 596 | Remote_View->setFocus(); |
597 | TabWidget->setCurrentPage(0); | 597 | TabWidget->setCurrentPage(0); |
598 | populateLocalView(); | 598 | populateLocalView(); |
599 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 599 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
600 | } | 600 | } |
601 | 601 | ||
602 | bool OpieFtp::remoteDirList(const QString &dir) | 602 | bool OpieFtp::remoteDirList(const QString &dir) |
603 | { | 603 | { |
604 | QString tmp = QDir::homeDirPath(); | 604 | QString tmp = QDir::homeDirPath(); |
605 | if(tmp.right(1) != "/") | 605 | if(tmp.right(1) != "/") |
606 | tmp+="/._temp"; | 606 | tmp+="/._temp"; |
607 | else | 607 | else |
608 | tmp+="._temp"; | 608 | tmp+="._temp"; |
609 | // qDebug("Listing remote dir "+tmp); | 609 | // qDebug("Listing remote dir "+tmp); |
610 | // QCopEnvelope ( "QPE/System", "busy()" ); | 610 | // QCopEnvelope ( "QPE/System", "busy()" ); |
611 | if (!FtpDir( tmp.latin1(), dir.latin1(), conn) ) { | 611 | if (!FtpDir( tmp.latin1(), dir.latin1(), conn) ) { |
612 | QString msg; | 612 | QString msg; |
613 | msg.sprintf(tr("Unable to list the directory\n")+dir+"\n%s",FtpLastResponse(conn) ); | 613 | msg.sprintf(tr("Unable to list the directory\n")+dir+"\n%s",FtpLastResponse(conn) ); |
614 | msg.replace(QRegExp(":"),"\n"); | 614 | msg.replace(QRegExp(":"),"\n"); |
615 | QMessageBox::message(tr("Note"),msg); | 615 | QMessageBox::message(tr("Note"),msg); |
616 | return false; | 616 | return false; |
617 | } | 617 | } |
618 | populateRemoteView() ; | 618 | populateRemoteView() ; |
619 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 619 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
620 | return true; | 620 | return true; |
621 | } | 621 | } |
622 | 622 | ||
623 | bool OpieFtp::remoteChDir(const QString &dir) | 623 | bool OpieFtp::remoteChDir(const QString &dir) |
624 | { | 624 | { |
625 | // QCopEnvelope ( "QPE/System", "busy()" ); | 625 | // QCopEnvelope ( "QPE/System", "busy()" ); |
626 | if (!FtpChdir( dir.latin1(), conn )) { | 626 | if (!FtpChdir( dir.latin1(), conn )) { |
627 | QString msg; | 627 | QString msg; |
628 | msg.sprintf(tr("Unable to change directories\n")+dir+"\n%s",FtpLastResponse(conn)); | 628 | msg.sprintf(tr("Unable to change directories\n")+dir+"\n%s",FtpLastResponse(conn)); |
629 | msg.replace(QRegExp(":"),"\n"); | 629 | msg.replace(QRegExp(":"),"\n"); |
630 | QMessageBox::message(tr("Note"),msg); | 630 | QMessageBox::message(tr("Note"),msg); |
631 | // qDebug(msg); | 631 | // qDebug(msg); |
632 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 632 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
633 | return FALSE; | 633 | return FALSE; |
634 | } | 634 | } |
635 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 635 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
636 | return TRUE; | 636 | return TRUE; |
637 | } | 637 | } |
638 | 638 | ||
639 | void OpieFtp::populateLocalView() | 639 | void OpieFtp::populateLocalView() |
640 | { | 640 | { |
641 | Local_View->clear(); | 641 | Local_View->clear(); |
642 | currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 642 | currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
643 | currentDir.setMatchAllDirs(TRUE); | 643 | currentDir.setMatchAllDirs(TRUE); |
644 | currentDir.setNameFilter(filterStr); | 644 | currentDir.setNameFilter(filterStr); |
645 | QString fileL, fileS, fileDate; | 645 | QString fileL, fileS, fileDate; |
646 | bool isDir=FALSE; | 646 | bool isDir=FALSE; |
647 | const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); | 647 | const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); |
648 | QFileInfoListIterator it(*list); | 648 | QFileInfoListIterator it(*list); |
649 | QFileInfo *fi; | 649 | QFileInfo *fi; |
650 | while ( (fi=it.current()) ) { | 650 | while ( (fi=it.current()) ) { |
651 | if (fi->isSymLink() ){ | 651 | if (fi->isSymLink() ){ |
652 | QString symLink=fi->readLink(); | 652 | QString symLink=fi->readLink(); |
653 | // qDebug("Symlink detected "+symLink); | 653 | // qDebug("Symlink detected "+symLink); |
654 | QFileInfo sym( symLink); | 654 | QFileInfo sym( symLink); |
655 | fileS.sprintf( "%10i", sym.size() ); | 655 | fileS.sprintf( "%10i", sym.size() ); |
656 | fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.absFilePath().data() ); | 656 | fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.absFilePath().data() ); |
657 | fileDate = sym.lastModified().toString(); | 657 | fileDate = sym.lastModified().toString(); |
658 | } else { | 658 | } else { |
659 | // qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); | 659 | // qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); |
660 | fileS.sprintf( "%10i", fi->size() ); | 660 | fileS.sprintf( "%10i", fi->size() ); |
661 | fileL.sprintf( "%s",fi->fileName().data() ); | 661 | fileL.sprintf( "%s",fi->fileName().data() ); |
662 | fileDate= fi->lastModified().toString(); | 662 | fileDate= fi->lastModified().toString(); |
663 | if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { | 663 | if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { |
664 | fileL+="/"; | 664 | fileL+="/"; |
665 | isDir=TRUE; | 665 | isDir=TRUE; |
666 | // qDebug( fileL); | 666 | // qDebug( fileL); |
667 | } | 667 | } |
668 | } | 668 | } |
669 | if(fileL !="./" && fi->exists()) { | 669 | if(fileL !="./" && fi->exists()) { |
670 | item = new QListViewItem( Local_View,fileL, fileDate, fileS ); | 670 | item = new QListViewItem( Local_View,fileL, fileDate, fileS ); |
671 | QPixmap pm; | 671 | QPixmap pm; |
672 | 672 | ||
673 | if(isDir || fileL.find("/",0,TRUE) != -1) { | 673 | if(isDir || fileL.find("/",0,TRUE) != -1) { |
674 | if( !QDir( fi->filePath() ).isReadable()) | 674 | if( !QDir( fi->filePath() ).isReadable()) |
675 | pm = Resource::loadPixmap( "lockedfolder" ); | 675 | pm = Resource::loadPixmap( "lockedfolder" ); |
676 | else | 676 | else |
677 | pm= Resource::loadPixmap( "folder" ); | 677 | pm= Resource::loadPixmap( "folder" ); |
678 | item->setPixmap( 0,pm ); | 678 | item->setPixmap( 0,pm ); |
679 | } else { | 679 | } else { |
680 | if( !fi->isReadable() ) | 680 | if( !fi->isReadable() ) |
681 | pm = Resource::loadPixmap( "locked" ); | 681 | pm = Resource::loadPixmap( "locked" ); |
682 | else { | 682 | else { |
683 | MimeType mt(fi->filePath()); | 683 | MimeType mt(fi->filePath()); |
684 | pm=mt.pixmap(); //sets the correct pixmap for mimetype | 684 | pm=mt.pixmap(); //sets the correct pixmap for mimetype |
685 | if(pm.isNull()) | 685 | if(pm.isNull()) |
686 | pm = unknownXpm; | 686 | pm = unknownXpm; |
687 | } | 687 | } |
688 | } | 688 | } |
689 | if( fileL.find("->",0,TRUE) != -1) { | 689 | if( fileL.find("->",0,TRUE) != -1) { |
690 | // overlay link image | 690 | // overlay link image |
691 | pm= Resource::loadPixmap( "folder" ); | 691 | pm= Resource::loadPixmap( "folder" ); |
692 | QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); | 692 | QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); |
693 | QPainter painter( &pm ); | 693 | QPainter painter( &pm ); |
694 | painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); | 694 | painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); |
695 | pm.setMask( pm.createHeuristicMask( FALSE ) ); | 695 | pm.setMask( pm.createHeuristicMask( FALSE ) ); |
696 | } | 696 | } |
697 | item->setPixmap( 0,pm); | 697 | item->setPixmap( 0,pm); |
698 | } | 698 | } |
699 | isDir=FALSE; | 699 | isDir=FALSE; |
700 | ++it; | 700 | ++it; |
701 | } | 701 | } |
702 | Local_View->setSorting( 3,FALSE); | 702 | Local_View->setSorting( 3,FALSE); |
703 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() ); | 703 | currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() ); |
704 | fillCombo( (const QString &)currentDir); | 704 | fillCombo( (const QString &)currentDir); |
705 | } | 705 | } |
706 | 706 | ||
707 | bool OpieFtp::populateRemoteView( ) | 707 | bool OpieFtp::populateRemoteView( ) |
708 | { | 708 | { |
709 | // qDebug("populate remoteview"); | 709 | // qDebug("populate remoteview"); |
710 | QString sfile=QDir::homeDirPath(); | 710 | QString sfile=QDir::homeDirPath(); |
711 | if(sfile.right(1) != "/") | 711 | if(sfile.right(1) != "/") |
712 | sfile+="/._temp"; | 712 | sfile+="/._temp"; |
713 | else | 713 | else |
714 | sfile+="._temp"; | 714 | sfile+="._temp"; |
715 | QFile file( sfile); | 715 | QFile file( sfile); |
716 | Remote_View->clear(); | 716 | Remote_View->clear(); |
717 | QString s, File_Name; | 717 | QString s, File_Name; |
718 | QListViewItem *itemDir=NULL, *itemFile=NULL; | 718 | QListViewItem *itemDir=NULL, *itemFile=NULL; |
719 | QRegExp monthRe(" [JFMASOND][eapuecoe][brynlgptvc] [ 0-9][0-9] [ 0-9][0-9][:0-9][0-9][0-9] "); | 719 | QRegExp monthRe(" [JFMASOND][eapuecoe][brynlgptvc] [ 0-9][0-9] [ 0-9][0-9][:0-9][0-9][0-9] "); |
720 | QString fileL, fileS, fileDate; | 720 | QString fileL, fileS, fileDate; |
721 | if ( file.open(IO_ReadOnly)) { | 721 | if ( file.open(IO_ReadOnly)) { |
722 | QTextStream t( &file ); // use a text stream | 722 | QTextStream t( &file ); // use a text stream |
723 | while ( !t.eof()) { | 723 | while ( !t.eof()) { |
724 | s = t.readLine(); | 724 | s = t.readLine(); |
725 | 725 | ||
726 | if(s.find("total",0,TRUE) == 0) | 726 | if(s.find("total",0,TRUE) == 0) |
727 | continue; | 727 | continue; |
728 | 728 | ||
729 | int len, month = monthRe.match(s, 0, &len); | 729 | int len, month = monthRe.match(s, 0, &len); |
730 | fileDate = s.mid(month + 1, len - 2); // minus spaces | 730 | fileDate = s.mid(month + 1, len - 2); // minus spaces |
731 | fileL = s.right(s.length() - month - len); | 731 | fileL = s.right(s.length() - month - len); |
732 | if(s.left(1) == "d") | 732 | if(s.left(1) == "d") |
733 | fileL = fileL+"/"; | 733 | fileL = fileL+"/"; |
734 | fileS = s.mid(month - 8, 8); // FIXME | 734 | fileS = s.mid(month - 8, 8); // FIXME |
735 | fileS = fileS.stripWhiteSpace(); | 735 | fileS = fileS.stripWhiteSpace(); |
736 | 736 | ||
737 | if(s.left(1) == "d" || fileL.find("/",0,TRUE) != -1) { | 737 | if(s.left(1) == "d" || fileL.find("/",0,TRUE) != -1) { |
738 | QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"d"); | 738 | QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"d"); |
739 | item->setPixmap( 0, Resource::loadPixmap( "folder" )); | 739 | item->setPixmap( 0, Resource::loadPixmap( "folder" )); |
740 | // if(itemDir) | 740 | // if(itemDir) |
741 | item->moveItem(itemDir); | 741 | item->moveItem(itemDir); |
742 | itemDir=item; | 742 | itemDir=item; |
743 | } else { | 743 | } else { |
744 | QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"f"); | 744 | QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"f"); |
745 | item->setPixmap( 0, Resource::loadPixmap( "fileopen" )); | 745 | item->setPixmap( 0, Resource::loadPixmap( "fileopen" )); |
746 | // if(itemFile) | 746 | // if(itemFile) |
747 | item->moveItem(itemDir); | 747 | item->moveItem(itemDir); |
748 | item->moveItem(itemFile); | 748 | item->moveItem(itemFile); |
749 | itemFile=item; | 749 | itemFile=item; |
750 | } | 750 | } |
751 | } | 751 | } |
752 | QListViewItem * item1 = new QListViewItem( Remote_View, "../"); | 752 | QListViewItem * item1 = new QListViewItem( Remote_View, "../"); |
753 | item1->setPixmap( 0, Resource::loadPixmap( "folder" )); | 753 | item1->setPixmap( 0, Resource::loadPixmap( "folder" )); |
754 | file.close(); | 754 | file.close(); |
755 | if( file.exists()) | 755 | if( file.exists()) |
756 | file. remove(); | 756 | file. remove(); |
757 | } else | 757 | } else |
758 | qDebug("temp file not opened successfullly "+sfile); | 758 | qDebug("temp file not opened successfullly "+sfile); |
759 | Remote_View->setSorting( 4,TRUE); | 759 | Remote_View->setSorting( 4,TRUE); |
760 | return true; | 760 | return true; |
761 | } | 761 | } |
762 | 762 | ||
763 | void OpieFtp::remoteListClicked(QListViewItem *selectedItem) | 763 | void OpieFtp::remoteListClicked(QListViewItem *selectedItem) |
764 | { | 764 | { |
765 | if( selectedItem) { | 765 | if( selectedItem) { |
766 | // if(selectedItem!= NULL) { | 766 | // if(selectedItem!= NULL) { |
767 | // QCopEnvelope ( "QPE/System", "busy()" ); | 767 | // QCopEnvelope ( "QPE/System", "busy()" ); |
768 | QString oldRemoteCurrentDir = currentRemoteDir; | 768 | QString oldRemoteCurrentDir = currentRemoteDir; |
769 | QString strItem=selectedItem->text(0); | 769 | QString strItem=selectedItem->text(0); |
770 | strItem=strItem.simplifyWhiteSpace(); | 770 | strItem=strItem.simplifyWhiteSpace(); |
771 | if(strItem == "../") { // the user wants to go ^ | 771 | if(strItem == "../") { // the user wants to go ^ |
772 | if( FtpCDUp( conn) == 0) { | 772 | if( FtpCDUp( conn) == 0) { |
773 | QString msg; | 773 | QString msg; |
774 | msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn)); | 774 | msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn)); |
775 | msg.replace(QRegExp(":"),"\n"); | 775 | msg.replace(QRegExp(":"),"\n"); |
776 | QMessageBox::message(tr("Note"),msg); | 776 | QMessageBox::message(tr("Note"),msg); |
777 | // qDebug(msg); | 777 | // qDebug(msg); |
778 | } | 778 | } |
779 | char path[256]; | 779 | char path[256]; |
780 | if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string | 780 | if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string |
781 | QString msg; | 781 | QString msg; |
782 | msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn)); | 782 | msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn)); |
783 | msg.replace(QRegExp(":"),"\n"); | 783 | msg.replace(QRegExp(":"),"\n"); |
784 | QMessageBox::message(tr("Note"),msg); | 784 | QMessageBox::message(tr("Note"),msg); |
785 | // qDebug(msg); | 785 | // qDebug(msg); |
786 | } | 786 | } |
787 | currentRemoteDir=path; | 787 | currentRemoteDir=path; |
788 | } else { | 788 | } else { |
789 | if(strItem.find("->",0,TRUE) != -1) { //symlink on some servers | 789 | if(strItem.find("->",0,TRUE) != -1) { //symlink on some servers |
790 | strItem=strItem.right( strItem.length() - strItem.find("->",0,TRUE) - 2 ); | 790 | strItem=strItem.right( strItem.length() - strItem.find("->",0,TRUE) - 2 ); |
791 | strItem = strItem.stripWhiteSpace(); | 791 | strItem = strItem.stripWhiteSpace(); |
792 | currentRemoteDir = strItem; | 792 | currentRemoteDir = strItem; |
793 | if( !remoteChDir( (const QString &)strItem)) { | 793 | if( !remoteChDir( (const QString &)strItem)) { |
794 | currentRemoteDir = oldRemoteCurrentDir; | 794 | currentRemoteDir = oldRemoteCurrentDir; |
795 | strItem=""; | 795 | strItem=""; |
796 | // qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir); | 796 | // qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir); |
797 | } | 797 | } |
798 | } else if(strItem.find("/",0,TRUE) != -1) { // this is a directory | 798 | } else if(strItem.find("/",0,TRUE) != -1) { // this is a directory |
799 | if( !remoteChDir( (const QString &)currentRemoteDir + strItem)) { | 799 | if( !remoteChDir( (const QString &)currentRemoteDir + strItem)) { |
800 | currentRemoteDir = oldRemoteCurrentDir; | 800 | currentRemoteDir = oldRemoteCurrentDir; |
801 | strItem=""; | 801 | strItem=""; |
802 | // qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir); | 802 | // qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir); |
803 | 803 | ||
804 | } else { | 804 | } else { |
805 | currentRemoteDir = currentRemoteDir+strItem; | 805 | currentRemoteDir = currentRemoteDir+strItem; |
806 | } | 806 | } |
807 | } else { | 807 | } else { |
808 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 808 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
809 | return; | 809 | return; |
810 | } | 810 | } |
811 | } | 811 | } |
812 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 812 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
813 | if(currentRemoteDir.right(1) !="/") | 813 | if(currentRemoteDir.right(1) !="/") |
814 | currentRemoteDir +="/"; | 814 | currentRemoteDir +="/"; |
815 | currentPathCombo->lineEdit()->setText( currentRemoteDir); | 815 | currentPathCombo->lineEdit()->setText( currentRemoteDir); |
816 | fillRemoteCombo( (const QString &)currentRemoteDir); | 816 | fillRemoteCombo( (const QString &)currentRemoteDir); |
817 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 817 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
818 | Remote_View->ensureItemVisible(Remote_View->firstChild()); | 818 | Remote_View->ensureItemVisible(Remote_View->firstChild()); |
819 | 819 | ||
820 | } | 820 | } |
821 | } | 821 | } |
822 | 822 | ||
823 | void OpieFtp::localListClicked(QListViewItem *selectedItem) | 823 | void OpieFtp::localListClicked(QListViewItem *selectedItem) |
824 | { | 824 | { |
825 | if(selectedItem!= NULL) { | 825 | if(selectedItem!= NULL) { |
826 | 826 | ||
827 | QString strItem=selectedItem->text(0); | 827 | QString strItem=selectedItem->text(0); |
828 | QString strSize=selectedItem->text(1); | 828 | QString strSize=selectedItem->text(1); |
829 | strSize=strSize.stripWhiteSpace(); | 829 | strSize=strSize.stripWhiteSpace(); |
830 | if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink | 830 | if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink |
831 | // is symlink | 831 | // is symlink |
832 | QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); | 832 | QString strItem2 = strItem.right( (strItem.length() - strItem.find("->",0,TRUE)) - 4); |
833 | if(QDir(strItem2).exists() ) { | 833 | if(QDir(strItem2).exists() ) { |
834 | currentDir.cd(strItem2, TRUE); | 834 | currentDir.cd(strItem2, TRUE); |
835 | populateLocalView(); | 835 | populateLocalView(); |
836 | } | 836 | } |
837 | } else { // not a symlink | 837 | } else { // not a symlink |
838 | if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { | 838 | if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { |
839 | 839 | ||
840 | if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) { | 840 | if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) { |
841 | strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); | 841 | strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); |
842 | currentDir.cd(strItem,FALSE); | 842 | currentDir.cd(strItem,FALSE); |
843 | populateLocalView(); | 843 | populateLocalView(); |
844 | } else { | 844 | } else { |
845 | currentDir.cdUp(); | 845 | currentDir.cdUp(); |
846 | populateLocalView(); | 846 | populateLocalView(); |
847 | } | 847 | } |
848 | if(QDir(strItem).exists()){ | 848 | if(QDir(strItem).exists()){ |
849 | currentDir.cd(strItem, TRUE); | 849 | currentDir.cd(strItem, TRUE); |
850 | populateLocalView(); | 850 | populateLocalView(); |
851 | } | 851 | } |
852 | } else { | 852 | } else { |
853 | strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); | 853 | strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); |
854 | if( QFile::exists(strItem ) ) { | 854 | if( QFile::exists(strItem ) ) { |
855 | // qDebug("upload "+strItem); | 855 | // qDebug("upload "+strItem); |
856 | return; | 856 | return; |
857 | } | 857 | } |
858 | } //end not symlink | 858 | } //end not symlink |
859 | chdir(strItem.latin1()); | 859 | chdir(strItem.latin1()); |
860 | } | 860 | } |
861 | Local_View->ensureItemVisible(Local_View->firstChild()); | 861 | Local_View->ensureItemVisible(Local_View->firstChild()); |
862 | } | 862 | } |
863 | } | 863 | } |
864 | 864 | ||
865 | void OpieFtp::doLocalCd() | 865 | void OpieFtp::doLocalCd() |
866 | { | 866 | { |
867 | localListClicked( Local_View->currentItem()); | 867 | localListClicked( Local_View->currentItem()); |
868 | } | 868 | } |
869 | 869 | ||
870 | void OpieFtp:: doRemoteCd() | 870 | void OpieFtp:: doRemoteCd() |
871 | { | 871 | { |
872 | remoteListClicked( Remote_View->currentItem()); | 872 | remoteListClicked( Remote_View->currentItem()); |
873 | 873 | ||
874 | } | 874 | } |
875 | 875 | ||
876 | void OpieFtp::showHidden() | 876 | void OpieFtp::showHidden() |
877 | { | 877 | { |
878 | if (!b) { | 878 | if (!b) { |
879 | currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); | 879 | currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); |
880 | localMenu->setItemChecked(localMenu->idAt(0),TRUE); | 880 | localMenu->setItemChecked(localMenu->idAt(0),TRUE); |
881 | // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 881 | // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
882 | b=TRUE; | 882 | b=TRUE; |
883 | 883 | ||
884 | } else { | 884 | } else { |
885 | currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); | 885 | currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); |
886 | localMenu->setItemChecked(localMenu->idAt(0),FALSE); | 886 | localMenu->setItemChecked(localMenu->idAt(0),FALSE); |
887 | // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 887 | // currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
888 | b=FALSE; | 888 | b=FALSE; |
889 | } | 889 | } |
890 | populateLocalView(); | 890 | populateLocalView(); |
891 | } | 891 | } |
892 | 892 | ||
893 | void OpieFtp::ListPressed( int mouse, QListViewItem *item, const QPoint &, int) | 893 | void OpieFtp::ListPressed( int mouse, QListViewItem *item, const QPoint &, int) |
894 | { | 894 | { |
895 | // if(item) | 895 | // if(item) |
896 | if (mouse == 2) { | 896 | if (mouse == 2) { |
897 | showLocalMenu(item); | 897 | showLocalMenu(item); |
898 | } | 898 | } |
899 | } | 899 | } |
900 | 900 | ||
901 | void OpieFtp::RemoteListPressed( int mouse, QListViewItem *item, const QPoint &, int ) | 901 | void OpieFtp::RemoteListPressed( int mouse, QListViewItem *item, const QPoint &, int ) |
902 | { | 902 | { |
903 | if(mouse == 2) { | 903 | if(mouse == 2) { |
904 | showRemoteMenu(item); | 904 | showRemoteMenu(item); |
905 | } | 905 | } |
906 | } | 906 | } |
907 | 907 | ||
908 | void OpieFtp::showRemoteMenu(QListViewItem * item) | 908 | void OpieFtp::showRemoteMenu(QListViewItem * item) |
909 | { | 909 | { |
910 | QPopupMenu * m;// = new QPopupMenu( Local_View ); | 910 | QPopupMenu * m;// = new QPopupMenu( Local_View ); |
911 | m = new QPopupMenu(this); | 911 | m = new QPopupMenu(this); |
912 | if(item != NULL ) { | 912 | if(item != NULL ) { |
913 | if( item->text(0).find("/",0,TRUE) != -1) | 913 | if( item->text(0).find("/",0,TRUE) != -1) |
914 | m->insertItem( tr( "Change Directory" ), this, SLOT( doRemoteCd() )); | 914 | m->insertItem( tr( "Change Directory" ), this, SLOT( doRemoteCd() )); |
915 | else | 915 | else |
916 | m->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); | 916 | m->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); |
917 | } | 917 | } |
918 | m->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); | 918 | m->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); |
919 | m->insertItem( tr("Rescan"), this, SLOT( populateLocalView() )); | 919 | m->insertItem( tr("Rescan"), this, SLOT( populateLocalView() )); |
920 | m->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); | 920 | m->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); |
921 | m->insertSeparator(); | 921 | m->insertSeparator(); |
922 | m->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); | 922 | m->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); |
923 | m->exec( QCursor::pos() ); | 923 | m->exec( QCursor::pos() ); |
924 | delete m; | 924 | delete m; |
925 | } | 925 | } |
926 | 926 | ||
927 | void OpieFtp::showLocalMenu(QListViewItem * item) | 927 | void OpieFtp::showLocalMenu(QListViewItem * item) |
928 | { | 928 | { |
929 | 929 | ||
930 | QPopupMenu *m; | 930 | QPopupMenu *m; |
931 | m = new QPopupMenu( this); | 931 | m = new QPopupMenu( this); |
932 | m->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); | 932 | m->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); |
933 | m->insertSeparator(); | 933 | m->insertSeparator(); |
934 | if(item != NULL ) { | 934 | if(item != NULL ) { |
935 | if( item->text(0).find("/",0,TRUE) !=-1) | 935 | if( item->text(0).find("/",0,TRUE) !=-1) |
936 | m->insertItem( tr( "Change Directory" ), this, SLOT( doLocalCd() )); | 936 | m->insertItem( tr( "Change Directory" ), this, SLOT( doLocalCd() )); |
937 | else | 937 | else |
938 | m->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); | 938 | m->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); |
939 | } | 939 | } |
940 | m->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); | 940 | m->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); |
941 | m->insertItem( tr("Rescan"), this, SLOT( populateRemoteView() )); | 941 | m->insertItem( tr("Rescan"), this, SLOT( populateRemoteView() )); |
942 | m->insertItem( tr( "Rename" ), this, SLOT( localRename() )); | 942 | m->insertItem( tr( "Rename" ), this, SLOT( localRename() )); |
943 | m->insertSeparator(); | 943 | m->insertSeparator(); |
944 | m->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); | 944 | m->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); |
945 | m->setCheckable(TRUE); | 945 | m->setCheckable(TRUE); |
946 | if (b) | 946 | if (b) |
947 | m->setItemChecked(m->idAt(0),TRUE); | 947 | m->setItemChecked(m->idAt(0),TRUE); |
948 | else | 948 | else |
949 | m->setItemChecked(m->idAt(0),FALSE); | 949 | m->setItemChecked(m->idAt(0),FALSE); |
950 | 950 | ||
951 | m->exec( QCursor::pos() ); | 951 | m->exec( QCursor::pos() ); |
952 | delete m; | 952 | delete m; |
953 | } | 953 | } |
954 | 954 | ||
955 | void OpieFtp::localMakDir() | 955 | void OpieFtp::localMakDir() |
956 | { | 956 | { |
957 | InputDialog *fileDlg; | 957 | InputDialog *fileDlg; |
958 | fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); | 958 | fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); |
959 | fileDlg->exec(); | 959 | fileDlg->exec(); |
960 | if( fileDlg->result() == 1 ) { | 960 | if( fileDlg->result() == 1 ) { |
961 | QString filename = fileDlg->LineEdit1->text(); | 961 | QString filename = fileDlg->LineEdit1->text(); |
962 | currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); | 962 | currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); |
963 | } | 963 | } |
964 | populateLocalView(); | 964 | populateLocalView(); |
965 | } | 965 | } |
966 | 966 | ||
967 | void OpieFtp::localDelete() | 967 | void OpieFtp::localDelete() |
968 | { | 968 | { |
969 | QList<QListViewItem> * getSelectedItems( QListView * Local_View ); | 969 | QList<QListViewItem> * getSelectedItems( QListView * Local_View ); |
970 | QListViewItemIterator it( Local_View ); | 970 | QListViewItemIterator it( Local_View ); |
971 | for ( ; it.current(); ++it ) { | 971 | for ( ; it.current(); ++it ) { |
972 | if ( it.current()->isSelected() ) { | 972 | if ( it.current()->isSelected() ) { |
973 | QString f = it.current()->text(0); | 973 | QString f = it.current()->text(0); |
974 | it.current()->setSelected(FALSE); | 974 | it.current()->setSelected(FALSE); |
975 | 975 | ||
976 | // QString f = Local_View->currentItem()->text(0); | 976 | // QString f = Local_View->currentItem()->text(0); |
977 | if(QDir(f).exists() ) { | 977 | if(QDir(f).exists() ) { |
978 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+ | 978 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+ |
979 | tr(" ?\nIt must be empty"),tr("Yes"),tr("No"),0,0,1) ) { | 979 | tr(" ?\nIt must be empty"),tr("Yes"),tr("No"),0,0,1) ) { |
980 | case 0: { | 980 | case 0: { |
981 | f=currentDir.canonicalPath()+"/"+f; | 981 | f=currentDir.canonicalPath()+"/"+f; |
982 | QString cmd="rmdir "+f; | 982 | QString cmd="rmdir "+f; |
983 | system( cmd.latin1()); | 983 | system( cmd.latin1()); |
984 | } | 984 | } |
985 | break; | 985 | break; |
986 | case 1: | 986 | case 1: |
987 | // exit | 987 | // exit |
988 | break; | 988 | break; |
989 | }; | 989 | }; |
990 | 990 | ||
991 | } else { | 991 | } else { |
992 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f | 992 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f |
993 | +" ?",tr("Yes"),tr("No"),0,0,1) ) { | 993 | +" ?",tr("Yes"),tr("No"),0,0,1) ) { |
994 | case 0: { | 994 | case 0: { |
995 | f=currentDir.canonicalPath()+"/"+f; | 995 | f=currentDir.canonicalPath()+"/"+f; |
996 | QString cmd="rm "+f; | 996 | QString cmd="rm "+f; |
997 | system( cmd.latin1()); | 997 | system( cmd.latin1()); |
998 | } | 998 | } |
999 | break; | 999 | break; |
1000 | case 1: | 1000 | case 1: |
1001 | // exit | 1001 | // exit |
1002 | break; | 1002 | break; |
1003 | }; | 1003 | }; |
1004 | } | 1004 | } |
1005 | } | 1005 | } |
1006 | } | 1006 | } |
1007 | populateLocalView(); | 1007 | populateLocalView(); |
1008 | 1008 | ||
1009 | } | 1009 | } |
1010 | 1010 | ||
1011 | void OpieFtp::remoteMakDir() | 1011 | void OpieFtp::remoteMakDir() |
1012 | { | 1012 | { |
1013 | InputDialog *fileDlg; | 1013 | InputDialog *fileDlg; |
1014 | fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); | 1014 | fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); |
1015 | fileDlg->exec(); | 1015 | fileDlg->exec(); |
1016 | if( fileDlg->result() == 1 ) { | 1016 | if( fileDlg->result() == 1 ) { |
1017 | QString filename = fileDlg->LineEdit1->text();//+".playlist"; | 1017 | QString filename = fileDlg->LineEdit1->text();//+".playlist"; |
1018 | QString tmp=currentRemoteDir+filename; | 1018 | QString tmp=currentRemoteDir+filename; |
1019 | // QCopEnvelope ( "QPE/System", "busy()" ); | 1019 | // QCopEnvelope ( "QPE/System", "busy()" ); |
1020 | if(FtpMkdir( tmp.latin1(), conn) == 0) { | 1020 | if(FtpMkdir( tmp.latin1(), conn) == 0) { |
1021 | QString msg; | 1021 | QString msg; |
1022 | msg.sprintf(tr("Unable to make directory\n")+"%s",FtpLastResponse(conn)); | 1022 | msg.sprintf(tr("Unable to make directory\n")+"%s",FtpLastResponse(conn)); |
1023 | msg.replace(QRegExp(":"),"\n"); | 1023 | msg.replace(QRegExp(":"),"\n"); |
1024 | QMessageBox::message(tr("Note"),msg); | 1024 | QMessageBox::message(tr("Note"),msg); |
1025 | } | 1025 | } |
1026 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 1026 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
1027 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 1027 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
1028 | } | 1028 | } |
1029 | } | 1029 | } |
1030 | 1030 | ||
1031 | void OpieFtp::remoteDelete() | 1031 | void OpieFtp::remoteDelete() |
1032 | { | 1032 | { |
1033 | QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); | 1033 | QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); |
1034 | QListViewItemIterator it( Remote_View ); | 1034 | QListViewItemIterator it( Remote_View ); |
1035 | for ( ; it.current(); ++it ) { | 1035 | for ( ; it.current(); ++it ) { |
1036 | if ( it.current()->isSelected() ) { | 1036 | if ( it.current()->isSelected() ) { |
1037 | QString f = it.current()->text(0); | 1037 | QString f = it.current()->text(0); |
1038 | // QString f = Remote_View->currentItem()->text(0); | 1038 | // QString f = Remote_View->currentItem()->text(0); |
1039 | // QCopEnvelope ( "QPE/System", "busy()" ); | 1039 | // QCopEnvelope ( "QPE/System", "busy()" ); |
1040 | if( f.right(1) =="/") { | 1040 | if( f.right(1) =="/") { |
1041 | QString path= currentRemoteDir+f; | 1041 | QString path= currentRemoteDir+f; |
1042 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+"?" | 1042 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+"?" |
1043 | ,tr("Yes"),tr("No"),0,0,1) ) { | 1043 | ,tr("Yes"),tr("No"),0,0,1) ) { |
1044 | case 0: { | 1044 | case 0: { |
1045 | f=currentDir.canonicalPath()+"/"+f; | 1045 | f=currentDir.canonicalPath()+"/"+f; |
1046 | if(FtpRmdir( path.latin1(), conn) ==0) { | 1046 | if(FtpRmdir( path.latin1(), conn) ==0) { |
1047 | QString msg; | 1047 | QString msg; |
1048 | msg.sprintf(tr("Unable to remove directory\n")+"%s",FtpLastResponse(conn)); | 1048 | msg.sprintf(tr("Unable to remove directory\n")+"%s",FtpLastResponse(conn)); |
1049 | msg.replace(QRegExp(":"),"\n"); | 1049 | msg.replace(QRegExp(":"),"\n"); |
1050 | QMessageBox::message(tr("Note"),msg); | 1050 | QMessageBox::message(tr("Note"),msg); |
1051 | } | 1051 | } |
1052 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 1052 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
1053 | } | 1053 | } |
1054 | break; | 1054 | break; |
1055 | }; | 1055 | }; |
1056 | } else { | 1056 | } else { |
1057 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+"?" | 1057 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+"?" |
1058 | ,tr("Yes"),tr("No"),0,0,1) ) { | 1058 | ,tr("Yes"),tr("No"),0,0,1) ) { |
1059 | case 0: { | 1059 | case 0: { |
1060 | QString path= currentRemoteDir+f; | 1060 | QString path= currentRemoteDir+f; |
1061 | if(FtpDelete( path.latin1(), conn)==0) { | 1061 | if(FtpDelete( path.latin1(), conn)==0) { |
1062 | QString msg; | 1062 | QString msg; |
1063 | msg.sprintf(tr("Unable to delete file\n")+"%s",FtpLastResponse(conn)); | 1063 | msg.sprintf(tr("Unable to delete file\n")+"%s",FtpLastResponse(conn)); |
1064 | msg.replace(QRegExp(":"),"\n"); | 1064 | msg.replace(QRegExp(":"),"\n"); |
1065 | QMessageBox::message(tr("Note"),msg); | 1065 | QMessageBox::message(tr("Note"),msg); |
1066 | } | 1066 | } |
1067 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 1067 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
1068 | } | 1068 | } |
1069 | break; | 1069 | break; |
1070 | }; | 1070 | }; |
1071 | } | 1071 | } |
1072 | } | 1072 | } |
1073 | } | 1073 | } |
1074 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 1074 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
1075 | } | 1075 | } |
1076 | 1076 | ||
1077 | void OpieFtp::remoteRename() | 1077 | void OpieFtp::remoteRename() |
1078 | { | 1078 | { |
1079 | QString curFile = Remote_View->currentItem()->text(0); | 1079 | QString curFile = Remote_View->currentItem()->text(0); |
1080 | InputDialog *fileDlg; | 1080 | InputDialog *fileDlg; |
1081 | fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); | 1081 | fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); |
1082 | fileDlg->setTextEdit((const QString &)curFile); | 1082 | fileDlg->setTextEdit((const QString &)curFile); |
1083 | fileDlg->exec(); | 1083 | fileDlg->exec(); |
1084 | if( fileDlg->result() == 1 ) { | 1084 | if( fileDlg->result() == 1 ) { |
1085 | QString oldName = currentRemoteDir +"/"+ curFile; | 1085 | QString oldName = currentRemoteDir +"/"+ curFile; |
1086 | QString newName = currentRemoteDir +"/"+ fileDlg->LineEdit1->text();//+".playlist"; | 1086 | QString newName = currentRemoteDir +"/"+ fileDlg->LineEdit1->text();//+".playlist"; |
1087 | // QCopEnvelope ( "QPE/System", "busy()" ); | 1087 | // QCopEnvelope ( "QPE/System", "busy()" ); |
1088 | if(FtpRename( oldName.latin1(), newName.latin1(),conn) == 0) { | 1088 | if(FtpRename( oldName.latin1(), newName.latin1(),conn) == 0) { |
1089 | QString msg; | 1089 | QString msg; |
1090 | msg.sprintf(tr("Unable to rename file\n")+"%s",FtpLastResponse(conn)); | 1090 | msg.sprintf(tr("Unable to rename file\n")+"%s",FtpLastResponse(conn)); |
1091 | msg.replace(QRegExp(":"),"\n"); | 1091 | msg.replace(QRegExp(":"),"\n"); |
1092 | QMessageBox::message(tr("Note"),msg); | 1092 | QMessageBox::message(tr("Note"),msg); |
1093 | } | 1093 | } |
1094 | // QCopEnvelope ( "QPE/System", "notBusy()" ); | 1094 | // QCopEnvelope ( "QPE/System", "notBusy()" ); |
1095 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 1095 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
1096 | } | 1096 | } |
1097 | } | 1097 | } |
1098 | 1098 | ||
1099 | void OpieFtp::localRename() | 1099 | void OpieFtp::localRename() |
1100 | { | 1100 | { |
1101 | QString curFile = Local_View->currentItem()->text(0); | 1101 | QString curFile = Local_View->currentItem()->text(0); |
1102 | InputDialog *fileDlg; | 1102 | InputDialog *fileDlg; |
1103 | fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); | 1103 | fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); |
1104 | fileDlg->setTextEdit((const QString &)curFile); | 1104 | fileDlg->setTextEdit((const QString &)curFile); |
1105 | fileDlg->exec(); | 1105 | fileDlg->exec(); |
1106 | if( fileDlg->result() == 1 ) { | 1106 | if( fileDlg->result() == 1 ) { |
1107 | QString oldname = currentDir.canonicalPath() + "/" + curFile; | 1107 | QString oldname = currentDir.canonicalPath() + "/" + curFile; |
1108 | QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist"; | 1108 | QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist"; |
1109 | if( rename(oldname.latin1(), newName.latin1())== -1) | 1109 | if( rename(oldname.latin1(), newName.latin1())== -1) |
1110 | QMessageBox::message(tr("Note"),tr("Could not rename")); | 1110 | QMessageBox::message(tr("Note"),tr("Could not rename")); |
1111 | } | 1111 | } |
1112 | populateLocalView(); | 1112 | populateLocalView(); |
1113 | } | 1113 | } |
1114 | 1114 | ||
1115 | void OpieFtp::currentPathComboActivated(const QString & currentPath) { | 1115 | void OpieFtp::currentPathComboActivated(const QString & currentPath) { |
1116 | if (TabWidget->currentPageIndex() == 0) { | 1116 | if (TabWidget->currentPageIndex() == 0) { |
1117 | chdir( currentPath.latin1() ); | 1117 | chdir( currentPath.latin1() ); |
1118 | currentDir.cd( currentPath, TRUE); | 1118 | currentDir.cd( currentPath, TRUE); |
1119 | populateLocalView(); | 1119 | populateLocalView(); |
1120 | update(); | 1120 | update(); |
1121 | } else { | 1121 | } else { |
1122 | // chdir( currentPath.latin1() ); | 1122 | // chdir( currentPath.latin1() ); |
1123 | // currentDir.cd( currentPath, TRUE); | 1123 | // currentDir.cd( currentPath, TRUE); |
1124 | // populateList(); | 1124 | // populateList(); |
1125 | // update(); | 1125 | // update(); |
1126 | 1126 | ||
1127 | } | 1127 | } |
1128 | } | 1128 | } |
1129 | 1129 | ||
1130 | void OpieFtp::fillCombo(const QString ¤tPath) { | 1130 | void OpieFtp::fillCombo(const QString ¤tPath) { |
1131 | 1131 | ||
1132 | currentPathCombo->lineEdit()->setText(currentPath); | 1132 | currentPathCombo->lineEdit()->setText(currentPath); |
1133 | if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { | 1133 | if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { |
1134 | currentPathCombo->clear(); | 1134 | currentPathCombo->clear(); |
1135 | localDirPathStringList.prepend(currentPath ); | 1135 | localDirPathStringList.prepend(currentPath ); |
1136 | currentPathCombo->insertStringList( localDirPathStringList,-1); | 1136 | currentPathCombo->insertStringList( localDirPathStringList,-1); |
1137 | } | 1137 | } |
1138 | currentPathCombo->lineEdit()->setText(currentPath); | 1138 | currentPathCombo->lineEdit()->setText(currentPath); |
1139 | if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { | 1139 | if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { |
1140 | currentPathCombo->clear(); | 1140 | currentPathCombo->clear(); |
1141 | remoteDirPathStringList.prepend(currentPath ); | 1141 | remoteDirPathStringList.prepend(currentPath ); |
1142 | currentPathCombo->insertStringList( remoteDirPathStringList,-1); | 1142 | currentPathCombo->insertStringList( remoteDirPathStringList,-1); |
1143 | } | 1143 | } |
1144 | } | 1144 | } |
1145 | 1145 | ||
1146 | void OpieFtp::fillRemoteCombo(const QString ¤tPath) { | 1146 | void OpieFtp::fillRemoteCombo(const QString ¤tPath) { |
1147 | 1147 | ||
1148 | currentPathCombo->lineEdit()->setText(currentPath); | 1148 | currentPathCombo->lineEdit()->setText(currentPath); |
1149 | if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { | 1149 | if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { |
1150 | currentPathCombo->clear(); | 1150 | currentPathCombo->clear(); |
1151 | remoteDirPathStringList.prepend(currentPath ); | 1151 | remoteDirPathStringList.prepend(currentPath ); |
1152 | currentPathCombo->insertStringList( remoteDirPathStringList,-1); | 1152 | currentPathCombo->insertStringList( remoteDirPathStringList,-1); |
1153 | } | 1153 | } |
1154 | } | 1154 | } |
1155 | 1155 | ||
1156 | void OpieFtp::currentPathComboChanged() | 1156 | void OpieFtp::currentPathComboChanged() |
1157 | { | 1157 | { |
1158 | QString oldRemoteCurrentDir = currentRemoteDir; | 1158 | QString oldRemoteCurrentDir = currentRemoteDir; |
1159 | // qDebug("oldRemoteCurrentDir "+oldRemoteCurrentDir); | 1159 | // qDebug("oldRemoteCurrentDir "+oldRemoteCurrentDir); |
1160 | if (TabWidget->currentPageIndex() == 0) { | 1160 | if (TabWidget->currentPageIndex() == 0) { |
1161 | if(QDir( currentPathCombo->lineEdit()->text()).exists()) { | 1161 | if(QDir( currentPathCombo->lineEdit()->text()).exists()) { |
1162 | currentDir.setPath( currentPathCombo->lineEdit()->text() ); | 1162 | currentDir.setPath( currentPathCombo->lineEdit()->text() ); |
1163 | populateLocalView(); | 1163 | populateLocalView(); |
1164 | } else { | 1164 | } else { |
1165 | QMessageBox::message(tr("Note"),tr("That directory does not exist")); | 1165 | QMessageBox::message(tr("Note"),tr("That directory does not exist")); |
1166 | } | 1166 | } |
1167 | } | 1167 | } |
1168 | if (TabWidget->currentPageIndex() == 1) { | 1168 | if (TabWidget->currentPageIndex() == 1) { |
1169 | currentRemoteDir = currentPathCombo->lineEdit()->text(); | 1169 | currentRemoteDir = currentPathCombo->lineEdit()->text(); |
1170 | if(currentRemoteDir.right(1) !="/") { | 1170 | if(currentRemoteDir.right(1) !="/") { |
1171 | currentRemoteDir = currentRemoteDir +"/"; | 1171 | currentRemoteDir = currentRemoteDir +"/"; |
1172 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); | 1172 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); |
1173 | } | 1173 | } |
1174 | if( !remoteChDir( (const QString &)currentRemoteDir) ) { | 1174 | if( !remoteChDir( (const QString &)currentRemoteDir) ) { |
1175 | currentRemoteDir = oldRemoteCurrentDir; | 1175 | currentRemoteDir = oldRemoteCurrentDir; |
1176 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); | 1176 | currentPathCombo->lineEdit()->setText( currentRemoteDir ); |
1177 | } | 1177 | } |
1178 | 1178 | ||
1179 | remoteDirList( (const QString &)currentRemoteDir); | 1179 | remoteDirList( (const QString &)currentRemoteDir); |
1180 | } | 1180 | } |
1181 | } | 1181 | } |
1182 | 1182 | ||
1183 | void OpieFtp::switchToLocalTab() | 1183 | void OpieFtp::switchToLocalTab() |
1184 | { | 1184 | { |
1185 | TabWidget->setCurrentPage(0); | 1185 | TabWidget->setCurrentPage(0); |
1186 | } | 1186 | } |
1187 | 1187 | ||
1188 | void OpieFtp::switchToRemoteTab() | 1188 | void OpieFtp::switchToRemoteTab() |
1189 | { | 1189 | { |
1190 | TabWidget->setCurrentPage(1); | 1190 | TabWidget->setCurrentPage(1); |
1191 | } | 1191 | } |
1192 | 1192 | ||
1193 | void OpieFtp::switchToConfigTab() | 1193 | void OpieFtp::switchToConfigTab() |
1194 | { | 1194 | { |
1195 | TabWidget->setCurrentPage(2); | 1195 | TabWidget->setCurrentPage(2); |
1196 | } | 1196 | } |
1197 | 1197 | ||
1198 | void OpieFtp::readConfig() | 1198 | void OpieFtp::readConfig() |
1199 | { | 1199 | { |
1200 | fillCombos(); | 1200 | fillCombos(); |
1201 | Config cfg("opieftp"); | 1201 | Config cfg("opieftp"); |
1202 | cfg.setGroup("Server"); | 1202 | cfg.setGroup("Server"); |
1203 | currentServerConfig = cfg.readNumEntry("currentServer", -1); | 1203 | currentServerConfig = cfg.readNumEntry("currentServer", -1); |
1204 | 1204 | ||
1205 | // qDebug("Reading %d", currentServerConfig); | 1205 | // qDebug("Reading %d", currentServerConfig); |
1206 | serverComboSelected( currentServerConfig-1); | 1206 | serverComboSelected( currentServerConfig-1); |
1207 | 1207 | ||
1208 | } | 1208 | } |
1209 | 1209 | ||
1210 | void OpieFtp::writeConfig() | 1210 | void OpieFtp::writeConfig() |
1211 | { | 1211 | { |
1212 | qDebug("write config"); | 1212 | qDebug("write config"); |
1213 | Config cfg("opieftp"); | 1213 | Config cfg("opieftp"); |
1214 | cfg.setGroup("Server"); | 1214 | cfg.setGroup("Server"); |
1215 | 1215 | ||
1216 | QString username, remoteServerStr, remotePathStr, password, port, temp; | 1216 | QString username, remoteServerStr, remotePathStr, password, port, temp; |
1217 | 1217 | ||
1218 | int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); | 1218 | int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); |
1219 | 1219 | ||
1220 | if( currentServerConfig == -1) { | 1220 | if( currentServerConfig == -1) { |
1221 | 1221 | ||
1222 | for (int i = 1; i <= numberOfEntries; i++) { | 1222 | for (int i = 1; i <= numberOfEntries; i++) { |
1223 | temp.setNum(i); | 1223 | temp.setNum(i); |
1224 | cfg.setGroup("Server"); | 1224 | cfg.setGroup("Server"); |
1225 | QString tempStr = cfg.readEntry( temp,""); | 1225 | QString tempStr = cfg.readEntry( temp,""); |
1226 | } | 1226 | } |
1227 | 1227 | ||
1228 | temp.setNum( numberOfEntries + 1); | 1228 | temp.setNum( numberOfEntries + 1); |
1229 | cfg.setGroup("Server"); | 1229 | cfg.setGroup("Server"); |
1230 | 1230 | ||
1231 | remoteServerStr = cfg.readEntry( temp,""); | 1231 | remoteServerStr = cfg.readEntry( temp,""); |
1232 | 1232 | ||
1233 | int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); | 1233 | int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); |
1234 | remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); | 1234 | remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); |
1235 | 1235 | ||
1236 | temp.setNum(numberOfEntries+1); | 1236 | temp.setNum(numberOfEntries+1); |
1237 | cfg.setGroup("Server"); | 1237 | cfg.setGroup("Server"); |
1238 | 1238 | ||
1239 | cfg.writeEntry( temp, ServerComboBox->currentText() +":"+PortSpinBox->cleanText() ); | 1239 | cfg.writeEntry( temp, ServerComboBox->currentText() +":"+PortSpinBox->cleanText() ); |
1240 | cfg.writeEntry("currentServer", numberOfEntries+1); | 1240 | cfg.writeEntry("currentServer", numberOfEntries+1); |
1241 | 1241 | ||
1242 | currentServerConfig = numberOfEntries+1; | 1242 | currentServerConfig = numberOfEntries+1; |
1243 | qDebug("setting currentserverconfig to %d", currentServerConfig); | 1243 | qDebug("setting currentserverconfig to %d", currentServerConfig); |
1244 | 1244 | ||
1245 | cfg.setGroup(temp); | 1245 | cfg.setGroup(temp); |
1246 | if(!newServerName.isEmpty()) | 1246 | if(!newServerName.isEmpty()) |
1247 | cfg.writeEntry("ServerName", newServerName); | 1247 | cfg.writeEntry("ServerName", newServerName); |
1248 | 1248 | ||
1249 | cfg.writeEntry("RemotePath", remotePath->text()); | 1249 | cfg.writeEntry("RemotePath", remotePath->text()); |
1250 | 1250 | ||
1251 | cfg.writeEntry("Username", UsernameComboBox->currentText()); | 1251 | cfg.writeEntry("Username", UsernameComboBox->currentText()); |
1252 | 1252 | ||
1253 | cfg.writeEntryCrypt( UsernameComboBox->currentText(), PasswordEdit->text()); | 1253 | cfg.writeEntryCrypt( UsernameComboBox->currentText(), PasswordEdit->text()); |
1254 | cfg.setGroup("Server"); | 1254 | cfg.setGroup("Server"); |
1255 | 1255 | ||
1256 | cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries + 1 )); | 1256 | cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries + 1 )); |
1257 | 1257 | ||
1258 | } | 1258 | } |
1259 | } | 1259 | } |
1260 | 1260 | ||
1261 | void OpieFtp::clearCombos() { | 1261 | void OpieFtp::clearCombos() { |
1262 | qDebug("clearing"); | 1262 | qDebug("clearing"); |
1263 | ServerComboBox->clear(); | 1263 | ServerComboBox->clear(); |
1264 | UsernameComboBox->clear(); | 1264 | UsernameComboBox->clear(); |
1265 | PasswordEdit->clear(); | 1265 | PasswordEdit->clear(); |
1266 | serverListView->clear(); | 1266 | serverListView->clear(); |
1267 | } | 1267 | } |
1268 | 1268 | ||
1269 | 1269 | ||
1270 | void OpieFtp::fillCombos() | 1270 | void OpieFtp::fillCombos() |
1271 | { | 1271 | { |
1272 | clearCombos(); | 1272 | clearCombos(); |
1273 | 1273 | ||
1274 | Config cfg("opieftp"); | 1274 | Config cfg("opieftp"); |
1275 | cfg.setGroup("Server"); | 1275 | cfg.setGroup("Server"); |
1276 | QString username, remoteServerStr, remotePathStr, password, port, temp; | 1276 | QString username, remoteServerStr, remotePathStr, password, port, temp; |
1277 | int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); | 1277 | int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); |
1278 | 1278 | ||
1279 | for (int i = 1; i <= numberOfEntries; i++) { | 1279 | for (int i = 1; i <= numberOfEntries; i++) { |
1280 | temp.setNum(i); | 1280 | temp.setNum(i); |
1281 | qDebug(temp); | 1281 | qDebug(temp); |
1282 | cfg.setGroup("Server"); | 1282 | cfg.setGroup("Server"); |
1283 | remoteServerStr = cfg.readEntry( temp,""); | 1283 | remoteServerStr = cfg.readEntry( temp,""); |
1284 | qDebug( remoteServerStr); | 1284 | qDebug( remoteServerStr); |
1285 | 1285 | ||
1286 | int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); | 1286 | int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); |
1287 | port = remoteServerStr.right( divider - 1); | 1287 | port = remoteServerStr.right( divider - 1); |
1288 | bool ok; | 1288 | bool ok; |
1289 | PortSpinBox->setValue( port.toInt(&ok,10)); | 1289 | PortSpinBox->setValue( port.toInt(&ok,10)); |
1290 | 1290 | ||
1291 | remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); | 1291 | remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); |
1292 | qDebug( "remote server string "+remoteServerStr); | 1292 | qDebug( "remote server string "+remoteServerStr); |
1293 | ServerComboBox->insertItem( remoteServerStr ); | 1293 | ServerComboBox->insertItem( remoteServerStr ); |
1294 | 1294 | ||
1295 | cfg.setGroup(temp); | 1295 | cfg.setGroup(temp); |
1296 | 1296 | ||
1297 | username = cfg.readEntry(temp); | 1297 | username = cfg.readEntry(temp); |
1298 | UsernameComboBox->insertItem(username); | 1298 | UsernameComboBox->insertItem(username); |
1299 | password = cfg.readEntryCrypt(username,""); | 1299 | password = cfg.readEntryCrypt(username,""); |
1300 | PasswordEdit->setText(password); | 1300 | PasswordEdit->setText(password); |
1301 | 1301 | ||
1302 | serverListView->insertItem( cfg.readEntry("ServerName")); | 1302 | serverListView->insertItem( cfg.readEntry("ServerName")); |
1303 | } | 1303 | } |
1304 | } | 1304 | } |
1305 | 1305 | ||
1306 | 1306 | ||
1307 | void OpieFtp::serverComboSelected(int index) | 1307 | void OpieFtp::serverComboSelected(int index) |
1308 | { | 1308 | { |
1309 | currentServerConfig = index+1; | 1309 | currentServerConfig = index+1; |
1310 | qDebug("server combo selected %d", index+1); | 1310 | qDebug("server combo selected %d", index+1); |
1311 | QString username, remoteServerStr, remotePathStr, password, port, temp; | 1311 | QString username, remoteServerStr, remotePathStr, password, port, temp; |
1312 | // remoteServerStr = ServerComboBox->text(index); | 1312 | // remoteServerStr = ServerComboBox->text(index); |
1313 | 1313 | ||
1314 | Config cfg("opieftp"); | 1314 | Config cfg("opieftp"); |
1315 | cfg.setGroup("Server"); | 1315 | cfg.setGroup("Server"); |
1316 | // int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); | 1316 | // int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); |
1317 | 1317 | ||
1318 | temp.setNum(index+1); | 1318 | temp.setNum(index+1); |
1319 | remoteServerStr = cfg.readEntry( temp,""); | 1319 | remoteServerStr = cfg.readEntry( temp,""); |
1320 | 1320 | ||
1321 | qDebug("Group" +temp); | 1321 | qDebug("Group" +temp); |
1322 | cfg.setGroup(temp); | 1322 | cfg.setGroup(temp); |
1323 | // qDebug(temp); | 1323 | // qDebug(temp); |
1324 | int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); | 1324 | int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); |
1325 | port = remoteServerStr.right( divider - 1); | 1325 | port = remoteServerStr.right( divider - 1); |
1326 | bool ok; | 1326 | bool ok; |
1327 | int portInt = port.toInt(&ok,10); | 1327 | int portInt = port.toInt(&ok,10); |
1328 | if( portInt == 0) portInt = 21; | 1328 | if( portInt == 0) portInt = 21; |
1329 | 1329 | ||
1330 | ServerComboBox->lineEdit()->setText(remoteServerStr.left( remoteServerStr.find(":",0,TRUE))); | 1330 | ServerComboBox->lineEdit()->setText(remoteServerStr.left( remoteServerStr.find(":",0,TRUE))); |
1331 | 1331 | ||
1332 | PortSpinBox->setValue( portInt); | 1332 | PortSpinBox->setValue( portInt); |
1333 | 1333 | ||
1334 | remotePath->setText(cfg.readEntry("RemotePath", "/")); | 1334 | remotePath->setText(cfg.readEntry("RemotePath", "/")); |
1335 | 1335 | ||
1336 | username = cfg.readEntry("Username", "anonymous"); | 1336 | username = cfg.readEntry("Username", "anonymous"); |
1337 | UsernameComboBox->lineEdit()->setText(username); | 1337 | UsernameComboBox->lineEdit()->setText(username); |
1338 | qDebug(username); | 1338 | qDebug(username); |
1339 | // qDebug("Password is "+cfg.readEntryCrypt(username, "me@opieftp.org")); | 1339 | // qDebug("Password is "+cfg.readEntryCrypt(username, "me@opieftp.org")); |
1340 | PasswordEdit->setText(cfg.readEntryCrypt(username, "me@opieftp.org")); | 1340 | PasswordEdit->setText(cfg.readEntryCrypt(username, "me@opieftp.org")); |
1341 | // UsernameComboBox | 1341 | // UsernameComboBox |
1342 | // PasswordEdit | 1342 | // PasswordEdit |
1343 | 1343 | ||
1344 | cfg.setGroup("Server"); | 1344 | cfg.setGroup("Server"); |
1345 | temp.sprintf("%d",currentServerConfig); | 1345 | temp.sprintf("%d",currentServerConfig); |
1346 | cfg.writeEntry("currentServer", temp); | 1346 | cfg.writeEntry("currentServer", temp); |
1347 | 1347 | ||
1348 | fuckeduphack = TRUE; | 1348 | fuckeduphack = TRUE; |
1349 | serverListView->setCurrentItem( index); | 1349 | serverListView->setCurrentItem( index); |
1350 | fuckeduphack=FALSE; | 1350 | fuckeduphack=FALSE; |
1351 | qDebug("server list set selected %d",index); | 1351 | qDebug("server list set selected %d",index); |
1352 | update(); | 1352 | update(); |
1353 | } | 1353 | } |
1354 | 1354 | ||
1355 | void OpieFtp::deleteServer() | 1355 | void OpieFtp::deleteServer() |
1356 | { | 1356 | { |
1357 | QString username, remoteServerStr, remotePathStr, password, port, temp, servername; | 1357 | QString username, remoteServerStr, remotePathStr, password, port, temp, servername; |
1358 | remoteServerStr = ServerComboBox->currentText( ); | 1358 | remoteServerStr = ServerComboBox->currentText( ); |
1359 | username = UsernameComboBox->currentText(); | 1359 | username = UsernameComboBox->currentText(); |
1360 | servername=serverListView->currentText(); | 1360 | servername=serverListView->currentText(); |
1361 | 1361 | ||
1362 | Config cfg("opieftp"); | 1362 | Config cfg("opieftp"); |
1363 | cfg.setGroup("Server"); | 1363 | cfg.setGroup("Server"); |
1364 | QString tempname; | 1364 | QString tempname; |
1365 | int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); | 1365 | int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); |
1366 | 1366 | ||
1367 | for (int i = 1; i <= numberOfEntries; i++) { | 1367 | for (int i = 1; i <= numberOfEntries; i++) { |
1368 | temp.setNum(i); | 1368 | temp.setNum(i); |
1369 | // cfg.setGroup("Server"); | 1369 | // cfg.setGroup("Server"); |
1370 | cfg.setGroup(QString::number(i)); | 1370 | cfg.setGroup(QString::number(i)); |
1371 | tempname=cfg.readEntry( "ServerName",""); | 1371 | tempname=cfg.readEntry( "ServerName",""); |
1372 | 1372 | ||
1373 | if( tempname.find( servername,0,TRUE) != -1 ) { | 1373 | if( tempname.find( servername,0,TRUE) != -1 ) { |
1374 | // servername.find( cfg.readEntry("ServerName")) != -1 && | 1374 | // servername.find( cfg.readEntry("ServerName")) != -1 && |
1375 | // remoteServerStr.find( cfg.readEntry("RemotePath")) != -1 && | 1375 | // remoteServerStr.find( cfg.readEntry("RemotePath")) != -1 && |
1376 | // username.find( cfg.readEntry("Username")) != -1) { | 1376 | // username.find( cfg.readEntry("Username")) != -1) { |
1377 | 1377 | ||
1378 | serverListView->removeItem(i); | 1378 | serverListView->removeItem(i); |
1379 | 1379 | ||
1380 | qDebug("OK DELETE "+tempname); | 1380 | qDebug("OK DELETE "+tempname); |
1381 | cfg.removeEntry(QString::number(i)); | 1381 | cfg.removeEntry(QString::number(i)); |
1382 | for ( ; i <= numberOfEntries; i++) { | 1382 | for ( ; i <= numberOfEntries; i++) { |
1383 | cfg.setGroup("Server"); | 1383 | cfg.setGroup("Server"); |
1384 | cfg.writeEntry("Server", QString::number(numberOfEntries + 1 )); | 1384 | cfg.writeEntry("Server", QString::number(numberOfEntries + 1 )); |
1385 | 1385 | ||
1386 | cfg.setGroup(QString::number(i+1)); //get next server config | 1386 | cfg.setGroup(QString::number(i+1)); //get next server config |
1387 | servername=cfg.readEntry("ServerName"); | 1387 | servername=cfg.readEntry("ServerName"); |
1388 | remoteServerStr=cfg.readEntry("RemotePath"); | 1388 | remoteServerStr=cfg.readEntry("RemotePath"); |
1389 | username=cfg.readEntry("Username"); | 1389 | username=cfg.readEntry("Username"); |
1390 | password=cfg.readEntryCrypt( username); | 1390 | password=cfg.readEntryCrypt( username); |
1391 | 1391 | ||
1392 | cfg.setGroup(QString::number(i)); | 1392 | cfg.setGroup(QString::number(i)); |
1393 | 1393 | ||
1394 | cfg.writeEntry("RemotePath", remoteServerStr); | 1394 | cfg.writeEntry("RemotePath", remoteServerStr); |
1395 | cfg.writeEntry("ServerName", servername); | 1395 | cfg.writeEntry("ServerName", servername); |
1396 | cfg.writeEntry("Username", username); | 1396 | cfg.writeEntry("Username", username); |
1397 | cfg.writeEntryCrypt( username, password); | 1397 | cfg.writeEntryCrypt( username, password); |
1398 | 1398 | ||
1399 | } | 1399 | } |
1400 | cfg.setGroup("Server"); | 1400 | cfg.setGroup("Server"); |
1401 | cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries - 1 )); | 1401 | cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries - 1 )); |
1402 | } | 1402 | } |
1403 | } | 1403 | } |
1404 | cfg.setGroup(QString::number(numberOfEntries)); | 1404 | cfg.setGroup(QString::number(numberOfEntries)); |
1405 | cfg.removeEntry("Server"); | 1405 | cfg.removeEntry("Server"); |
1406 | cfg.removeEntry("RemotePath"); | 1406 | cfg.removeEntry("RemotePath"); |
1407 | cfg.removeEntry("ServerName"); | 1407 | cfg.removeEntry("ServerName"); |
1408 | username=cfg.readEntry("Username"); | 1408 | username=cfg.readEntry("Username"); |
1409 | cfg.removeEntry("Username"); | 1409 | cfg.removeEntry("Username"); |
1410 | cfg.removeEntry(username); | 1410 | cfg.removeEntry(username); |
1411 | 1411 | ||
1412 | currentServerConfig=currentServerConfig-1; | 1412 | currentServerConfig=currentServerConfig-1; |
1413 | 1413 | ||
1414 | fillCombos(); | 1414 | fillCombos(); |
1415 | update(); | 1415 | update(); |
1416 | } | 1416 | } |
1417 | 1417 | ||
1418 | void OpieFtp::upDir() | 1418 | void OpieFtp::upDir() |
1419 | { | 1419 | { |
1420 | if (TabWidget->currentPageIndex() == 0) { | 1420 | if (TabWidget->currentPageIndex() == 0) { |
1421 | QString current = currentDir.canonicalPath(); | 1421 | QString current = currentDir.canonicalPath(); |
1422 | QDir dir(current); | 1422 | QDir dir(current); |
1423 | dir.cdUp(); | 1423 | dir.cdUp(); |
1424 | current = dir.canonicalPath(); | 1424 | current = dir.canonicalPath(); |
1425 | chdir( current.latin1() ); | 1425 | chdir( current.latin1() ); |
1426 | currentDir.cd( current, TRUE); | 1426 | currentDir.cd( current, TRUE); |
1427 | populateLocalView(); | 1427 | populateLocalView(); |
1428 | update(); | 1428 | update(); |
1429 | } else { | 1429 | } else { |
1430 | if( FtpCDUp( conn) == 0) { | 1430 | if( FtpCDUp( conn) == 0) { |
1431 | QString msg; | 1431 | QString msg; |
1432 | msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn)); | 1432 | msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn)); |
1433 | msg.replace(QRegExp(":"),"\n"); | 1433 | msg.replace(QRegExp(":"),"\n"); |
1434 | QMessageBox::message(tr("Note"),msg); | 1434 | QMessageBox::message(tr("Note"),msg); |
1435 | // qDebug(msg); | 1435 | // qDebug(msg); |
1436 | } | 1436 | } |
1437 | char path[256]; | 1437 | char path[256]; |
1438 | if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string | 1438 | if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string |
1439 | QString msg; | 1439 | QString msg; |
1440 | msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn)); | 1440 | msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn)); |
1441 | msg.replace(QRegExp(":"),"\n"); | 1441 | msg.replace(QRegExp(":"),"\n"); |
1442 | QMessageBox::message(tr("Note"),msg); | 1442 | QMessageBox::message(tr("Note"),msg); |
1443 | // qDebug(msg); | 1443 | // qDebug(msg); |
1444 | } | 1444 | } |
1445 | currentRemoteDir=path; | 1445 | currentRemoteDir=path; |
1446 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate | 1446 | remoteDirList( (const QString &)currentRemoteDir); //this also calls populate |
1447 | if(currentRemoteDir.right(1) !="/") | 1447 | if(currentRemoteDir.right(1) !="/") |
1448 | currentRemoteDir +="/"; | 1448 | currentRemoteDir +="/"; |
1449 | currentPathCombo->lineEdit()->setText( currentRemoteDir); | 1449 | currentPathCombo->lineEdit()->setText( currentRemoteDir); |
1450 | fillRemoteCombo( (const QString &)currentRemoteDir); | 1450 | fillRemoteCombo( (const QString &)currentRemoteDir); |
1451 | 1451 | ||
1452 | } | 1452 | } |
1453 | } | 1453 | } |
1454 | 1454 | ||
1455 | void OpieFtp::docButtonPushed() { | 1455 | void OpieFtp::docButtonPushed() { |
1456 | QString current = QPEApplication::documentDir(); | 1456 | QString current = QPEApplication::documentDir(); |
1457 | chdir( current.latin1() ); | 1457 | chdir( current.latin1() ); |
1458 | currentDir.cd( current, TRUE); | 1458 | currentDir.cd( current, TRUE); |
1459 | populateLocalView(); | 1459 | populateLocalView(); |
1460 | update(); | 1460 | update(); |
1461 | 1461 | ||
1462 | } | 1462 | } |
1463 | 1463 | ||
1464 | void OpieFtp::homeButtonPushed() { | 1464 | void OpieFtp::homeButtonPushed() { |
1465 | QString current = QDir::homeDirPath(); | 1465 | QString current = QDir::homeDirPath(); |
1466 | chdir( current.latin1() ); | 1466 | chdir( current.latin1() ); |
1467 | currentDir.cd( current, TRUE); | 1467 | currentDir.cd( current, TRUE); |
1468 | populateLocalView(); | 1468 | populateLocalView(); |
1469 | update(); | 1469 | update(); |
1470 | } | 1470 | } |
1471 | 1471 | ||
1472 | void OpieFtp::doAbout() { | 1472 | void OpieFtp::doAbout() { |
1473 | QMessageBox::message("OpieFtp","Opie ftp client is copyright 2002 by\n" | 1473 | QMessageBox::message("OpieFtp","Opie ftp client is copyright 2002 by\n" |
1474 | "L.J.Potter<llornkcor@handhelds.org>\n" | 1474 | "L.J.Potter<llornkcor@handhelds.org>\n" |
1475 | "and uses ftplib copyright 1996-2000\n" | 1475 | "and uses ftplib copyright 1996-2000\n" |
1476 | "by Thomas Pfau, pfau@cnj.digex.net\n\n" | 1476 | "by Thomas Pfau, pfau@cnj.digex.net\n\n" |
1477 | "and is licensed by the GPL"); | 1477 | "and is licensed by the GPL"); |
1478 | } | 1478 | } |
1479 | 1479 | ||
1480 | void OpieFtp::NewServer() { | 1480 | void OpieFtp::NewServer() { |
1481 | InputDialog *fileDlg; | 1481 | InputDialog *fileDlg; |
1482 | fileDlg = new InputDialog(this,tr("New Server name"),TRUE, 0); | 1482 | fileDlg = new InputDialog(this,tr("New Server name"),TRUE, 0); |
1483 | fileDlg->exec(); | 1483 | fileDlg->exec(); |
1484 | Config cfg("opieftp"); | 1484 | Config cfg("opieftp"); |
1485 | if( fileDlg->result() == 1 ) { | 1485 | if( fileDlg->result() == 1 ) { |
1486 | newServerName = fileDlg->LineEdit1->text(); | 1486 | newServerName = fileDlg->LineEdit1->text(); |
1487 | for(int i=1;i<serverListView->count();i++) { | 1487 | for(int i=1;i<serverListView->count();i++) { |
1488 | cfg.setGroup( QString::number(i)); | 1488 | cfg.setGroup( QString::number(i)); |
1489 | if(cfg.readEntry("ServerName").find(newServerName,0,TRUE) != -1) { | 1489 | if(cfg.readEntry("ServerName").find(newServerName,0,TRUE) != -1) { |
1490 | QMessageBox::message(tr("OpieFtp"),tr("Sorry name already taken")); | 1490 | QMessageBox::message(tr("OpieFtp"),tr("Sorry name already taken")); |
1491 | return; | 1491 | return; |
1492 | } | 1492 | } |
1493 | } | 1493 | } |
1494 | currentServerConfig =-1; | 1494 | currentServerConfig =-1; |
1495 | writeConfig(); | 1495 | writeConfig(); |
1496 | serverListView->insertItem( newServerName ); | 1496 | serverListView->insertItem( newServerName ); |
1497 | serverListView->setCurrentItem( serverListView->count()); | 1497 | serverListView->setCurrentItem( serverListView->count()); |
1498 | } | 1498 | } |
1499 | } | 1499 | } |
1500 | 1500 | ||
1501 | void OpieFtp::serverListClicked( const QString &item) { | 1501 | void OpieFtp::serverListClicked( const QString &item) { |
1502 | if(item.isEmpty()) return; | 1502 | if(item.isEmpty()) return; |
1503 | Config cfg("opieftp"); | 1503 | Config cfg("opieftp"); |
1504 | qDebug("highltined "+item); | 1504 | qDebug("highltined "+item); |
1505 | int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); | 1505 | int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); |
1506 | for (int i = 1; i <= numberOfEntries; i++) { | 1506 | for (int i = 1; i <= numberOfEntries; i++) { |
1507 | cfg.setGroup(QString::number(i)); | 1507 | cfg.setGroup(QString::number(i)); |
1508 | if(cfg.readEntry( "ServerName").find(item) != -1 && !fuckeduphack) | 1508 | if(cfg.readEntry( "ServerName").find(item) != -1 && !fuckeduphack) |
1509 | serverComboSelected(i-1); | 1509 | serverComboSelected(i-1); |
1510 | } | 1510 | } |
1511 | } | 1511 | } |
1512 | 1512 | ||
1513 | void OpieFtp::timerOut() { | 1513 | void OpieFtp::timerOut() { |
1514 | 1514 | ||
1515 | } | 1515 | } |
diff --git a/noncore/net/opieftp/opieftp.h b/noncore/net/opieftp/opieftp.h index 9d5d211..7bd615a 100644 --- a/noncore/net/opieftp/opieftp.h +++ b/noncore/net/opieftp/opieftp.h | |||
@@ -1,142 +1,143 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | opieftp.h | 2 | opieftp.h |
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 | #ifndef OPIEFTP_H | 12 | #ifndef OPIEFTP_H |
13 | #define OPIEFTP_H | 13 | #define OPIEFTP_H |
14 | 14 | ||
15 | #include <qvariant.h> | 15 | #include <qvariant.h> |
16 | #include <qdialog.h> | 16 | #include <qdialog.h> |
17 | #include <qmainwindow.h> | 17 | #include <qmainwindow.h> |
18 | #include <qdir.h> | 18 | #include <qdir.h> |
19 | #include <qstring.h> | 19 | #include <qstring.h> |
20 | #include <qpoint.h> | 20 | #include <qpoint.h> |
21 | #include <qpixmap.h> | 21 | #include <qpixmap.h> |
22 | 22 | ||
23 | class QVBoxLayout; | 23 | class QVBoxLayout; |
24 | class QHBoxLayout; | 24 | class QHBoxLayout; |
25 | class QGridLayout; | 25 | class QGridLayout; |
26 | class QComboBox; | 26 | class QComboBox; |
27 | class QListView; | 27 | class QListView; |
28 | class QListViewItem; | 28 | class QListViewItem; |
29 | class QLabel; | 29 | class QLabel; |
30 | class QProgressBar; | 30 | class QProgressBar; |
31 | class QSpinBox; | 31 | class QSpinBox; |
32 | class QTabWidget; | 32 | class QTabWidget; |
33 | class QWidget; | 33 | class QWidget; |
34 | class QPEToolBar; | 34 | class QPEToolBar; |
35 | class QPEMenuBar; | 35 | class QPEMenuBar; |
36 | class QPopupMenu; | 36 | class QPopupMenu; |
37 | class QFile; | 37 | class QFile; |
38 | class QLineEdit; | 38 | class QLineEdit; |
39 | class QPushButton; | 39 | class QPushButton; |
40 | class QToolButton; | 40 | class QToolButton; |
41 | class QStringList; | 41 | class QStringList; |
42 | class QListBox; | 42 | class QListBox; |
43 | class QTimer; | 43 | class QTimer; |
44 | 44 | ||
45 | class OpieFtp : public QMainWindow | 45 | class OpieFtp : public QMainWindow |
46 | { | 46 | { |
47 | Q_OBJECT | 47 | Q_OBJECT |
48 | 48 | ||
49 | public: | 49 | public: |
50 | OpieFtp( ); | 50 | OpieFtp( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); |
51 | ~OpieFtp(); | 51 | ~OpieFtp(); |
52 | 52 | ||
53 | static QString appName() { return QString::fromLatin1("opieftp"); } | ||
53 | QTabWidget *TabWidget; | 54 | QTabWidget *TabWidget; |
54 | QWidget *tab, *tab_2, *tab_3; | 55 | QWidget *tab, *tab_2, *tab_3; |
55 | QListView *Local_View, *Remote_View; | 56 | QListView *Local_View, *Remote_View; |
56 | QListBox *serverListView; | 57 | QListBox *serverListView; |
57 | 58 | ||
58 | QComboBox *UsernameComboBox, *ServerComboBox, *currentPathCombo; | 59 | QComboBox *UsernameComboBox, *ServerComboBox, *currentPathCombo; |
59 | QLineEdit *PasswordEdit, *remotePath; | 60 | QLineEdit *PasswordEdit, *remotePath; |
60 | QLabel *TextLabel2, *TextLabel1, *TextLabel3, *TextLabel4;; | 61 | QLabel *TextLabel2, *TextLabel1, *TextLabel3, *TextLabel4;; |
61 | QSpinBox* PortSpinBox; | 62 | QSpinBox* PortSpinBox; |
62 | QPopupMenu *connectionMenu, *localMenu, *remoteMenu, *tabMenu, *aboutMenu; | 63 | QPopupMenu *connectionMenu, *localMenu, *remoteMenu, *tabMenu, *aboutMenu; |
63 | QDir currentDir; | 64 | QDir currentDir; |
64 | QString currentRemoteDir; | 65 | QString currentRemoteDir; |
65 | QString filterStr; | 66 | QString filterStr; |
66 | QListViewItem * item; | 67 | QListViewItem * item; |
67 | QPushButton *connectServerBtn, *newServerButton;// | 68 | QPushButton *connectServerBtn, *newServerButton;// |
68 | QToolButton *cdUpButton, *homeButton, *docButton; | 69 | QToolButton *cdUpButton, *homeButton, *docButton; |
69 | bool b; | 70 | bool b; |
70 | int currentServerConfig; | 71 | int currentServerConfig; |
71 | protected slots: | 72 | protected slots: |
72 | void timerOut(); | 73 | void timerOut(); |
73 | void upDir(); | 74 | void upDir(); |
74 | void homeButtonPushed(); | 75 | void homeButtonPushed(); |
75 | void docButtonPushed(); | 76 | void docButtonPushed(); |
76 | void doAbout(); | 77 | void doAbout(); |
77 | 78 | ||
78 | void serverComboEdited(const QString & ); | 79 | void serverComboEdited(const QString & ); |
79 | void UsernameComboBoxEdited(const QString & ); | 80 | void UsernameComboBoxEdited(const QString & ); |
80 | void PasswordEditEdited(const QString & ); | 81 | void PasswordEditEdited(const QString & ); |
81 | 82 | ||
82 | void showLocalMenu( QListViewItem *); | 83 | void showLocalMenu( QListViewItem *); |
83 | void showRemoteMenu( QListViewItem *); | 84 | void showRemoteMenu( QListViewItem *); |
84 | void doLocalCd(); | 85 | void doLocalCd(); |
85 | void doRemoteCd(); | 86 | void doRemoteCd(); |
86 | void localUpload(); | 87 | void localUpload(); |
87 | void remoteDownload(); | 88 | void remoteDownload(); |
88 | void newConnection(); | 89 | void newConnection(); |
89 | void connector(); | 90 | void connector(); |
90 | void disConnector(); | 91 | void disConnector(); |
91 | void populateLocalView(); | 92 | void populateLocalView(); |
92 | bool populateRemoteView(); | 93 | bool populateRemoteView(); |
93 | void showHidden(); | 94 | void showHidden(); |
94 | void writeConfig(); | 95 | void writeConfig(); |
95 | void readConfig(); | 96 | void readConfig(); |
96 | void localListClicked(QListViewItem *); | 97 | void localListClicked(QListViewItem *); |
97 | void remoteListClicked(QListViewItem *); | 98 | void remoteListClicked(QListViewItem *); |
98 | void ListPressed( int, QListViewItem *, const QPoint&, int); | 99 | void ListPressed( int, QListViewItem *, const QPoint&, int); |
99 | void RemoteListPressed( int, QListViewItem *, const QPoint&, int); | 100 | void RemoteListPressed( int, QListViewItem *, const QPoint&, int); |
100 | void localMakDir(); | 101 | void localMakDir(); |
101 | void localDelete(); | 102 | void localDelete(); |
102 | void remoteMakDir(); | 103 | void remoteMakDir(); |
103 | void remoteDelete(); | 104 | void remoteDelete(); |
104 | 105 | ||
105 | bool remoteDirList(const QString &); | 106 | bool remoteDirList(const QString &); |
106 | bool remoteChDir(const QString &); | 107 | bool remoteChDir(const QString &); |
107 | 108 | ||
108 | void tabChanged(QWidget*); | 109 | void tabChanged(QWidget*); |
109 | void cleanUp(); | 110 | void cleanUp(); |
110 | 111 | ||
111 | void remoteRename(); | 112 | void remoteRename(); |
112 | void localRename(); | 113 | void localRename(); |
113 | 114 | ||
114 | void currentPathComboChanged(); | 115 | void currentPathComboChanged(); |
115 | void currentPathComboActivated(const QString &); | 116 | void currentPathComboActivated(const QString &); |
116 | void switchToLocalTab(); | 117 | void switchToLocalTab(); |
117 | void switchToRemoteTab(); | 118 | void switchToRemoteTab(); |
118 | void switchToConfigTab(); | 119 | void switchToConfigTab(); |
119 | 120 | ||
120 | void fillCombos(); | 121 | void fillCombos(); |
121 | void clearCombos(); | 122 | void clearCombos(); |
122 | void fillRemoteCombo(const QString&); | 123 | void fillRemoteCombo(const QString&); |
123 | void fillCombo(const QString &); | 124 | void fillCombo(const QString &); |
124 | void serverComboSelected(int); | 125 | void serverComboSelected(int); |
125 | void deleteServer(); | 126 | void deleteServer(); |
126 | void connectorBtnToggled(bool); | 127 | void connectorBtnToggled(bool); |
127 | void NewServer(); | 128 | void NewServer(); |
128 | void serverListClicked( const QString &); | 129 | void serverListClicked( const QString &); |
129 | 130 | ||
130 | protected: | 131 | protected: |
131 | QPixmap unknownXpm; | 132 | QPixmap unknownXpm; |
132 | bool fuckeduphack; | 133 | bool fuckeduphack; |
133 | QStringList remoteDirPathStringList, localDirPathStringList; | 134 | QStringList remoteDirPathStringList, localDirPathStringList; |
134 | QString newServerName; | 135 | QString newServerName; |
135 | void nullifyCallBack(); | 136 | void nullifyCallBack(); |
136 | QGridLayout* tabLayout; | 137 | QGridLayout* tabLayout; |
137 | QGridLayout* tabLayout_2; | 138 | QGridLayout* tabLayout_2; |
138 | QGridLayout* tabLayout_3; | 139 | QGridLayout* tabLayout_3; |
139 | 140 | ||
140 | }; | 141 | }; |
141 | 142 | ||
142 | #endif // OPIEFTP_H | 143 | #endif // OPIEFTP_H |
diff --git a/noncore/net/opieftp/opieftp.pro b/noncore/net/opieftp/opieftp.pro index ac16819..185c341 100644 --- a/noncore/net/opieftp/opieftp.pro +++ b/noncore/net/opieftp/opieftp.pro | |||
@@ -1,31 +1,29 @@ | |||
1 | TEMPLATE = app | 1 | CONFIG += qt warn_on release quick-app |
2 | CONFIG += qt warn_on release | 2 | HEADERS = opieftp.h inputDialog.h |
3 | HEADERS = opieftp.h inputDialog.h | ||
4 | SOURCES = opieftp.cpp inputDialog.cpp main.cpp | 3 | SOURCES = opieftp.cpp inputDialog.cpp main.cpp |
5 | TARGET = opieftp | 4 | TARGET = opieftp |
6 | DESTDIR = $(OPIEDIR)/bin | ||
7 | INCLUDEPATH += $(OPIEDIR)/include | 5 | INCLUDEPATH += $(OPIEDIR)/include |
8 | DEPENDPATH += $(OPIEDIR)/include | 6 | DEPENDPATH += $(OPIEDIR)/include |
9 | LIBS += -lqpe -lftplib | 7 | LIBS += -lqpe -lftplib |
10 | 8 | ||
11 | TRANSLATIONS = ../../../i18n/de/opieftp.ts \ | 9 | TRANSLATIONS = ../../../i18n/de/opieftp.ts \ |
12 | ../../../i18n/nl/opieftp.ts \ | 10 | ../../../i18n/nl/opieftp.ts \ |
13 | ../../../i18n/da/opieftp.ts \ | 11 | ../../../i18n/da/opieftp.ts \ |
14 | ../../../i18n/xx/opieftp.ts \ | 12 | ../../../i18n/xx/opieftp.ts \ |
15 | ../../../i18n/en/opieftp.ts \ | 13 | ../../../i18n/en/opieftp.ts \ |
16 | ../../../i18n/es/opieftp.ts \ | 14 | ../../../i18n/es/opieftp.ts \ |
17 | ../../../i18n/fr/opieftp.ts \ | 15 | ../../../i18n/fr/opieftp.ts \ |
18 | ../../../i18n/hu/opieftp.ts \ | 16 | ../../../i18n/hu/opieftp.ts \ |
19 | ../../../i18n/ja/opieftp.ts \ | 17 | ../../../i18n/ja/opieftp.ts \ |
20 | ../../../i18n/ko/opieftp.ts \ | 18 | ../../../i18n/ko/opieftp.ts \ |
21 | ../../../i18n/no/opieftp.ts \ | 19 | ../../../i18n/no/opieftp.ts \ |
22 | ../../../i18n/pl/opieftp.ts \ | 20 | ../../../i18n/pl/opieftp.ts \ |
23 | ../../../i18n/pt/opieftp.ts \ | 21 | ../../../i18n/pt/opieftp.ts \ |
24 | ../../../i18n/pt_BR/opieftp.ts \ | 22 | ../../../i18n/pt_BR/opieftp.ts \ |
25 | ../../../i18n/sl/opieftp.ts \ | 23 | ../../../i18n/sl/opieftp.ts \ |
26 | ../../../i18n/zh_CN/opieftp.ts \ | 24 | ../../../i18n/zh_CN/opieftp.ts \ |
27 | ../../../i18n/zh_TW/opieftp.ts | 25 | ../../../i18n/zh_TW/opieftp.ts |
28 | 26 | ||
29 | 27 | ||
30 | 28 | ||
31 | include ( $(OPIEDIR)/include.pro ) | 29 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/net/opieirc/.cvsignore b/noncore/net/opieirc/.cvsignore index 39391f4..d5423d6 100644 --- a/noncore/net/opieirc/.cvsignore +++ b/noncore/net/opieirc/.cvsignore | |||
@@ -1,3 +1,4 @@ | |||
1 | Makefile | 1 | Makefile |
2 | Makefile.in | 2 | Makefile.in |
3 | moc_*.cpp | 3 | moc_*.cpp |
4 | .moc \ No newline at end of file | ||
diff --git a/noncore/net/opieirc/main.cpp b/noncore/net/opieirc/main.cpp index 43e63af..39acfcc 100644 --- a/noncore/net/opieirc/main.cpp +++ b/noncore/net/opieirc/main.cpp | |||
@@ -1,10 +1,7 @@ | |||
1 | #include <qpe/qpeapplication.h> | 1 | #include <qpe/qpeapplication.h> |
2 | #include "mainwindow.h" | 2 | #include "mainwindow.h" |
3 | 3 | ||
4 | int main(int argc, char **argv) { | 4 | #include <opie/oapplicationfactory.h> |
5 | QPEApplication a(argc, argv); | ||
6 | MainWindow mw; | ||
7 | a.showMainWidget(&mw); | ||
8 | return a.exec(); | ||
9 | } | ||
10 | 5 | ||
6 | |||
7 | OPIE_EXPORT_APP( OApplicationFactory<MainWindow> ) | ||
diff --git a/noncore/net/opieirc/mainwindow.h b/noncore/net/opieirc/mainwindow.h index bd1a9ce..0f60855 100644 --- a/noncore/net/opieirc/mainwindow.h +++ b/noncore/net/opieirc/mainwindow.h | |||
@@ -1,52 +1,53 @@ | |||
1 | /* | 1 | /* |
2 | OpieIRC - An embedded IRC client | 2 | OpieIRC - An embedded IRC client |
3 | Copyright (C) 2002 Wenzel Jakob | 3 | Copyright (C) 2002 Wenzel Jakob |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 17 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
18 | 18 | ||
19 | */ | 19 | */ |
20 | 20 | ||
21 | #ifndef __MAINWINDOW_H | 21 | #ifndef __MAINWINDOW_H |
22 | #define __MAINWINDOW_H | 22 | #define __MAINWINDOW_H |
23 | 23 | ||
24 | #include <qmainwindow.h> | 24 | #include <qmainwindow.h> |
25 | #include <qaction.h> | 25 | #include <qaction.h> |
26 | #include <qlist.h> | 26 | #include <qlist.h> |
27 | #include "mainwindow.h" | 27 | #include "mainwindow.h" |
28 | #include "ircmisc.h" | 28 | #include "ircmisc.h" |
29 | #include "irctab.h" | 29 | #include "irctab.h" |
30 | 30 | ||
31 | class MainWindow : public QMainWindow { | 31 | class MainWindow : public QMainWindow { |
32 | Q_OBJECT | 32 | Q_OBJECT |
33 | public: | 33 | public: |
34 | MainWindow(QWidget *parent = 0, const char *name = 0, WFlags f = 0); | 34 | MainWindow(QWidget *parent = 0, const char *name = 0, WFlags f = 0); |
35 | // IRCTabWidget getTabWidget(); | 35 | // IRCTabWidget getTabWidget(); |
36 | void addTab(IRCTab *tab); | 36 | void addTab(IRCTab *tab); |
37 | void killTab(IRCTab *tab); | 37 | void killTab(IRCTab *tab); |
38 | static QString appName() { return QString::fromLatin1("opieirc"); } | ||
38 | signals: | 39 | signals: |
39 | void updateScroll(); | 40 | void updateScroll(); |
40 | protected slots: | 41 | protected slots: |
41 | void newConnection(); | 42 | void newConnection(); |
42 | void settings(); | 43 | void settings(); |
43 | void selected(QWidget *); | 44 | void selected(QWidget *); |
44 | void changeEvent(IRCTab *); | 45 | void changeEvent(IRCTab *); |
45 | protected: | 46 | protected: |
46 | void loadSettings(); | 47 | void loadSettings(); |
47 | protected: | 48 | protected: |
48 | IRCTabWidget *m_tabWidget; | 49 | IRCTabWidget *m_tabWidget; |
49 | QList<IRCTab> m_tabs; | 50 | QList<IRCTab> m_tabs; |
50 | }; | 51 | }; |
51 | 52 | ||
52 | #endif /* __MAINWINDOW_H */ | 53 | #endif /* __MAINWINDOW_H */ |
diff --git a/noncore/net/opieirc/opieirc.pro b/noncore/net/opieirc/opieirc.pro index 8b09e18..537f810 100644 --- a/noncore/net/opieirc/opieirc.pro +++ b/noncore/net/opieirc/opieirc.pro | |||
@@ -1,28 +1,25 @@ | |||
1 | TEMPLATE= app | 1 | CONFIG = qt warn_on release quick-app |
2 | CONFIG = qt warn_on release | ||
3 | DESTDIR = $(OPIEDIR)/bin | ||
4 | HEADERS = ircchannel.h ircconnection.h \ | 2 | HEADERS = ircchannel.h ircconnection.h \ |
5 | ircmessage.h \ | 3 | ircmessage.h \ |
6 | ircmessageparser.h ircoutput.h \ | 4 | ircmessageparser.h ircoutput.h \ |
7 | ircperson.h ircserver.h ircsession.h \ | 5 | ircperson.h ircserver.h ircsession.h \ |
8 | mainwindow.h irctab.h ircservertab.h \ | 6 | mainwindow.h irctab.h ircservertab.h \ |
9 | ircchanneltab.h ircchannellist.h \ | 7 | ircchanneltab.h ircchannellist.h \ |
10 | ircserverlist.h ircservereditor.h \ | 8 | ircserverlist.h ircservereditor.h \ |
11 | ircquerytab.h ircsettings.h ircmisc.h | 9 | ircquerytab.h ircsettings.h ircmisc.h |
12 | SOURCES = ircchannel.cpp ircconnection.cpp \ | 10 | SOURCES = ircchannel.cpp ircconnection.cpp \ |
13 | ircmessage.cpp \ | 11 | ircmessage.cpp \ |
14 | ircmessageparser.cpp ircoutput.cpp \ | 12 | ircmessageparser.cpp ircoutput.cpp \ |
15 | ircperson.cpp ircserver.cpp \ | 13 | ircperson.cpp ircserver.cpp \ |
16 | ircsession.cpp main.cpp mainwindow.cpp \ | 14 | ircsession.cpp main.cpp mainwindow.cpp \ |
17 | irctab.cpp ircservertab.cpp \ | 15 | irctab.cpp ircservertab.cpp \ |
18 | ircchanneltab.cpp ircchannellist.cpp \ | 16 | ircchanneltab.cpp ircchannellist.cpp \ |
19 | ircserverlist.cpp ircservereditor.cpp \ | 17 | ircserverlist.cpp ircservereditor.cpp \ |
20 | ircquerytab.cpp ircsettings.cpp ircmisc.cpp | 18 | ircquerytab.cpp ircsettings.cpp ircmisc.cpp |
21 | INCLUDEPATH += $(OPIEDIR)/include | 19 | INCLUDEPATH += $(OPIEDIR)/include |
22 | DEPENDPATH+= $(OPIEDIR)/include | 20 | DEPENDPATH+= $(OPIEDIR)/include |
23 | LIBS += -lqpe -lopie | 21 | LIBS += -lqpe -lopie |
24 | TARGET = opieirc | ||
25 | |||
26 | 22 | ||
23 | TARGET= opieirc | ||
27 | 24 | ||
28 | include ( $(OPIEDIR)/include.pro ) | 25 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/net/opietooth/blue-pin/blue-pin.pro b/noncore/net/opietooth/blue-pin/blue-pin.pro index 102a937..fbf9dbe 100644 --- a/noncore/net/opietooth/blue-pin/blue-pin.pro +++ b/noncore/net/opietooth/blue-pin/blue-pin.pro | |||
@@ -1,34 +1,30 @@ | |||
1 | TEMPLATE = app | 1 | CONFIG = qt warn_on release quick-app |
2 | #CONFIG = qt warn_on debug | ||
3 | CONFIG = qt warn_on release | ||
4 | HEADERS = pindlg.h | 2 | HEADERS = pindlg.h |
5 | SOURCES = main.cc pindlg.cc | 3 | SOURCES = main.cc pindlg.cc |
6 | INCLUDEPATH += $(OPIEDIR)/include | 4 | INCLUDEPATH += $(OPIEDIR)/include |
7 | INCLUDEPATH += $(OPIEDIR)/noncore/opietooth/lib | 5 | INCLUDEPATH += $(OPIEDIR)/noncore/opietooth/lib |
8 | DEPENDPATH += $(OPIEDIR)/include | 6 | DEPENDPATH += $(OPIEDIR)/include |
9 | LIBS += -lqpe | 7 | LIBS += -lqpe |
10 | INTERFACES = pindlgbase.ui | 8 | INTERFACES = pindlgbase.ui |
11 | DESTDIR = $(OPIEDIR)/bin | 9 | TARGET = bluepin |
12 | TARGET = bluepin | ||
13 | 10 | ||
14 | TRANSLATIONS = ../../../../i18n/de/bluepin.ts \ | 11 | TRANSLATIONS = ../../../../i18n/de/bluepin.ts \ |
15 | ../../../../i18n/nl/bluepin.ts \ | 12 | ../../../../i18n/nl/bluepin.ts \ |
16 | ../../../../i18n/da/bluepin.ts \ | 13 | ../../../../i18n/da/bluepin.ts \ |
17 | ../../../../i18n/xx/bluepin.ts \ | 14 | ../../../../i18n/xx/bluepin.ts \ |
18 | ../../../../i18n/en/bluepin.ts \ | 15 | ../../../../i18n/en/bluepin.ts \ |
19 | ../../../../i18n/es/bluepin.ts \ | 16 | ../../../../i18n/es/bluepin.ts \ |
20 | ../../../../i18n/fr/bluepin.ts \ | 17 | ../../../../i18n/fr/bluepin.ts \ |
21 | ../../../../i18n/hu/bluepin.ts \ | 18 | ../../../../i18n/hu/bluepin.ts \ |
22 | ../../../../i18n/ja/bluepin.ts \ | 19 | ../../../../i18n/ja/bluepin.ts \ |
23 | ../../../../i18n/ko/bluepin.ts \ | 20 | ../../../../i18n/ko/bluepin.ts \ |
24 | ../../../../i18n/no/bluepin.ts \ | 21 | ../../../../i18n/no/bluepin.ts \ |
25 | ../../../../i18n/pl/bluepin.ts \ | 22 | ../../../../i18n/pl/bluepin.ts \ |
26 | ../../../../i18n/pt/bluepin.ts \ | 23 | ../../../../i18n/pt/bluepin.ts \ |
27 | ../../../../i18n/pt_BR/bluepin.ts \ | 24 | ../../../../i18n/pt_BR/bluepin.ts \ |
28 | ../../../../i18n/sl/bluepin.ts \ | 25 | ../../../../i18n/sl/bluepin.ts \ |
29 | ../../../../i18n/zh_CN/bluepin.ts \ | 26 | ../../../../i18n/zh_CN/bluepin.ts \ |
30 | ../../../../i18n/zh_TW/bluepin.ts | 27 | ../../../../i18n/zh_TW/bluepin.ts |
31 | 28 | ||
32 | 29 | ||
33 | |||
34 | include ( $(OPIEDIR)/include.pro ) | 30 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/net/opietooth/manager/.cvsignore b/noncore/net/opietooth/manager/.cvsignore index 3fb67fe..19c03a7 100644 --- a/noncore/net/opietooth/manager/.cvsignore +++ b/noncore/net/opietooth/manager/.cvsignore | |||
@@ -1,9 +1,13 @@ | |||
1 | Makefile | 1 | Makefile |
2 | Makefile.in | 2 | Makefile.in |
3 | bluetoothbase.cpp | 3 | bluetoothbase.cpp |
4 | bluetoothbase.h | 4 | bluetoothbase.h |
5 | devicedialog.cpp | 5 | devicedialog.cpp |
6 | devicedialog.h | 6 | devicedialog.h |
7 | moc_* | 7 | moc_* |
8 | scandialog.cpp | 8 | scandialog.cpp |
9 | scandialog.h | 9 | scandialog.h |
10 | rfcommassigndialogbase.cpp | ||
11 | rfcommassigndialogbase.h | ||
12 | rfcommdialogitembase.cpp | ||
13 | rfcommdialogitembase.h | ||
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp index 54808fa..2e68984 100644 --- a/noncore/net/opietooth/manager/bluebase.cpp +++ b/noncore/net/opietooth/manager/bluebase.cpp | |||
@@ -1,610 +1,627 @@ | |||
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 | 24 | ||
24 | #include <remotedevice.h> | 25 | #include <remotedevice.h> |
25 | #include <services.h> | 26 | #include <services.h> |
26 | 27 | ||
27 | #include <stdlib.h> | 28 | #include <stdlib.h> |
28 | 29 | ||
29 | #include <qframe.h> | 30 | #include <qframe.h> |
30 | #include <qlabel.h> | 31 | #include <qlabel.h> |
31 | #include <qpushbutton.h> | 32 | #include <qpushbutton.h> |
32 | #include <qlayout.h> | 33 | #include <qlayout.h> |
33 | #include <qvariant.h> | 34 | #include <qvariant.h> |
34 | #include <qimage.h> | 35 | #include <qimage.h> |
35 | #include <qpixmap.h> | 36 | #include <qpixmap.h> |
36 | #include <qtabwidget.h> | 37 | #include <qtabwidget.h> |
37 | #include <qscrollview.h> | 38 | #include <qscrollview.h> |
38 | #include <qvbox.h> | 39 | #include <qvbox.h> |
39 | #include <qmessagebox.h> | 40 | #include <qmessagebox.h> |
40 | #include <qcheckbox.h> | 41 | #include <qcheckbox.h> |
41 | #include <qlineedit.h> | 42 | #include <qlineedit.h> |
42 | #include <qlistview.h> | 43 | #include <qlistview.h> |
43 | #include <qdir.h> | 44 | #include <qdir.h> |
44 | #include <qpopupmenu.h> | 45 | #include <qpopupmenu.h> |
45 | #include <qtimer.h> | 46 | #include <qtimer.h> |
46 | #include <qlist.h> | 47 | #include <qlist.h> |
47 | 48 | ||
48 | #include <qpe/qpeapplication.h> | 49 | #include <qpe/qpeapplication.h> |
49 | #include <qpe/resource.h> | 50 | #include <qpe/resource.h> |
50 | #include <qpe/config.h> | 51 | #include <qpe/config.h> |
51 | 52 | ||
52 | 53 | ||
53 | using namespace OpieTooth; | 54 | using namespace OpieTooth; |
54 | 55 | ||
55 | BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) | 56 | BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) |
56 | : BluetoothBase( parent, name, fl ) { | 57 | : BluetoothBase( parent, name, fl ) { |
57 | 58 | ||
58 | m_localDevice = new Manager( "hci0" ); | 59 | m_localDevice = new Manager( "hci0" ); |
59 | 60 | ||
60 | connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); | 61 | connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); |
61 | connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); | 62 | connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); |
62 | // not good since lib is async | 63 | |
64 | connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) ); | ||
65 | // not good since lib is async | ||
63 | // connect( ListView2, SIGNAL( expanded ( QListViewItem* ) ), | 66 | // connect( ListView2, SIGNAL( expanded ( QListViewItem* ) ), |
64 | // this, SLOT( addServicesToDevice( QListViewItem * ) ) ); | 67 | // this, SLOT( addServicesToDevice( QListViewItem * ) ) ); |
65 | connect( ListView2, SIGNAL( clicked( QListViewItem* )), | 68 | connect( ListView2, SIGNAL( clicked( QListViewItem* )), |
66 | this, SLOT( startServiceActionClicked( QListViewItem* ) ) ); | 69 | this, SLOT( startServiceActionClicked( QListViewItem* ) ) ); |
67 | connect( ListView2, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int ) ), | 70 | connect( ListView2, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int ) ), |
68 | this, SLOT(startServiceActionHold( QListViewItem *, const QPoint &, int) ) ); | 71 | this, SLOT(startServiceActionHold( QListViewItem *, const QPoint &, int) ) ); |
69 | connect( m_localDevice , SIGNAL( foundServices( const QString& , Services::ValueList ) ), | 72 | connect( m_localDevice , SIGNAL( foundServices( const QString& , Services::ValueList ) ), |
70 | this, SLOT( addServicesToDevice( const QString& , Services::ValueList ) ) ); | 73 | this, SLOT( addServicesToDevice( const QString& , Services::ValueList ) ) ); |
71 | connect( m_localDevice, SIGNAL( available( const QString&, bool ) ), | 74 | connect( m_localDevice, SIGNAL( available( const QString&, bool ) ), |
72 | this, SLOT( deviceActive( const QString& , bool ) ) ); | 75 | this, SLOT( deviceActive( const QString& , bool ) ) ); |
73 | connect( m_localDevice, SIGNAL( connections( ConnectionState::ValueList ) ), | 76 | connect( m_localDevice, SIGNAL( connections( ConnectionState::ValueList ) ), |
74 | this, SLOT( addConnectedDevices( ConnectionState::ValueList ) ) ); | 77 | this, SLOT( addConnectedDevices( ConnectionState::ValueList ) ) ); |
75 | connect( m_localDevice, SIGNAL( signalStrength( const QString&, const QString& ) ), | 78 | connect( m_localDevice, SIGNAL( signalStrength( const QString&, const QString& ) ), |
76 | this, SLOT( addSignalStrength( const QString&, const QString& ) ) ); | 79 | this, SLOT( addSignalStrength( const QString&, const QString& ) ) ); |
77 | 80 | ||
78 | 81 | ||
79 | // let hold be rightButtonClicked() | 82 | // let hold be rightButtonClicked() |
80 | QPEApplication::setStylusOperation( ListView2->viewport(), QPEApplication::RightOnHold); | 83 | QPEApplication::setStylusOperation( ListView2->viewport(), QPEApplication::RightOnHold); |
81 | QPEApplication::setStylusOperation( ListView4->viewport(), QPEApplication::RightOnHold); | 84 | QPEApplication::setStylusOperation( ListView4->viewport(), QPEApplication::RightOnHold); |
82 | 85 | ||
83 | //Load all icons needed | 86 | //Load all icons needed |
84 | m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); | 87 | m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); |
85 | m_onPix = Resource::loadPixmap( "opietooth/connected" ); | 88 | m_onPix = Resource::loadPixmap( "opietooth/connected" ); |
86 | m_findPix = Resource::loadPixmap( "opietooth/find" ); | 89 | m_findPix = Resource::loadPixmap( "opietooth/find" ); |
87 | 90 | ||
88 | QPalette pal = this->palette(); | 91 | QPalette pal = this->palette(); |
89 | QColor col = pal.color( QPalette::Active, QColorGroup::Background ); | 92 | QColor col = pal.color( QPalette::Active, QColorGroup::Background ); |
90 | pal.setColor( QPalette::Active, QColorGroup::Button, col ); | 93 | pal.setColor( QPalette::Active, QColorGroup::Button, col ); |
91 | pal.setColor( QPalette::Inactive, QColorGroup::Button, col ); | 94 | pal.setColor( QPalette::Inactive, QColorGroup::Button, col ); |
92 | pal.setColor( QPalette::Normal, QColorGroup::Button, col ); | 95 | pal.setColor( QPalette::Normal, QColorGroup::Button, col ); |
93 | pal.setColor( QPalette::Disabled, QColorGroup::Button, col ); | 96 | pal.setColor( QPalette::Disabled, QColorGroup::Button, col ); |
94 | this->setPalette( pal ); | 97 | this->setPalette( pal ); |
95 | 98 | ||
96 | setCaption( tr( "Bluetooth Manager" ) ); | 99 | setCaption( tr( "Bluetooth Manager" ) ); |
97 | 100 | ||
98 | readConfig(); | 101 | readConfig(); |
99 | initGui(); | 102 | initGui(); |
100 | 103 | ||
101 | ListView2->setRootIsDecorated(true); | 104 | ListView2->setRootIsDecorated(true); |
102 | 105 | ||
103 | 106 | ||
104 | writeToHciConfig(); | 107 | writeToHciConfig(); |
105 | // search conncetions | 108 | // search conncetions |
106 | addConnectedDevices(); | 109 | addConnectedDevices(); |
107 | addSignalStrength(); | 110 | addSignalStrength(); |
108 | m_iconLoader = new BTIconLoader(); | 111 | m_iconLoader = new BTIconLoader(); |
109 | readSavedDevices(); | 112 | readSavedDevices(); |
110 | } | 113 | } |
111 | 114 | ||
112 | /** | 115 | /** |
113 | * Reads all options from the config file | 116 | * Reads all options from the config file |
114 | */ | 117 | */ |
115 | void BlueBase::readConfig() { | 118 | void BlueBase::readConfig() { |
116 | 119 | ||
117 | Config cfg( "bluetoothmanager" ); | 120 | Config cfg( "bluetoothmanager" ); |
118 | cfg.setGroup( "bluezsettings" ); | 121 | cfg.setGroup( "bluezsettings" ); |
119 | 122 | ||
120 | m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with | 123 | m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with |
121 | m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak | 124 | m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak |
122 | m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE ); | 125 | m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE ); |
123 | m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE ); | 126 | m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE ); |
124 | m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE ); | 127 | m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE ); |
125 | m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE ); | 128 | m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE ); |
126 | } | 129 | } |
127 | 130 | ||
128 | /** | 131 | /** |
129 | * Writes all options to the config file | 132 | * Writes all options to the config file |
130 | */ | 133 | */ |
131 | void BlueBase::writeConfig() { | 134 | void BlueBase::writeConfig() { |
132 | 135 | ||
133 | Config cfg( "bluetoothmanager" ); | 136 | Config cfg( "bluetoothmanager" ); |
134 | cfg.setGroup( "bluezsettings" ); | 137 | cfg.setGroup( "bluezsettings" ); |
135 | 138 | ||
136 | cfg.writeEntry( "name" , m_deviceName ); | 139 | cfg.writeEntry( "name" , m_deviceName ); |
137 | cfg.writeEntryCrypt( "passkey" , m_defaultPasskey ); | 140 | cfg.writeEntryCrypt( "passkey" , m_defaultPasskey ); |
138 | cfg.writeEntry( "useEncryption" , m_useEncryption ); | 141 | cfg.writeEntry( "useEncryption" , m_useEncryption ); |
139 | cfg.writeEntry( "enableAuthentification" , m_enableAuthentification ); | 142 | cfg.writeEntry( "enableAuthentification" , m_enableAuthentification ); |
140 | cfg.writeEntry( "enablePagescan" , m_enablePagescan ); | 143 | cfg.writeEntry( "enablePagescan" , m_enablePagescan ); |
141 | cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); | 144 | cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); |
142 | 145 | ||
143 | writeToHciConfig(); | 146 | writeToHciConfig(); |
144 | } | 147 | } |
145 | 148 | ||
146 | /** | 149 | /** |
147 | * Modify the hcid.conf file to our needs | 150 | * Modify the hcid.conf file to our needs |
148 | */ | 151 | */ |
149 | void BlueBase::writeToHciConfig() { | 152 | void BlueBase::writeToHciConfig() { |
150 | qWarning("writeToHciConfig"); | 153 | qWarning("writeToHciConfig"); |
151 | HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); | 154 | HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); |
152 | hciconf.load(); | 155 | hciconf.load(); |
153 | hciconf.setPinHelper( "/opt/QtPalmtop/bin/bluepin" ); | 156 | hciconf.setPinHelper( "/opt/QtPalmtop/bin/bluepin" ); |
154 | hciconf.setName( m_deviceName ); | 157 | hciconf.setName( m_deviceName ); |
155 | hciconf.setEncrypt( m_useEncryption ); | 158 | hciconf.setEncrypt( m_useEncryption ); |
156 | hciconf.setAuth( m_enableAuthentification ); | 159 | hciconf.setAuth( m_enableAuthentification ); |
157 | hciconf.setPscan( m_enablePagescan ); | 160 | hciconf.setPscan( m_enablePagescan ); |
158 | hciconf.setIscan( m_enableInquiryscan ); | 161 | hciconf.setIscan( m_enableInquiryscan ); |
159 | hciconf.save(); | 162 | hciconf.save(); |
160 | } | 163 | } |
161 | 164 | ||
162 | 165 | ||
163 | /** | 166 | /** |
164 | * Read the list of allready known devices | 167 | * Read the list of allready known devices |
165 | */ | 168 | */ |
166 | void BlueBase::readSavedDevices() { | 169 | void BlueBase::readSavedDevices() { |
167 | 170 | ||
168 | QValueList<RemoteDevice> loadedDevices; | 171 | QValueList<RemoteDevice> loadedDevices; |
169 | DeviceHandler handler; | 172 | DeviceHandler handler; |
170 | loadedDevices = handler.load(); | 173 | loadedDevices = handler.load(); |
171 | 174 | ||
172 | addSearchedDevices( loadedDevices ); | 175 | addSearchedDevices( loadedDevices ); |
173 | } | 176 | } |
174 | 177 | ||
175 | 178 | ||
176 | /** | 179 | /** |
177 | * Write the list of allready known devices | 180 | * Write the list of allready known devices |
178 | */ | 181 | */ |
179 | void BlueBase::writeSavedDevices() { | 182 | void BlueBase::writeSavedDevices() { |
180 | QListViewItemIterator it( ListView2 ); | 183 | QListViewItemIterator it( ListView2 ); |
181 | BTListItem* item; | 184 | BTListItem* item; |
182 | BTDeviceItem* device; | 185 | BTDeviceItem* device; |
183 | RemoteDevice::ValueList list; | 186 | RemoteDevice::ValueList list; |
184 | for ( ; it.current(); ++it ) { | 187 | for ( ; it.current(); ++it ) { |
185 | item = (BTListItem*)it.current(); | 188 | item = (BTListItem*)it.current(); |
186 | if(item->typeId() != BTListItem::Device ) | 189 | if(item->typeId() != BTListItem::Device ) |
187 | continue; | 190 | continue; |
188 | device = (BTDeviceItem*)item; | 191 | device = (BTDeviceItem*)item; |
189 | 192 | ||
190 | list.append( device->remoteDevice() ); | 193 | list.append( device->remoteDevice() ); |
191 | } | 194 | } |
192 | /* | 195 | /* |
193 | * if not empty save the List through DeviceHandler | 196 | * if not empty save the List through DeviceHandler |
194 | */ | 197 | */ |
195 | if ( list.isEmpty() ) | 198 | if ( list.isEmpty() ) |
196 | return; | 199 | return; |
197 | DeviceHandler handler; | 200 | DeviceHandler handler; |
198 | handler.save( list ); | 201 | handler.save( list ); |
199 | } | 202 | } |
200 | 203 | ||
201 | 204 | ||
202 | /** | 205 | /** |
203 | * Set up the gui | 206 | * Set up the gui |
204 | */ | 207 | */ |
205 | void BlueBase::initGui() { | 208 | void BlueBase::initGui() { |
206 | StatusLabel->setText( status() ); // maybe move it to getStatus() | 209 | StatusLabel->setText( status() ); // maybe move it to getStatus() |
207 | cryptCheckBox->setChecked( m_useEncryption ); | 210 | cryptCheckBox->setChecked( m_useEncryption ); |
208 | authCheckBox->setChecked( m_enableAuthentification ); | 211 | authCheckBox->setChecked( m_enableAuthentification ); |
209 | pagescanCheckBox->setChecked( m_enablePagescan ); | 212 | pagescanCheckBox->setChecked( m_enablePagescan ); |
210 | inquiryscanCheckBox->setChecked( m_enableInquiryscan ); | 213 | inquiryscanCheckBox->setChecked( m_enableInquiryscan ); |
211 | deviceNameLine->setText( m_deviceName ); | 214 | deviceNameLine->setText( m_deviceName ); |
212 | passkeyLine->setText( m_defaultPasskey ); | 215 | passkeyLine->setText( m_defaultPasskey ); |
213 | // set info tab | 216 | // set info tab |
214 | setInfo(); | 217 | setInfo(); |
215 | } | 218 | } |
216 | 219 | ||
217 | 220 | ||
218 | /** | 221 | /** |
219 | * Get the status informations and returns it | 222 | * Get the status informations and returns it |
220 | * @return QString the status informations gathered | 223 | * @return QString the status informations gathered |
221 | */ | 224 | */ |
222 | QString BlueBase::status()const{ | 225 | QString BlueBase::status()const{ |
223 | QString infoString = tr( "<b>Device name : </b> Ipaq" ); | 226 | QString infoString = tr( "<b>Device name : </b> Ipaq" ); |
224 | infoString += QString( "<br><b>" + tr( "MAC adress: " ) +"</b> No idea" ); | 227 | infoString += QString( "<br><b>" + tr( "MAC adress: " ) +"</b> No idea" ); |
225 | infoString += QString( "<br><b>" + tr( "Class" ) + "</b> PDA" ); | 228 | infoString += QString( "<br><b>" + tr( "Class" ) + "</b> PDA" ); |
226 | 229 | ||
227 | return (infoString); | 230 | return (infoString); |
228 | } | 231 | } |
229 | 232 | ||
230 | 233 | ||
231 | /** | 234 | /** |
232 | * Read the current values from the gui and invoke writeConfig() | 235 | * Read the current values from the gui and invoke writeConfig() |
233 | */ | 236 | */ |
234 | void BlueBase::applyConfigChanges() { | 237 | void BlueBase::applyConfigChanges() { |
235 | m_deviceName = deviceNameLine->text(); | 238 | m_deviceName = deviceNameLine->text(); |
236 | m_defaultPasskey = passkeyLine->text(); | 239 | m_defaultPasskey = passkeyLine->text(); |
237 | m_useEncryption = cryptCheckBox->isChecked(); | 240 | m_useEncryption = cryptCheckBox->isChecked(); |
238 | m_enableAuthentification = authCheckBox->isChecked(); | 241 | m_enableAuthentification = authCheckBox->isChecked(); |
239 | m_enablePagescan = pagescanCheckBox->isChecked(); | 242 | m_enablePagescan = pagescanCheckBox->isChecked(); |
240 | m_enableInquiryscan = inquiryscanCheckBox->isChecked(); | 243 | m_enableInquiryscan = inquiryscanCheckBox->isChecked(); |
241 | 244 | ||
242 | writeConfig(); | 245 | writeConfig(); |
243 | 246 | ||
244 | QMessageBox::information( this, tr("Test") , tr("Changes were applied.") ); | 247 | QMessageBox::information( this, tr("Test") , tr("Changes were applied.") ); |
245 | } | 248 | } |
246 | 249 | ||
247 | /** | 250 | /** |
251 | * Launch Rfcomm Bind dialog | ||
252 | * | ||
253 | */ | ||
254 | void BlueBase::rfcommDialog() { | ||
255 | RfcommAssignDialog rfcommAssign ( this, "RfcommAssignDialog", true, WStyle_ContextHelp ); | ||
256 | |||
257 | rfcommAssign.showMaximized(); | ||
258 | |||
259 | if ( rfcommAssign.exec() == QDialog::Accepted ) { | ||
260 | rfcommAssign.saveConfig(); | ||
261 | } | ||
262 | } | ||
263 | |||
264 | /** | ||
248 | * Add fresh found devices from scan dialog to the listing | 265 | * Add fresh found devices from scan dialog to the listing |
249 | * | 266 | * |
250 | */ | 267 | */ |
251 | void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) { | 268 | void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) { |
252 | BTDeviceItem * deviceItem; | 269 | BTDeviceItem * deviceItem; |
253 | QValueList<RemoteDevice>::ConstIterator it; | 270 | QValueList<RemoteDevice>::ConstIterator it; |
254 | 271 | ||
255 | for( it = newDevices.begin(); it != newDevices.end() ; ++it ) { | 272 | for( it = newDevices.begin(); it != newDevices.end() ; ++it ) { |
256 | 273 | ||
257 | if (find( (*it) )) // is already inserted | 274 | if (find( (*it) )) // is already inserted |
258 | continue; | 275 | continue; |
259 | 276 | ||
260 | deviceItem = new BTDeviceItem( ListView2 , (*it) ); | 277 | deviceItem = new BTDeviceItem( ListView2 , (*it) ); |
261 | deviceItem->setPixmap( 1, m_findPix ); | 278 | deviceItem->setPixmap( 1, m_findPix ); |
262 | deviceItem->setExpandable ( true ); | 279 | deviceItem->setExpandable ( true ); |
263 | 280 | ||
264 | // look if device is avail. atm, async | 281 | // look if device is avail. atm, async |
265 | deviceActive( (*it) ); | 282 | deviceActive( (*it) ); |
266 | 283 | ||
267 | // ggf auch hier? | 284 | // ggf auch hier? |
268 | addServicesToDevice( deviceItem ); | 285 | addServicesToDevice( deviceItem ); |
269 | } | 286 | } |
270 | } | 287 | } |
271 | 288 | ||
272 | 289 | ||
273 | /** | 290 | /** |
274 | * Action that is toggled on entrys on click | 291 | * Action that is toggled on entrys on click |
275 | */ | 292 | */ |
276 | void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) { | 293 | void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) { |
277 | } | 294 | } |
278 | 295 | ||
279 | 296 | ||
280 | /** | 297 | /** |
281 | * Action that are toggled on hold (mostly QPopups i guess) | 298 | * Action that are toggled on hold (mostly QPopups i guess) |
282 | */ | 299 | */ |
283 | void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) { | 300 | void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) { |
284 | if (!item ) | 301 | if (!item ) |
285 | return; | 302 | return; |
286 | 303 | ||
287 | QPopupMenu *menu = new QPopupMenu(); | 304 | QPopupMenu *menu = new QPopupMenu(); |
288 | int ret=0; | 305 | int ret=0; |
289 | 306 | ||
290 | if ( ((BTListItem*)item)->type() == "device") { | 307 | if ( ((BTListItem*)item)->type() == "device") { |
291 | 308 | ||
292 | QPopupMenu *groups = new QPopupMenu(); | 309 | QPopupMenu *groups = new QPopupMenu(); |
293 | 310 | ||
294 | menu->insertItem( ((BTDeviceItem*)item)->name(),0 ); | 311 | menu->insertItem( ((BTDeviceItem*)item)->name(),0 ); |
295 | menu->insertSeparator(1); | 312 | menu->insertSeparator(1); |
296 | menu->insertItem( tr("rescan sevices"), 2); | 313 | menu->insertItem( tr("rescan sevices"), 2); |
297 | menu->insertItem( tr("to group"), groups , 3); | 314 | menu->insertItem( tr("to group"), groups , 3); |
298 | menu->insertItem( tr("delete"), 4); | 315 | menu->insertItem( tr("delete"), 4); |
299 | 316 | ||
300 | ret = menu->exec( point , 0); | 317 | ret = menu->exec( point , 0); |
301 | 318 | ||
302 | switch(ret) { | 319 | switch(ret) { |
303 | case -1: | 320 | case -1: |
304 | break; | 321 | break; |
305 | case 2: | 322 | case 2: |
306 | addServicesToDevice( (BTDeviceItem*)item ); | 323 | addServicesToDevice( (BTDeviceItem*)item ); |
307 | break; | 324 | break; |
308 | 325 | ||
309 | case 4: | 326 | case 4: |
310 | // deletes childs too | 327 | // deletes childs too |
311 | delete item; | 328 | delete item; |
312 | break; | 329 | break; |
313 | } | 330 | } |
314 | delete groups; | 331 | delete groups; |
315 | 332 | ||
316 | } | 333 | } |
317 | 334 | ||
318 | /* | 335 | /* |
319 | * We got service sensitive PopupMenus in our factory | 336 | * We got service sensitive PopupMenus in our factory |
320 | * We will create one through the factory and will insert | 337 | * We will create one through the factory and will insert |
321 | * our Separator + ShowInfo into the menu or create a new | 338 | * our Separator + ShowInfo into the menu or create a new |
322 | * one if the factory returns 0 | 339 | * one if the factory returns 0 |
323 | * PopupMenu deletion is kind of weird. | 340 | * PopupMenu deletion is kind of weird. |
324 | * If escaped( -1 ) or any of our items were chosen we'll | 341 | * If escaped( -1 ) or any of our items were chosen we'll |
325 | * delete the PopupMenu otherwise it's the responsibility of | 342 | * delete the PopupMenu otherwise it's the responsibility of |
326 | * the PopupMenu to delete itself | 343 | * the PopupMenu to delete itself |
327 | * | 344 | * |
328 | */ | 345 | */ |
329 | else if ( ((BTListItem*)item)->type() == "service") { | 346 | else if ( ((BTListItem*)item)->type() == "service") { |
330 | BTServiceItem* service = (BTServiceItem*)item; | 347 | BTServiceItem* service = (BTServiceItem*)item; |
331 | QMap<int, QString> list = service->services().classIdList(); | 348 | QMap<int, QString> list = service->services().classIdList(); |
332 | QMap<int, QString>::Iterator it = list.begin(); | 349 | QMap<int, QString>::Iterator it = list.begin(); |
333 | QPopupMenu *popup =0l; | 350 | QPopupMenu *popup =0l; |
334 | if ( it != list.end() ) { | 351 | if ( it != list.end() ) { |
335 | qWarning("Searching id %d %s", it.key(), it.data().latin1() ); | 352 | qWarning("Searching id %d %s", it.key(), it.data().latin1() ); |
336 | popup = m_popHelper.find( it.key(), | 353 | popup = m_popHelper.find( it.key(), |
337 | service->services(), | 354 | service->services(), |
338 | (BTDeviceItem*)service->parent() ); | 355 | (BTDeviceItem*)service->parent() ); |
339 | }else { | 356 | }else { |
340 | qWarning("Empty"); | 357 | qWarning("Empty"); |
341 | } | 358 | } |
342 | 359 | ||
343 | if ( popup == 0l ) { | 360 | if ( popup == 0l ) { |
344 | qWarning("factory returned 0l"); | 361 | qWarning("factory returned 0l"); |
345 | popup = new QPopupMenu(); | 362 | popup = new QPopupMenu(); |
346 | } | 363 | } |
347 | int test1 = popup->insertItem( tr("Test1:"), 2); | 364 | int test1 = popup->insertItem( tr("Test1:"), 2); |
348 | 365 | ||
349 | ret = popup->exec( point ); | 366 | ret = popup->exec( point ); |
350 | qWarning("returned from exec() "); | 367 | qWarning("returned from exec() "); |
351 | if ( ret == -1 ) { | 368 | if ( ret == -1 ) { |
352 | ; | 369 | ; |
353 | } else if ( ret == test1 ) { | 370 | } else if ( ret == test1 ) { |
354 | ; | 371 | ; |
355 | } | 372 | } |
356 | delete popup; | 373 | delete popup; |
357 | } | 374 | } |
358 | delete menu; | 375 | delete menu; |
359 | } | 376 | } |
360 | 377 | ||
361 | 378 | ||
362 | /** | 379 | /** |
363 | * Search and display avail. services for a device (on expand from device listing) | 380 | * Search and display avail. services for a device (on expand from device listing) |
364 | * @param item the service item returned | 381 | * @param item the service item returned |
365 | */ | 382 | */ |
366 | void BlueBase::addServicesToDevice( BTDeviceItem * item ) { | 383 | void BlueBase::addServicesToDevice( BTDeviceItem * item ) { |
367 | qDebug("addServicesToDevice"); | 384 | qDebug("addServicesToDevice"); |
368 | // row of mac adress text(3) | 385 | // row of mac adress text(3) |
369 | RemoteDevice device = item->remoteDevice(); | 386 | RemoteDevice device = item->remoteDevice(); |
370 | m_deviceList.insert( item->mac() , item ); | 387 | m_deviceList.insert( item->mac() , item ); |
371 | // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back | 388 | // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back |
372 | m_localDevice->searchServices( device ); | 389 | m_localDevice->searchServices( device ); |
373 | } | 390 | } |
374 | 391 | ||
375 | 392 | ||
376 | /** | 393 | /** |
377 | * Overloaded. This one it the one that is | 394 | * Overloaded. This one it the one that is |
378 | ted to the foundServices signal | 395 | ted to the foundServices signal |
379 | * @param device the mac address of the remote device | 396 | * @param device the mac address of the remote device |
380 | * @param servicesList the list with the service the device has. | 397 | * @param servicesList the list with the service the device has. |
381 | */ | 398 | */ |
382 | void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) { | 399 | void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) { |
383 | qDebug("fill services list"); | 400 | qDebug("fill services list"); |
384 | 401 | ||
385 | QMap<QString,BTDeviceItem*>::Iterator it; | 402 | QMap<QString,BTDeviceItem*>::Iterator it; |
386 | BTDeviceItem* deviceItem = 0; | 403 | BTDeviceItem* deviceItem = 0; |
387 | 404 | ||
388 | // get the right devices which requested the search | 405 | // get the right devices which requested the search |
389 | it = m_deviceList.find( device ); | 406 | it = m_deviceList.find( device ); |
390 | if( it == m_deviceList.end() ) | 407 | if( it == m_deviceList.end() ) |
391 | return; | 408 | return; |
392 | deviceItem = it.data(); | 409 | deviceItem = it.data(); |
393 | 410 | ||
394 | // remove previous entries | 411 | // remove previous entries |
395 | QList<QListViewItem> tempList; | 412 | QList<QListViewItem> tempList; |
396 | tempList.setAutoDelete( true ); | 413 | tempList.setAutoDelete( true ); |
397 | QListViewItem * child = deviceItem->firstChild(); | 414 | QListViewItem * child = deviceItem->firstChild(); |
398 | while( child ) { | 415 | while( child ) { |
399 | tempList.append( child ); | 416 | tempList.append( child ); |
400 | child = child->nextSibling(); | 417 | child = child->nextSibling(); |
401 | } | 418 | } |
402 | tempList.clear(); | 419 | tempList.clear(); |
403 | 420 | ||
404 | QValueList<OpieTooth::Services>::Iterator it2; | 421 | QValueList<OpieTooth::Services>::Iterator it2; |
405 | BTServiceItem* serviceItem; | 422 | BTServiceItem* serviceItem; |
406 | 423 | ||
407 | 424 | ||
408 | if (!servicesList.isEmpty() ) { | 425 | if (!servicesList.isEmpty() ) { |
409 | // add services | 426 | // add services |
410 | QMap<int, QString> list; | 427 | QMap<int, QString> list; |
411 | QMap<int, QString>::Iterator classIt; | 428 | QMap<int, QString>::Iterator classIt; |
412 | for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) { | 429 | for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) { |
413 | serviceItem = new BTServiceItem( deviceItem, (*it2) ); | 430 | serviceItem = new BTServiceItem( deviceItem, (*it2) ); |
414 | list = (*it2).classIdList(); | 431 | list = (*it2).classIdList(); |
415 | classIt = list.begin(); | 432 | classIt = list.begin(); |
416 | int classId=0; | 433 | int classId=0; |
417 | if ( classIt != list.end() ) { | 434 | if ( classIt != list.end() ) { |
418 | classId = classIt.key(); | 435 | classId = classIt.key(); |
419 | } | 436 | } |
420 | 437 | ||
421 | serviceItem->setPixmap( 0, m_iconLoader->serviceIcon( classId ) ); | 438 | serviceItem->setPixmap( 0, m_iconLoader->serviceIcon( classId ) ); |
422 | } | 439 | } |
423 | } else { | 440 | } else { |
424 | Services s1; | 441 | Services s1; |
425 | s1.setServiceName( tr("no services found") ); | 442 | s1.setServiceName( tr("no services found") ); |
426 | serviceItem = new BTServiceItem( deviceItem, s1 ); | 443 | serviceItem = new BTServiceItem( deviceItem, s1 ); |
427 | } | 444 | } |
428 | // now remove them from the list | 445 | // now remove them from the list |
429 | m_deviceList.remove( it ); | 446 | m_deviceList.remove( it ); |
430 | } | 447 | } |
431 | 448 | ||
432 | 449 | ||
433 | 450 | ||
434 | 451 | ||
435 | 452 | ||
436 | void BlueBase::addSignalStrength() { | 453 | void BlueBase::addSignalStrength() { |
437 | 454 | ||
438 | QListViewItemIterator it( ListView4 ); | 455 | QListViewItemIterator it( ListView4 ); |
439 | for ( ; it.current(); ++it ) { | 456 | for ( ; it.current(); ++it ) { |
440 | m_localDevice->signalStrength( ((BTConnectionItem*)it.current() )->connection().mac() ); | 457 | m_localDevice->signalStrength( ((BTConnectionItem*)it.current() )->connection().mac() ); |
441 | } | 458 | } |
442 | 459 | ||
443 | QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) ); | 460 | QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) ); |
444 | } | 461 | } |
445 | 462 | ||
446 | void BlueBase::addSignalStrength( const QString& mac, const QString& strength ) { | 463 | void BlueBase::addSignalStrength( const QString& mac, const QString& strength ) { |
447 | 464 | ||
448 | QListViewItemIterator it( ListView4 ); | 465 | QListViewItemIterator it( ListView4 ); |
449 | for ( ; it.current(); ++it ) { | 466 | for ( ; it.current(); ++it ) { |
450 | if( ((BTConnectionItem*)it.current())->connection().mac() == mac ) { | 467 | if( ((BTConnectionItem*)it.current())->connection().mac() == mac ) { |
451 | ((BTConnectionItem*)it.current() )->setSignalStrength( strength ); | 468 | ((BTConnectionItem*)it.current() )->setSignalStrength( strength ); |
452 | } | 469 | } |
453 | } | 470 | } |
454 | } | 471 | } |
455 | 472 | ||
456 | /** | 473 | /** |
457 | * Add the existing connections (pairs) to the connections tab. | 474 | * Add the existing connections (pairs) to the connections tab. |
458 | * This one triggers the search | 475 | * This one triggers the search |
459 | */ | 476 | */ |
460 | void BlueBase::addConnectedDevices() { | 477 | void BlueBase::addConnectedDevices() { |
461 | m_localDevice->searchConnections(); | 478 | m_localDevice->searchConnections(); |
462 | } | 479 | } |
463 | 480 | ||
464 | /** | 481 | /** |
465 | * This adds the found connections to the connection tab. | 482 | * This adds the found connections to the connection tab. |
466 | * @param connectionList the ValueList with all current connections | 483 | * @param connectionList the ValueList with all current connections |
467 | */ | 484 | */ |
468 | void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) { | 485 | void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) { |
469 | 486 | ||
470 | QValueList<OpieTooth::ConnectionState>::Iterator it; | 487 | QValueList<OpieTooth::ConnectionState>::Iterator it; |
471 | BTConnectionItem * connectionItem; | 488 | BTConnectionItem * connectionItem; |
472 | 489 | ||
473 | if ( !connectionList.isEmpty() ) { | 490 | if ( !connectionList.isEmpty() ) { |
474 | 491 | ||
475 | for (it = connectionList.begin(); it != connectionList.end(); ++it) { | 492 | for (it = connectionList.begin(); it != connectionList.end(); ++it) { |
476 | 493 | ||
477 | QListViewItemIterator it2( ListView4 ); | 494 | QListViewItemIterator it2( ListView4 ); |
478 | bool found = false; | 495 | bool found = false; |
479 | for ( ; it2.current(); ++it2 ) { | 496 | for ( ; it2.current(); ++it2 ) { |
480 | if( ( (BTConnectionItem*)it2.current())->connection().mac() == (*it).mac() ) { | 497 | if( ( (BTConnectionItem*)it2.current())->connection().mac() == (*it).mac() ) { |
481 | found = true; | 498 | found = true; |
482 | } | 499 | } |
483 | } | 500 | } |
484 | 501 | ||
485 | if ( found == false ) { | 502 | if ( found == false ) { |
486 | connectionItem = new BTConnectionItem( ListView4, (*it) ); | 503 | connectionItem = new BTConnectionItem( ListView4, (*it) ); |
487 | 504 | ||
488 | if( m_deviceList.find((*it).mac()).data() ) { | 505 | if( m_deviceList.find((*it).mac()).data() ) { |
489 | connectionItem->setName( m_deviceList.find( (*it).mac()).data()->name() ); | 506 | connectionItem->setName( m_deviceList.find( (*it).mac()).data()->name() ); |
490 | } | 507 | } |
491 | } | 508 | } |
492 | 509 | ||
493 | } | 510 | } |
494 | 511 | ||
495 | QListViewItemIterator it2( ListView4 ); | 512 | QListViewItemIterator it2( ListView4 ); |
496 | for ( ; it2.current(); ++it2 ) { | 513 | for ( ; it2.current(); ++it2 ) { |
497 | bool found = false; | 514 | bool found = false; |
498 | for (it = connectionList.begin(); it != connectionList.end(); ++it) { | 515 | for (it = connectionList.begin(); it != connectionList.end(); ++it) { |
499 | if( ( ((BTConnectionItem*)it2.current())->connection().mac() ) == (*it).mac() ) { | 516 | if( ( ((BTConnectionItem*)it2.current())->connection().mac() ) == (*it).mac() ) { |
500 | found = true; | 517 | found = true; |
501 | } | 518 | } |
502 | } | 519 | } |
503 | 520 | ||
504 | if ( !found ) { | 521 | if ( !found ) { |
505 | delete it2.current(); | 522 | delete it2.current(); |
506 | } | 523 | } |
507 | 524 | ||
508 | } | 525 | } |
509 | 526 | ||
510 | 527 | ||
511 | } else { | 528 | } else { |
512 | ListView4->clear(); | 529 | ListView4->clear(); |
513 | ConnectionState con; | 530 | ConnectionState con; |
514 | con.setMac( tr("No connections found") ); | 531 | con.setMac( tr("No connections found") ); |
515 | connectionItem = new BTConnectionItem( ListView4 , con ); | 532 | connectionItem = new BTConnectionItem( ListView4 , con ); |
516 | } | 533 | } |
517 | 534 | ||
518 | // recall connection search after some time | 535 | // recall connection search after some time |
519 | QTimer::singleShot( 15000, this, SLOT( addConnectedDevices() ) ); | 536 | QTimer::singleShot( 15000, this, SLOT( addConnectedDevices() ) ); |
520 | } | 537 | } |
521 | 538 | ||
522 | 539 | ||
523 | /** | 540 | /** |
524 | * Find out if a device can currently be reached | 541 | * Find out if a device can currently be reached |
525 | * @param device | 542 | * @param device |
526 | */ | 543 | */ |
527 | void BlueBase::deviceActive( const RemoteDevice &device ) { | 544 | void BlueBase::deviceActive( const RemoteDevice &device ) { |
528 | // search by mac, async, gets a signal back | 545 | // search by mac, async, gets a signal back |
529 | // We should have a BTDeviceItem there or where does it get added to the map -zecke | 546 | // We should have a BTDeviceItem there or where does it get added to the map -zecke |
530 | m_localDevice->isAvailable( device.mac() ); | 547 | m_localDevice->isAvailable( device.mac() ); |
531 | } | 548 | } |
532 | 549 | ||
533 | 550 | ||
534 | /** | 551 | /** |
535 | * The signal catcher. Set the avail. status on device. | 552 | * The signal catcher. Set the avail. status on device. |
536 | * @param device - the mac address | 553 | * @param device - the mac address |
537 | * @param connected - if it is avail. or not | 554 | * @param connected - if it is avail. or not |
538 | */ | 555 | */ |
539 | void BlueBase::deviceActive( const QString& device, bool connected ) { | 556 | void BlueBase::deviceActive( const QString& device, bool connected ) { |
540 | qDebug("deviceActive slot"); | 557 | qDebug("deviceActive slot"); |
541 | 558 | ||
542 | QMap<QString,BTDeviceItem*>::Iterator it; | 559 | QMap<QString,BTDeviceItem*>::Iterator it; |
543 | 560 | ||
544 | it = m_deviceList.find( device ); | 561 | it = m_deviceList.find( device ); |
545 | if( it == m_deviceList.end() ) | 562 | if( it == m_deviceList.end() ) |
546 | return; | 563 | return; |
547 | 564 | ||
548 | BTDeviceItem* deviceItem = it.data(); | 565 | BTDeviceItem* deviceItem = it.data(); |
549 | 566 | ||
550 | 567 | ||
551 | if ( connected ) { | 568 | if ( connected ) { |
552 | deviceItem->setPixmap( 1, m_onPix ); | 569 | deviceItem->setPixmap( 1, m_onPix ); |
553 | } else { | 570 | } else { |
554 | deviceItem->setPixmap( 1, m_offPix ); | 571 | deviceItem->setPixmap( 1, m_offPix ); |
555 | } | 572 | } |
556 | m_deviceList.remove( it ); | 573 | m_deviceList.remove( it ); |
557 | } | 574 | } |
558 | 575 | ||
559 | 576 | ||
560 | /** | 577 | /** |
561 | * Open the "scan for devices" dialog | 578 | * Open the "scan for devices" dialog |
562 | */ | 579 | */ |
563 | void BlueBase::startScan() { | 580 | void BlueBase::startScan() { |
564 | ScanDialog *scan = new ScanDialog( this, "ScanDialog", | 581 | ScanDialog *scan = new ScanDialog( this, "ScanDialog", |
565 | true, WDestructiveClose ); | 582 | true, WDestructiveClose ); |
566 | QObject::connect( scan, SIGNAL( selectedDevices( const QValueList<RemoteDevice>& ) ), | 583 | QObject::connect( scan, SIGNAL( selectedDevices( const QValueList<RemoteDevice>& ) ), |
567 | this, SLOT( addSearchedDevices( const QValueList<RemoteDevice>& ) ) ); | 584 | this, SLOT( addSearchedDevices( const QValueList<RemoteDevice>& ) ) ); |
568 | 585 | ||
569 | scan->showMaximized(); | 586 | scan->showMaximized(); |
570 | } | 587 | } |
571 | 588 | ||
572 | 589 | ||
573 | /** | 590 | /** |
574 | * Set the informations about the local device in information Tab | 591 | * Set the informations about the local device in information Tab |
575 | */ | 592 | */ |
576 | void BlueBase::setInfo() { | 593 | void BlueBase::setInfo() { |
577 | StatusLabel->setText( status() ); | 594 | StatusLabel->setText( status() ); |
578 | } | 595 | } |
579 | 596 | ||
580 | 597 | ||
581 | /** | 598 | /** |
582 | * Decontructor | 599 | * Decontructor |
583 | */ | 600 | */ |
584 | BlueBase::~BlueBase() { | 601 | BlueBase::~BlueBase() { |
585 | writeSavedDevices(); | 602 | writeSavedDevices(); |
586 | delete m_iconLoader; | 603 | delete m_iconLoader; |
587 | } | 604 | } |
588 | 605 | ||
589 | 606 | ||
590 | /** | 607 | /** |
591 | * find searches the ListView for a BTDeviceItem containig | 608 | * find searches the ListView for a BTDeviceItem containig |
592 | * the same Device if found return true else false | 609 | * the same Device if found return true else false |
593 | * @param dev RemoteDevice to find | 610 | * @param dev RemoteDevice to find |
594 | * @return returns true if found | 611 | * @return returns true if found |
595 | */ | 612 | */ |
596 | bool BlueBase::find( const RemoteDevice& rem ) { | 613 | bool BlueBase::find( const RemoteDevice& rem ) { |
597 | QListViewItemIterator it( ListView2 ); | 614 | QListViewItemIterator it( ListView2 ); |
598 | BTListItem* item; | 615 | BTListItem* item; |
599 | BTDeviceItem* device; | 616 | BTDeviceItem* device; |
600 | for (; it.current(); ++it ) { | 617 | for (; it.current(); ++it ) { |
601 | item = (BTListItem*) it.current(); | 618 | item = (BTListItem*) it.current(); |
602 | if ( item->typeId() != BTListItem::Device ) | 619 | if ( item->typeId() != BTListItem::Device ) |
603 | continue; | 620 | continue; |
604 | 621 | ||
605 | device = (BTDeviceItem*)item; | 622 | device = (BTDeviceItem*)item; |
606 | if ( rem.equals( device->remoteDevice() ) ) | 623 | if ( rem.equals( device->remoteDevice() ) ) |
607 | return true; | 624 | return true; |
608 | } | 625 | } |
609 | return false; // not found | 626 | return false; // not found |
610 | } | 627 | } |
diff --git a/noncore/net/opietooth/manager/bluebase.h b/noncore/net/opietooth/manager/bluebase.h index 743062c..a8ab3db 100644 --- a/noncore/net/opietooth/manager/bluebase.h +++ b/noncore/net/opietooth/manager/bluebase.h | |||
@@ -1,97 +1,101 @@ | |||
1 | 1 | ||
2 | #ifndef BLUEBASE_H | 2 | #ifndef BLUEBASE_H |
3 | #define BLUEBASE_H | 3 | #define BLUEBASE_H |
4 | 4 | ||
5 | #include <qvariant.h> | 5 | #include <qvariant.h> |
6 | #include <qwidget.h> | 6 | #include <qwidget.h> |
7 | #include <qscrollview.h> | 7 | #include <qscrollview.h> |
8 | #include <qsplitter.h> | 8 | #include <qsplitter.h> |
9 | #include <qlist.h> | 9 | #include <qlist.h> |
10 | #include <qpixmap.h> | 10 | #include <qpixmap.h> |
11 | 11 | ||
12 | #include "bluetoothbase.h" | 12 | #include "bluetoothbase.h" |
13 | 13 | ||
14 | #include "btserviceitem.h" | 14 | #include "btserviceitem.h" |
15 | #include "btdeviceitem.h" | 15 | #include "btdeviceitem.h" |
16 | 16 | ||
17 | #include "popuphelper.h" | 17 | #include "popuphelper.h" |
18 | 18 | ||
19 | #include "bticonloader.h" | 19 | #include "bticonloader.h" |
20 | 20 | ||
21 | #include <remotedevice.h> | 21 | #include <remotedevice.h> |
22 | #include <manager.h> | 22 | #include <manager.h> |
23 | 23 | ||
24 | class QVBox; | 24 | class QVBox; |
25 | class QHBoxLayout; | 25 | class QHBoxLayout; |
26 | class QGridLayout; | 26 | class QGridLayout; |
27 | class QFrame; | 27 | class QFrame; |
28 | class QLabel; | 28 | class QLabel; |
29 | class QPushButton; | 29 | class QPushButton; |
30 | class QTabWidget; | 30 | class QTabWidget; |
31 | class QCheckBox; | 31 | class QCheckBox; |
32 | class BTConnectionItem; | 32 | class BTConnectionItem; |
33 | 33 | ||
34 | 34 | ||
35 | namespace OpieTooth { | 35 | namespace OpieTooth { |
36 | 36 | ||
37 | class BlueBase : public BluetoothBase { | 37 | class BlueBase : public BluetoothBase { |
38 | Q_OBJECT | 38 | Q_OBJECT |
39 | 39 | ||
40 | public: | 40 | public: |
41 | BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); | 41 | BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); |
42 | ~BlueBase(); | 42 | ~BlueBase(); |
43 | |||
44 | static QString appName() { return QString::fromLatin1("bluetooth-manager"); } | ||
43 | 45 | ||
44 | protected: | 46 | protected: |
45 | 47 | ||
46 | 48 | ||
47 | private slots: | 49 | private slots: |
48 | void startScan(); | 50 | void startScan(); |
49 | 51 | ||
52 | |||
50 | private: | 53 | private: |
51 | bool find( const RemoteDevice& device ); | 54 | bool find( const RemoteDevice& device ); |
52 | void readConfig(); | 55 | void readConfig(); |
53 | void writeConfig(); | 56 | void writeConfig(); |
54 | void readSavedDevices(); | 57 | void readSavedDevices(); |
55 | void writeSavedDevices(); | 58 | void writeSavedDevices(); |
56 | void writeToHciConfig(); | 59 | void writeToHciConfig(); |
57 | QString status()const; | 60 | QString status()const; |
58 | void initGui(); | 61 | void initGui(); |
59 | void setInfo(); | 62 | void setInfo(); |
60 | 63 | ||
61 | PopupHelper m_popHelper; | 64 | PopupHelper m_popHelper; |
62 | Manager *m_localDevice; | 65 | Manager *m_localDevice; |
63 | QMap<QString,BTDeviceItem*> m_deviceList; | 66 | QMap<QString,BTDeviceItem*> m_deviceList; |
64 | 67 | ||
65 | void deviceActive( const RemoteDevice &device ); | 68 | void deviceActive( const RemoteDevice &device ); |
66 | 69 | ||
67 | QString m_deviceName; | 70 | QString m_deviceName; |
68 | QString m_defaultPasskey; | 71 | QString m_defaultPasskey; |
69 | bool m_useEncryption; | 72 | bool m_useEncryption; |
70 | bool m_enableAuthentification; | 73 | bool m_enableAuthentification; |
71 | bool m_enablePagescan; | 74 | bool m_enablePagescan; |
72 | bool m_enableInquiryscan; | 75 | bool m_enableInquiryscan; |
73 | 76 | ||
74 | QPixmap m_offPix; | 77 | QPixmap m_offPix; |
75 | QPixmap m_onPix; | 78 | QPixmap m_onPix; |
76 | QPixmap m_findPix; | 79 | QPixmap m_findPix; |
77 | 80 | ||
78 | BTIconLoader *m_iconLoader; | 81 | BTIconLoader *m_iconLoader; |
79 | 82 | ||
80 | private slots: | 83 | private slots: |
81 | void addSearchedDevices( const QValueList<RemoteDevice> &newDevices ); | 84 | void addSearchedDevices( const QValueList<RemoteDevice> &newDevices ); |
82 | void addServicesToDevice( BTDeviceItem *item ); | 85 | void addServicesToDevice( BTDeviceItem *item ); |
83 | void addServicesToDevice( const QString& device, Services::ValueList ); | 86 | void addServicesToDevice( const QString& device, Services::ValueList ); |
84 | void addConnectedDevices(); | 87 | void addConnectedDevices(); |
85 | void addConnectedDevices( ConnectionState::ValueList ); | 88 | void addConnectedDevices( ConnectionState::ValueList ); |
86 | void startServiceActionClicked( QListViewItem *item ); | 89 | void startServiceActionClicked( QListViewItem *item ); |
87 | void startServiceActionHold( QListViewItem *, const QPoint &, int ); | 90 | void startServiceActionHold( QListViewItem *, const QPoint &, int ); |
88 | void deviceActive( const QString& mac, bool connected ); | 91 | void deviceActive( const QString& mac, bool connected ); |
89 | void applyConfigChanges(); | 92 | void applyConfigChanges(); |
90 | void addSignalStrength(); | 93 | void addSignalStrength(); |
91 | void addSignalStrength( const QString& mac, const QString& strengh ); | 94 | void addSignalStrength( const QString& mac, const QString& strengh ); |
95 | void rfcommDialog(); | ||
92 | 96 | ||
93 | }; | 97 | }; |
94 | 98 | ||
95 | } | 99 | } |
96 | 100 | ||
97 | #endif | 101 | #endif |
diff --git a/noncore/net/opietooth/manager/bluetoothbase.ui b/noncore/net/opietooth/manager/bluetoothbase.ui index 9ff970f..bb906a1 100644 --- a/noncore/net/opietooth/manager/bluetoothbase.ui +++ b/noncore/net/opietooth/manager/bluetoothbase.ui | |||
@@ -1,395 +1,443 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>BluetoothBase</class> | 2 | <class>BluetoothBase</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QWidget</class> | 4 | <class>QWidget</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>BluetoothBase</cstring> | 7 | <cstring>BluetoothBase</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>224</width> | 14 | <width>258</width> |
15 | <height>320</height> | 15 | <height>407</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>caption</name> | 19 | <name>caption</name> |
20 | <string>Form1</string> | 20 | <string>Form1</string> |
21 | </property> | 21 | </property> |
22 | <property> | 22 | <property> |
23 | <name>layoutMargin</name> | 23 | <name>layoutMargin</name> |
24 | </property> | 24 | </property> |
25 | <property> | 25 | <property> |
26 | <name>layoutSpacing</name> | 26 | <name>layoutSpacing</name> |
27 | </property> | 27 | </property> |
28 | <vbox> | 28 | <widget> |
29 | <class>QTabWidget</class> | ||
29 | <property stdset="1"> | 30 | <property stdset="1"> |
30 | <name>margin</name> | 31 | <name>name</name> |
31 | <number>0</number> | 32 | <cstring>Status</cstring> |
32 | </property> | 33 | </property> |
33 | <property stdset="1"> | 34 | <property stdset="1"> |
34 | <name>spacing</name> | 35 | <name>geometry</name> |
35 | <number>0</number> | 36 | <rect> |
37 | <x>1</x> | ||
38 | <y>1</y> | ||
39 | <width>245</width> | ||
40 | <height>289</height> | ||
41 | </rect> | ||
42 | </property> | ||
43 | <property> | ||
44 | <name>layoutMargin</name> | ||
45 | </property> | ||
46 | <property> | ||
47 | <name>layoutSpacing</name> | ||
36 | </property> | 48 | </property> |
37 | <widget> | 49 | <widget> |
38 | <class>QTabWidget</class> | 50 | <class>QWidget</class> |
39 | <property stdset="1"> | 51 | <property stdset="1"> |
40 | <name>name</name> | 52 | <name>name</name> |
41 | <cstring>Status</cstring> | 53 | <cstring>tab</cstring> |
42 | </property> | ||
43 | <property> | ||
44 | <name>layoutMargin</name> | ||
45 | </property> | ||
46 | <property> | ||
47 | <name>layoutSpacing</name> | ||
48 | </property> | 54 | </property> |
49 | <widget> | 55 | <attribute> |
50 | <class>QWidget</class> | 56 | <name>title</name> |
57 | <string>Devices</string> | ||
58 | </attribute> | ||
59 | <vbox> | ||
51 | <property stdset="1"> | 60 | <property stdset="1"> |
52 | <name>name</name> | 61 | <name>margin</name> |
53 | <cstring>tab</cstring> | 62 | <number>2</number> |
54 | </property> | 63 | </property> |
55 | <attribute> | 64 | <property stdset="1"> |
56 | <name>title</name> | 65 | <name>spacing</name> |
57 | <string>Devices</string> | 66 | <number>2</number> |
58 | </attribute> | 67 | </property> |
59 | <vbox> | 68 | <widget> |
69 | <class>QListView</class> | ||
70 | <column> | ||
71 | <property> | ||
72 | <name>text</name> | ||
73 | <string>Device Name</string> | ||
74 | </property> | ||
75 | <property> | ||
76 | <name>clickable</name> | ||
77 | <bool>true</bool> | ||
78 | </property> | ||
79 | <property> | ||
80 | <name>resizeable</name> | ||
81 | <bool>true</bool> | ||
82 | </property> | ||
83 | </column> | ||
84 | <column> | ||
85 | <property> | ||
86 | <name>text</name> | ||
87 | <string>Online</string> | ||
88 | </property> | ||
89 | <property> | ||
90 | <name>clickable</name> | ||
91 | <bool>true</bool> | ||
92 | </property> | ||
93 | <property> | ||
94 | <name>resizeable</name> | ||
95 | <bool>true</bool> | ||
96 | </property> | ||
97 | </column> | ||
60 | <property stdset="1"> | 98 | <property stdset="1"> |
61 | <name>margin</name> | 99 | <name>name</name> |
62 | <number>2</number> | 100 | <cstring>ListView2</cstring> |
63 | </property> | 101 | </property> |
102 | </widget> | ||
103 | <widget> | ||
104 | <class>QPushButton</class> | ||
64 | <property stdset="1"> | 105 | <property stdset="1"> |
65 | <name>spacing</name> | 106 | <name>name</name> |
66 | <number>2</number> | 107 | <cstring>PushButton2</cstring> |
67 | </property> | 108 | </property> |
68 | <widget> | 109 | <property stdset="1"> |
69 | <class>QListView</class> | 110 | <name>sizePolicy</name> |
70 | <column> | 111 | <sizepolicy> |
71 | <property> | 112 | <hsizetype>0</hsizetype> |
72 | <name>text</name> | 113 | <vsizetype>0</vsizetype> |
73 | <string>Device Name</string> | 114 | </sizepolicy> |
74 | </property> | 115 | </property> |
75 | <property> | 116 | <property stdset="1"> |
76 | <name>clickable</name> | 117 | <name>text</name> |
77 | <bool>true</bool> | 118 | <string>Scan for Devices</string> |
78 | </property> | 119 | </property> |
79 | <property> | 120 | </widget> |
80 | <name>resizeable</name> | 121 | </vbox> |
81 | <bool>true</bool> | 122 | </widget> |
82 | </property> | 123 | <widget> |
83 | </column> | 124 | <class>QWidget</class> |
84 | <column> | 125 | <property stdset="1"> |
85 | <property> | 126 | <name>name</name> |
86 | <name>text</name> | 127 | <cstring>tab</cstring> |
87 | <string>Online</string> | 128 | </property> |
88 | </property> | 129 | <attribute> |
89 | <property> | 130 | <name>title</name> |
90 | <name>clickable</name> | 131 | <string>Connections</string> |
91 | <bool>true</bool> | 132 | </attribute> |
92 | </property> | 133 | <vbox> |
93 | <property> | 134 | <property stdset="1"> |
94 | <name>resizeable</name> | 135 | <name>margin</name> |
95 | <bool>true</bool> | 136 | <number>2</number> |
96 | </property> | 137 | </property> |
97 | </column> | 138 | <property stdset="1"> |
98 | <property stdset="1"> | 139 | <name>spacing</name> |
99 | <name>name</name> | 140 | <number>2</number> |
100 | <cstring>ListView2</cstring> | 141 | </property> |
142 | <widget> | ||
143 | <class>QListView</class> | ||
144 | <column> | ||
145 | <property> | ||
146 | <name>text</name> | ||
147 | <string>Device Name</string> | ||
101 | </property> | 148 | </property> |
102 | </widget> | 149 | <property> |
103 | <widget> | 150 | <name>clickable</name> |
104 | <class>QPushButton</class> | 151 | <bool>true</bool> |
105 | <property stdset="1"> | ||
106 | <name>name</name> | ||
107 | <cstring>PushButton2</cstring> | ||
108 | </property> | 152 | </property> |
109 | <property stdset="1"> | 153 | <property> |
110 | <name>sizePolicy</name> | 154 | <name>resizeable</name> |
111 | <sizepolicy> | 155 | <bool>true</bool> |
112 | <hsizetype>0</hsizetype> | ||
113 | <vsizetype>0</vsizetype> | ||
114 | </sizepolicy> | ||
115 | </property> | 156 | </property> |
116 | <property stdset="1"> | 157 | </column> |
158 | <column> | ||
159 | <property> | ||
117 | <name>text</name> | 160 | <name>text</name> |
118 | <string>Scan for Devices</string> | 161 | <string>Connection type</string> |
119 | </property> | 162 | </property> |
120 | </widget> | 163 | <property> |
121 | </vbox> | 164 | <name>clickable</name> |
122 | </widget> | 165 | <bool>true</bool> |
123 | <widget> | 166 | </property> |
124 | <class>QWidget</class> | 167 | <property> |
125 | <property stdset="1"> | 168 | <name>resizeable</name> |
126 | <name>name</name> | 169 | <bool>true</bool> |
127 | <cstring>tab</cstring> | 170 | </property> |
128 | </property> | 171 | </column> |
129 | <attribute> | 172 | <column> |
130 | <name>title</name> | 173 | <property> |
131 | <string>Connections</string> | 174 | <name>text</name> |
132 | </attribute> | 175 | <string>Signal</string> |
133 | <vbox> | 176 | </property> |
134 | <property stdset="1"> | 177 | <property> |
135 | <name>margin</name> | 178 | <name>clickable</name> |
136 | <number>2</number> | 179 | <bool>true</bool> |
137 | </property> | 180 | </property> |
181 | <property> | ||
182 | <name>resizeable</name> | ||
183 | <bool>true</bool> | ||
184 | </property> | ||
185 | </column> | ||
138 | <property stdset="1"> | 186 | <property stdset="1"> |
139 | <name>spacing</name> | 187 | <name>name</name> |
140 | <number>2</number> | 188 | <cstring>ListView4</cstring> |
141 | </property> | 189 | </property> |
142 | <widget> | 190 | </widget> |
143 | <class>QListView</class> | 191 | </vbox> |
144 | <column> | 192 | </widget> |
145 | <property> | 193 | <widget> |
146 | <name>text</name> | 194 | <class>QWidget</class> |
147 | <string>Device Name</string> | 195 | <property stdset="1"> |
148 | </property> | 196 | <name>name</name> |
149 | <property> | 197 | <cstring>tab</cstring> |
150 | <name>clickable</name> | 198 | </property> |
151 | <bool>true</bool> | 199 | <attribute> |
152 | </property> | 200 | <name>title</name> |
153 | <property> | 201 | <string>Config</string> |
154 | <name>resizeable</name> | 202 | </attribute> |
155 | <bool>true</bool> | 203 | <vbox> |
156 | </property> | 204 | <property stdset="1"> |
157 | </column> | 205 | <name>margin</name> |
158 | <column> | 206 | <number>11</number> |
159 | <property> | 207 | </property> |
160 | <name>text</name> | ||
161 | <string>Connection type</string> | ||
162 | </property> | ||
163 | <property> | ||
164 | <name>clickable</name> | ||
165 | <bool>true</bool> | ||
166 | </property> | ||
167 | <property> | ||
168 | <name>resizeable</name> | ||
169 | <bool>true</bool> | ||
170 | </property> | ||
171 | </column> | ||
172 | <column> | ||
173 | <property> | ||
174 | <name>text</name> | ||
175 | <string>Signal</string> | ||
176 | </property> | ||
177 | <property> | ||
178 | <name>clickable</name> | ||
179 | <bool>true</bool> | ||
180 | </property> | ||
181 | <property> | ||
182 | <name>resizeable</name> | ||
183 | <bool>true</bool> | ||
184 | </property> | ||
185 | </column> | ||
186 | <property stdset="1"> | ||
187 | <name>name</name> | ||
188 | <cstring>ListView4</cstring> | ||
189 | </property> | ||
190 | </widget> | ||
191 | </vbox> | ||
192 | </widget> | ||
193 | <widget> | ||
194 | <class>QWidget</class> | ||
195 | <property stdset="1"> | 208 | <property stdset="1"> |
196 | <name>name</name> | 209 | <name>spacing</name> |
197 | <cstring>tab</cstring> | 210 | <number>6</number> |
198 | </property> | 211 | </property> |
199 | <attribute> | 212 | <widget> |
200 | <name>title</name> | 213 | <class>QGroupBox</class> |
201 | <string>Config</string> | ||
202 | </attribute> | ||
203 | <vbox> | ||
204 | <property stdset="1"> | 214 | <property stdset="1"> |
205 | <name>margin</name> | 215 | <name>name</name> |
206 | <number>2</number> | 216 | <cstring>GroupBox1</cstring> |
207 | </property> | 217 | </property> |
208 | <property stdset="1"> | 218 | <property stdset="1"> |
209 | <name>spacing</name> | 219 | <name>title</name> |
210 | <number>2</number> | 220 | <string>Bluetooh Basic Config</string> |
211 | </property> | 221 | </property> |
212 | <widget> | 222 | <vbox> |
213 | <class>QLayoutWidget</class> | ||
214 | <property stdset="1"> | 223 | <property stdset="1"> |
215 | <name>name</name> | 224 | <name>margin</name> |
216 | <cstring>Layout2</cstring> | 225 | <number>11</number> |
217 | </property> | 226 | </property> |
218 | <hbox> | ||
219 | <property stdset="1"> | ||
220 | <name>margin</name> | ||
221 | <number>0</number> | ||
222 | </property> | ||
223 | <property stdset="1"> | ||
224 | <name>spacing</name> | ||
225 | <number>6</number> | ||
226 | </property> | ||
227 | <widget> | ||
228 | <class>QLabel</class> | ||
229 | <property stdset="1"> | ||
230 | <name>name</name> | ||
231 | <cstring>deviceNameLabel</cstring> | ||
232 | </property> | ||
233 | <property stdset="1"> | ||
234 | <name>text</name> | ||
235 | <string>Device Name</string> | ||
236 | </property> | ||
237 | </widget> | ||
238 | <widget> | ||
239 | <class>QLineEdit</class> | ||
240 | <property stdset="1"> | ||
241 | <name>name</name> | ||
242 | <cstring>deviceNameLine</cstring> | ||
243 | </property> | ||
244 | </widget> | ||
245 | </hbox> | ||
246 | </widget> | ||
247 | <widget> | ||
248 | <class>QLayoutWidget</class> | ||
249 | <property stdset="1"> | 227 | <property stdset="1"> |
250 | <name>name</name> | 228 | <name>spacing</name> |
251 | <cstring>Layout3</cstring> | 229 | <number>6</number> |
252 | </property> | 230 | </property> |
253 | <hbox> | 231 | <widget> |
254 | <property stdset="1"> | 232 | <class>QLayoutWidget</class> |
255 | <name>margin</name> | ||
256 | <number>0</number> | ||
257 | </property> | ||
258 | <property stdset="1"> | 233 | <property stdset="1"> |
259 | <name>spacing</name> | 234 | <name>name</name> |
260 | <number>6</number> | 235 | <cstring>Layout7</cstring> |
261 | </property> | 236 | </property> |
262 | <widget> | 237 | <hbox> |
263 | <class>QLabel</class> | ||
264 | <property stdset="1"> | 238 | <property stdset="1"> |
265 | <name>name</name> | 239 | <name>margin</name> |
266 | <cstring>passkeyLabel</cstring> | 240 | <number>0</number> |
267 | </property> | 241 | </property> |
268 | <property stdset="1"> | 242 | <property stdset="1"> |
269 | <name>text</name> | 243 | <name>spacing</name> |
270 | <string>Default Passkey</string> | 244 | <number>6</number> |
271 | </property> | 245 | </property> |
272 | </widget> | 246 | <widget> |
273 | <widget> | 247 | <class>QLayoutWidget</class> |
274 | <class>QLineEdit</class> | 248 | <property stdset="1"> |
249 | <name>name</name> | ||
250 | <cstring>Layout6</cstring> | ||
251 | </property> | ||
252 | <vbox> | ||
253 | <property stdset="1"> | ||
254 | <name>margin</name> | ||
255 | <number>0</number> | ||
256 | </property> | ||
257 | <property stdset="1"> | ||
258 | <name>spacing</name> | ||
259 | <number>6</number> | ||
260 | </property> | ||
261 | <widget> | ||
262 | <class>QLabel</class> | ||
263 | <property stdset="1"> | ||
264 | <name>name</name> | ||
265 | <cstring>deviceNameLabel</cstring> | ||
266 | </property> | ||
267 | <property stdset="1"> | ||
268 | <name>text</name> | ||
269 | <string>Device Name</string> | ||
270 | </property> | ||
271 | </widget> | ||
272 | <widget> | ||
273 | <class>QLabel</class> | ||
274 | <property stdset="1"> | ||
275 | <name>name</name> | ||
276 | <cstring>passkeyLabel</cstring> | ||
277 | </property> | ||
278 | <property stdset="1"> | ||
279 | <name>text</name> | ||
280 | <string>Default Passkey</string> | ||
281 | </property> | ||
282 | </widget> | ||
283 | </vbox> | ||
284 | </widget> | ||
285 | <widget> | ||
286 | <class>QLayoutWidget</class> | ||
287 | <property stdset="1"> | ||
288 | <name>name</name> | ||
289 | <cstring>Layout5</cstring> | ||
290 | </property> | ||
291 | <vbox> | ||
292 | <property stdset="1"> | ||
293 | <name>margin</name> | ||
294 | <number>0</number> | ||
295 | </property> | ||
296 | <property stdset="1"> | ||
297 | <name>spacing</name> | ||
298 | <number>6</number> | ||
299 | </property> | ||
300 | <widget> | ||
301 | <class>QLineEdit</class> | ||
302 | <property stdset="1"> | ||
303 | <name>name</name> | ||
304 | <cstring>deviceNameLine</cstring> | ||
305 | </property> | ||
306 | </widget> | ||
307 | <widget> | ||
308 | <class>QLineEdit</class> | ||
309 | <property stdset="1"> | ||
310 | <name>name</name> | ||
311 | <cstring>passkeyLine</cstring> | ||
312 | </property> | ||
313 | <property stdset="1"> | ||
314 | <name>echoMode</name> | ||
315 | <enum>Password</enum> | ||
316 | </property> | ||
317 | </widget> | ||
318 | </vbox> | ||
319 | </widget> | ||
320 | </hbox> | ||
321 | </widget> | ||
322 | <widget> | ||
323 | <class>QLayoutWidget</class> | ||
324 | <property stdset="1"> | ||
325 | <name>name</name> | ||
326 | <cstring>Layout5</cstring> | ||
327 | </property> | ||
328 | <vbox> | ||
275 | <property stdset="1"> | 329 | <property stdset="1"> |
276 | <name>name</name> | 330 | <name>margin</name> |
277 | <cstring>passkeyLine</cstring> | 331 | <number>0</number> |
278 | </property> | 332 | </property> |
279 | <property stdset="1"> | 333 | <property stdset="1"> |
280 | <name>echoMode</name> | 334 | <name>spacing</name> |
281 | <enum>Password</enum> | 335 | <number>6</number> |
282 | </property> | 336 | </property> |
283 | </widget> | 337 | <widget> |
284 | </hbox> | 338 | <class>QCheckBox</class> |
285 | </widget> | 339 | <property stdset="1"> |
286 | <widget> | 340 | <name>name</name> |
287 | <class>QLayoutWidget</class> | 341 | <cstring>authCheckBox</cstring> |
288 | <property stdset="1"> | 342 | </property> |
289 | <name>name</name> | 343 | <property stdset="1"> |
290 | <cstring>Layout5</cstring> | 344 | <name>text</name> |
291 | </property> | 345 | <string>enable authentification</string> |
292 | <vbox> | 346 | </property> |
347 | </widget> | ||
348 | <widget> | ||
349 | <class>QCheckBox</class> | ||
350 | <property stdset="1"> | ||
351 | <name>name</name> | ||
352 | <cstring>cryptCheckBox</cstring> | ||
353 | </property> | ||
354 | <property stdset="1"> | ||
355 | <name>text</name> | ||
356 | <string>enable encryption</string> | ||
357 | </property> | ||
358 | </widget> | ||
359 | <widget> | ||
360 | <class>QCheckBox</class> | ||
361 | <property stdset="1"> | ||
362 | <name>name</name> | ||
363 | <cstring>pagescanCheckBox</cstring> | ||
364 | </property> | ||
365 | <property stdset="1"> | ||
366 | <name>text</name> | ||
367 | <string>Enable Page scan</string> | ||
368 | </property> | ||
369 | </widget> | ||
370 | <widget> | ||
371 | <class>QCheckBox</class> | ||
372 | <property stdset="1"> | ||
373 | <name>name</name> | ||
374 | <cstring>inquiryscanCheckBox</cstring> | ||
375 | </property> | ||
376 | <property stdset="1"> | ||
377 | <name>text</name> | ||
378 | <string>Enable Inquiry scan</string> | ||
379 | </property> | ||
380 | </widget> | ||
381 | </vbox> | ||
382 | </widget> | ||
383 | <widget> | ||
384 | <class>QPushButton</class> | ||
293 | <property stdset="1"> | 385 | <property stdset="1"> |
294 | <name>margin</name> | 386 | <name>name</name> |
295 | <number>0</number> | 387 | <cstring>configApplyButton</cstring> |
296 | </property> | 388 | </property> |
297 | <property stdset="1"> | 389 | <property stdset="1"> |
298 | <name>spacing</name> | 390 | <name>text</name> |
299 | <number>6</number> | 391 | <string>Apply</string> |
300 | </property> | 392 | </property> |
301 | <widget> | 393 | </widget> |
302 | <class>QCheckBox</class> | 394 | </vbox> |
303 | <property stdset="1"> | 395 | </widget> |
304 | <name>name</name> | 396 | <widget> |
305 | <cstring>authCheckBox</cstring> | 397 | <class>QPushButton</class> |
306 | </property> | 398 | <property stdset="1"> |
307 | <property stdset="1"> | 399 | <name>name</name> |
308 | <name>text</name> | 400 | <cstring>rfcommBindButton</cstring> |
309 | <string>enable authentification</string> | 401 | </property> |
310 | </property> | 402 | <property stdset="1"> |
311 | </widget> | 403 | <name>text</name> |
312 | <widget> | 404 | <string>Rfcomm Bind Table</string> |
313 | <class>QCheckBox</class> | 405 | </property> |
314 | <property stdset="1"> | 406 | </widget> |
315 | <name>name</name> | 407 | </vbox> |
316 | <cstring>cryptCheckBox</cstring> | 408 | </widget> |
317 | </property> | 409 | <widget> |
318 | <property stdset="1"> | 410 | <class>QWidget</class> |
319 | <name>text</name> | 411 | <property stdset="1"> |
320 | <string>enable encryption</string> | 412 | <name>name</name> |
321 | </property> | 413 | <cstring>tab</cstring> |
322 | </widget> | 414 | </property> |
323 | <widget> | 415 | <attribute> |
324 | <class>QCheckBox</class> | 416 | <name>title</name> |
325 | <property stdset="1"> | 417 | <string>Status</string> |
326 | <name>name</name> | 418 | </attribute> |
327 | <cstring>pagescanCheckBox</cstring> | 419 | <vbox> |
328 | </property> | ||
329 | <property stdset="1"> | ||
330 | <name>text</name> | ||
331 | <string>Enable Page scan</string> | ||
332 | </property> | ||
333 | </widget> | ||
334 | <widget> | ||
335 | <class>QCheckBox</class> | ||
336 | <property stdset="1"> | ||
337 | <name>name</name> | ||
338 | <cstring>inquiryscanCheckBox</cstring> | ||
339 | </property> | ||
340 | <property stdset="1"> | ||
341 | <name>text</name> | ||
342 | <string>Enable Inquiry scan</string> | ||
343 | </property> | ||
344 | </widget> | ||
345 | </vbox> | ||
346 | </widget> | ||
347 | <widget> | ||
348 | <class>QPushButton</class> | ||
349 | <property stdset="1"> | ||
350 | <name>name</name> | ||
351 | <cstring>configApplyButton</cstring> | ||
352 | </property> | ||
353 | <property stdset="1"> | ||
354 | <name>text</name> | ||
355 | <string>Apply</string> | ||
356 | </property> | ||
357 | </widget> | ||
358 | </vbox> | ||
359 | </widget> | ||
360 | <widget> | ||
361 | <class>QWidget</class> | ||
362 | <property stdset="1"> | 420 | <property stdset="1"> |
363 | <name>name</name> | 421 | <name>margin</name> |
364 | <cstring>tab</cstring> | 422 | <number>2</number> |
365 | </property> | 423 | </property> |
366 | <attribute> | 424 | <property stdset="1"> |
367 | <name>title</name> | 425 | <name>spacing</name> |
368 | <string>Status</string> | 426 | <number>2</number> |
369 | </attribute> | 427 | </property> |
370 | <vbox> | 428 | <widget> |
429 | <class>QLabel</class> | ||
371 | <property stdset="1"> | 430 | <property stdset="1"> |
372 | <name>margin</name> | 431 | <name>name</name> |
373 | <number>2</number> | 432 | <cstring>StatusLabel</cstring> |
374 | </property> | 433 | </property> |
375 | <property stdset="1"> | 434 | <property stdset="1"> |
376 | <name>spacing</name> | 435 | <name>text</name> |
377 | <number>2</number> | 436 | <string>Status Label</string> |
378 | </property> | 437 | </property> |
379 | <widget> | 438 | </widget> |
380 | <class>QLabel</class> | 439 | </vbox> |
381 | <property stdset="1"> | ||
382 | <name>name</name> | ||
383 | <cstring>StatusLabel</cstring> | ||
384 | </property> | ||
385 | <property stdset="1"> | ||
386 | <name>text</name> | ||
387 | <string>Status Label</string> | ||
388 | </property> | ||
389 | </widget> | ||
390 | </vbox> | ||
391 | </widget> | ||
392 | </widget> | 440 | </widget> |
393 | </vbox> | 441 | </widget> |
394 | </widget> | 442 | </widget> |
395 | </UI> | 443 | </UI> |
diff --git a/noncore/net/opietooth/manager/main.cpp b/noncore/net/opietooth/manager/main.cpp index a86e36d..82aeebd 100644 --- a/noncore/net/opietooth/manager/main.cpp +++ b/noncore/net/opietooth/manager/main.cpp | |||
@@ -1,38 +1,25 @@ | |||
1 | /* | 1 | /* |
2 | * main.cpp | 2 | * main.cpp |
3 | * | 3 | * |
4 | * --------------------- | 4 | * --------------------- |
5 | * | 5 | * |
6 | * begin : Sun 10 17:20:00 CEST 2002 | 6 | * begin : Sun 10 17:20:00 CEST 2002 |
7 | * copyright : (c) 2002 by Maximilian Reiß | 7 | * copyright : (c) 2002 by Maximilian Reiß |
8 | * email : max.reiss@gmx.de | 8 | * email : max.reiss@gmx.de |
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 | 19 | ||
20 | #include "bluebase.h" | 20 | #include "bluebase.h" |
21 | #include <qpe/qpeapplication.h> | 21 | #include <qpe/qpeapplication.h> |
22 | #include <opie/oapplicationfactory.h> | ||
22 | 23 | ||
23 | 24 | OPIE_EXPORT_APP( OApplicationFactory<OpieTooth::BlueBase> ) | |
24 | QPEApplication *BluetoothApp; | ||
25 | |||
26 | int main( int argc, char ** argv ) { | ||
27 | QPEApplication a(argc, argv); | ||
28 | BluetoothApp=&a; | ||
29 | |||
30 | OpieTooth::BlueBase t; | ||
31 | |||
32 | // t.setCaption( OpieTooth::BlueBase::tr("Bluetooth Manager") ); | ||
33 | a.showMainWidget(&t); | ||
34 | |||
35 | return a.exec(); | ||
36 | } | ||
37 | |||
38 | 25 | ||
diff --git a/noncore/net/opietooth/manager/manager.pro b/noncore/net/opietooth/manager/manager.pro index 9841740..6ff4ebb 100644 --- a/noncore/net/opietooth/manager/manager.pro +++ b/noncore/net/opietooth/manager/manager.pro | |||
@@ -1,50 +1,50 @@ | |||
1 | TEMPLATE = app | 1 | CONFIG = qt warn_on release quick-app |
2 | CONFIG = qt warn_on debug | ||
3 | #CONFIG = qt warn_on release | ||
4 | HEADERS = btconnectionitem.h btdeviceitem.h \ | 2 | HEADERS = btconnectionitem.h btdeviceitem.h \ |
5 | btserviceitem.h stdpopups.h \ | 3 | btserviceitem.h stdpopups.h \ |
6 | popuphelper.h bluebase.h \ | 4 | popuphelper.h bluebase.h \ |
7 | scandialog.h btlistitem.h \ | 5 | scandialog.h btlistitem.h \ |
8 | hciconfwrapper.h bticonloader.h \ | 6 | hciconfwrapper.h bticonloader.h \ |
9 | pppdialog.h obexdialog.h \ | 7 | pppdialog.h obexdialog.h \ |
8 | rfcommassigndialogimpl.h rfcommassigndialogitem.h \ | ||
10 | devicehandler.h rfcpopup.h obexpopup.h \ | 9 | devicehandler.h rfcpopup.h obexpopup.h \ |
11 | rfcommhelper.h panpopup.h dunpopup.h | 10 | rfcommhelper.h panpopup.h dunpopup.h rfcommconfhandler.h |
12 | 11 | ||
13 | SOURCES = btconnectionitem.cpp btdeviceitem.cpp \ | 12 | SOURCES = btconnectionitem.cpp btdeviceitem.cpp \ |
14 | btserviceitem.cpp stdpopups.cpp \ | 13 | btserviceitem.cpp stdpopups.cpp \ |
15 | popuphelper.cpp main.cpp \ | 14 | popuphelper.cpp main.cpp \ |
16 | bluebase.cpp scandialog.cpp \ | 15 | bluebase.cpp scandialog.cpp \ |
17 | btlistitem.cpp hciconfwrapper.cpp \ | 16 | btlistitem.cpp hciconfwrapper.cpp \ |
18 | bticonloader.cpp pppdialog.cpp \ | 17 | bticonloader.cpp pppdialog.cpp \ |
18 | rfcommassigndialogimpl.cpp rfcommassigndialogitem.cpp \ | ||
19 | obexdialog.cpp devicehandler.cpp \ | 19 | obexdialog.cpp devicehandler.cpp \ |
20 | rfcpopup.cpp obexpopup.cpp \ | 20 | rfcpopup.cpp obexpopup.cpp \ |
21 | rfcommhelper.cpp panpopup.cpp dunpopup.cpp | 21 | rfcommhelper.cpp panpopup.cpp dunpopup.cpp rfcommconfhandler.cpp |
22 | INCLUDEPATH += $(OPIEDIR)/include | 22 | INCLUDEPATH += $(OPIEDIR)/include |
23 | INCLUDEPATH += $(OPIEDIR)/noncore/net/opietooth/lib | 23 | INCLUDEPATH += $(OPIEDIR)/noncore/net/opietooth/lib |
24 | DEPENDPATH += $(OPIEDIR)/include | 24 | DEPENDPATH += $(OPIEDIR)/include |
25 | LIBS += -lqpe -lopietooth -lopie | 25 | LIBS += -lqpe -lopietooth -lopie |
26 | INTERFACES = bluetoothbase.ui devicedialog.ui | 26 | INTERFACES = bluetoothbase.ui devicedialog.ui rfcommassigndialogbase.ui rfcommdialogitembase.ui |
27 | DESTDIR = $(OPIEDIR)/bin | 27 | |
28 | TARGET = bluetooth-manager | 28 | TARGET = bluetooth-manager |
29 | 29 | ||
30 | TRANSLATIONS = ../../../../i18n/de/bluetooth-manager.ts \ | 30 | TRANSLATIONS = ../../../../i18n/de/bluetooth-manager.ts \ |
31 | ../../../../i18n/nl/bluetooth-manager.ts \ | 31 | ../../../../i18n/nl/bluetooth-manager.ts \ |
32 | ../../../../i18n/da/bluetooth-manager.ts \ | 32 | ../../../../i18n/da/bluetooth-manager.ts \ |
33 | ../../../../i18n/xx/bluetooth-manager.ts \ | 33 | ../../../../i18n/xx/bluetooth-manager.ts \ |
34 | ../../../../i18n/en/bluetooth-manager.ts \ | 34 | ../../../../i18n/en/bluetooth-manager.ts \ |
35 | ../../../../i18n/es/bluetooth-manager.ts \ | 35 | ../../../../i18n/es/bluetooth-manager.ts \ |
36 | ../../../../i18n/fr/bluetooth-manager.ts \ | 36 | ../../../../i18n/fr/bluetooth-manager.ts \ |
37 | ../../../../i18n/hu/bluetooth-manager.ts \ | 37 | ../../../../i18n/hu/bluetooth-manager.ts \ |
38 | ../../../../i18n/ja/bluetooth-manager.ts \ | 38 | ../../../../i18n/ja/bluetooth-manager.ts \ |
39 | ../../../../i18n/ko/bluetooth-manager.ts \ | 39 | ../../../../i18n/ko/bluetooth-manager.ts \ |
40 | ../../../../i18n/no/bluetooth-manager.ts \ | 40 | ../../../../i18n/no/bluetooth-manager.ts \ |
41 | ../../../../i18n/pl/bluetooth-manager.ts \ | 41 | ../../../../i18n/pl/bluetooth-manager.ts \ |
42 | ../../../../i18n/pt/bluetooth-manager.ts \ | 42 | ../../../../i18n/pt/bluetooth-manager.ts \ |
43 | ../../../../i18n/pt_BR/bluetooth-manager.ts \ | 43 | ../../../../i18n/pt_BR/bluetooth-manager.ts \ |
44 | ../../../../i18n/sl/bluetooth-manager.ts \ | 44 | ../../../../i18n/sl/bluetooth-manager.ts \ |
45 | ../../../../i18n/zh_CN/bluetooth-manager.ts \ | 45 | ../../../../i18n/zh_CN/bluetooth-manager.ts \ |
46 | ../../../../i18n/zh_TW/bluetooth-manager.ts | 46 | ../../../../i18n/zh_TW/bluetooth-manager.ts |
47 | 47 | ||
48 | 48 | ||
49 | 49 | ||
50 | include ( $(OPIEDIR)/include.pro ) | 50 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/net/opietooth/manager/rfcommassigndialogbase.ui b/noncore/net/opietooth/manager/rfcommassigndialogbase.ui new file mode 100644 index 0000000..aefa698 --- a/dev/null +++ b/noncore/net/opietooth/manager/rfcommassigndialogbase.ui | |||
@@ -0,0 +1,44 @@ | |||
1 | <!DOCTYPE UI><UI> | ||
2 | <class>RfcommAssignDialogBase</class> | ||
3 | <widget> | ||
4 | <class>QDialog</class> | ||
5 | <property stdset="1"> | ||
6 | <name>name</name> | ||
7 | <cstring>RfcommAssignDialogBase</cstring> | ||
8 | </property> | ||
9 | <property stdset="1"> | ||
10 | <name>geometry</name> | ||
11 | <rect> | ||
12 | <x>0</x> | ||
13 | <y>0</y> | ||
14 | <width>444</width> | ||
15 | <height>343</height> | ||
16 | </rect> | ||
17 | </property> | ||
18 | <property stdset="1"> | ||
19 | <name>caption</name> | ||
20 | <string>Rfcomm Bind</string> | ||
21 | </property> | ||
22 | <vbox> | ||
23 | <property stdset="1"> | ||
24 | <name>margin</name> | ||
25 | <number>11</number> | ||
26 | </property> | ||
27 | <property stdset="1"> | ||
28 | <name>spacing</name> | ||
29 | <number>6</number> | ||
30 | </property> | ||
31 | <widget> | ||
32 | <class>QLabel</class> | ||
33 | <property stdset="1"> | ||
34 | <name>name</name> | ||
35 | <cstring>TextLabel1</cstring> | ||
36 | </property> | ||
37 | <property stdset="1"> | ||
38 | <name>text</name> | ||
39 | <string>Bind device to a interface</string> | ||
40 | </property> | ||
41 | </widget> | ||
42 | </vbox> | ||
43 | </widget> | ||
44 | </UI> | ||
diff --git a/noncore/net/opietooth/manager/rfcommassigndialogimpl.cpp b/noncore/net/opietooth/manager/rfcommassigndialogimpl.cpp new file mode 100644 index 0000000..b5cc074 --- a/dev/null +++ b/noncore/net/opietooth/manager/rfcommassigndialogimpl.cpp | |||
@@ -0,0 +1,120 @@ | |||
1 | |||
2 | #include "rfcommassigndialogimpl.h" | ||
3 | #include "rfcommassigndialogitem.h" | ||
4 | #include "rfcommconfhandler.h" | ||
5 | |||
6 | #include <qpe/config.h> | ||
7 | |||
8 | #include <qlayout.h> | ||
9 | |||
10 | using namespace OpieTooth; | ||
11 | |||
12 | // TODO: write only the file in bluebase? | ||
13 | // muss rfcommd dann neu gestartet werden | ||
14 | // sollte rfcomm bind all nicht eh default config sein ( polled das? - d.h. sobald nen gerät in der nähe ist bindet es? | ||
15 | |||
16 | |||
17 | RfcommAssignDialog::RfcommAssignDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) | ||
18 | : RfcommAssignDialogBase( parent, name, modal, fl ) { | ||
19 | |||
20 | m_range = 5; | ||
21 | |||
22 | m_scrollView = new QScrollView( this ); | ||
23 | m_scrollView->setResizePolicy( QScrollView::AutoOneFit ); | ||
24 | m_scrollView->setHScrollBarMode( QScrollView::AlwaysOff ); | ||
25 | |||
26 | RfcommAssignDialogBaseLayout->addWidget( m_scrollView ); | ||
27 | |||
28 | m_box = new QVBox( m_scrollView->viewport() ); | ||
29 | m_scrollView->addChild( m_box ); | ||
30 | |||
31 | confHandler = new RfCommConfHandler( "/etc/bluetooth/rfcomm.conf" ); | ||
32 | |||
33 | loadConfig(); | ||
34 | } | ||
35 | |||
36 | RfcommAssignDialog::~RfcommAssignDialog() { | ||
37 | if ( confHandler ) { | ||
38 | delete confHandler; | ||
39 | } | ||
40 | } | ||
41 | |||
42 | |||
43 | void RfcommAssignDialog::newDevice( const QString & mac ) { | ||
44 | |||
45 | for ( int i = 0 ; i < m_range; i++ ) { | ||
46 | |||
47 | QMap<QString, RfCommConfObject*>::Iterator it; | ||
48 | it = confHandler->foundEntries().find( QString("%1").arg( i ) ); | ||
49 | // make sure that rfcommX is not assigned yet | ||
50 | if ( it == confHandler->foundEntries().end() ) { | ||
51 | QDialog dialog( this, "newdevice", true, WStyle_ContextHelp ); | ||
52 | dialog.showMaximized(); | ||
53 | RfcommDialogItem *newDev = new RfcommDialogItem( &dialog ); | ||
54 | newDev->setIdent( i ); | ||
55 | newDev->setMac( mac ); | ||
56 | |||
57 | if ( dialog.exec() == QDialog::Accepted ) { | ||
58 | RfcommDialogItem *rfcomm = new RfcommDialogItem( m_box ); | ||
59 | m_itemList.insert( i , rfcomm ); | ||
60 | rfcomm->setIdent( i ); | ||
61 | rfcomm->setMac( mac ); | ||
62 | rfcomm->setChannel( newDev->channel() ); | ||
63 | rfcomm->setComment( newDev->comment() ); | ||
64 | qDebug( "New device set up" ); | ||
65 | } | ||
66 | } | ||
67 | } | ||
68 | } | ||
69 | |||
70 | void RfcommAssignDialog::loadConfig() { | ||
71 | |||
72 | //Config cfg( "bluetoothmanager-rfcommbind" ); | ||
73 | |||
74 | for ( int i = 0 ; i < m_range; i++ ) { | ||
75 | // cfg.setGroup( QString("%1").arg( i ) ); | ||
76 | RfcommDialogItem *rfcomm = new RfcommDialogItem( m_box ); | ||
77 | m_itemList.insert( i , rfcomm ); | ||
78 | rfcomm->setIdent( i ); | ||
79 | QMap<QString, RfCommConfObject*>::Iterator it; | ||
80 | it = confHandler->foundEntries().find( QString("%1").arg( i ) ); | ||
81 | if ( it != confHandler->foundEntries().end() ) { | ||
82 | qDebug( "Found key in foundEntries() " ); | ||
83 | rfcomm->setMac( it.data()->mac() ); | ||
84 | rfcomm->setChannel( it.data()->channel() ); | ||
85 | rfcomm->setComment( it.data()->comment() ); | ||
86 | } | ||
87 | /* Use rfcomm.conf directly for now | ||
88 | * rfcomm->setMac( cfg.readEntry( "mac", "" ) ); | ||
89 | * rfcomm->setChannel( cfg.readNumEntry( "channel", 1 ) ); | ||
90 | * rfcomm->setComment( cfg.readEntry( "comment", "" ) ); | ||
91 | */ | ||
92 | } | ||
93 | } | ||
94 | |||
95 | |||
96 | void RfcommAssignDialog::saveConfig() { | ||
97 | |||
98 | //Config cfg( "bluetoothmanager-rfcommbind" ); | ||
99 | |||
100 | QMap< int, RfcommDialogItem*>::Iterator it; | ||
101 | |||
102 | QMap< QString, RfCommConfObject*> outMap; | ||
103 | |||
104 | for( it = m_itemList.begin(); it != m_itemList.end(); ++it ) { | ||
105 | |||
106 | //cfg.setGroup( QString("%1").arg( it.key() ) ); | ||
107 | RfcommDialogItem *rfcomm = it.data(); | ||
108 | |||
109 | |||
110 | outMap.insert( QString( "%1").arg( it.key() ), new RfCommConfObject( it.key(), rfcomm->mac(), rfcomm->channel(), rfcomm->comment() ) ); | ||
111 | |||
112 | |||
113 | //cfg.writeEntry( "mac", rfcomm->mac() ); | ||
114 | //cfg.writeEntry( "channel", rfcomm->channel() ); | ||
115 | //cfg.writeEntry( "comment", rfcomm->comment() ); | ||
116 | } | ||
117 | |||
118 | confHandler->save( outMap ); | ||
119 | |||
120 | } | ||
diff --git a/noncore/net/opietooth/manager/rfcommassigndialogimpl.h b/noncore/net/opietooth/manager/rfcommassigndialogimpl.h new file mode 100644 index 0000000..9983632 --- a/dev/null +++ b/noncore/net/opietooth/manager/rfcommassigndialogimpl.h | |||
@@ -0,0 +1,39 @@ | |||
1 | #ifndef RFCOMMASSIGN | ||
2 | #define RFCOMMASSIGN | ||
3 | |||
4 | #include "rfcommassigndialogbase.h" | ||
5 | #include "rfcommassigndialogitem.h" | ||
6 | #include "rfcommconfhandler.h" | ||
7 | |||
8 | #include <qscrollview.h> | ||
9 | #include <qmap.h> | ||
10 | #include <qvbox.h> | ||
11 | |||
12 | namespace OpieTooth { | ||
13 | |||
14 | class RfcommAssignDialog: public RfcommAssignDialogBase { | ||
15 | |||
16 | Q_OBJECT | ||
17 | |||
18 | public: | ||
19 | |||
20 | RfcommAssignDialog( QWidget* parent = 0, const char* name = 0,bool modal = 0, WFlags fl = 0 ); | ||
21 | ~RfcommAssignDialog(); | ||
22 | |||
23 | void loadConfig(); | ||
24 | void saveConfig(); | ||
25 | |||
26 | void newDevice( const QString & mac ); | ||
27 | |||
28 | private: | ||
29 | QScrollView *m_scrollView; | ||
30 | // how many rfcomm devices are possible | ||
31 | int m_range; | ||
32 | QMap< int, RfcommDialogItem* > m_itemList; | ||
33 | QVBox *m_box; | ||
34 | RfCommConfHandler *confHandler; | ||
35 | }; | ||
36 | |||
37 | } | ||
38 | |||
39 | #endif | ||
diff --git a/noncore/net/opietooth/manager/rfcommassigndialogitem.cpp b/noncore/net/opietooth/manager/rfcommassigndialogitem.cpp new file mode 100644 index 0000000..1e7130f --- a/dev/null +++ b/noncore/net/opietooth/manager/rfcommassigndialogitem.cpp | |||
@@ -0,0 +1,54 @@ | |||
1 | |||
2 | #include "rfcommassigndialogitem.h" | ||
3 | |||
4 | #include <qlineedit.h> | ||
5 | #include <qcombobox.h> | ||
6 | #include <qlabel.h> | ||
7 | #include <qgroupbox.h> | ||
8 | |||
9 | using namespace OpieTooth; | ||
10 | |||
11 | |||
12 | RfcommDialogItem::RfcommDialogItem( QWidget* parent, const char* name, WFlags fl ) | ||
13 | : RfcommDialogItemBase( parent, name, fl ) { | ||
14 | |||
15 | } | ||
16 | |||
17 | RfcommDialogItem::~RfcommDialogItem() { | ||
18 | } | ||
19 | |||
20 | |||
21 | int RfcommDialogItem::ident() { | ||
22 | return m_ident; | ||
23 | } | ||
24 | |||
25 | QString RfcommDialogItem::mac() { | ||
26 | return m_macAddress->text(); | ||
27 | } | ||
28 | |||
29 | int RfcommDialogItem::channel() { | ||
30 | return m_channelDropdown->currentItem(); | ||
31 | } | ||
32 | |||
33 | QString RfcommDialogItem::comment() { | ||
34 | return m_commentLine->text(); | ||
35 | } | ||
36 | |||
37 | void RfcommDialogItem::setIdent( int ident ) { | ||
38 | m_ident = ident; | ||
39 | m_identLabel->setTitle( QString( "rfcomm%1").arg( ident ) ); | ||
40 | } | ||
41 | |||
42 | void RfcommDialogItem::setMac( const QString &mac ) { | ||
43 | m_macAddress->setText( mac ); | ||
44 | } | ||
45 | |||
46 | void RfcommDialogItem::setChannel( int channel ) { | ||
47 | m_channelDropdown->setCurrentItem( channel ); | ||
48 | } | ||
49 | |||
50 | void RfcommDialogItem::setComment( const QString &comment ) { | ||
51 | m_commentLine->setText( comment ); | ||
52 | } | ||
53 | |||
54 | |||
diff --git a/noncore/net/opietooth/manager/rfcommassigndialogitem.h b/noncore/net/opietooth/manager/rfcommassigndialogitem.h new file mode 100644 index 0000000..34a794f --- a/dev/null +++ b/noncore/net/opietooth/manager/rfcommassigndialogitem.h | |||
@@ -0,0 +1,40 @@ | |||
1 | #ifndef RFCOMMDIALOGITEM | ||
2 | #define RFCOMMDIALOGITEM | ||
3 | |||
4 | #include "rfcommdialogitembase.h" | ||
5 | |||
6 | #include <qwidget.h> | ||
7 | |||
8 | namespace OpieTooth { | ||
9 | |||
10 | class RfcommDialogItem : public RfcommDialogItemBase { | ||
11 | |||
12 | Q_OBJECT | ||
13 | |||
14 | public: | ||
15 | RfcommDialogItem( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); | ||
16 | ~RfcommDialogItem(); | ||
17 | |||
18 | // number if the rfcomm device | ||
19 | int ident(); | ||
20 | // devices mac address | ||
21 | QString mac(); | ||
22 | int channel(); | ||
23 | QString comment(); | ||
24 | |||
25 | void setIdent( int ident ); | ||
26 | void setMac( const QString& mac ); | ||
27 | void setChannel( int channel ); | ||
28 | void setComment( const QString& comment ); | ||
29 | |||
30 | private: | ||
31 | |||
32 | |||
33 | int m_ident; | ||
34 | |||
35 | }; | ||
36 | |||
37 | |||
38 | } | ||
39 | |||
40 | #endif | ||
diff --git a/noncore/net/opietooth/manager/rfcommconfhandler.cpp b/noncore/net/opietooth/manager/rfcommconfhandler.cpp new file mode 100644 index 0000000..20453e8 --- a/dev/null +++ b/noncore/net/opietooth/manager/rfcommconfhandler.cpp | |||
@@ -0,0 +1,114 @@ | |||
1 | |||
2 | #include <qtextstream.h> | ||
3 | |||
4 | #include "rfcommconfhandler.h" | ||
5 | |||
6 | |||
7 | using namespace OpieTooth; | ||
8 | |||
9 | // move to lib | ||
10 | |||
11 | |||
12 | RfCommConfObject::RfCommConfObject( int number, QString mac, int channel, QString comment ) { | ||
13 | m_number = number; | ||
14 | m_mac = mac; | ||
15 | m_channel = channel; | ||
16 | m_comment = comment; | ||
17 | // m_foundEntries = 0; | ||
18 | } | ||
19 | |||
20 | void RfCommConfObject::setNumber( int number ) { | ||
21 | m_number = number; | ||
22 | } | ||
23 | |||
24 | void RfCommConfObject::setMac( QString mac ) { | ||
25 | m_mac = mac; | ||
26 | } | ||
27 | |||
28 | void RfCommConfObject::setChannel( int channel ) { | ||
29 | m_channel = channel; | ||
30 | } | ||
31 | |||
32 | void RfCommConfObject::setComment( QString comment ) { | ||
33 | m_comment = comment; | ||
34 | } | ||
35 | |||
36 | |||
37 | RfCommConfObject::~RfCommConfObject() { | ||
38 | } | ||
39 | |||
40 | |||
41 | RfCommConfHandler::RfCommConfHandler( const QString & filename ) { | ||
42 | |||
43 | m_filename = filename; | ||
44 | load(); | ||
45 | } | ||
46 | |||
47 | RfCommConfHandler::~RfCommConfHandler() { | ||
48 | |||
49 | } | ||
50 | |||
51 | void RfCommConfHandler::save( QMap<QString, RfCommConfObject*> devices ) { | ||
52 | |||
53 | QFile rfCommConf( "/tmp/test" ); | ||
54 | QTextStream outStream( &rfCommConf ); | ||
55 | if ( rfCommConf.open( IO_WriteOnly ) ) { | ||
56 | |||
57 | QMap<QString, RfCommConfObject*>::Iterator it; | ||
58 | for( it = devices.begin(); it != devices.end(); ++it ) { | ||
59 | outStream << "rfcomm" + QString("%1").arg( it.data()->number() ) + " {\n"; | ||
60 | outStream << " device " + it.data()->mac() + ";\n"; | ||
61 | outStream << " channel " + QString( "%1" ).arg( it.data()->channel() ) + ";\n"; | ||
62 | outStream << " comment \"" + it.data()->comment() + "\";\n"; | ||
63 | outStream << "}\n\n"; | ||
64 | } | ||
65 | |||
66 | rfCommConf.close(); | ||
67 | } | ||
68 | } | ||
69 | |||
70 | |||
71 | QMap<QString, RfCommConfObject*> RfCommConfHandler::foundEntries() { | ||
72 | return m_foundEntries; | ||
73 | } | ||
74 | |||
75 | void RfCommConfHandler::load() { | ||
76 | |||
77 | QFile rfCommConf( m_filename ); | ||
78 | if ( rfCommConf.open( IO_ReadOnly ) ) { | ||
79 | |||
80 | QStringList list; | ||
81 | QTextStream inStream( &rfCommConf ); | ||
82 | list = QStringList::split( "\n", inStream.read() ); | ||
83 | |||
84 | QString number; | ||
85 | QString mac; | ||
86 | QString channel; | ||
87 | QString comment; | ||
88 | |||
89 | for ( QStringList::Iterator line=list.begin(); line != list.end(); line++ ) { | ||
90 | |||
91 | QString tmpLine = ( *line ).stripWhiteSpace(); | ||
92 | |||
93 | if ( tmpLine.startsWith("rfcomm") ) { | ||
94 | QString number = tmpLine.mid( 6,1 ); | ||
95 | qDebug( tmpLine ); | ||
96 | qDebug( "TEST " + number ); | ||
97 | } else if ( tmpLine.startsWith( "}" ) ) { | ||
98 | m_foundEntries.insert( number, new RfCommConfObject( number.toInt(), mac, channel.toInt(), comment ) ); | ||
99 | } else if ( tmpLine.startsWith( "device" ) ) { | ||
100 | mac = tmpLine.mid( 7, 17 ); | ||
101 | qDebug( "mac" + mac ); | ||
102 | } else if ( tmpLine.startsWith( "channel" ) ) { | ||
103 | channel = tmpLine.mid( 8, 1 ); | ||
104 | qDebug ( "Channel :" + channel ); | ||
105 | } else if ( tmpLine.startsWith( "comment" ) ) { | ||
106 | comment = tmpLine.mid( 9, tmpLine.find( ';' ) - 9 - 1 ); | ||
107 | qDebug( "Comment: " + comment ); | ||
108 | } | ||
109 | } | ||
110 | rfCommConf.close(); | ||
111 | } | ||
112 | save( m_foundEntries ); | ||
113 | qDebug( QString( "ENTries: %1").arg( m_foundEntries.count() ) ); | ||
114 | } | ||
diff --git a/noncore/net/opietooth/manager/rfcommconfhandler.h b/noncore/net/opietooth/manager/rfcommconfhandler.h new file mode 100644 index 0000000..e13c833 --- a/dev/null +++ b/noncore/net/opietooth/manager/rfcommconfhandler.h | |||
@@ -0,0 +1,54 @@ | |||
1 | #ifndef RFCOMMCONFHANDLER | ||
2 | #define RFCOMMCONFHANDLER | ||
3 | |||
4 | #include <qstring.h> | ||
5 | #include <qfile.h> | ||
6 | #include <qobject.h> | ||
7 | #include <qmap.h> | ||
8 | |||
9 | namespace OpieTooth { | ||
10 | |||
11 | class RfCommConfObject { | ||
12 | |||
13 | public: | ||
14 | RfCommConfObject( int number, QString mac, int channel, QString comment ); | ||
15 | ~RfCommConfObject(); | ||
16 | |||
17 | void setNumber( int number ); | ||
18 | int number() { return m_number; }; | ||
19 | void setMac( QString mac ); | ||
20 | QString mac() { return m_mac; }; | ||
21 | void setChannel( int channel ); | ||
22 | int channel() { return m_channel; }; | ||
23 | void setComment( QString comment ); | ||
24 | QString comment() { return m_comment; }; | ||
25 | |||
26 | |||
27 | private: | ||
28 | int m_number; | ||
29 | QString m_mac; | ||
30 | int m_channel; | ||
31 | QString m_comment; | ||
32 | |||
33 | }; | ||
34 | |||
35 | class RfCommConfHandler { | ||
36 | |||
37 | public: | ||
38 | RfCommConfHandler( const QString & filename ); | ||
39 | ~RfCommConfHandler(); | ||
40 | |||
41 | void save( QMap<QString, RfCommConfObject*> devices ); | ||
42 | |||
43 | QMap<QString, RfCommConfObject*> foundEntries(); | ||
44 | |||
45 | private: | ||
46 | void load(); | ||
47 | |||
48 | QString m_filename; | ||
49 | QMap<QString, RfCommConfObject*> m_foundEntries; | ||
50 | }; | ||
51 | |||
52 | } | ||
53 | |||
54 | #endif | ||
diff --git a/noncore/net/opietooth/manager/rfcommdialogitembase.ui b/noncore/net/opietooth/manager/rfcommdialogitembase.ui new file mode 100644 index 0000000..dafca52 --- a/dev/null +++ b/noncore/net/opietooth/manager/rfcommdialogitembase.ui | |||
@@ -0,0 +1,216 @@ | |||
1 | <!DOCTYPE UI><UI> | ||
2 | <class>RfcommDialogItemBase</class> | ||
3 | <widget> | ||
4 | <class>QWidget</class> | ||
5 | <property stdset="1"> | ||
6 | <name>name</name> | ||
7 | <cstring>RfcommDialogItemBase</cstring> | ||
8 | </property> | ||
9 | <property stdset="1"> | ||
10 | <name>geometry</name> | ||
11 | <rect> | ||
12 | <x>0</x> | ||
13 | <y>0</y> | ||
14 | <width>345</width> | ||
15 | <height>95</height> | ||
16 | </rect> | ||
17 | </property> | ||
18 | <property stdset="1"> | ||
19 | <name>caption</name> | ||
20 | <string>Form2</string> | ||
21 | </property> | ||
22 | <property> | ||
23 | <name>layoutMargin</name> | ||
24 | </property> | ||
25 | <property> | ||
26 | <name>layoutSpacing</name> | ||
27 | </property> | ||
28 | <vbox> | ||
29 | <property stdset="1"> | ||
30 | <name>margin</name> | ||
31 | <number>0</number> | ||
32 | </property> | ||
33 | <property stdset="1"> | ||
34 | <name>spacing</name> | ||
35 | <number>0</number> | ||
36 | </property> | ||
37 | <widget> | ||
38 | <class>QGroupBox</class> | ||
39 | <property stdset="1"> | ||
40 | <name>name</name> | ||
41 | <cstring>m_identLabel</cstring> | ||
42 | </property> | ||
43 | <property> | ||
44 | <name>layoutMargin</name> | ||
45 | </property> | ||
46 | <property> | ||
47 | <name>layoutSpacing</name> | ||
48 | </property> | ||
49 | <grid> | ||
50 | <property stdset="1"> | ||
51 | <name>margin</name> | ||
52 | <number>5</number> | ||
53 | </property> | ||
54 | <property stdset="1"> | ||
55 | <name>spacing</name> | ||
56 | <number>5</number> | ||
57 | </property> | ||
58 | <widget row="0" column="0" > | ||
59 | <class>QLayoutWidget</class> | ||
60 | <property stdset="1"> | ||
61 | <name>name</name> | ||
62 | <cstring>Layout3</cstring> | ||
63 | </property> | ||
64 | <hbox> | ||
65 | <property stdset="1"> | ||
66 | <name>margin</name> | ||
67 | <number>0</number> | ||
68 | </property> | ||
69 | <property stdset="1"> | ||
70 | <name>spacing</name> | ||
71 | <number>6</number> | ||
72 | </property> | ||
73 | <widget> | ||
74 | <class>QLabel</class> | ||
75 | <property stdset="1"> | ||
76 | <name>name</name> | ||
77 | <cstring>TextLabel4</cstring> | ||
78 | </property> | ||
79 | <property stdset="1"> | ||
80 | <name>text</name> | ||
81 | <string>Mac</string> | ||
82 | </property> | ||
83 | </widget> | ||
84 | <widget> | ||
85 | <class>QLineEdit</class> | ||
86 | <property stdset="1"> | ||
87 | <name>name</name> | ||
88 | <cstring>m_macAddress</cstring> | ||
89 | </property> | ||
90 | </widget> | ||
91 | <widget> | ||
92 | <class>QLabel</class> | ||
93 | <property stdset="1"> | ||
94 | <name>name</name> | ||
95 | <cstring>TextLabel5</cstring> | ||
96 | </property> | ||
97 | <property stdset="1"> | ||
98 | <name>text</name> | ||
99 | <string>Channel</string> | ||
100 | </property> | ||
101 | </widget> | ||
102 | <widget> | ||
103 | <class>QComboBox</class> | ||
104 | <item> | ||
105 | <property> | ||
106 | <name>text</name> | ||
107 | <string>0</string> | ||
108 | </property> | ||
109 | </item> | ||
110 | <item> | ||
111 | <property> | ||
112 | <name>text</name> | ||
113 | <string>1</string> | ||
114 | </property> | ||
115 | </item> | ||
116 | <item> | ||
117 | <property> | ||
118 | <name>text</name> | ||
119 | <string>2</string> | ||
120 | </property> | ||
121 | </item> | ||
122 | <item> | ||
123 | <property> | ||
124 | <name>text</name> | ||
125 | <string>3</string> | ||
126 | </property> | ||
127 | </item> | ||
128 | <item> | ||
129 | <property> | ||
130 | <name>text</name> | ||
131 | <string>4</string> | ||
132 | </property> | ||
133 | </item> | ||
134 | <item> | ||
135 | <property> | ||
136 | <name>text</name> | ||
137 | <string>5</string> | ||
138 | </property> | ||
139 | </item> | ||
140 | <item> | ||
141 | <property> | ||
142 | <name>text</name> | ||
143 | <string>6</string> | ||
144 | </property> | ||
145 | </item> | ||
146 | <item> | ||
147 | <property> | ||
148 | <name>text</name> | ||
149 | <string>7</string> | ||
150 | </property> | ||
151 | </item> | ||
152 | <item> | ||
153 | <property> | ||
154 | <name>text</name> | ||
155 | <string>8</string> | ||
156 | </property> | ||
157 | </item> | ||
158 | <item> | ||
159 | <property> | ||
160 | <name>text</name> | ||
161 | <string>9</string> | ||
162 | </property> | ||
163 | </item> | ||
164 | <item> | ||
165 | <property> | ||
166 | <name>text</name> | ||
167 | <string>10</string> | ||
168 | </property> | ||
169 | </item> | ||
170 | <property stdset="1"> | ||
171 | <name>name</name> | ||
172 | <cstring>m_channelDropdown</cstring> | ||
173 | </property> | ||
174 | </widget> | ||
175 | </hbox> | ||
176 | </widget> | ||
177 | <widget row="1" column="0" > | ||
178 | <class>QLayoutWidget</class> | ||
179 | <property stdset="1"> | ||
180 | <name>name</name> | ||
181 | <cstring>Layout4</cstring> | ||
182 | </property> | ||
183 | <hbox> | ||
184 | <property stdset="1"> | ||
185 | <name>margin</name> | ||
186 | <number>0</number> | ||
187 | </property> | ||
188 | <property stdset="1"> | ||
189 | <name>spacing</name> | ||
190 | <number>6</number> | ||
191 | </property> | ||
192 | <widget> | ||
193 | <class>QLabel</class> | ||
194 | <property stdset="1"> | ||
195 | <name>name</name> | ||
196 | <cstring>TextLabel3</cstring> | ||
197 | </property> | ||
198 | <property stdset="1"> | ||
199 | <name>text</name> | ||
200 | <string>Comment:</string> | ||
201 | </property> | ||
202 | </widget> | ||
203 | <widget> | ||
204 | <class>QLineEdit</class> | ||
205 | <property stdset="1"> | ||
206 | <name>name</name> | ||
207 | <cstring>m_commentLine</cstring> | ||
208 | </property> | ||
209 | </widget> | ||
210 | </hbox> | ||
211 | </widget> | ||
212 | </grid> | ||
213 | </widget> | ||
214 | </vbox> | ||
215 | </widget> | ||
216 | </UI> | ||
diff --git a/noncore/net/opietooth/manager/rfcpopup.cpp b/noncore/net/opietooth/manager/rfcpopup.cpp index cc87b6c..d95f14b 100644 --- a/noncore/net/opietooth/manager/rfcpopup.cpp +++ b/noncore/net/opietooth/manager/rfcpopup.cpp | |||
@@ -1,85 +1,96 @@ | |||
1 | 1 | ||
2 | #include <qtimer.h> | 2 | #include <qtimer.h> |
3 | 3 | ||
4 | #include "pppdialog.h" | 4 | #include "pppdialog.h" |
5 | #include "rfcpopup.h" | 5 | #include "rfcpopup.h" |
6 | #include "rfcommassigndialogimpl.h" | ||
6 | 7 | ||
7 | using namespace OpieTooth; | 8 | using namespace OpieTooth; |
8 | 9 | ||
9 | /* | 10 | /* |
10 | * c'tor init the QAction | 11 | * c'tor init the QAction |
11 | */ | 12 | */ |
12 | RfcCommPopup::RfcCommPopup() | 13 | RfcCommPopup::RfcCommPopup( OpieTooth::BTDeviceItem* item ) |
13 | : QPopupMenu() { | 14 | : QPopupMenu() { |
14 | qWarning("RfcCommPopup c'tor"); | 15 | qWarning("RfcCommPopup c'tor"); |
15 | 16 | ||
16 | QAction* a; | 17 | QAction* a; |
17 | 18 | ||
19 | |||
20 | m_item = item; | ||
21 | |||
18 | /* connect action */ | 22 | /* connect action */ |
19 | a = new QAction( ); // so it's get deleted | 23 | a = new QAction( ); // so it's get deleted |
20 | a->setText("Connect"); | 24 | a->setText("Connect"); |
21 | a->addTo( this ); | 25 | a->addTo( this ); |
22 | connect( a, SIGNAL( activated() ), | 26 | connect( a, SIGNAL( activated() ), |
23 | this, SLOT( slotConnect() ) ); | 27 | this, SLOT( slotConnect() ) ); |
24 | 28 | ||
25 | 29 | ||
26 | /* disconnect action */ | 30 | /* disconnect action */ |
27 | a = new QAction( ); | 31 | a = new QAction( ); |
28 | a->setText("Disconnect"); | 32 | a->setText("Disconnect"); |
29 | a->addTo( this ); | 33 | a->addTo( this ); |
30 | connect( a, SIGNAL( activated() ) , | 34 | connect( a, SIGNAL( activated() ) , |
31 | this, SLOT( slotDisconnect() ) ); | 35 | this, SLOT( slotDisconnect() ) ); |
32 | 36 | ||
33 | 37 | ||
34 | /* foo action */ | 38 | /* foo action */ |
35 | a = new QAction( ); | 39 | a = new QAction( ); |
36 | a->setText("Foo"); | 40 | a->setText("Bind table"); |
37 | a->addTo( this ); | 41 | a->addTo( this ); |
38 | connect( a, SIGNAL( activated() ), | 42 | connect( a, SIGNAL( activated() ), |
39 | this, SLOT( slotFoo() ) ); | 43 | this, SLOT( slotBind() ) ); |
40 | 44 | ||
41 | 45 | ||
42 | /* bar action */ | 46 | /* bar action */ |
43 | a = new QAction( ); | 47 | a = new QAction( ); |
44 | a->setText( "Bar" ); | 48 | a->setText( "Bar" ); |
45 | a->addTo( this ); | 49 | a->addTo( this ); |
46 | connect( a, SIGNAL( activated() ), | 50 | connect( a, SIGNAL( activated() ), |
47 | this, SLOT( slotBar() ) ); | 51 | this, SLOT( slotBar() ) ); |
48 | 52 | ||
49 | }; | 53 | }; |
50 | 54 | ||
51 | 55 | ||
52 | RfcCommPopup::~RfcCommPopup() { | 56 | RfcCommPopup::~RfcCommPopup() { |
53 | /* delete m_con; | 57 | /* delete m_con; |
54 | delete m_dis; | 58 | delete m_dis; |
55 | delete m_foo; | 59 | delete m_foo; |
56 | delete m_bar; */ | 60 | delete m_bar; */ |
57 | } | 61 | } |
58 | 62 | ||
59 | 63 | ||
60 | void RfcCommPopup::slotConnect() { | 64 | void RfcCommPopup::slotConnect() { |
61 | 65 | ||
62 | qWarning("connect"); | 66 | qWarning("connect"); |
63 | 67 | ||
64 | 68 | ||
65 | 69 | ||
66 | PPPDialog pppDialog; | 70 | PPPDialog pppDialog; |
67 | pppDialog.showMaximized(); | 71 | pppDialog.showMaximized(); |
68 | pppDialog.exec(); | 72 | pppDialog.exec(); |
69 | } | 73 | } |
70 | 74 | ||
71 | 75 | ||
72 | void RfcCommPopup::slotDisconnect() { | 76 | void RfcCommPopup::slotDisconnect() { |
73 | qWarning("slot disconnected"); | 77 | qWarning("slot disconnected"); |
74 | } | 78 | } |
75 | 79 | ||
76 | 80 | ||
77 | void RfcCommPopup::slotFoo() { | 81 | void RfcCommPopup::slotBind() { |
78 | qWarning("slotFoo"); | 82 | RfcommAssignDialog rfcommAssign ( this, "RfcommAssignDialog", true, WStyle_ContextHelp ); |
83 | |||
84 | rfcommAssign.showMaximized(); | ||
85 | rfcommAssign.newDevice( m_item->mac() ); | ||
86 | |||
87 | if ( rfcommAssign.exec() == QDialog::Accepted ) { | ||
88 | rfcommAssign.saveConfig(); | ||
89 | } | ||
79 | } | 90 | } |
80 | 91 | ||
81 | 92 | ||
82 | void RfcCommPopup::slotBar() { | 93 | void RfcCommPopup::slotBar() { |
83 | qWarning("slotBar"); | 94 | qWarning("slotBar"); |
84 | }; | 95 | }; |
85 | 96 | ||
diff --git a/noncore/net/opietooth/manager/rfcpopup.h b/noncore/net/opietooth/manager/rfcpopup.h index c388f65..74b9117 100644 --- a/noncore/net/opietooth/manager/rfcpopup.h +++ b/noncore/net/opietooth/manager/rfcpopup.h | |||
@@ -1,36 +1,39 @@ | |||
1 | #ifndef RFCPOPUP_H | 1 | #ifndef RFCPOPUP_H |
2 | #define RFCPOPUP_H | 2 | #define RFCPOPUP_H |
3 | 3 | ||
4 | #include <qpopupmenu.h> | 4 | #include <qpopupmenu.h> |
5 | #include <qaction.h> | 5 | #include <qaction.h> |
6 | 6 | ||
7 | #include "btdeviceitem.h" | ||
8 | |||
7 | namespace OpieTooth { | 9 | namespace OpieTooth { |
8 | /** | 10 | /** |
9 | * A simple reference implementation for | 11 | * A simple reference implementation for |
10 | * the popup helper factory. | 12 | * the popup helper factory. |
11 | * This class derives from QPopupMenu and uses | 13 | * This class derives from QPopupMenu and uses |
12 | * plugged QActions to do all the nasty in it's | 14 | * plugged QActions to do all the nasty in it's |
13 | * slots. After the work is done everything must | 15 | * slots. After the work is done everything must |
14 | * be deleted. | 16 | * be deleted. |
15 | */ | 17 | */ |
16 | class RfcCommPopup : public QPopupMenu { | 18 | class RfcCommPopup : public QPopupMenu { |
17 | Q_OBJECT | 19 | Q_OBJECT |
18 | public: | 20 | public: |
19 | RfcCommPopup(); | 21 | RfcCommPopup( OpieTooth::BTDeviceItem* ); |
20 | ~RfcCommPopup(); | 22 | ~RfcCommPopup(); |
21 | 23 | ||
22 | 24 | ||
23 | private: | 25 | private: |
24 | QAction* m_con; | 26 | QAction* m_con; |
25 | QAction* m_dis; | 27 | QAction* m_dis; |
26 | QAction* m_foo; | 28 | QAction* m_bind; |
27 | QAction* m_bar; | 29 | QAction* m_bar; |
30 | OpieTooth::BTDeviceItem *m_item; | ||
28 | private slots: | 31 | private slots: |
29 | void slotConnect(); | 32 | void slotConnect(); |
30 | void slotDisconnect(); | 33 | void slotDisconnect(); |
31 | void slotFoo(); | 34 | void slotBind(); |
32 | void slotBar(); | 35 | void slotBar(); |
33 | }; | 36 | }; |
34 | }; | 37 | }; |
35 | 38 | ||
36 | #endif | 39 | #endif |
diff --git a/noncore/net/opietooth/manager/stdpopups.cpp b/noncore/net/opietooth/manager/stdpopups.cpp index 38b8ee7..e1f8396 100644 --- a/noncore/net/opietooth/manager/stdpopups.cpp +++ b/noncore/net/opietooth/manager/stdpopups.cpp | |||
@@ -1,26 +1,26 @@ | |||
1 | 1 | ||
2 | #include "rfcpopup.h" | 2 | #include "rfcpopup.h" |
3 | #include "obexpopup.h" | 3 | #include "obexpopup.h" |
4 | #include "panpopup.h" | 4 | #include "panpopup.h" |
5 | #include "dunpopup.h" | 5 | #include "dunpopup.h" |
6 | 6 | ||
7 | #include "stdpopups.h" | 7 | #include "stdpopups.h" |
8 | 8 | ||
9 | extern "C" { | 9 | extern "C" { |
10 | 10 | ||
11 | QPopupMenu* newRfcComPopup( const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item ) { | 11 | QPopupMenu* newRfcComPopup( const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item ) { |
12 | return new OpieTooth::RfcCommPopup(/* servive, item*/ ); // fix spellin RfComm vs. RfcComm and paramaters | 12 | return new OpieTooth::RfcCommPopup(/* servive,*/ item ); // fix spellin RfComm vs. RfcComm and paramaters |
13 | //return 0l; | 13 | //return 0l; |
14 | } | 14 | } |
15 | QPopupMenu* newObexPushPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ) { | 15 | QPopupMenu* newObexPushPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ) { |
16 | return new OpieTooth::ObexPopup(); | 16 | return new OpieTooth::ObexPopup(); |
17 | } | 17 | } |
18 | QPopupMenu* newPanPopup( const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item ) { | 18 | QPopupMenu* newPanPopup( const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item ) { |
19 | return new OpieTooth::PanPopup( item ); | 19 | return new OpieTooth::PanPopup( item ); |
20 | } | 20 | } |
21 | 21 | ||
22 | QPopupMenu* newDunPopup( const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item ) { | 22 | QPopupMenu* newDunPopup( const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item ) { |
23 | return new OpieTooth::DunPopup( item ); | 23 | return new OpieTooth::DunPopup( item ); |
24 | } | 24 | } |
25 | } | 25 | } |
26 | 26 | ||
diff --git a/noncore/net/ubrowser/main.cpp b/noncore/net/ubrowser/main.cpp index e4a873d..0488cfd 100644 --- a/noncore/net/ubrowser/main.cpp +++ b/noncore/net/ubrowser/main.cpp | |||
@@ -1,29 +1,24 @@ | |||
1 | /* | 1 | /* |
2 | Opie-uBrowser. a very small web browser, using on QTextBrowser for html display/parsing | 2 | Opie-uBrowser. a very small web browser, using on QTextBrowser for html display/parsing |
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 <qpe/qpeapplication.h> | 17 | #include <qpe/qpeapplication.h> |
18 | 18 | ||
19 | #include "mainview.h" | 19 | #include "mainview.h" |
20 | 20 | ||
21 | int main( int argc, char **argv ) | 21 | #include <opie/oapplicationfactory.h> |
22 | { | 22 | |
23 | QPEApplication a( argc, argv ); | 23 | OPIE_EXPORT_APP( OApplicationFactory<MainView> ) |
24 | MainView w; | 24 | |
25 | |||
26 | //a.setMainWidget( &w ); | ||
27 | a.showMainDocumentWidget( &w ); | ||
28 | return a.exec(); | ||
29 | } | ||
diff --git a/noncore/net/ubrowser/mainview.cpp b/noncore/net/ubrowser/mainview.cpp index 9302f05..0d3f171 100644 --- a/noncore/net/ubrowser/mainview.cpp +++ b/noncore/net/ubrowser/mainview.cpp | |||
@@ -1,121 +1,121 @@ | |||
1 | /* | 1 | /* |
2 | Opie-uBrowser. a very small web browser, using on QTextBrowser for html display/parsing | 2 | Opie-uBrowser. a very small web browser, using on QTextBrowser for html display/parsing |
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 | 17 | ||
18 | #include "mainview.h" | 18 | #include "mainview.h" |
19 | 19 | ||
20 | MainView::MainView(QWidget *parent, const char *name) : QMainWindow(parent, name) | 20 | MainView::MainView(QWidget *parent, const char *name, WFlags fl) : QMainWindow(parent, name, fl) |
21 | { | 21 | { |
22 | setIcon( Resource::loadPixmap( "remote" ) ); | 22 | setIcon( Resource::loadPixmap( "remote" ) ); |
23 | setCaption(tr("uBrowser")); | 23 | setCaption(tr("uBrowser")); |
24 | 24 | ||
25 | setToolBarsMovable( false ); | 25 | setToolBarsMovable( false ); |
26 | 26 | ||
27 | QPEToolBar *toolbar = new QPEToolBar(this, "toolbar"); | 27 | QPEToolBar *toolbar = new QPEToolBar(this, "toolbar"); |
28 | back = new QToolButton(Resource::loadPixmap("ubrowser/back"), 0, 0, 0, 0, toolbar, "back"); | 28 | back = new QToolButton(Resource::loadPixmap("ubrowser/back"), 0, 0, 0, 0, toolbar, "back"); |
29 | forward = new QToolButton(Resource::loadPixmap("ubrowser/forward"), 0, 0, 0, 0, toolbar, "forward"); | 29 | forward = new QToolButton(Resource::loadPixmap("ubrowser/forward"), 0, 0, 0, 0, toolbar, "forward"); |
30 | home = new QToolButton(Resource::loadPixmap("ubrowser/home"), 0, 0, 0, 0, toolbar, "home"); | 30 | home = new QToolButton(Resource::loadPixmap("ubrowser/home"), 0, 0, 0, 0, toolbar, "home"); |
31 | location = new QComboBox(true, toolbar, "location"); | 31 | location = new QComboBox(true, toolbar, "location"); |
32 | go = new QToolButton(Resource::loadPixmap("ubrowser/go"), 0, 0, 0, 0, toolbar, "go"); | 32 | go = new QToolButton(Resource::loadPixmap("ubrowser/go"), 0, 0, 0, 0, toolbar, "go"); |
33 | 33 | ||
34 | toolbar->setStretchableWidget(location); | 34 | toolbar->setStretchableWidget(location); |
35 | toolbar->setHorizontalStretchable(true); | 35 | toolbar->setHorizontalStretchable(true); |
36 | location->setAutoCompletion( true ); | 36 | location->setAutoCompletion( true ); |
37 | 37 | ||
38 | addToolBar(toolbar); | 38 | addToolBar(toolbar); |
39 | 39 | ||
40 | browser = new QTextBrowser(this, "browser"); | 40 | browser = new QTextBrowser(this, "browser"); |
41 | setCentralWidget(browser); | 41 | setCentralWidget(browser); |
42 | 42 | ||
43 | //make the button take you to the location | 43 | //make the button take you to the location |
44 | connect(go, SIGNAL(clicked()), this, SLOT(goClicked()) ); | 44 | connect(go, SIGNAL(clicked()), this, SLOT(goClicked()) ); |
45 | connect(location->lineEdit(), SIGNAL(returnPressed()), this, SLOT(goClicked()) ); | 45 | connect(location->lineEdit(), SIGNAL(returnPressed()), this, SLOT(goClicked()) ); |
46 | 46 | ||
47 | //make back, forward and home do their thing (isnt QTextBrowser great?) | 47 | //make back, forward and home do their thing (isnt QTextBrowser great?) |
48 | connect(back, SIGNAL(clicked()), browser, SLOT(backward()) ); | 48 | connect(back, SIGNAL(clicked()), browser, SLOT(backward()) ); |
49 | connect(forward, SIGNAL(clicked()), browser, SLOT(forward()) ); | 49 | connect(forward, SIGNAL(clicked()), browser, SLOT(forward()) ); |
50 | connect(home, SIGNAL(clicked()), browser, SLOT(home()) ); | 50 | connect(home, SIGNAL(clicked()), browser, SLOT(home()) ); |
51 | 51 | ||
52 | //make back and forward buttons be enabled, only when you can go back or forward (again, i love QTextBrowser) | 52 | //make back and forward buttons be enabled, only when you can go back or forward (again, i love QTextBrowser) |
53 | //this doesnt seem to work, but doesnt break anything either... | 53 | //this doesnt seem to work, but doesnt break anything either... |
54 | connect(browser, SIGNAL(backwardAvailable(bool)), back, SLOT(setOn(bool)) ); | 54 | connect(browser, SIGNAL(backwardAvailable(bool)), back, SLOT(setOn(bool)) ); |
55 | connect(browser, SIGNAL(forwardAvailable(bool)), forward, SLOT(setOn(bool)) ); | 55 | connect(browser, SIGNAL(forwardAvailable(bool)), forward, SLOT(setOn(bool)) ); |
56 | 56 | ||
57 | //notify me when the text of the browser has changed (like when the user clicks a link) | 57 | //notify me when the text of the browser has changed (like when the user clicks a link) |
58 | connect(browser, SIGNAL(textChanged()), this, SLOT(textChanged()) ); | 58 | connect(browser, SIGNAL(textChanged()), this, SLOT(textChanged()) ); |
59 | 59 | ||
60 | http = new HttpFactory(browser); | 60 | http = new HttpFactory(browser); |
61 | 61 | ||
62 | if( qApp->argc() > 1 ) | 62 | if( qApp->argc() > 1 ) |
63 | { | 63 | { |
64 | char **argv = qApp->argv(); | 64 | char **argv = qApp->argv(); |
65 | int i = 0; | 65 | int i = 0; |
66 | QString *openfile = new QString( argv[0] ); | 66 | QString *openfile = new QString( argv[0] ); |
67 | while( openfile->contains( "ubrowser" ) == 0 && i < qApp->argc() ) | 67 | while( openfile->contains( "ubrowser" ) == 0 && i < qApp->argc() ) |
68 | { | 68 | { |
69 | i++; | 69 | i++; |
70 | *openfile = argv[i]; | 70 | *openfile = argv[i]; |
71 | } | 71 | } |
72 | *openfile = argv[i+1]; | 72 | *openfile = argv[i+1]; |
73 | if( !openfile->startsWith( "http://" ) && !openfile->startsWith( "/" ) ) | 73 | if( !openfile->startsWith( "http://" ) && !openfile->startsWith( "/" ) ) |
74 | { | 74 | { |
75 | openfile->insert( 0, QDir::currentDirPath()+"/" ); | 75 | openfile->insert( 0, QDir::currentDirPath()+"/" ); |
76 | } | 76 | } |
77 | location->setEditText( *openfile ); | 77 | location->setEditText( *openfile ); |
78 | goClicked(); | 78 | goClicked(); |
79 | } | 79 | } |
80 | } | 80 | } |
81 | 81 | ||
82 | void MainView::goClicked() | 82 | void MainView::goClicked() |
83 | { | 83 | { |
84 | location->insertItem( location->currentText() ); | 84 | location->insertItem( location->currentText() ); |
85 | 85 | ||
86 | if(location->currentText().startsWith("http://") ) | 86 | if(location->currentText().startsWith("http://") ) |
87 | { | 87 | { |
88 | location->setEditText(location->currentText().lower()); | 88 | location->setEditText(location->currentText().lower()); |
89 | browser->setMimeSourceFactory(http); | 89 | browser->setMimeSourceFactory(http); |
90 | printf("MainView::goClicked: using http source factory\n"); | 90 | printf("MainView::goClicked: using http source factory\n"); |
91 | } | 91 | } |
92 | else | 92 | else |
93 | { | 93 | { |
94 | browser->setMimeSourceFactory(QMimeSourceFactory::defaultFactory()); | 94 | browser->setMimeSourceFactory(QMimeSourceFactory::defaultFactory()); |
95 | printf("MainView::goClicked: using default source factory\n"); | 95 | printf("MainView::goClicked: using default source factory\n"); |
96 | } | 96 | } |
97 | 97 | ||
98 | browser->setSource(location->currentText()); | 98 | browser->setSource(location->currentText()); |
99 | } | 99 | } |
100 | 100 | ||
101 | void MainView::textChanged() | 101 | void MainView::textChanged() |
102 | { | 102 | { |
103 | if(browser->documentTitle().isNull()) | 103 | if(browser->documentTitle().isNull()) |
104 | { | 104 | { |
105 | setCaption( tr("%1 - uBrowser").arg( browser->source() ) ); | 105 | setCaption( tr("%1 - uBrowser").arg( browser->source() ) ); |
106 | } | 106 | } |
107 | else | 107 | else |
108 | { | 108 | { |
109 | setCaption(tr(" - uBrowser").arg( browser->documentTitle() )); | 109 | setCaption(tr(" - uBrowser").arg( browser->documentTitle() )); |
110 | } | 110 | } |
111 | 111 | ||
112 | location->setEditText(browser->source()); | 112 | location->setEditText(browser->source()); |
113 | } | 113 | } |
114 | 114 | ||
115 | void MainView::setDocument( const QString& applnk_filename ) | 115 | void MainView::setDocument( const QString& applnk_filename ) |
116 | { | 116 | { |
117 | DocLnk *file = new DocLnk( applnk_filename ); | 117 | DocLnk *file = new DocLnk( applnk_filename ); |
118 | 118 | ||
119 | location->setEditText( file->file() ); | 119 | location->setEditText( file->file() ); |
120 | goClicked(); | 120 | goClicked(); |
121 | } | 121 | } |
diff --git a/noncore/net/ubrowser/mainview.h b/noncore/net/ubrowser/mainview.h index 20e2c70..cc63729 100644 --- a/noncore/net/ubrowser/mainview.h +++ b/noncore/net/ubrowser/mainview.h | |||
@@ -1,52 +1,53 @@ | |||
1 | /* | 1 | /* |
2 | Opie-uBrowser. a very small web browser, using on QTextBrowser for html display/parsing | 2 | Opie-uBrowser. a very small web browser, using on QTextBrowser for html display/parsing |
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 <qpe/resource.h> | 17 | #include <qpe/resource.h> |
18 | #include <qpe/qpetoolbar.h> | 18 | #include <qpe/qpetoolbar.h> |
19 | #include <qpe/applnk.h> | 19 | #include <qpe/applnk.h> |
20 | 20 | ||
21 | #include <qapplication.h> | 21 | #include <qapplication.h> |
22 | #include <qmainwindow.h> | 22 | #include <qmainwindow.h> |
23 | #include <qwidget.h> | 23 | #include <qwidget.h> |
24 | #include <qtextbrowser.h> | 24 | #include <qtextbrowser.h> |
25 | #include <qtoolbutton.h> | 25 | #include <qtoolbutton.h> |
26 | #include <qcombobox.h> | 26 | #include <qcombobox.h> |
27 | #include <qlayout.h> | 27 | #include <qlayout.h> |
28 | #include <qlineedit.h> | 28 | #include <qlineedit.h> |
29 | #include <qdir.h> | 29 | #include <qdir.h> |
30 | 30 | ||
31 | #include <stdio.h> | 31 | #include <stdio.h> |
32 | 32 | ||
33 | #include "httpfactory.h" | 33 | #include "httpfactory.h" |
34 | 34 | ||
35 | class MainView : public QMainWindow | 35 | class MainView : public QMainWindow |
36 | { | 36 | { |
37 | Q_OBJECT | 37 | Q_OBJECT |
38 | public: | 38 | public: |
39 | MainView(QWidget *parent=0, const char *name=0); | 39 | static QString appName() { return QString::fromLatin1("ubrowser"); } |
40 | MainView(QWidget *parent=0, const char *name=0, WFlags fl = 0); | ||
40 | public slots: | 41 | public slots: |
41 | void goClicked(); | 42 | void goClicked(); |
42 | void textChanged(); | 43 | void textChanged(); |
43 | void setDocument( const QString& applnk_filename ); | 44 | void setDocument( const QString& applnk_filename ); |
44 | private: | 45 | private: |
45 | QToolButton *back; | 46 | QToolButton *back; |
46 | QToolButton *forward; | 47 | QToolButton *forward; |
47 | QToolButton *home; | 48 | QToolButton *home; |
48 | QToolButton *go; | 49 | QToolButton *go; |
49 | QComboBox *location; | 50 | QComboBox *location; |
50 | QTextBrowser *browser; | 51 | QTextBrowser *browser; |
51 | HttpFactory *http; | 52 | HttpFactory *http; |
52 | }; | 53 | }; |
diff --git a/noncore/net/ubrowser/ubrowser.pro b/noncore/net/ubrowser/ubrowser.pro index a6943dd..ed00047 100644 --- a/noncore/net/ubrowser/ubrowser.pro +++ b/noncore/net/ubrowser/ubrowser.pro | |||
@@ -1,13 +1,11 @@ | |||
1 | TEMPLATE=app | 1 | CONFIG +=qt warn_on release quick-app |
2 | CONFIG +=qt warn_on release | ||
3 | DESTDIR =../../../bin | ||
4 | HEADERS = mainview.h httpfactory.h | 2 | HEADERS = mainview.h httpfactory.h |
5 | SOURCES = main.cpp mainview.cpp httpfactory.cpp | 3 | SOURCES = main.cpp mainview.cpp httpfactory.cpp |
6 | INCLUDEPATH+=../../../include | 4 | INCLUDEPATH+=../../../include |
7 | DEPENDPATH+=../../../include | 5 | DEPENDPATH+=../../../include |
8 | LIBS += -lqpe | 6 | LIBS += -lqpe |
9 | TARGET = ubrowser | 7 | TARGET = ubrowser |
10 | 8 | ||
11 | 9 | ||
12 | 10 | ||
13 | include ( $(OPIEDIR)/include.pro ) | 11 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/unsupported/mailit/emailclient.cpp b/noncore/unsupported/mailit/emailclient.cpp index 90664bb..8359acf 100644 --- a/noncore/unsupported/mailit/emailclient.cpp +++ b/noncore/unsupported/mailit/emailclient.cpp | |||
@@ -1,1042 +1,1042 @@ | |||
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(), "No account selected", "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 | } |
320 | 320 | ||
321 | void EmailClient::getNewMail() { | 321 | void EmailClient::getNewMail() { |
322 | 322 | ||
323 | if (accountList.count() == 0) { | 323 | if (accountList.count() == 0) { |
324 | QMessageBox::warning(qApp->activeWindow(),"No account selected", | 324 | QMessageBox::warning(qApp->activeWindow(),tr("No account selected"), |
325 | "You must create an account", "OK\n"); | 325 | tr("You must create an account"), "OK\n"); |
326 | return; | 326 | return; |
327 | } | 327 | } |
328 | 328 | ||
329 | setMailAccount(); | 329 | setMailAccount(); |
330 | 330 | ||
331 | receiving = TRUE; | 331 | receiving = TRUE; |
332 | previewingMail = TRUE; | 332 | previewingMail = TRUE; |
333 | getMailButton->setEnabled(FALSE); | 333 | getMailButton->setEnabled(FALSE); |
334 | cancelButton->setEnabled(TRUE); | 334 | cancelButton->setEnabled(TRUE); |
335 | selectAccountMenu->setEnabled(FALSE); | 335 | selectAccountMenu->setEnabled(FALSE); |
336 | 336 | ||
337 | status1Label->setText(currentAccount->accountName + " headers"); | 337 | status1Label->setText(currentAccount->accountName + " headers"); |
338 | progressBar->reset(); | 338 | progressBar->reset(); |
339 | 339 | ||
340 | //get any previous mails not downloaded and add to queue | 340 | //get any previous mails not downloaded and add to queue |
341 | /*mailDownloadList.clear(); | 341 | /*mailDownloadList.clear(); |
342 | Email *mailPtr; | 342 | Email *mailPtr; |
343 | item = (EmailListItem *) inboxView->firstChild(); | 343 | item = (EmailListItem *) inboxView->firstChild(); |
344 | while (item != NULL) { | 344 | while (item != NULL) { |
345 | mailPtr = item->getMail(); | 345 | mailPtr = item->getMail(); |
346 | if ( (!mailPtr->downloaded) && (mailPtr->fromAccountId == currentAccount->id) ) { | 346 | if ( (!mailPtr->downloaded) && (mailPtr->fromAccountId == currentAccount->id) ) { |
347 | mailDownloadList.sizeInsert(mailPtr->serverId, mailPtr->size); | 347 | mailDownloadList.sizeInsert(mailPtr->serverId, mailPtr->size); |
348 | } | 348 | } |
349 | item = (EmailListItem *) item->nextSibling(); | 349 | item = (EmailListItem *) item->nextSibling(); |
350 | }*/ | 350 | }*/ |
351 | 351 | ||
352 | emailHandler->getMailHeaders(); | 352 | emailHandler->getMailHeaders(); |
353 | 353 | ||
354 | } | 354 | } |
355 | 355 | ||
356 | void EmailClient::getAllNewMail() | 356 | void EmailClient::getAllNewMail() |
357 | { | 357 | { |
358 | allAccounts = TRUE; | 358 | allAccounts = TRUE; |
359 | currentAccount = accountList.first(); | 359 | currentAccount = accountList.first(); |
360 | getNewMail(); | 360 | getNewMail(); |
361 | } | 361 | } |
362 | 362 | ||
363 | void EmailClient::mailArrived(const Email &mail, bool fromDisk) | 363 | void EmailClient::mailArrived(const Email &mail, bool fromDisk) |
364 | { | 364 | { |
365 | Enclosure *ePtr; | 365 | Enclosure *ePtr; |
366 | Email newMail; | 366 | Email newMail; |
367 | int thisMailId; | 367 | int thisMailId; |
368 | emailHandler->parse( mail.rawMail, lineShift, &newMail); | 368 | emailHandler->parse( mail.rawMail, lineShift, &newMail); |
369 | mailconf->setGroup(newMail.id); | 369 | mailconf->setGroup(newMail.id); |
370 | 370 | ||
371 | if (fromDisk) | 371 | if (fromDisk) |
372 | { | 372 | { |
373 | 373 | ||
374 | newMail.downloaded = mailconf->readBoolEntry("downloaded"); | 374 | newMail.downloaded = mailconf->readBoolEntry("downloaded"); |
375 | newMail.size = mailconf->readNumEntry("size"); | 375 | newMail.size = mailconf->readNumEntry("size"); |
376 | newMail.serverId = mailconf->readNumEntry("serverid"); | 376 | newMail.serverId = mailconf->readNumEntry("serverid"); |
377 | newMail.fromAccountId = mailconf->readNumEntry("fromaccountid"); | 377 | newMail.fromAccountId = mailconf->readNumEntry("fromaccountid"); |
378 | } | 378 | } |
379 | else | 379 | else |
380 | { //mail arrived from server | 380 | { //mail arrived from server |
381 | 381 | ||
382 | newMail.serverId = mail.serverId; | 382 | newMail.serverId = mail.serverId; |
383 | newMail.size = mail.size; | 383 | newMail.size = mail.size; |
384 | newMail.downloaded = mail.downloaded; | 384 | newMail.downloaded = mail.downloaded; |
385 | 385 | ||
386 | newMail.fromAccountId = emailHandler->getAccount()->id; | 386 | newMail.fromAccountId = emailHandler->getAccount()->id; |
387 | mailconf->writeEntry("fromaccountid", newMail.fromAccountId); | 387 | mailconf->writeEntry("fromaccountid", newMail.fromAccountId); |
388 | } | 388 | } |
389 | 389 | ||
390 | //add if read or not | 390 | //add if read or not |
391 | newMail.read = mailconf->readBoolEntry("mailread"); | 391 | newMail.read = mailconf->readBoolEntry("mailread"); |
392 | 392 | ||
393 | //check if new mail | 393 | //check if new mail |
394 | if ( (thisMailId = mailconf->readNumEntry("internalmailid", -1)) == -1) { | 394 | if ( (thisMailId = mailconf->readNumEntry("internalmailid", -1)) == -1) { |
395 | thisMailId = mailIdCount; | 395 | thisMailId = mailIdCount; |
396 | mailIdCount++; | 396 | mailIdCount++; |
397 | 397 | ||
398 | //set server count, so that if the user aborts, the new | 398 | //set server count, so that if the user aborts, the new |
399 | //header is not reloaded | 399 | //header is not reloaded |
400 | if ((currentAccount)&&(currentAccount->synchronize)) | 400 | if ((currentAccount)&&(currentAccount->synchronize)) |
401 | currentAccount->lastServerMailCount++; | 401 | currentAccount->lastServerMailCount++; |
402 | 402 | ||
403 | mailconf->writeEntry("internalmailid", thisMailId); | 403 | mailconf->writeEntry("internalmailid", thisMailId); |
404 | mailconf->writeEntry("downloaded", newMail.downloaded); | 404 | mailconf->writeEntry("downloaded", newMail.downloaded); |
405 | mailconf->writeEntry("size", (int) newMail.size); | 405 | mailconf->writeEntry("size", (int) newMail.size); |
406 | mailconf->writeEntry("serverid", newMail.serverId); | 406 | mailconf->writeEntry("serverid", newMail.serverId); |
407 | 407 | ||
408 | //addressList->addContact(newMail.fromMail, newMail.from); | 408 | //addressList->addContact(newMail.fromMail, newMail.from); |
409 | } | 409 | } |
410 | 410 | ||
411 | mailconf->writeEntry("downloaded", newMail.downloaded); | 411 | mailconf->writeEntry("downloaded", newMail.downloaded); |
412 | 412 | ||
413 | QString stringMailId; | 413 | QString stringMailId; |
414 | stringMailId.setNum(thisMailId); | 414 | stringMailId.setNum(thisMailId); |
415 | //see if any attatchments needs to be stored | 415 | //see if any attatchments needs to be stored |
416 | 416 | ||
417 | for ( ePtr=newMail.files.first(); ePtr != 0; ePtr=newMail.files.next() ) { | 417 | for ( ePtr=newMail.files.first(); ePtr != 0; ePtr=newMail.files.next() ) { |
418 | QString stringId; | 418 | QString stringId; |
419 | stringId.setNum(ePtr->id); | 419 | stringId.setNum(ePtr->id); |
420 | 420 | ||
421 | int id = mailconf->readNumEntry("enclosureid_" + stringId); | 421 | int id = mailconf->readNumEntry("enclosureid_" + stringId); |
422 | if (id != ePtr->id) { //new entry | 422 | if (id != ePtr->id) { //new entry |
423 | mailconf->writeEntry("enclosureid_" + stringId, ePtr->id); | 423 | mailconf->writeEntry("enclosureid_" + stringId, ePtr->id); |
424 | mailconf->writeEntry("name_" + stringId, ePtr->originalName); | 424 | mailconf->writeEntry("name_" + stringId, ePtr->originalName); |
425 | mailconf->writeEntry("contenttype_" + stringId, ePtr->contentType); | 425 | mailconf->writeEntry("contenttype_" + stringId, ePtr->contentType); |
426 | mailconf->writeEntry("contentattribute_" + stringId, ePtr->contentAttribute); | 426 | mailconf->writeEntry("contentattribute_" + stringId, ePtr->contentAttribute); |
427 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); | 427 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); |
428 | mailconf->writeEntry("installed_" + stringId, FALSE); | 428 | mailconf->writeEntry("installed_" + stringId, FALSE); |
429 | 429 | ||
430 | ePtr->name = stringMailId + "_" + stringId; | 430 | ePtr->name = stringMailId + "_" + stringId; |
431 | ePtr->path = getPath(TRUE); | 431 | ePtr->path = getPath(TRUE); |
432 | if (emailHandler->getEnclosure(ePtr)) { //file saved | 432 | if (emailHandler->getEnclosure(ePtr)) { //file saved |
433 | ePtr->saved = TRUE; | 433 | ePtr->saved = TRUE; |
434 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); | 434 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); |
435 | mailconf->writeEntry("filename_" + stringId, ePtr->name); | 435 | mailconf->writeEntry("filename_" + stringId, ePtr->name); |
436 | mailconf->writeEntry("path_" + stringId, ePtr->path); | 436 | mailconf->writeEntry("path_" + stringId, ePtr->path); |
437 | } else { | 437 | } else { |
438 | ePtr->saved = FALSE; | 438 | ePtr->saved = FALSE; |
439 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); | 439 | mailconf->writeEntry("saved_" + stringId, ePtr->saved); |
440 | } | 440 | } |
441 | } else { | 441 | } else { |
442 | ePtr->saved = mailconf->readBoolEntry("saved_" + stringId); | 442 | ePtr->saved = mailconf->readBoolEntry("saved_" + stringId); |
443 | ePtr->installed = mailconf->readBoolEntry("installed_" + stringId); | 443 | ePtr->installed = mailconf->readBoolEntry("installed_" + stringId); |
444 | if (ePtr->saved) { | 444 | if (ePtr->saved) { |
445 | ePtr->name = mailconf->readEntry("filename_" + stringId); | 445 | ePtr->name = mailconf->readEntry("filename_" + stringId); |
446 | ePtr->path = mailconf->readEntry("path_" + stringId); | 446 | ePtr->path = mailconf->readEntry("path_" + stringId); |
447 | } | 447 | } |
448 | } | 448 | } |
449 | } | 449 | } |
450 | 450 | ||
451 | bool found=false; | 451 | bool found=false; |
452 | 452 | ||
453 | if (!fromDisk) | 453 | if (!fromDisk) |
454 | { | 454 | { |
455 | 455 | ||
456 | Email *mailPtr; | 456 | Email *mailPtr; |
457 | item = (EmailListItem *) inboxView->firstChild(); | 457 | item = (EmailListItem *) inboxView->firstChild(); |
458 | while ((item != NULL)&&(!found)) | 458 | while ((item != NULL)&&(!found)) |
459 | { | 459 | { |
460 | mailPtr = item->getMail(); | 460 | mailPtr = item->getMail(); |
461 | if (mailPtr->id == newMail.id) { | 461 | if (mailPtr->id == newMail.id) { |
462 | item->setMail(newMail); | 462 | item->setMail(newMail); |
463 | emit mailUpdated(item->getMail()); | 463 | emit mailUpdated(item->getMail()); |
464 | found = true; | 464 | found = true; |
465 | } | 465 | } |
466 | item = (EmailListItem *) item->nextSibling(); | 466 | item = (EmailListItem *) item->nextSibling(); |
467 | } | 467 | } |
468 | } | 468 | } |
469 | if ((!found)||(fromDisk)) { | 469 | if ((!found)||(fromDisk)) { |
470 | item = new EmailListItem(inboxView, newMail, TRUE); | 470 | item = new EmailListItem(inboxView, newMail, TRUE); |
471 | } | 471 | } |
472 | // if (item->getMail()->files.count()>0) | 472 | // if (item->getMail()->files.count()>0) |
473 | // { | 473 | // { |
474 | // item->setPixmap(0, Resource::loadPixmap("mailit/attach")); | 474 | // item->setPixmap(0, Resource::loadPixmap("mailit/attach")); |
475 | // } | 475 | // } |
476 | /*if (!newMail.downloaded) | 476 | /*if (!newMail.downloaded) |
477 | mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ | 477 | mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ |
478 | 478 | ||
479 | mailboxView->setCurrentTab(0); | 479 | mailboxView->setCurrentTab(0); |
480 | 480 | ||
481 | } | 481 | } |
482 | 482 | ||
483 | void EmailClient::allMailArrived(int /*count*/) | 483 | void EmailClient::allMailArrived(int /*count*/) |
484 | { | 484 | { |
485 | // not previewing means all mailtransfer has been done | 485 | // not previewing means all mailtransfer has been done |
486 | /*if (!previewingMail) {*/ | 486 | /*if (!previewingMail) {*/ |
487 | if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { | 487 | if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { |
488 | emit newCaption("Mailit - " + currentAccount->accountName); | 488 | emit newCaption("Mailit - " + currentAccount->accountName); |
489 | getNewMail(); | 489 | getNewMail(); |
490 | return; | 490 | return; |
491 | } else { | 491 | } else { |
492 | allAccounts = FALSE; | 492 | allAccounts = FALSE; |
493 | receiving = FALSE; | 493 | receiving = FALSE; |
494 | getMailButton->setEnabled(TRUE); | 494 | getMailButton->setEnabled(TRUE); |
495 | cancelButton->setEnabled(FALSE); | 495 | cancelButton->setEnabled(FALSE); |
496 | selectAccountMenu->setEnabled(TRUE); | 496 | selectAccountMenu->setEnabled(TRUE); |
497 | status1Label->setText("Idle"); | 497 | status1Label->setText("Idle"); |
498 | 498 | ||
499 | progressBar->reset(); | 499 | progressBar->reset(); |
500 | return; | 500 | return; |
501 | } | 501 | } |
502 | //} | 502 | //} |
503 | 503 | ||
504 | // all headers downloaded from server, start downloading remaining mails | 504 | // all headers downloaded from server, start downloading remaining mails |
505 | previewingMail = FALSE; | 505 | previewingMail = FALSE; |
506 | status1Label->setText(currentAccount->accountName); | 506 | status1Label->setText(currentAccount->accountName); |
507 | progressBar->reset(); | 507 | progressBar->reset(); |
508 | 508 | ||
509 | 509 | ||
510 | mailboxView->setCurrentTab(0); | 510 | mailboxView->setCurrentTab(0); |
511 | } | 511 | } |
512 | 512 | ||
513 | 513 | ||
514 | void EmailClient::moveMailFront(Email *mailPtr) | 514 | void EmailClient::moveMailFront(Email *mailPtr) |
515 | { | 515 | { |
516 | if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) { | 516 | if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) { |
517 | mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size); | 517 | mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size); |
518 | } | 518 | } |
519 | } | 519 | } |
520 | 520 | ||
521 | void EmailClient::smtpError(int code, const QString & Msg) | 521 | void EmailClient::smtpError(int code, const QString & Msg) |
522 | { | 522 | { |
523 | QString temp; | 523 | QString temp; |
524 | 524 | ||
525 | if (code == ErrUnknownResponse) { | 525 | if (code == ErrUnknownResponse) { |
526 | temp = tr("<qt>Unknown response from server</qt>"); | 526 | temp = tr("<qt>Unknown response from server</qt>"); |
527 | if( ! Msg.isEmpty() ) | 527 | if( ! Msg.isEmpty() ) |
528 | temp += Msg; | 528 | temp += Msg; |
529 | } else if (code == QSocket::ErrHostNotFound) { | 529 | } else if (code == QSocket::ErrHostNotFound) { |
530 | temp = tr("<qt>host not found</qt>"); | 530 | temp = tr("<qt>host not found</qt>"); |
531 | } else if (code == QSocket::ErrConnectionRefused) { | 531 | } else if (code == QSocket::ErrConnectionRefused) { |
532 | temp = tr("<qt>connection refused</qt>"); | 532 | temp = tr("<qt>connection refused</qt>"); |
533 | } else if (code == QSocket::ErrSocketRead) { | 533 | } else if (code == QSocket::ErrSocketRead) { |
534 | temp = tr("<qt>socket packet error</qt>"); | 534 | temp = tr("<qt>socket packet error</qt>"); |
535 | } | 535 | } |
536 | 536 | ||
537 | if (code != ErrCancel) { | 537 | if (code != ErrCancel) { |
538 | QMessageBox::warning(qApp->activeWindow(), "Sending error", temp, "OK\n"); | 538 | QMessageBox::warning(qApp->activeWindow(), "Sending error", temp, "OK\n"); |
539 | } else { | 539 | } else { |
540 | status2Label->setText("Aborted by user"); | 540 | status2Label->setText("Aborted by user"); |
541 | } | 541 | } |
542 | 542 | ||
543 | sending = FALSE; | 543 | sending = FALSE; |
544 | sendMailButton->setEnabled(TRUE); | 544 | sendMailButton->setEnabled(TRUE); |
545 | cancelButton->setEnabled(FALSE); | 545 | cancelButton->setEnabled(FALSE); |
546 | quedMessages.clear(); | 546 | quedMessages.clear(); |
547 | } | 547 | } |
548 | 548 | ||
549 | void EmailClient::popError(int code, const QString & Msg) | 549 | void EmailClient::popError(int code, const QString & Msg) |
550 | { | 550 | { |
551 | QString temp; | 551 | QString temp; |
552 | 552 | ||
553 | if (code == ErrUnknownResponse) { | 553 | if (code == ErrUnknownResponse) { |
554 | temp = tr("<qt>Unknown response from server</qt>"); | 554 | temp = tr("<qt>Unknown response from server</qt>"); |
555 | if( ! Msg.isEmpty() ) | 555 | if( ! Msg.isEmpty() ) |
556 | temp += Msg; | 556 | temp += Msg; |
557 | } else if (code == ErrLoginFailed) { | 557 | } else if (code == ErrLoginFailed) { |
558 | temp = tr("<qt>Login failed\nCheck user name and password</qt>"); | 558 | temp = tr("<qt>Login failed\nCheck user name and password</qt>"); |
559 | } else if (code == QSocket::ErrHostNotFound) { | 559 | } else if (code == QSocket::ErrHostNotFound) { |
560 | temp = tr("<qt>host not found</qt>"); | 560 | temp = tr("<qt>host not found</qt>"); |
561 | } else if (code == QSocket::ErrConnectionRefused) { | 561 | } else if (code == QSocket::ErrConnectionRefused) { |
562 | temp = tr("<qt>connection refused</qt>"); | 562 | temp = tr("<qt>connection refused</qt>"); |
563 | } else if (code == QSocket::ErrSocketRead) { | 563 | } else if (code == QSocket::ErrSocketRead) { |
564 | temp = tr("<qt>socket packet error</qt>"); | 564 | temp = tr("<qt>socket packet error</qt>"); |
565 | } | 565 | } |
566 | 566 | ||
567 | if (code != ErrCancel) { | 567 | if (code != ErrCancel) { |
568 | QMessageBox::warning(qApp->activeWindow(), tr("Receiving error"), temp, tr("OK\n")); | 568 | QMessageBox::warning(qApp->activeWindow(), tr("Receiving error"), temp, tr("OK\n")); |
569 | 569 | ||
570 | } else { | 570 | } else { |
571 | status2Label->setText("Aborted by user"); | 571 | status2Label->setText("Aborted by user"); |
572 | } | 572 | } |
573 | 573 | ||
574 | receiving = FALSE; | 574 | receiving = FALSE; |
575 | getMailButton->setEnabled(TRUE); | 575 | getMailButton->setEnabled(TRUE); |
576 | cancelButton->setEnabled(FALSE); | 576 | cancelButton->setEnabled(FALSE); |
577 | selectAccountMenu->setEnabled(TRUE); | 577 | selectAccountMenu->setEnabled(TRUE); |
578 | } | 578 | } |
579 | 579 | ||
580 | void EmailClient::inboxItemSelected() | 580 | void EmailClient::inboxItemSelected() |
581 | { | 581 | { |
582 | //killTimer(timerID); | 582 | //killTimer(timerID); |
583 | 583 | ||
584 | item = (EmailListItem*) inboxView->selectedItem(); | 584 | item = (EmailListItem*) inboxView->selectedItem(); |
585 | if (item != NULL) { | 585 | if (item != NULL) { |
586 | emit viewEmail(inboxView, item->getMail()); | 586 | emit viewEmail(inboxView, item->getMail()); |
587 | } | 587 | } |
588 | } | 588 | } |
589 | 589 | ||
590 | void EmailClient::outboxItemSelected() | 590 | void EmailClient::outboxItemSelected() |
591 | { | 591 | { |
592 | //killTimer(timerID); | 592 | //killTimer(timerID); |
593 | 593 | ||
594 | item = (EmailListItem*) outboxView->selectedItem(); | 594 | item = (EmailListItem*) outboxView->selectedItem(); |
595 | if (item != NULL) { | 595 | if (item != NULL) { |
596 | emit viewEmail(outboxView, item->getMail()); | 596 | emit viewEmail(outboxView, item->getMail()); |
597 | } | 597 | } |
598 | 598 | ||
599 | } | 599 | } |
600 | 600 | ||
601 | void EmailClient::readMail() | 601 | void EmailClient::readMail() |
602 | { | 602 | { |
603 | Email mail; | 603 | Email mail; |
604 | int start, stop; | 604 | int start, stop; |
605 | QString s, del; | 605 | QString s, del; |
606 | 606 | ||
607 | QFile f(getPath(FALSE) + "inbox.txt"); | 607 | QFile f(getPath(FALSE) + "inbox.txt"); |
608 | 608 | ||
609 | if ( f.open(IO_ReadOnly) ) { // file opened successfully | 609 | if ( f.open(IO_ReadOnly) ) { // file opened successfully |
610 | QTextStream t( &f ); // use a text stream | 610 | QTextStream t( &f ); // use a text stream |
611 | s = t.read(); | 611 | s = t.read(); |
612 | f.close(); | 612 | f.close(); |
613 | 613 | ||
614 | start = 0; | 614 | start = 0; |
615 | del = "\n.\n"; | 615 | del = "\n.\n"; |
616 | while ((uint) start < s.length()) { | 616 | while ((uint) start < s.length()) { |
617 | stop = s.find(del, start); | 617 | stop = s.find(del, start); |
618 | if (stop == -1) | 618 | if (stop == -1) |
619 | stop = s.length() - del.length(); | 619 | stop = s.length() - del.length(); |
620 | 620 | ||
621 | mail.rawMail = s.mid(start, stop + del.length() - start ); | 621 | mail.rawMail = s.mid(start, stop + del.length() - start ); |
622 | start = stop + del.length(); | 622 | start = stop + del.length(); |
623 | mailArrived(mail, TRUE); | 623 | mailArrived(mail, TRUE); |
624 | } | 624 | } |
625 | } | 625 | } |
626 | 626 | ||
627 | QFile fo(getPath(FALSE) + "outbox.txt"); | 627 | QFile fo(getPath(FALSE) + "outbox.txt"); |
628 | if ( fo.open(IO_ReadOnly) ) { // file opened successfully | 628 | if ( fo.open(IO_ReadOnly) ) { // file opened successfully |
629 | QTextStream t( &fo ); // use a text stream | 629 | QTextStream t( &fo ); // use a text stream |
630 | s = t.read(); | 630 | s = t.read(); |
631 | fo.close(); | 631 | fo.close(); |
632 | 632 | ||
633 | start = 0; | 633 | start = 0; |
634 | del = "\n.\n"; | 634 | del = "\n.\n"; |
635 | while ((uint) start < s.length()) { | 635 | while ((uint) start < s.length()) { |
636 | stop = s.find(del, start); | 636 | stop = s.find(del, start); |
637 | if (stop == -1) | 637 | if (stop == -1) |
638 | stop = s.length() - del.length(); | 638 | stop = s.length() - del.length(); |
639 | 639 | ||
640 | mail.rawMail = s.mid(start, stop + del.length() - start ); | 640 | mail.rawMail = s.mid(start, stop + del.length() - start ); |
641 | start = stop + del.length(); | 641 | start = stop + del.length(); |
642 | emailHandler->parse(mail.rawMail, lineShift, &mail); | 642 | emailHandler->parse(mail.rawMail, lineShift, &mail); |
643 | mail.sent = false; | 643 | mail.sent = false; |
644 | mail.received = false; | 644 | mail.received = false; |
645 | enqueMail(mail); | 645 | enqueMail(mail); |
646 | 646 | ||
647 | } | 647 | } |
648 | } | 648 | } |
649 | } | 649 | } |
650 | 650 | ||
651 | void EmailClient::saveMail(const QString &fileName, QListView *view) | 651 | void EmailClient::saveMail(const QString &fileName, QListView *view) |
652 | { | 652 | { |
653 | QFile f(fileName); | 653 | QFile f(fileName); |
654 | Email *mail; | 654 | Email *mail; |
655 | 655 | ||
656 | if (! f.open(IO_WriteOnly) ) { | 656 | if (! f.open(IO_WriteOnly) ) { |
657 | qWarning("could not open file"); | 657 | qWarning("could not open file"); |
658 | return; | 658 | return; |
659 | } | 659 | } |
660 | item = (EmailListItem *) view->firstChild(); | 660 | item = (EmailListItem *) view->firstChild(); |
661 | QTextStream t(&f); | 661 | QTextStream t(&f); |
662 | while (item != NULL) { | 662 | while (item != NULL) { |
663 | mail = item->getMail(); | 663 | mail = item->getMail(); |
664 | t << mail->rawMail; | 664 | t << mail->rawMail; |
665 | 665 | ||
666 | mailconf->setGroup(mail->id); | 666 | mailconf->setGroup(mail->id); |
667 | mailconf->writeEntry("mailread", mail->read); | 667 | mailconf->writeEntry("mailread", mail->read); |
668 | 668 | ||
669 | item = (EmailListItem *) item->nextSibling(); | 669 | item = (EmailListItem *) item->nextSibling(); |
670 | } | 670 | } |
671 | f.close(); | 671 | f.close(); |
672 | } | 672 | } |
673 | 673 | ||
674 | //paths for mailit, is settings, inbox, enclosures | 674 | //paths for mailit, is settings, inbox, enclosures |
675 | QString EmailClient::getPath(bool enclosurePath) | 675 | QString EmailClient::getPath(bool enclosurePath) |
676 | { | 676 | { |
677 | QString basePath = "qtmail"; | 677 | QString basePath = "qtmail"; |
678 | QString enclosures = "enclosures"; | 678 | QString enclosures = "enclosures"; |
679 | 679 | ||
680 | QDir dir = (QString(getenv("HOME")) + "/Applications/" + basePath); | 680 | QDir dir = (QString(getenv("HOME")) + "/Applications/" + basePath); |
681 | if ( !dir.exists() ) | 681 | if ( !dir.exists() ) |
682 | dir.mkdir( dir.path() ); | 682 | dir.mkdir( dir.path() ); |
683 | 683 | ||
684 | if (enclosurePath) { | 684 | if (enclosurePath) { |
685 | dir = (QString(getenv("HOME")) + "/Applications/" + basePath + "/" + enclosures); | 685 | dir = (QString(getenv("HOME")) + "/Applications/" + basePath + "/" + enclosures); |
686 | 686 | ||
687 | if ( !dir.exists() ) | 687 | if ( !dir.exists() ) |
688 | dir.mkdir( dir.path() ); | 688 | dir.mkdir( dir.path() ); |
689 | 689 | ||
690 | return (dir.path() + "/"); | 690 | return (dir.path() + "/"); |
691 | 691 | ||
692 | } | 692 | } |
693 | return (dir.path() + "/"); | 693 | return (dir.path() + "/"); |
694 | } | 694 | } |
695 | 695 | ||
696 | void EmailClient::readSettings() | 696 | void EmailClient::readSettings() |
697 | { | 697 | { |
698 | int y,acc_count; | 698 | int y,acc_count; |
699 | 699 | ||
700 | mailconf->setGroup("mailitglobal"); | 700 | mailconf->setGroup("mailitglobal"); |
701 | acc_count=mailconf->readNumEntry("Accounts",0); | 701 | acc_count=mailconf->readNumEntry("Accounts",0); |
702 | 702 | ||
703 | for (int accountPos = 0;accountPos<acc_count ; accountPos++) | 703 | for (int accountPos = 0;accountPos<acc_count ; accountPos++) |
704 | { | 704 | { |
705 | mailconf->setGroup("Account_"+QString::number(accountPos+1)); //Account numbers start at 1 ... | 705 | mailconf->setGroup("Account_"+QString::number(accountPos+1)); //Account numbers start at 1 ... |
706 | account.accountName = mailconf->readEntry("AccName",""); | 706 | account.accountName = mailconf->readEntry("AccName",""); |
707 | account.name = mailconf->readEntry("UserName",""); | 707 | account.name = mailconf->readEntry("UserName",""); |
708 | account.emailAddress = mailconf->readEntry("Email",""); | 708 | account.emailAddress = mailconf->readEntry("Email",""); |
709 | account.popUserName = mailconf->readEntry("POPUser",""); | 709 | account.popUserName = mailconf->readEntry("POPUser",""); |
710 | account.popPasswd = mailconf->readEntryCrypt("POPPassword",""); | 710 | account.popPasswd = mailconf->readEntryCrypt("POPPassword",""); |
711 | account.popServer = mailconf->readEntry("POPServer",""); | 711 | account.popServer = mailconf->readEntry("POPServer",""); |
712 | account.smtpServer = mailconf->readEntry("SMTPServer",""); | 712 | account.smtpServer = mailconf->readEntry("SMTPServer",""); |
713 | account.id = mailconf->readNumEntry("AccountId",0); | 713 | account.id = mailconf->readNumEntry("AccountId",0); |
714 | account.syncLimit = mailconf->readNumEntry("HeaderLimit",0); | 714 | account.syncLimit = mailconf->readNumEntry("HeaderLimit",0); |
715 | account.lastServerMailCount = 0; | 715 | account.lastServerMailCount = 0; |
716 | account.synchronize = FALSE; | 716 | account.synchronize = FALSE; |
717 | 717 | ||
718 | account.synchronize = (mailconf->readEntry("Synchronize","No")=="Yes"); | 718 | account.synchronize = (mailconf->readEntry("Synchronize","No")=="Yes"); |
719 | if (account.synchronize) | 719 | if (account.synchronize) |
720 | { | 720 | { |
721 | mailconf->readNumEntry("LASTSERVERMAILCOUNT",0); | 721 | mailconf->readNumEntry("LASTSERVERMAILCOUNT",0); |
722 | } | 722 | } |
723 | 723 | ||
724 | accountList.append(&account); | 724 | accountList.append(&account); |
725 | } | 725 | } |
726 | 726 | ||
727 | mailconf->setGroup("mailitglobal"); | 727 | mailconf->setGroup("mailitglobal"); |
728 | 728 | ||
729 | if ( (y = mailconf->readNumEntry("mailidcount", -1)) != -1) | 729 | if ( (y = mailconf->readNumEntry("mailidcount", -1)) != -1) |
730 | { | 730 | { |
731 | mailIdCount = y; | 731 | mailIdCount = y; |
732 | } | 732 | } |
733 | if ( (y = mailconf->readNumEntry("accountidcount", -1)) != -1) | 733 | if ( (y = mailconf->readNumEntry("accountidcount", -1)) != -1) |
734 | { | 734 | { |
735 | accountIdCount = y; | 735 | accountIdCount = y; |
736 | } | 736 | } |
737 | } | 737 | } |
738 | 738 | ||
739 | void EmailClient::saveSettings() | 739 | void EmailClient::saveSettings() |
740 | { | 740 | { |
741 | int acc_count=0; | 741 | int acc_count=0; |
742 | MailAccount *accountPtr; | 742 | MailAccount *accountPtr; |
743 | 743 | ||
744 | 744 | ||
745 | if (!mailconf) | 745 | if (!mailconf) |
746 | { | 746 | { |
747 | qWarning("could not save settings"); | 747 | qWarning("could not save settings"); |
748 | return; | 748 | return; |
749 | } | 749 | } |
750 | 750 | ||
751 | for (accountPtr = accountList.first(); accountPtr != 0; | 751 | for (accountPtr = accountList.first(); accountPtr != 0; |
752 | accountPtr = accountList.next()) | 752 | accountPtr = accountList.next()) |
753 | { | 753 | { |
754 | mailconf->setGroup("Account_"+QString::number(++acc_count)); | 754 | mailconf->setGroup("Account_"+QString::number(++acc_count)); |
755 | mailconf->writeEntry("AccName",accountPtr->accountName ); | 755 | mailconf->writeEntry("AccName",accountPtr->accountName ); |
756 | mailconf->writeEntry("UserName",accountPtr->name); | 756 | mailconf->writeEntry("UserName",accountPtr->name); |
757 | mailconf->writeEntry("Email",accountPtr->emailAddress); | 757 | mailconf->writeEntry("Email",accountPtr->emailAddress); |
758 | mailconf->writeEntry("POPUser",accountPtr->popUserName); | 758 | mailconf->writeEntry("POPUser",accountPtr->popUserName); |
759 | mailconf->writeEntryCrypt("POPPassword",accountPtr->popPasswd); | 759 | mailconf->writeEntryCrypt("POPPassword",accountPtr->popPasswd); |
760 | mailconf->writeEntry("POPServer",accountPtr->popServer); | 760 | mailconf->writeEntry("POPServer",accountPtr->popServer); |
761 | mailconf->writeEntry("SMTPServer",accountPtr->smtpServer); | 761 | mailconf->writeEntry("SMTPServer",accountPtr->smtpServer); |
762 | mailconf->writeEntry("AccountId",accountPtr->id); | 762 | mailconf->writeEntry("AccountId",accountPtr->id); |
763 | if (accountPtr->synchronize) | 763 | if (accountPtr->synchronize) |
764 | { | 764 | { |
765 | mailconf->writeEntry("Synchronize","Yes"); | 765 | mailconf->writeEntry("Synchronize","Yes"); |
766 | mailconf->writeEntry("HeaderLimit",accountPtr->syncLimit); | 766 | mailconf->writeEntry("HeaderLimit",accountPtr->syncLimit); |
767 | mailconf->writeEntry("LastServerMailCount",accountPtr->lastServerMailCount); | 767 | mailconf->writeEntry("LastServerMailCount",accountPtr->lastServerMailCount); |
768 | } | 768 | } |
769 | else | 769 | else |
770 | { | 770 | { |
771 | mailconf->writeEntry("Synchronize", "No"); | 771 | mailconf->writeEntry("Synchronize", "No"); |
772 | } | 772 | } |
773 | } | 773 | } |
774 | 774 | ||
775 | mailconf->setGroup("mailitglobal"); | 775 | mailconf->setGroup("mailitglobal"); |
776 | mailconf->writeEntry("Accounts",acc_count); | 776 | mailconf->writeEntry("Accounts",acc_count); |
777 | mailconf->writeEntry("mailidcount", mailIdCount); | 777 | mailconf->writeEntry("mailidcount", mailIdCount); |
778 | mailconf->writeEntry("accountidcount", accountIdCount); | 778 | mailconf->writeEntry("accountidcount", accountIdCount); |
779 | } | 779 | } |
780 | 780 | ||
781 | void EmailClient::selectAccount(int id) | 781 | void EmailClient::selectAccount(int id) |
782 | { | 782 | { |
783 | if (accountList.count() > 0) { | 783 | if (accountList.count() > 0) { |
784 | currentAccount = accountList.at(id); | 784 | currentAccount = accountList.at(id); |
785 | emit newCaption("Mailit - " + currentAccount->accountName); | 785 | emit newCaption("Mailit - " + currentAccount->accountName); |
786 | getNewMail(); | 786 | getNewMail(); |
787 | } else { | 787 | } else { |
788 | emit newCaption("Mailit ! No account defined"); | 788 | emit newCaption( tr("Mailit ! No account defined") ); |
789 | } | 789 | } |
790 | } | 790 | } |
791 | 791 | ||
792 | void EmailClient::editAccount(int id) | 792 | void EmailClient::editAccount(int id) |
793 | { | 793 | { |
794 | MailAccount *newAccount; | 794 | MailAccount *newAccount; |
795 | 795 | ||
796 | editAccountView = new EditAccount(this, "account", TRUE); | 796 | editAccountView = new EditAccount(this, "account", TRUE); |
797 | if (id == newAccountId) { //new account | 797 | if (id == newAccountId) { //new account |
798 | newAccount = new MailAccount; | 798 | newAccount = new MailAccount; |
799 | editAccountView->setAccount(newAccount); | 799 | editAccountView->setAccount(newAccount); |
800 | } else { | 800 | } else { |
801 | newAccount = accountList.at(id); | 801 | newAccount = accountList.at(id); |
802 | editAccountView->setAccount(newAccount, FALSE); | 802 | editAccountView->setAccount(newAccount, FALSE); |
803 | } | 803 | } |
804 | 804 | ||
805 | editAccountView->showMaximized(); | 805 | editAccountView->showMaximized(); |
806 | editAccountView->exec(); | 806 | editAccountView->exec(); |
807 | 807 | ||
808 | if (editAccountView->result() == QDialog::Accepted) { | 808 | if (editAccountView->result() == QDialog::Accepted) { |
809 | if (id == newAccountId) { | 809 | if (id == newAccountId) { |
810 | newAccount->id = accountIdCount; | 810 | newAccount->id = accountIdCount; |
811 | accountIdCount++; | 811 | accountIdCount++; |
812 | accountList.append(newAccount); | 812 | accountList.append(newAccount); |
813 | updateAccounts(); | 813 | updateAccounts(); |
814 | } else { | 814 | } else { |
815 | updateAccounts(); | 815 | updateAccounts(); |
816 | } | 816 | } |
817 | } | 817 | } |
818 | 818 | ||
819 | delete editAccountView; | 819 | delete editAccountView; |
820 | } | 820 | } |
821 | 821 | ||
822 | void EmailClient::deleteAccount(int id) | 822 | void EmailClient::deleteAccount(int id) |
823 | { | 823 | { |
824 | MailAccount *newAccount; | 824 | MailAccount *newAccount; |
825 | QString message; | 825 | QString message; |
826 | 826 | ||
827 | newAccount = accountList.at(id); | 827 | newAccount = accountList.at(id); |
828 | message = "Delete account:\n" + newAccount->accountName; | 828 | message = tr("Delete account:\n") + newAccount->accountName; |
829 | switch( QMessageBox::warning( this, "Mailit", message, | 829 | switch( QMessageBox::warning( this, "Mailit", message, |
830 | "Yes", "No", 0, 0, 1 ) ) { | 830 | "Yes", "No", 0, 0, 1 ) ) { |
831 | 831 | ||
832 | case 0: accountList.remove(id); | 832 | case 0: accountList.remove(id); |
833 | updateAccounts(); | 833 | updateAccounts(); |
834 | break; | 834 | break; |
835 | case 1: | 835 | case 1: |
836 | break; | 836 | break; |
837 | } | 837 | } |
838 | } | 838 | } |
839 | 839 | ||
840 | void EmailClient::updateAccounts() | 840 | void EmailClient::updateAccounts() |
841 | { | 841 | { |
842 | MailAccount *accountPtr; | 842 | MailAccount *accountPtr; |
843 | 843 | ||
844 | //rebuild menus, clear all first | 844 | //rebuild menus, clear all first |
845 | editAccountMenu->clear(); | 845 | editAccountMenu->clear(); |
846 | selectAccountMenu->clear(); | 846 | selectAccountMenu->clear(); |
847 | deleteAccountMenu->clear(); | 847 | deleteAccountMenu->clear(); |
848 | 848 | ||
849 | newAccountId = editAccountMenu->insertItem("New", this, | 849 | newAccountId = editAccountMenu->insertItem( tr("New"), this, |
850 | SLOT(editAccount(int)) ); | 850 | SLOT(editAccount(int)) ); |
851 | editAccountMenu->insertSeparator(); | 851 | editAccountMenu->insertSeparator(); |
852 | 852 | ||
853 | idCount = 0; | 853 | idCount = 0; |
854 | for (accountPtr = accountList.first(); accountPtr != 0; | 854 | for (accountPtr = accountList.first(); accountPtr != 0; |
855 | accountPtr = accountList.next()) { | 855 | accountPtr = accountList.next()) { |
856 | 856 | ||
857 | editAccountMenu->insertItem(accountPtr->accountName, | 857 | editAccountMenu->insertItem(accountPtr->accountName, |
858 | this, SLOT(editAccount(int)), 0, idCount); | 858 | this, SLOT(editAccount(int)), 0, idCount); |
859 | selectAccountMenu->insertItem(accountPtr->accountName, | 859 | selectAccountMenu->insertItem(accountPtr->accountName, |
860 | this, SLOT(selectAccount(int)), 0, idCount); | 860 | this, SLOT(selectAccount(int)), 0, idCount); |
861 | deleteAccountMenu->insertItem(accountPtr->accountName, | 861 | deleteAccountMenu->insertItem(accountPtr->accountName, |
862 | this, SLOT(deleteAccount(int)), 0, idCount); | 862 | this, SLOT(deleteAccount(int)), 0, idCount); |
863 | idCount++; | 863 | idCount++; |
864 | } | 864 | } |
865 | } | 865 | } |
866 | 866 | ||
867 | void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox) | 867 | void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox) |
868 | { | 868 | { |
869 | Email *mPtr; | 869 | Email *mPtr; |
870 | Enclosure *ePtr; | 870 | Enclosure *ePtr; |
871 | 871 | ||
872 | if (inbox) | 872 | if (inbox) |
873 | { | 873 | { |
874 | mPtr = mailItem->getMail(); | 874 | mPtr = mailItem->getMail(); |
875 | 875 | ||
876 | //if mail is in queue for download, remove it from | 876 | //if mail is in queue for download, remove it from |
877 | //queue if possible | 877 | //queue if possible |
878 | if ( (receiving) && (mPtr->fromAccountId == currentAccount->id) ) { | 878 | if ( (receiving) && (mPtr->fromAccountId == currentAccount->id) ) { |
879 | if ( !mPtr->downloaded ) | 879 | if ( !mPtr->downloaded ) |
880 | mailDownloadList.remove(mPtr->serverId, mPtr->size); | 880 | mailDownloadList.remove(mPtr->serverId, mPtr->size); |
881 | } | 881 | } |
882 | 882 | ||
883 | mailconf->setGroup(mPtr->id); | 883 | mailconf->setGroup(mPtr->id); |
884 | mailconf->clearGroup(); | 884 | mailconf->clearGroup(); |
885 | 885 | ||
886 | //delete any temporary attatchemnts storing | 886 | //delete any temporary attatchemnts storing |
887 | for ( ePtr=mPtr->files.first(); ePtr != 0; ePtr=mPtr->files.next() ) { | 887 | for ( ePtr=mPtr->files.first(); ePtr != 0; ePtr=mPtr->files.next() ) { |
888 | if (ePtr->saved) { | 888 | if (ePtr->saved) { |
889 | QFile::remove( (ePtr->path + ePtr->name) ); | 889 | QFile::remove( (ePtr->path + ePtr->name) ); |
890 | } | 890 | } |
891 | } | 891 | } |
892 | inboxView->takeItem(mailItem); | 892 | inboxView->takeItem(mailItem); |
893 | } | 893 | } |
894 | else | 894 | else |
895 | { | 895 | { |
896 | outboxView->takeItem(mailItem); | 896 | outboxView->takeItem(mailItem); |
897 | } | 897 | } |
898 | } | 898 | } |
899 | 899 | ||
900 | void EmailClient::setMailSize(int size) | 900 | void EmailClient::setMailSize(int size) |
901 | { | 901 | { |
902 | progressBar->reset(); | 902 | progressBar->reset(); |
903 | progressBar->setTotalSteps(size); | 903 | progressBar->setTotalSteps(size); |
904 | } | 904 | } |
905 | 905 | ||
906 | void EmailClient::setTotalSize(int /*size*/) | 906 | void EmailClient::setTotalSize(int /*size*/) |
907 | { | 907 | { |
908 | 908 | ||
909 | } | 909 | } |
910 | 910 | ||
911 | void EmailClient::setDownloadedSize(int size) | 911 | void EmailClient::setDownloadedSize(int size) |
912 | { | 912 | { |
913 | int total = progressBar->totalSteps(); | 913 | int total = progressBar->totalSteps(); |
914 | 914 | ||
915 | if (size < total) { | 915 | if (size < total) { |
916 | progressBar->setProgress(size); | 916 | progressBar->setProgress(size); |
917 | } else { | 917 | } else { |
918 | progressBar->setProgress(total); | 918 | progressBar->setProgress(total); |
919 | } | 919 | } |
920 | } | 920 | } |
921 | 921 | ||
922 | void EmailClient::deleteItem() | 922 | void EmailClient::deleteItem() |
923 | { | 923 | { |
924 | bool inbox=mailboxView->currentTab()==0; | 924 | bool inbox=mailboxView->currentTab()==0; |
925 | QListView* box; | 925 | QListView* box; |
926 | 926 | ||
927 | EmailListItem* eli; | 927 | EmailListItem* eli; |
928 | // int pos; | 928 | // int pos; |
929 | 929 | ||
930 | inbox ? box=inboxView : box=outboxView; | 930 | inbox ? box=inboxView : box=outboxView; |
931 | 931 | ||
932 | eli=(EmailListItem*)box->selectedItem(); | 932 | eli=(EmailListItem*)box->selectedItem(); |
933 | 933 | ||
934 | if (eli) | 934 | if (eli) |
935 | { | 935 | { |
936 | box->setSelected(eli->itemBelow(),true); //select the previous item | 936 | box->setSelected(eli->itemBelow(),true); //select the previous item |
937 | 937 | ||
938 | deleteMail(eli,(bool&)inbox); //remove mail entry | 938 | deleteMail(eli,(bool&)inbox); //remove mail entry |
939 | } | 939 | } |
940 | } | 940 | } |
941 | 941 | ||
942 | void EmailClient::inboxItemPressed() | 942 | void EmailClient::inboxItemPressed() |
943 | { | 943 | { |
944 | // timerID=startTimer(500); | 944 | // timerID=startTimer(500); |
945 | } | 945 | } |
946 | 946 | ||
947 | void EmailClient::inboxItemReleased() | 947 | void EmailClient::inboxItemReleased() |
948 | { | 948 | { |
949 | // killTimer(timerID); | 949 | // killTimer(timerID); |
950 | } | 950 | } |
951 | 951 | ||
952 | /*void EmailClient::timerEvent(QTimerEvent *e) | 952 | /*void EmailClient::timerEvent(QTimerEvent *e) |
953 | { | 953 | { |
954 | //killTimer(timerID); | 954 | //killTimer(timerID); |
955 | 955 | ||
956 | 956 | ||
957 | QPopupMenu *action = new QPopupMenu(this); | 957 | QPopupMenu *action = new QPopupMenu(this); |
958 | 958 | ||
959 | int reply=0; | 959 | int reply=0; |
960 | 960 | ||
961 | action->insertItem(tr( "Reply To" ),this,SLOT(reply())); | 961 | action->insertItem(tr( "Reply To" ),this,SLOT(reply())); |
962 | action->insertItem( tr( "Reply All" ),this,SLOT(replyAll())); | 962 | action->insertItem( tr( "Reply All" ),this,SLOT(replyAll())); |
963 | action->insertItem( tr( "Forward" ), this,SLOT(forward())); | 963 | action->insertItem( tr( "Forward" ), this,SLOT(forward())); |
964 | action->insertItem( tr( "Remove Mail" ), this,SLOT(remove())); | 964 | action->insertItem( tr( "Remove Mail" ), this,SLOT(remove())); |
965 | 965 | ||
966 | action->exec(QCursor::pos()); | 966 | action->exec(QCursor::pos()); |
967 | 967 | ||
968 | if (action) delete action; | 968 | if (action) delete action; |
969 | 969 | ||
970 | }*/ | 970 | }*/ |
971 | 971 | ||
972 | Email* EmailClient::getCurrentMail() | 972 | Email* EmailClient::getCurrentMail() |
973 | { | 973 | { |
974 | EmailListItem *eli=(EmailListItem* ) (inboxView->selectedItem()); | 974 | EmailListItem *eli=(EmailListItem* ) (inboxView->selectedItem()); |
975 | if (eli!=NULL) | 975 | if (eli!=NULL) |
976 | return eli->getMail(); | 976 | return eli->getMail(); |
977 | else | 977 | else |
978 | return NULL; | 978 | return NULL; |
979 | } | 979 | } |
980 | 980 | ||
981 | void EmailClient::download(Email* mail) | 981 | void EmailClient::download(Email* mail) |
982 | { | 982 | { |
983 | MailAccount* acc=0; | 983 | MailAccount* acc=0; |
984 | 984 | ||
985 | tempMailDownloadList.clear(); | 985 | tempMailDownloadList.clear(); |
986 | tempMailDownloadList.sizeInsert(mail->serverId, mail->size); | 986 | tempMailDownloadList.sizeInsert(mail->serverId, mail->size); |
987 | 987 | ||
988 | acc=accountList.at(mail->fromAccountId-1); | 988 | acc=accountList.at(mail->fromAccountId-1); |
989 | if (acc) | 989 | if (acc) |
990 | { | 990 | { |
991 | emailHandler->setAccount(*acc); | 991 | emailHandler->setAccount(*acc); |
992 | emailHandler->getMailByList(&tempMailDownloadList); | 992 | emailHandler->getMailByList(&tempMailDownloadList); |
993 | } | 993 | } |
994 | else | 994 | else |
995 | QMessageBox::warning(qApp->activeWindow(), | 995 | QMessageBox::warning(qApp->activeWindow(), |
996 | tr("No account associated"), tr("There is no active account \nassociated to this mail\n it can not be downloaded"), "Abort\n"); | 996 | tr("No account associated"), tr("There is no active account \nassociated to this mail\n it can not be downloaded"), "Abort\n"); |
997 | } | 997 | } |
998 | 998 | ||
999 | void EmailClient::receive(const QCString& /*msg*/, const QByteArray& /*data*/) | 999 | void EmailClient::receive(const QCString& /*msg*/, const QByteArray& /*data*/) |
1000 | { | 1000 | { |
1001 | /*if (msg=="getMail()") | 1001 | /*if (msg=="getMail()") |
1002 | { | 1002 | { |
1003 | //QDialog qd(qApp->activeWindow(),"Getting mail",true); | 1003 | //QDialog qd(qApp->activeWindow(),"Getting mail",true); |
1004 | QVBoxLayout *vbProg = new QVBoxLayout( &qd ); | 1004 | QVBoxLayout *vbProg = new QVBoxLayout( &qd ); |
1005 | 1005 | ||
1006 | initStatusBar(&qd); | 1006 | initStatusBar(&qd); |
1007 | 1007 | ||
1008 | if (statusBar==0) | 1008 | if (statusBar==0) |
1009 | { | 1009 | { |
1010 | qDebug("No Bar ..."); | 1010 | qDebug("No Bar ..."); |
1011 | //statusBar=new ProgressBar(&qd); | 1011 | //statusBar=new ProgressBar(&qd); |
1012 | } | 1012 | } |
1013 | statusBar->show(); | 1013 | statusBar->show(); |
1014 | vbProg->addWidget(statusBar); | 1014 | vbProg->addWidget(statusBar); |
1015 | qd.showMaximized(); | 1015 | qd.showMaximized(); |
1016 | qd.show(); | 1016 | qd.show(); |
1017 | emit getAllNewMail(); | 1017 | emit getAllNewMail(); |
1018 | //qd.exec(); | 1018 | //qd.exec(); |
1019 | } | 1019 | } |
1020 | else if (msg=="compose()") | 1020 | else if (msg=="compose()") |
1021 | { | 1021 | { |
1022 | QDialog qd(qApp->activeWindow(),"Getting mail",true); | 1022 | QDialog qd(qApp->activeWindow(),"Getting mail",true); |
1023 | 1023 | ||
1024 | WriteMail wm(&qd,"write new mail"); | 1024 | WriteMail wm(&qd,"write new mail"); |
1025 | QVBoxLayout vbProg( &qd ); | 1025 | QVBoxLayout vbProg( &qd ); |
1026 | 1026 | ||
1027 | wm.showMaximized(); | 1027 | wm.showMaximized(); |
1028 | vbProg.addWidget(&wm); | 1028 | vbProg.addWidget(&wm); |
1029 | 1029 | ||
1030 | qd.showMaximized(); | 1030 | qd.showMaximized(); |
1031 | 1031 | ||
1032 | emit composeRequested(); | 1032 | emit composeRequested(); |
1033 | qd.exec(); | 1033 | qd.exec(); |
1034 | 1034 | ||
1035 | QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n"); | 1035 | QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n"); |
1036 | } | 1036 | } |
1037 | 1037 | ||
1038 | else if (msg=="dialog()") | 1038 | else if (msg=="dialog()") |
1039 | { | 1039 | { |
1040 | QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n"); | 1040 | QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n"); |
1041 | }*/ | 1041 | }*/ |
1042 | } | 1042 | } |
diff --git a/noncore/unsupported/mailit/emaillistitem.cpp b/noncore/unsupported/mailit/emaillistitem.cpp index fc9f766..a25f93a 100644 --- a/noncore/unsupported/mailit/emaillistitem.cpp +++ b/noncore/unsupported/mailit/emaillistitem.cpp | |||
@@ -1,99 +1,158 @@ | |||
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 <qstring.h> | 20 | #include <qstring.h> |
21 | #include <qpe/resource.h> | 21 | #include <qpe/resource.h> |
22 | #include "emaillistitem.h" | 22 | #include "emaillistitem.h" |
23 | 23 | ||
24 | EmailListItem::EmailListItem(QListView *parent, Email mailIn, bool inbox) | 24 | EmailListItem::EmailListItem(QListView *parent, Email mailIn, bool inbox) |
25 | : QListViewItem(parent) | 25 | : QListViewItem(parent) |
26 | { | 26 | { |
27 | QString temp; | 27 | QString temp; |
28 | 28 | ||
29 | mail = mailIn; | 29 | mail = mailIn; |
30 | 30 | ||
31 | if (inbox) { | 31 | if (inbox) { |
32 | setText(0, mail.from); | 32 | setText(0, mail.from); |
33 | } else { | 33 | } else { |
34 | QStringList::Iterator it = mail.recipients.begin(); | 34 | QStringList::Iterator it = mail.recipients.begin(); |
35 | temp = *it; | 35 | temp = *it; |
36 | if (mail.recipients.count() > 1) | 36 | if (mail.recipients.count() > 1) |
37 | temp += "..."; | 37 | temp += "..."; |
38 | setText(0, temp); | 38 | setText(0, temp); |
39 | } | 39 | } |
40 | setText(1, mail.subject); | 40 | setText(1, mail.subject); |
41 | setText(2,mail.date); | 41 | // setText(2,mail.date); |
42 | 42 | setText(2,dateFromULCString(mail.date)); | |
43 | |||
43 | if (mailIn.files.count()>0) | 44 | if (mailIn.files.count()>0) |
44 | { | 45 | { |
45 | setPixmap(0, Resource::loadPixmap("mailit/attach")); | 46 | setPixmap(0, Resource::loadPixmap("mailit/attach")); |
46 | } | 47 | } |
47 | 48 | ||
48 | selected = FALSE; | 49 | selected = FALSE; |
49 | } | 50 | } |
50 | 51 | ||
51 | Email* EmailListItem::getMail() | 52 | Email* EmailListItem::getMail() |
52 | { | 53 | { |
53 | return &mail; | 54 | return &mail; |
54 | } | 55 | } |
55 | 56 | ||
56 | void EmailListItem::setMail(Email newMail) | 57 | void EmailListItem::setMail(Email newMail) |
57 | { | 58 | { |
58 | mail = newMail; | 59 | mail = newMail; |
59 | repaint(); | 60 | repaint(); |
60 | } | 61 | } |
61 | 62 | ||
62 | void EmailListItem::setItemSelected(bool enable) | 63 | void EmailListItem::setItemSelected(bool enable) |
63 | { | 64 | { |
64 | selected = enable; | 65 | selected = enable; |
65 | setSelected(enable); | 66 | setSelected(enable); |
66 | repaint(); | 67 | repaint(); |
67 | } | 68 | } |
68 | 69 | ||
69 | bool EmailListItem::isItemSelected() | 70 | bool EmailListItem::isItemSelected() |
70 | { | 71 | { |
71 | return selected; | 72 | return selected; |
72 | } | 73 | } |
73 | 74 | ||
74 | void EmailListItem::paintCell( QPainter *p, const QColorGroup &cg, | 75 | void EmailListItem::paintCell( QPainter *p, const QColorGroup &cg, |
75 | int column, int width, int alignment ) | 76 | int column, int width, int alignment ) |
76 | { | 77 | { |
77 | 78 | ||
78 | QColorGroup _cg( cg ); | 79 | QColorGroup _cg( cg ); |
79 | QColor c = _cg.text(); | 80 | QColor c = _cg.text(); |
80 | 81 | ||
81 | if ( (! mail.read) && (mail.received) ) | 82 | if ( (! mail.read) && (mail.received) ) |
82 | _cg.setColor( QColorGroup::Text, Qt::blue); | 83 | _cg.setColor( QColorGroup::Text, Qt::blue); |
83 | if (!mail.downloaded) | 84 | if (!mail.downloaded) |
84 | _cg.setColor( QColorGroup::Text, Qt::red); | 85 | _cg.setColor( QColorGroup::Text, Qt::red); |
85 | 86 | ||
86 | /* if (selected) { | 87 | /* if (selected) { |
87 | _cg.setColor(QColorGroup::Base, Qt::blue); | 88 | _cg.setColor(QColorGroup::Base, Qt::blue); |
88 | _cg.setColor(QColorGroup::Text, Qt::yellow); | 89 | _cg.setColor(QColorGroup::Text, Qt::yellow); |
89 | if (isSelected()) { | 90 | if (isSelected()) { |
90 | _cg.setColor(QColorGroup::HighlightedText, Qt::yellow); | 91 | _cg.setColor(QColorGroup::HighlightedText, Qt::yellow); |
91 | } else { | 92 | } else { |
92 | _cg.setColor(QColorGroup::Highlight, Qt::blue); | 93 | _cg.setColor(QColorGroup::Highlight, Qt::blue); |
93 | } | 94 | } |
94 | } | 95 | } |
95 | */ | 96 | */ |
96 | QListViewItem::paintCell( p, _cg, column, width, alignment ); | 97 | QListViewItem::paintCell( p, _cg, column, width, alignment ); |
97 | 98 | ||
98 | _cg.setColor( QColorGroup::Text, c ); | 99 | _cg.setColor( QColorGroup::Text, c ); |
99 | } | 100 | } |
101 | |||
102 | /* | ||
103 | * Converts an E-Mail date (ULC) RFC 2822 conform to a QDateTime. | ||
104 | * Returning a QString with formatting of "YYYY-MM-DD HH:MM:SS" | ||
105 | * (zodiac: This method was tested with more than 300 inbox mails, | ||
106 | * it didn't slow down the loading of mail-it.) | ||
107 | */ | ||
108 | QString EmailListItem::dateFromULCString( QString ulcDate ) | ||
109 | { | ||
110 | QString sTemp, sTime; | ||
111 | int iPos, iDay, iMon=1, iYear; | ||
112 | |||
113 | iPos=ulcDate.find(','); | ||
114 | if (iPos) { // it has a day-of-week | ||
115 | ulcDate=ulcDate.remove(0,++iPos); //.stripWhiteSpace(); | ||
116 | } | ||
117 | |||
118 | QStringList dateEntries = QStringList::split(" ",ulcDate,FALSE); | ||
119 | QStringList::Iterator iter = dateEntries.begin(); | ||
120 | |||
121 | // Get day as DD | ||
122 | iDay = (*iter++).toInt(); | ||
123 | |||
124 | // Get month as string Mmm | ||
125 | sTemp = (*iter++); | ||
126 | if (sTemp =="Jan") {iMon=1;} else | ||
127 | if (sTemp =="Feb") {iMon=2;} else | ||
128 | if (sTemp =="Mar") {iMon=3;} else | ||
129 | if (sTemp =="Apr") {iMon=4;} else | ||
130 | if (sTemp =="May") {iMon=5;} else | ||
131 | if (sTemp =="Jun") {iMon=6;} else | ||
132 | if (sTemp =="Jul") {iMon=7;} else | ||
133 | if (sTemp =="Aug") {iMon=8;} else | ||
134 | if (sTemp =="Sep") {iMon=9;} else | ||
135 | if (sTemp =="Oct") {iMon=10;} else | ||
136 | if (sTemp =="Nov") {iMon=11;} else | ||
137 | if (sTemp =="Dec") {iMon=12;} | ||
138 | |||
139 | // Get year as YYYY or YY | ||
140 | iYear = (*iter++).toInt(); | ||
141 | |||
142 | QDate date = QDate(iYear, iMon, iDay); | ||
143 | |||
144 | // Convert timestring into a QTime | ||
145 | QStringList timeEntries = QStringList::split(":",(*iter++),FALSE); | ||
146 | QStringList::Iterator iterTime = timeEntries.begin(); | ||
147 | iYear=(*iterTime++).toInt(); // var reuse.. *cough* | ||
148 | iMon=(*iterTime++).toInt(); | ||
149 | iDay=(*iterTime++).toInt(); | ||
150 | QTime time = QTime(iYear,iMon,iDay); | ||
151 | |||
152 | return QString::number(date.year())+"-" | ||
153 | +QString::number(date.month()).rightJustify(2,'0')+"-" | ||
154 | +QString::number(date.day()).rightJustify(2,'0')+" " | ||
155 | +time.toString(); | ||
156 | } | ||
157 | |||
158 | |||
diff --git a/noncore/unsupported/mailit/emaillistitem.h b/noncore/unsupported/mailit/emaillistitem.h index 642932c..129a774 100644 --- a/noncore/unsupported/mailit/emaillistitem.h +++ b/noncore/unsupported/mailit/emaillistitem.h | |||
@@ -1,44 +1,45 @@ | |||
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 | #ifndef EMAILLISTITEM_H | 20 | #ifndef EMAILLISTITEM_H |
21 | #define EMAILLISTITEM_H | 21 | #define EMAILLISTITEM_H |
22 | 22 | ||
23 | #include <qlistview.h> | 23 | #include <qlistview.h> |
24 | #include "emailhandler.h" | 24 | #include "emailhandler.h" |
25 | 25 | ||
26 | class EmailListItem: public QListViewItem | 26 | class EmailListItem: public QListViewItem |
27 | { | 27 | { |
28 | public: | 28 | public: |
29 | EmailListItem(QListView *parent, Email mailIn, bool inbox); | 29 | EmailListItem(QListView *parent, Email mailIn, bool inbox); |
30 | Email* getMail(); | 30 | Email* getMail(); |
31 | void setMail(Email newMail); | 31 | void setMail(Email newMail); |
32 | void setItemSelected(bool enable); | 32 | void setItemSelected(bool enable); |
33 | bool isItemSelected(); | 33 | bool isItemSelected(); |
34 | bool itemSelected(); | 34 | bool itemSelected(); |
35 | 35 | ||
36 | protected: | 36 | protected: |
37 | void paintCell( QPainter *p, const QColorGroup &cg, | 37 | void paintCell( QPainter *p, const QColorGroup &cg, |
38 | int column, int width, int alignment ); | 38 | int column, int width, int alignment ); |
39 | private: | 39 | private: |
40 | Email mail; | 40 | Email mail; |
41 | bool selected; | 41 | bool selected; |
42 | QString dateFromULCString( QString ulc ); | ||
42 | }; | 43 | }; |
43 | 44 | ||
44 | #endif | 45 | #endif |
diff --git a/noncore/unsupported/mailit/mailit.pro b/noncore/unsupported/mailit/mailit.pro index 5e9a83a..0224886 100644 --- a/noncore/unsupported/mailit/mailit.pro +++ b/noncore/unsupported/mailit/mailit.pro | |||
@@ -1,63 +1,59 @@ | |||
1 | TEMPLATE = app | ||
2 | TARGET = mailit | 1 | TARGET = mailit |
3 | CONFIG = qt warn_on release | 2 | CONFIG = qt warn_on release quick-app |
4 | HEADERS = emailclient.h \ | 3 | HEADERS = emailclient.h \ |
5 | emailhandler.h \ | 4 | emailhandler.h \ |
6 | emaillistitem.h \ | 5 | emaillistitem.h \ |
7 | mailitwindow.h \ | 6 | mailitwindow.h \ |
8 | md5.h \ | 7 | md5.h \ |
9 | popclient.h \ | 8 | popclient.h \ |
10 | readmail.h \ | 9 | readmail.h \ |
11 | smtpclient.h \ | 10 | smtpclient.h \ |
12 | writemail.h \ | 11 | writemail.h \ |
13 | textparser.h \ | 12 | textparser.h \ |
14 | viewatt.h \ | 13 | viewatt.h \ |
15 | addatt.h \ | 14 | addatt.h \ |
16 | editaccount.h \ | 15 | editaccount.h \ |
17 | maillist.h \ | 16 | maillist.h \ |
18 | addresslist.h | 17 | addresslist.h |
19 | SOURCES = emailclient.cpp \ | 18 | SOURCES = emailclient.cpp \ |
20 | emailhandler.cpp \ | 19 | emailhandler.cpp \ |
21 | emaillistitem.cpp \ | 20 | emaillistitem.cpp \ |
22 | mailitwindow.cpp \ | 21 | mailitwindow.cpp \ |
23 | main.cpp \ | 22 | main.cpp \ |
24 | md5.c \ | 23 | md5.c \ |
25 | popclient.cpp \ | 24 | popclient.cpp \ |
26 | readmail.cpp \ | 25 | readmail.cpp \ |
27 | smtpclient.cpp \ | 26 | smtpclient.cpp \ |
28 | writemail.cpp \ | 27 | writemail.cpp \ |
29 | textparser.cpp \ | 28 | textparser.cpp \ |
30 | viewatt.cpp \ | 29 | viewatt.cpp \ |
31 | addatt.cpp \ | 30 | addatt.cpp \ |
32 | editaccount.cpp \ | 31 | editaccount.cpp \ |
33 | maillist.cpp \ | 32 | maillist.cpp \ |
34 | addresslist.cpp | 33 | addresslist.cpp |
35 | 34 | ||
36 | INCLUDEPATH += $(OPIEDIR)/include | 35 | INCLUDEPATH += $(OPIEDIR)/include |
37 | DEPENDPATH += $(OPIEDIR)/include | 36 | DEPENDPATH += $(OPIEDIR)/include |
38 | LIBS += -lqpe -lopie | 37 | LIBS += -lqpe -lopie |
39 | # -lssl | 38 | # -lssl |
40 | MOC_DIR=qpeobj | ||
41 | OBJECTS_DIR=qpeobj | ||
42 | DESTDIR=$(OPIEDIR)/bin | ||
43 | 39 | ||
44 | TRANSLATIONS = ../../../i18n/de/mailit.ts \ | 40 | TRANSLATIONS = ../../../i18n/de/mailit.ts \ |
45 | ../../../i18n/nl/mailit.ts \ | 41 | ../../../i18n/nl/mailit.ts \ |
46 | ../../../i18n/da/mailit.ts \ | 42 | ../../../i18n/da/mailit.ts \ |
47 | ../../../i18n/xx/mailit.ts \ | 43 | ../../../i18n/xx/mailit.ts \ |
48 | ../../../i18n/it/mailit.ts \ | 44 | ../../../i18n/it/mailit.ts \ |
49 | ../../../i18n/en/mailit.ts \ | 45 | ../../../i18n/en/mailit.ts \ |
50 | ../../../i18n/es/mailit.ts \ | 46 | ../../../i18n/es/mailit.ts \ |
51 | ../../../i18n/fr/mailit.ts \ | 47 | ../../../i18n/fr/mailit.ts \ |
52 | ../../../i18n/hu/mailit.ts \ | 48 | ../../../i18n/hu/mailit.ts \ |
53 | ../../../i18n/ja/mailit.ts \ | 49 | ../../../i18n/ja/mailit.ts \ |
54 | ../../../i18n/ko/mailit.ts \ | 50 | ../../../i18n/ko/mailit.ts \ |
55 | ../../../i18n/no/mailit.ts \ | 51 | ../../../i18n/no/mailit.ts \ |
56 | ../../../i18n/pl/mailit.ts \ | 52 | ../../../i18n/pl/mailit.ts \ |
57 | ../../../i18n/pt/mailit.ts \ | 53 | ../../../i18n/pt/mailit.ts \ |
58 | ../../../i18n/pt_BR/mailit.ts \ | 54 | ../../../i18n/pt_BR/mailit.ts \ |
59 | ../../../i18n/sl/mailit.ts \ | 55 | ../../../i18n/sl/mailit.ts \ |
60 | ../../../i18n/zh_CN/mailit.ts \ | 56 | ../../../i18n/zh_CN/mailit.ts \ |
61 | ../../../i18n/zh_TW/mailit.ts | 57 | ../../../i18n/zh_TW/mailit.ts |
62 | 58 | ||
63 | include ( $(OPIEDIR)/include.pro ) | 59 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/unsupported/mailit/mailitwindow.h b/noncore/unsupported/mailit/mailitwindow.h index e818d32..11e56b9 100644 --- a/noncore/unsupported/mailit/mailitwindow.h +++ b/noncore/unsupported/mailit/mailitwindow.h | |||
@@ -1,64 +1,65 @@ | |||
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 | #ifndef MailItWindow_H | 20 | #ifndef MailItWindow_H |
21 | #define MailItWindow_H | 21 | #define MailItWindow_H |
22 | 22 | ||
23 | #include <qmainwindow.h> | 23 | #include <qmainwindow.h> |
24 | #include <qwidgetstack.h> | 24 | #include <qwidgetstack.h> |
25 | #include <qevent.h> | 25 | #include <qevent.h> |
26 | //#include <qlayout.h> | 26 | //#include <qlayout.h> |
27 | #include "emailclient.h" | 27 | #include "emailclient.h" |
28 | #include "writemail.h" | 28 | #include "writemail.h" |
29 | #include "readmail.h" | 29 | #include "readmail.h" |
30 | #include "addresslist.h" | 30 | #include "addresslist.h" |
31 | 31 | ||
32 | class MailItWindow: public QMainWindow | 32 | class MailItWindow: public QMainWindow |
33 | { | 33 | { |
34 | Q_OBJECT | 34 | Q_OBJECT |
35 | public: | 35 | public: |
36 | static QString appName() { return QString::fromLatin1("mailit"); } | ||
36 | MailItWindow(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); | 37 | MailItWindow(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); |
37 | ~MailItWindow(); | 38 | ~MailItWindow(); |
38 | 39 | ||
39 | signals: | 40 | signals: |
40 | public slots: | 41 | public slots: |
41 | void compose(); | 42 | void compose(); |
42 | void composeReply(Email &, bool&); | 43 | void composeReply(Email &, bool&); |
43 | void composeForward(Email &); | 44 | void composeForward(Email &); |
44 | void showEmailClient(); | 45 | void showEmailClient(); |
45 | void viewMail(QListView *, Email *mail); | 46 | void viewMail(QListView *, Email *mail); |
46 | void updateMailView(Email *mail); | 47 | void updateMailView(Email *mail); |
47 | void closeEvent(QCloseEvent *e); | 48 | void closeEvent(QCloseEvent *e); |
48 | void updateCaption(const QString &); | 49 | void updateCaption(const QString &); |
49 | void setDocument(const QString &); | 50 | void setDocument(const QString &); |
50 | /*void reply(Email&); | 51 | /*void reply(Email&); |
51 | void replyAll(Email&); | 52 | void replyAll(Email&); |
52 | void forward(Email&); | 53 | void forward(Email&); |
53 | void remove(Email&);*/ | 54 | void remove(Email&);*/ |
54 | 55 | ||
55 | private: | 56 | private: |
56 | EmailClient *emailClient; | 57 | EmailClient *emailClient; |
57 | WriteMail *writeMail; | 58 | WriteMail *writeMail; |
58 | ReadMail *readMail; | 59 | ReadMail *readMail; |
59 | QWidgetStack *views; | 60 | QWidgetStack *views; |
60 | QString currentCaption; | 61 | QString currentCaption; |
61 | bool viewingMail; | 62 | bool viewingMail; |
62 | }; | 63 | }; |
63 | 64 | ||
64 | #endif | 65 | #endif |
diff --git a/noncore/unsupported/mailit/main.cpp b/noncore/unsupported/mailit/main.cpp index 3a3e1fc..71f8877 100644 --- a/noncore/unsupported/mailit/main.cpp +++ b/noncore/unsupported/mailit/main.cpp | |||
@@ -1,29 +1,25 @@ | |||
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 <qpe/qpeapplication.h> | 20 | #include <qpe/qpeapplication.h> |
21 | #include "mailitwindow.h" | 21 | #include "mailitwindow.h" |
22 | 22 | ||
23 | int main(int argc, char* argv[]) | 23 | #include <opie/oapplicationfactory.h> |
24 | { | 24 | |
25 | QPEApplication a( argc, argv ); | 25 | OPIE_EXPORT_APP( OApplicationFactory<MailItWindow> ) \ No newline at end of file |
26 | MailItWindow mw(0, 0); | ||
27 | a.showMainDocumentWidget(&mw); | ||
28 | return a.exec(); | ||
29 | } | ||