-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | noncore/apps/zsafe/zsafe.cpp | 59 |
2 files changed, 16 insertions, 44 deletions
@@ -1,26 +1,27 @@ | |||
1 | 2004-??-??The Opie Team <opie@handhelds.org> | 1 | 2004-??-??The Opie Team <opie@handhelds.org> |
2 | 2 | ||
3 | * Fixed ZSafe not starting up (Bug #1324) (mickeyl) | ||
3 | * Fixed Drawpad initialization (Bug #1314) (mickeyl) | 4 | * Fixed Drawpad initialization (Bug #1314) (mickeyl) |
4 | * Added four themes courtesy Robert Griebl (http://www.softforge.de/zstyle) | 5 | * Added four themes courtesy Robert Griebl (http://www.softforge.de/zstyle) |
5 | * Added Conversion tool for pim-data (eilers) | 6 | * Added Conversion tool for pim-data (eilers) |
6 | * Modifcation of the PIM API for providing generic use of OPimRecords. (eilers) | 7 | * Modifcation of the PIM API for providing generic use of OPimRecords. (eilers) |
7 | 8 | ||
8 | 2004-25-04The Opie Team <opie@handhelds.org> | 9 | 2004-25-04The Opie Team <opie@handhelds.org> |
9 | 10 | ||
10 | * Released as Version 1.1.3 (devel) | 11 | * Released as Version 1.1.3 (devel) |
11 | * Introduced first implementation of SQL-Support using SQLite (eilers) | 12 | * Introduced first implementation of SQL-Support using SQLite (eilers) |
12 | * Added a new Gutenberg Project reader app - opie-gutenbrowser (ljp) | 13 | * Added a new Gutenberg Project reader app - opie-gutenbrowser (ljp) |
13 | * Added a real system graffiti character set (brad) | 14 | * Added a real system graffiti character set (brad) |
14 | * Added Generic Keyconfig Widget (zecke) | 15 | * Added Generic Keyconfig Widget (zecke) |
15 | * Improved Screenshotapplet and Drawpad integration. You can now open a screenshot in drawpad and take notes (zecke) | 16 | * Improved Screenshotapplet and Drawpad integration. You can now open a screenshot in drawpad and take notes (zecke) |
16 | * Added new Bible reader app - opie-dagger (drw) | 17 | * Added new Bible reader app - opie-dagger (drw) |
17 | * Added a new Image Viewer. Work is ongoing (zecke,alwin) | 18 | * Added a new Image Viewer. Work is ongoing (zecke,alwin) |
18 | * Added namespace usage in libopie2 and everywhere (zecke,alwin) | 19 | * Added namespace usage in libopie2 and everywhere (zecke,alwin) |
19 | * Enabled the possibility to pass command line arguments to applications (mickeyl) | 20 | * Enabled the possibility to pass command line arguments to applications (mickeyl) |
20 | * Added an about applet showing some credits and information about Opie (mickeyl) | 21 | * Added an about applet showing some credits and information about Opie (mickeyl) |
21 | * Added benchmarking functionality to sysinfo (mickeyl) | 22 | * Added benchmarking functionality to sysinfo (mickeyl) |
22 | * Added applet and configuration application for switching hardware keyboard layouts (alwin) | 23 | * Added applet and configuration application for switching hardware keyboard layouts (alwin) |
23 | * Ported applications from libopie1 to libopie2* (drw,ar,alwin) | 24 | * Ported applications from libopie1 to libopie2* (drw,ar,alwin) |
24 | * Imported fullscreen and font improvements from the Qkonsole fork to embeddedkonsole (waspe) | 25 | * Imported fullscreen and font improvements from the Qkonsole fork to embeddedkonsole (waspe) |
25 | * Clean-up of package information in control files (drw) | 26 | * Clean-up of package information in control files (drw) |
26 | * Repaired mediummount which was broken since integrating the quicklauncher (alwin) | 27 | * Repaired mediummount which was broken since integrating the quicklauncher (alwin) |
diff --git a/noncore/apps/zsafe/zsafe.cpp b/noncore/apps/zsafe/zsafe.cpp index bf8f7f4..6ff05ac 100644 --- a/noncore/apps/zsafe/zsafe.cpp +++ b/noncore/apps/zsafe/zsafe.cpp | |||
@@ -466,101 +466,72 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl ) | |||
466 | #else | 466 | #else |
467 | resize( DeskW, DeskH-30 ); | 467 | resize( DeskW, DeskH-30 ); |
468 | #endif | 468 | #endif |
469 | 469 | ||
470 | #else | 470 | #else |
471 | 471 | ||
472 | #ifdef JPATCH_HDE | 472 | #ifdef JPATCH_HDE |
473 | int DeskS; | 473 | int DeskS; |
474 | if(DeskW > DeskH) | 474 | if(DeskW > DeskH) |
475 | { | 475 | { |
476 | DeskS = DeskW; | 476 | DeskS = DeskW; |
477 | } | 477 | } |
478 | else | 478 | else |
479 | { | 479 | { |
480 | DeskS = DeskH; | 480 | DeskS = DeskH; |
481 | } | 481 | } |
482 | resize( DeskW, DeskH ); | 482 | resize( DeskW, DeskH ); |
483 | setMinimumSize( QSize( DeskS, DeskS ) ); | 483 | setMinimumSize( QSize( DeskS, DeskS ) ); |
484 | setMaximumSize( QSize( DeskS, DeskS ) ); | 484 | setMaximumSize( QSize( DeskS, DeskS ) ); |
485 | #else | 485 | #else |
486 | resize( DeskW, DeskH-30 ); | 486 | resize( DeskW, DeskH-30 ); |
487 | #endif | 487 | #endif |
488 | 488 | ||
489 | #endif | 489 | #endif |
490 | // setCaption( tr( "ZSafe" ) ); | 490 | setCaption( tr( "ZSafe" ) ); |
491 | 491 | QString zsafeAppDirPath = QDir::homeDirPath() + "/Documents/application/zsafe"; | |
492 | filename = conf->readEntry(APP_KEY+"document"); | 492 | QString filename = conf->readEntry(APP_KEY+"document"); |
493 | if (filename.isEmpty() || filename.isNull()) | 493 | if (filename.isEmpty() || filename.isNull()) |
494 | { | 494 | { |
495 | 495 | if ( !QDir( zsafeAppDirPath ).exists() ) | |
496 | // check if the directory application exists, if not | ||
497 | // create it | ||
498 | // #ifndef WIN32 | ||
499 | // QString d1("Documents/application"); | ||
500 | // #else | ||
501 | QString d1(QDir::homeDirPath() + "/Documents/application"); | ||
502 | // #endif | ||
503 | QDir pd1(d1); | ||
504 | if (!pd1.exists()) | ||
505 | { | ||
506 | QDir pd1("Documents"); | ||
507 | if (!pd1.mkdir("application", FALSE)) | ||
508 | { | 496 | { |
509 | QMessageBox::critical( 0, tr("ZSafe"), | 497 | //FIXME: Pending someone to look into why QDir.mkdir does not work as expected |
510 | #ifdef JPATCH_HDE | 498 | QString cmdline = QString().sprintf( "mkdir -p %s", (const char*) zsafeAppDirPath ); |
511 | tr("Can't create directory\n.../Documents/application\n\nZSafe will now exit.")); | 499 | ::system( cmdline ); |
512 | #else | ||
513 | tr("Can't create directory\n%1\n\nZSafe will now exit.").arg(d1)); | ||
514 | #endif | ||
515 | exitZs (1); | ||
516 | } | 500 | } |
517 | } | 501 | if ( !QDir( zsafeAppDirPath ).exists() ) |
518 | QString d2(QDir::homeDirPath() + "/Documents/application/zsafe"); | ||
519 | QDir pd2(d2); | ||
520 | if (!pd2.exists()) | ||
521 | { | ||
522 | QDir pd2(QDir::homeDirPath() + "Documents/application"); | ||
523 | if (!pd2.mkdir("zsafe", FALSE)) | ||
524 | { | 502 | { |
525 | QMessageBox::critical( 0, tr("ZSafe"), | 503 | QMessageBox::critical( 0, "ZSafe", tr("Can't create application data directory.\nZSafe will now exit.")); |
526 | #ifdef JPATCH_HDE | 504 | exitZs (1); |
527 | tr("Can't create directory\n...//Documents/application/zsafe\n\nZSafe will now exit.")); | ||
528 | #else | ||
529 | tr("Can't create directory\n%1\n\nZSafe will now exit.").arg(d2)); | ||
530 | #endif | ||
531 | exitZs (1); | ||
532 | } | 505 | } |
533 | } | 506 | } |
534 | 507 | ||
535 | |||
536 | // set the default filename | 508 | // set the default filename |
537 | filename=d2 + "/passwords.zsf"; | 509 | filename = zsafeAppDirPath + "/passwords.zsf"; |
538 | 510 | ||
539 | // save the current filename to the config file | 511 | // save the current filename to the config file |
540 | conf->writeEntry(APP_KEY+"document", filename); | 512 | conf->writeEntry(APP_KEY+"document", filename); |
541 | saveConf(); | 513 | saveConf(); |
542 | } | ||
543 | 514 | ||
544 | //if (filename == "INVALIDPWD") | 515 | //if (filename == "INVALIDPWD") |
545 | //filename = ""; | 516 | //filename = ""; |
546 | 517 | ||
547 | QString ti = filename.right (filename.length() - filename.findRev ('/') - 1); | 518 | QString ti = filename.right (filename.length() - filename.findRev ('/') - 1); |
548 | #ifdef WIN32 | 519 | #ifdef WIN32 |
549 | this->setCaption("Qt ZSafe: " + ti); | 520 | this->setCaption("Qt ZSafe: " + ti); |
550 | #else | 521 | #else |
551 | this->setCaption("ZSafe: " + ti); | 522 | this->setCaption("ZSafe: " + ti); |
552 | #endif | 523 | #endif |
553 | 524 | ||
554 | selectedItem = NULL; | 525 | selectedItem = NULL; |
555 | lastSearchedCategory = NULL; | 526 | lastSearchedCategory = NULL; |
556 | lastSearchedItem = NULL; | 527 | lastSearchedItem = NULL; |
557 | lastSearchedName = ""; | 528 | lastSearchedName = ""; |
558 | lastSearchedUsername = ""; | 529 | lastSearchedUsername = ""; |
559 | lastSearchedComment = ""; | 530 | lastSearchedComment = ""; |
560 | 531 | ||
561 | infoForm = new InfoForm(); | 532 | infoForm = new InfoForm(); |
562 | categoryDialog = NULL; | 533 | categoryDialog = NULL; |
563 | 534 | ||
564 | // add a menu bar | 535 | // add a menu bar |
565 | QMenuBar *menu = new QMenuBar( this ); | 536 | QMenuBar *menu = new QMenuBar( this ); |
566 | 537 | ||
@@ -2235,102 +2206,102 @@ bool ZSafe::saveDocument(const char* _filename, | |||
2235 | char* entry[FIELD_SIZE]; | 2206 | char* entry[FIELD_SIZE]; |
2236 | 2207 | ||
2237 | // save the validation entry | 2208 | // save the validation entry |
2238 | { | 2209 | { |
2239 | int i=0; | 2210 | int i=0; |
2240 | entry[i] = (char*)malloc(strlen("ZSAFECATEGORY")+1); | 2211 | entry[i] = (char*)malloc(strlen("ZSAFECATEGORY")+1); |
2241 | strcpy(entry[i++], "ZSAFECATEGORY"); | 2212 | strcpy(entry[i++], "ZSAFECATEGORY"); |
2242 | entry[i] = (char*)malloc(strlen("name")+1); | 2213 | entry[i] = (char*)malloc(strlen("name")+1); |
2243 | strcpy(entry[i++], "name"); | 2214 | strcpy(entry[i++], "name"); |
2244 | entry[i] = (char*)malloc(strlen("username")+1); | 2215 | entry[i] = (char*)malloc(strlen("username")+1); |
2245 | strcpy(entry[i++], "username"); | 2216 | strcpy(entry[i++], "username"); |
2246 | entry[i] = (char*)malloc(strlen("password")+1); | 2217 | entry[i] = (char*)malloc(strlen("password")+1); |
2247 | strcpy(entry[i++], "password"); | 2218 | strcpy(entry[i++], "password"); |
2248 | entry[i] = (char*)malloc(strlen("comment")+1); | 2219 | entry[i] = (char*)malloc(strlen("comment")+1); |
2249 | strcpy(entry[i++], "comment"); | 2220 | strcpy(entry[i++], "comment"); |
2250 | 2221 | ||
2251 | entry[i] = (char*)malloc(strlen("field5")+1); | 2222 | entry[i] = (char*)malloc(strlen("field5")+1); |
2252 | strcpy(entry[i++], "field5"); | 2223 | strcpy(entry[i++], "field5"); |
2253 | entry[i] = (char*)malloc(strlen("field6")+1); | 2224 | entry[i] = (char*)malloc(strlen("field6")+1); |
2254 | strcpy(entry[i++], "field6"); | 2225 | strcpy(entry[i++], "field6"); |
2255 | 2226 | ||
2256 | retval = saveEntry(entry); | 2227 | retval = saveEntry(entry); |
2257 | for (int z=0; z<i; z++) free(entry[z]); | 2228 | for (int z=0; z<i; z++) free(entry[z]); |
2258 | if (retval == PWERR_DATA) { | 2229 | if (retval == PWERR_DATA) { |
2259 | owarn << "1: Error writing file, contents not saved" << oendl; | 2230 | owarn << "1: Error writing file, contents not saved" << oendl; |
2260 | saveFinalize(); | 2231 | saveFinalize(); |
2261 | return false; | 2232 | return false; |
2262 | } | 2233 | } |
2263 | // #ifndef WIN32 | 2234 | // #ifndef WIN32 |
2264 | conf->writeEntry(APP_KEY+"valzsafe", 1); | 2235 | conf->writeEntry(APP_KEY+"valzsafe", 1); |
2265 | // #endif | 2236 | // #endif |
2266 | saveConf(); | 2237 | saveConf(); |
2267 | } | 2238 | } |
2268 | 2239 | ||
2269 | QListViewItem *i; | 2240 | QListViewItem *i; |
2270 | // step through all categories | 2241 | // step through all categories |
2271 | for (i = ListView->firstChild(); | 2242 | for (i = ListView->firstChild(); |
2272 | i != NULL; | 2243 | i != NULL; |
2273 | i = i->nextSibling()) | 2244 | i = i->nextSibling()) |
2274 | { | 2245 | { |
2275 | // step through all subitems | 2246 | // step through all subitems |
2276 | QListViewItem *si; | 2247 | QListViewItem *si; |
2277 | for (si = i->firstChild(); | 2248 | for (si = i->firstChild(); |
2278 | si != NULL; | 2249 | si != NULL; |
2279 | si = si->nextSibling()) | 2250 | si = si->nextSibling()) |
2280 | { | 2251 | { |
2281 | int j=0; | 2252 | int j=0; |
2282 | entry[j] = (char*)malloc(strlen(i->text(0).utf8())+1); | 2253 | entry[j] = (char*)malloc(strlen(i->text(0).utf8())+1); |
2283 | strcpy(entry[j++], i->text(0).utf8()); | 2254 | strcpy(entry[j++], i->text(0).utf8()); |
2284 | entry[j] = (char*)malloc(strlen(si->text(0).utf8())+1); | 2255 | entry[j] = (char*)malloc(strlen(si->text(0).utf8())+1); |
2285 | strcpy(entry[j++], si->text(0).utf8()); | 2256 | strcpy(entry[j++], si->text(0).utf8()); |
2286 | entry[j] = (char*)malloc(strlen(si->text(1).utf8())+1); | 2257 | entry[j] = (char*)malloc(strlen(si->text(1).utf8())+1); |
2287 | strcpy(entry[j++], si->text(1).utf8()); | 2258 | strcpy(entry[j++], si->text(1).utf8()); |
2288 | entry[j] = (char*)malloc(strlen(si->text(2).utf8())+1); | 2259 | entry[j] = (char*)malloc(strlen(si->text(2).utf8())+1); |
2289 | strcpy(entry[j++], si->text(2).utf8()); | 2260 | strcpy(entry[j++], si->text(2).utf8()); |
2290 | entry[j] = (char*)malloc(strlen(si->text(3).utf8())+1); | 2261 | entry[j] = (char*)malloc(strlen(si->text(3).utf8())+1); |
2291 | strcpy(entry[j++], si->text(3).utf8()); | 2262 | strcpy(entry[j++], si->text(3).utf8()); |
2292 | entry[j] = (char*)malloc(strlen(si->text(4).utf8())+1); | 2263 | entry[j] = (char*)malloc(strlen(si->text(4).utf8())+1); |
2293 | strcpy(entry[j++], si->text(4).utf8()); | 2264 | strcpy(entry[j++], si->text(4).utf8()); |
2294 | entry[j] = (char*)malloc(strlen(si->text(5).utf8())+1); | 2265 | entry[j] = (char*)malloc(strlen(si->text(5).utf8())+1); |
2295 | strcpy(entry[j++], si->text(5).utf8()); | 2266 | strcpy(entry[j++], si->text(5).utf8()); |
2296 | 2267 | ||
2297 | retval = saveEntry(entry); | 2268 | retval = saveEntry(entry); |
2298 | for (int z=0; z<j; z++) | 2269 | for (int z=0; z<j; z++) |
2299 | { | 2270 | { |
2300 | free(entry[z]); | 2271 | free(entry[z]); |
2301 | } | 2272 | } |
2302 | if (retval == PWERR_DATA) { | 2273 | if (retval == PWERR_DATA) { |
2303 | owarn << "1: Error writing file, contents not saved" << oendl; | 2274 | owarn << "1: Error writing file, contents not saved" << oendl; |
2304 | saveFinalize(); | 2275 | saveFinalize(); |
2305 | return false; | 2276 | return false; |
2306 | } | 2277 | } |
2307 | 2278 | ||
2308 | } | 2279 | } |
2309 | } | 2280 | } |
2310 | 2281 | ||
2311 | if (saveFinalize() == PWERR_DATA) { | 2282 | if (saveFinalize() == PWERR_DATA) { |
2312 | owarn << "2: Error writing file, contents not saved" << oendl; | 2283 | owarn << "2: Error writing file, contents not saved" << oendl; |
2313 | return false; | 2284 | return false; |
2314 | } else { | 2285 | } else { |
2315 | #ifndef DESKTOP | 2286 | #ifndef DESKTOP |
2316 | Global::statusMessage (tr("Password file saved.")); | 2287 | Global::statusMessage (tr("Password file saved.")); |
2317 | #endif | 2288 | #endif |
2318 | modified = false; | 2289 | modified = false; |
2319 | return true; | 2290 | return true; |
2320 | } | 2291 | } |
2321 | } | 2292 | } |
2322 | 2293 | ||
2323 | PasswordForm *newPwdDialog; | 2294 | PasswordForm *newPwdDialog; |
2324 | bool newPwdDialogResult = false; | 2295 | bool newPwdDialogResult = false; |
2325 | void ZSafe::setPasswordDialogDone() | 2296 | void ZSafe::setPasswordDialogDone() |
2326 | { | 2297 | { |
2327 | newPwdDialogResult = true; | 2298 | newPwdDialogResult = true; |
2328 | newPwdDialog->close(); | 2299 | newPwdDialog->close(); |
2329 | } | 2300 | } |
2330 | 2301 | ||
2331 | void ZSafe::getDocPassword(QString title) | 2302 | void ZSafe::getDocPassword(QString title) |
2332 | { | 2303 | { |
2333 | qWarning ("getDocPassword"); | 2304 | qWarning ("getDocPassword"); |
2334 | // open the 'Password' dialog | 2305 | // open the 'Password' dialog |
2335 | PasswordForm *dialog = new PasswordForm(this, title, TRUE); | 2306 | PasswordForm *dialog = new PasswordForm(this, title, TRUE); |
2336 | newPwdDialog = dialog; | 2307 | newPwdDialog = dialog; |
@@ -3166,49 +3137,49 @@ void ZSafe::editCategory() | |||
3166 | DialogCode result = (DialogCode) dialog->exec(); | 3137 | DialogCode result = (DialogCode) dialog->exec(); |
3167 | #ifdef DESKTOP | 3138 | #ifdef DESKTOP |
3168 | result = Accepted; | 3139 | result = Accepted; |
3169 | #endif | 3140 | #endif |
3170 | 3141 | ||
3171 | QString fullIconPath; | 3142 | QString fullIconPath; |
3172 | QPixmap *pix; | 3143 | QPixmap *pix; |
3173 | if (result == Accepted) | 3144 | if (result == Accepted) |
3174 | { | 3145 | { |
3175 | modified = true; | 3146 | modified = true; |
3176 | if (category != dialog->CategoryField->currentText()) | 3147 | if (category != dialog->CategoryField->currentText()) |
3177 | { | 3148 | { |
3178 | categories.remove (category); | 3149 | categories.remove (category); |
3179 | // #ifndef WIN32 | 3150 | // #ifndef WIN32 |
3180 | conf->removeEntry(category); | 3151 | conf->removeEntry(category); |
3181 | // #endif | 3152 | // #endif |
3182 | saveConf(); | 3153 | saveConf(); |
3183 | } | 3154 | } |
3184 | 3155 | ||
3185 | category = dialog->CategoryField->currentText(); | 3156 | category = dialog->CategoryField->currentText(); |
3186 | icon = dialog->IconField->currentText()+".png"; | 3157 | icon = dialog->IconField->currentText()+".png"; |
3187 | 3158 | ||
3188 | if (cat) | 3159 | if (cat) |
3189 | { | 3160 | { |
3190 | owarn << "Category found" << oendl; | 3161 | owarn << "Category found" << oendl; |
3191 | 3162 | ||
3192 | // if (!icon.isEmpty() && !icon.isNull()) | 3163 | // if (!icon.isEmpty() && !icon.isNull()) |
3193 | if (icon != "predefined.png") | 3164 | if (icon != "predefined.png") |
3194 | { | 3165 | { |
3195 | // build the full path | 3166 | // build the full path |
3196 | fullIconPath = iconPath + icon; | 3167 | fullIconPath = iconPath + icon; |
3197 | pix = new QPixmap (fullIconPath); | 3168 | pix = new QPixmap (fullIconPath); |
3198 | if (pix) | 3169 | if (pix) |
3199 | { | 3170 | { |
3200 | // save the full pixmap name into the config file | 3171 | // save the full pixmap name into the config file |
3201 | // #ifndef WIN32 | 3172 | // #ifndef WIN32 |
3202 | conf->writeEntry(APP_KEY+category, icon); | 3173 | conf->writeEntry(APP_KEY+category, icon); |
3203 | // #endif | 3174 | // #endif |
3204 | saveConf(); | 3175 | saveConf(); |
3205 | QImage img = pix->convertToImage(); | 3176 | QImage img = pix->convertToImage(); |
3206 | pix->convertFromImage(img.smoothScale(14,14)); | 3177 | pix->convertFromImage(img.smoothScale(14,14)); |
3207 | cat->setIconName (icon); | 3178 | cat->setIconName (icon); |
3208 | cat->setIcon (*pix); | 3179 | cat->setIcon (*pix); |
3209 | } | 3180 | } |
3210 | } | 3181 | } |
3211 | else | 3182 | else |
3212 | { | 3183 | { |
3213 | // #ifndef WIN32 | 3184 | // #ifndef WIN32 |
3214 | conf->removeEntry (category); | 3185 | conf->removeEntry (category); |