-rw-r--r-- | noncore/apps/zsafe/categorylist.cpp | 6 | ||||
-rw-r--r-- | noncore/apps/zsafe/categorylist.h | 6 | ||||
-rw-r--r-- | noncore/apps/zsafe/zsafe.cpp | 201 |
3 files changed, 171 insertions, 42 deletions
diff --git a/noncore/apps/zsafe/categorylist.cpp b/noncore/apps/zsafe/categorylist.cpp index 2fa59d2..c5e8d66 100644 --- a/noncore/apps/zsafe/categorylist.cpp +++ b/noncore/apps/zsafe/categorylist.cpp @@ -1,35 +1,35 @@ /* C implementation of RC2 encryption algorithm, as described in RFC2268 */ /* By Matthew Palmer <mjp16@uow.edu.au> */ /* $Id$ */ #include "categorylist.h" CategoryList::CategoryList() { } CategoryList::~CategoryList() { } void CategoryList::insert (QString key, Category *category) { - categoryList.insert ((const char *) key, category); + categoryList.insert (key, category); } Category *CategoryList::find (QString key) { - return categoryList.find ((const char *) key); + return categoryList.find (key); } void CategoryList::remove (QString key) { - categoryList.remove ((const char *) key); + categoryList.remove (key); } void CategoryList::clear() { categoryList.clear(); } diff --git a/noncore/apps/zsafe/categorylist.h b/noncore/apps/zsafe/categorylist.h index 96cf389..fc1c0a2 100644 --- a/noncore/apps/zsafe/categorylist.h +++ b/noncore/apps/zsafe/categorylist.h @@ -1,32 +1,34 @@ /* ** $Id$ */ #ifndef _CATEGORY_LIST_H_ #define _CATEGORY_LIST_H_ #include <qstring.h> -#include <qasciidict.h> + +#include <qdict.h> + #include "category.h" // list of Category class CategoryList { public: CategoryList(); ~CategoryList(); void insert (QString key, Category *category); Category *find (QString key); void remove (QString key); void clear(); - QAsciiDict<Category> categoryList; + QDict<Category> categoryList; private: }; #endif // _CATEGORY_LIST_H_ diff --git a/noncore/apps/zsafe/zsafe.cpp b/noncore/apps/zsafe/zsafe.cpp index 9341425..d55624b 100644 --- a/noncore/apps/zsafe/zsafe.cpp +++ b/noncore/apps/zsafe/zsafe.cpp @@ -1,32 +1,34 @@ /**************************************************************************** ** ** Created: Sat Apr 6 17:57:45 2002 ** ** Author: Carsten Schneider <CarstenSchneider@t-online.de> ** ** $Id$ ** ** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html ** ** Compile Flags: ** Zaurus arm : -DNO_OPIE ** Zaurus Opie arm: none ** Linux Desktop : -DDESKTOP ** Windows Desktop: -DDESKTOP -DWIN32 ** +** for japanese version additional use: -DJPATCH_HDE +** ****************************************************************************/ #include "zsafe.h" #include "newdialog.h" #include "searchdialog.h" #include "categorydialog.h" #include "passworddialog.h" #include "infoform.h" #include "zlistview.h" #include "shadedlistitem.h" #ifndef DESKTOP #ifndef NO_OPIE #include <opie/ofiledialog.h> #else #include "scqtfileedit.h" #endif @@ -441,39 +443,52 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl ) QPixmap export_img((const char**) export_xpm); QPixmap import_img((const char**) import_xpm); QPixmap bank_cards( ( const char** ) bank_cards_data ); QPixmap passwords( ( const char** ) passwords_data ); QPixmap software( ( const char** ) software_data ); QPixmap general( ( const char** ) general_data ); if ( !name ) setName( "ZSafe" ); #ifdef DESKTOP #ifdef WIN32 setGeometry(100, 150, DeskW, DeskH-30 ); #else resize( DeskW, DeskH-30 ); #endif - // setMinimumSize( QSize( DeskW, DeskH-30 ) ); - // setMaximumSize( QSize( DeskW, DeskH-30 ) ); + #else - resize( DeskW, DeskH-30 ); - // setMinimumSize( QSize( DeskW, DeskH-30 ) ); - // setMaximumSize( QSize( 440, 290 ) ); - // setMaximumSize( QSize( DeskW+400, DeskH+200 ) ); + +#ifdef JPATCH_HDE + int DeskS; + if(DeskW > DeskH) + { + DeskS = DeskW; + } + else + { + DeskS = DeskH; + } + resize( DeskW, DeskH ); + setMinimumSize( QSize( DeskS, DeskS ) ); + setMaximumSize( QSize( DeskS, DeskS ) ); +#else + resize( DeskW, DeskH-30 ); +#endif + #endif // setCaption( tr( "ZSafe" ) ); filename = conf->readEntry(APP_KEY+"document"); if (filename.isEmpty() || filename.isNull()) { // check if the directory application exists, if not // create it // #ifndef WIN32 // QString d1("Documents/application"); // #else QString d1(QDir::homeDirPath() + "/Documents/application"); // #endif QDir pd1(d1); if (!pd1.exists()) @@ -747,47 +762,64 @@ void ZSafe::editPwd() dialog->CommentField->insertLine(comment); dialog->CommentField->setCursorPosition(0,0); #ifdef DESKTOP #ifndef WIN32 dialog->show(); #endif #else dialog->showMaximized(); #endif DialogCode result = (DialogCode) dialog->exec(); #ifdef DESKTOP result = Accepted; #endif if (result == Accepted) { +#ifdef JPATCH_HDE + // edit the selected item + QString name = dialog->NameField->text(); + selectedItem->setText (0, name); + QString user = dialog->UsernameField->text(); + selectedItem->setText (1, user); + QString pwd = dialog->PasswordField->text(); + selectedItem->setText (2, pwd); + QString comment = dialog->CommentField->text(); + comment.replace (QRegExp("\n"), "<br>"); + selectedItem->setText (3, comment); + QString f5 = dialog->Field5->text(); + selectedItem->setText (4, f5); + QString f6 = dialog->Field6->text(); + selectedItem->setText (5, f6); +#else modified = true; // edit the selected item QString name = dialog->NameField->text(); selectedItem->setText (0, tr (name)); QString user = dialog->UsernameField->text(); selectedItem->setText (1, tr (user)); QString pwd = dialog->PasswordField->text(); selectedItem->setText (2, tr (pwd)); QString comment = dialog->CommentField->text(); comment.replace (QRegExp("\n"), "<br>"); selectedItem->setText (3, tr (comment)); QString f5 = dialog->Field5->text(); selectedItem->setText (4, tr (f5)); QString f6 = dialog->Field6->text(); selectedItem->setText (5, tr (f6)); +#endif } delete dialog; } else { editCategory(); } } void ZSafe::newPwd() { if (!selectedItem) return; if (!isCategory(selectedItem)) @@ -826,44 +858,59 @@ retype: if (result == Accepted) { QString name = dialog->NameField->text(); if (cat == name) { QMessageBox::critical( 0, tr("ZSafe"), tr("Entry name must be different\nfrom the category name.") ); goto retype; // it's not a good programming style :-) } modified = true; // add the new item QListViewItem *i = new ShadedListItem (0, selectedItem); i->setOpen (TRUE); +#ifdef JPATCH_HDE + i->setText (0, name); + QString user = dialog->UsernameField->text(); + i->setText (1, user); + QString pwd = dialog->PasswordField->text(); + i->setText (2, pwd); + QString comment = dialog->CommentField->text(); + comment.replace (QRegExp("\n"), "<br>"); + i->setText (3, comment); + QString f5 = dialog->Field5->text(); + i->setText (4, f5); + QString f6 = dialog->Field6->text(); + i->setText (5, f6); +#else i->setText (0, tr (name)); QString user = dialog->UsernameField->text(); i->setText (1, tr (user)); QString pwd = dialog->PasswordField->text(); i->setText (2, tr (pwd)); QString comment = dialog->CommentField->text(); comment.replace (QRegExp("\n"), "<br>"); i->setText (3, tr (comment)); QString f5 = dialog->Field5->text(); i->setText (4, tr (f5)); QString f6 = dialog->Field6->text(); i->setText (5, tr (f6)); +#endif } delete dialog; } } void ZSafe::findPwd() { // open the 'Search' dialog SearchDialog *dialog = new SearchDialog(this, tr("Search"), TRUE); #ifdef WIN32 dialog->setCaption ("Qt " + tr("Search")); #endif #ifdef DESKTOP @@ -1191,33 +1238,33 @@ void ZSafe::listViewSelected( QListViewItem *_item) ListView->setColumnText(0, getFieldLabel (selectedItem, "1", tr("Name"))); ListView->setColumnText(1, getFieldLabel (selectedItem, "2", tr("Field 2"))); ListView->setColumnText(2, getFieldLabel (selectedItem, "3", tr("Field 3"))); ListView->setColumnText(3, getFieldLabel (selectedItem, "4", tr("Comment"))); ListView->setColumnText(4, getFieldLabel (selectedItem, "5", tr("Field 4"))); ListView->setColumnText(5, getFieldLabel (selectedItem, "6", tr("Field 5"))); #endif } bool ZSafe::isCategory(QListViewItem *_item) { if (_item == NULL) return FALSE; QString categoryName = _item->text (0); - if (categories.find ((const char *)categoryName)) + if (categories.find (categoryName)) return TRUE; else return FALSE; } void ZSafe::removeAsciiFile() { // QString fn = filename + ".txt"; // open the file dialog #ifndef DESKTOP #ifndef NO_OPIE QMap<QString, QStringList> mimeTypes; mimeTypes.insert(tr("All"), QStringList() ); mimeTypes.insert(tr("Text"), "text/*" ); QString fn = OFileDialog::getOpenFileName( OFileSelector::EXTENDED_ALL, QDir::homeDirPath() + "/Documents/application/zsafe", @@ -1420,113 +1467,135 @@ void ZSafe::readAllEntries() } } qWarning ("ReadAllEntries(): "); QTextStream t(&f); while ( !t.eof() ) { QString s = t.readLine(); s.replace (QRegExp("\";\""), "\"|\""); // char buffer[1024]; #ifndef WIN32 char buffer[s.length()+1]; #else char buffer[4048]; #endif - strcpy (buffer, s); + + + /* modify QString -> QCString::utf8 */ + + strcpy (buffer, s.utf8()); QString name; QString user; QString password; QString comment; QString field5=""; QString field6=""; // separete the entries char *i = strtok (buffer, "|"); - QString category(&i[1]); + QString category(QString::fromUtf8(&i[1])); category.truncate(category.length() -1); int idx=0; while ((i = strtok (NULL, "|")) != NULL) { switch (idx) { case 0: - name = &i[1]; + name = QString::fromUtf8(&i[1]); name.truncate(name.length() -1); // name break; case 1: // user - user = &i[1]; + user = QString::fromUtf8(&i[1]); user.truncate(user.length() -1); break; case 2: // password - password = &i[1]; + password = QString::fromUtf8(&i[1]); password.truncate(password.length() -1); break; case 3: // comment - comment = &i[1]; + comment = QString::fromUtf8(&i[1]); comment.truncate(comment.length() -1); break; case 4: // field5 - field5 = &i[1]; + field5 = QString::fromUtf8(&i[1]); field5.truncate(field5.length() -1); break; case 5: // field6 - field6 = &i[1]; + field6 = QString::fromUtf8(&i[1]); field6.truncate(field6.length() -1); break; } idx++; } Category *cat= categories.find (category); if (cat) { // use the existend item QListViewItem *catItem = cat->getListItem(); if (catItem) { QListViewItem * item = new ShadedListItem( 0, catItem ); +#ifdef JPATCH_HDE + item->setText( 0, name ); + item->setText( 1, user ); + item->setText( 2, password ); + item->setText( 3, comment ); + item->setText( 4, field5 ); + item->setText( 5, field6 ); +#else item->setText( 0, tr( name ) ); item->setText( 1, tr( user ) ); item->setText( 2, tr( password ) ); item->setText( 3, tr( comment ) ); item->setText( 4, tr( field5 ) ); item->setText( 5, tr( field6 ) ); catItem->setOpen( TRUE ); +#endif } } else { QListViewItem *catI = new ShadedListItem( 1, ListView ); // create and insert a new item QListViewItem * item = new ShadedListItem( 0, catI ); +#ifdef JPATCH_HDE + item->setText( 0, name ); + item->setText( 1, user ); + item->setText( 2, password ); + item->setText( 3, comment ); + item->setText( 4, field5 ); + item->setText( 5, field6 ); +#else item->setText( 0, tr( name ) ); item->setText( 1, tr( user ) ); item->setText( 2, tr( password ) ); item->setText( 3, tr( comment ) ); item->setText( 4, tr( field5 ) ); item->setText( 5, tr( field6 ) ); +#endif catI->setOpen( TRUE ); Category *c1 = new Category(); c1->setCategoryName(category); QString icon; QString fullIconPath; QPixmap *pix; // #ifndef WIN32 icon = conf->readEntry(APP_KEY+category); // #endif bool isIconAv = false; if (!icon.isEmpty() && !icon.isNull()) { // build the full path fullIconPath = iconPath + icon; @@ -1700,48 +1769,62 @@ void ZSafe::readAllEntries() // comment comment = &i[1]; comment.truncate(comment.length() -1); break; } idx++; } Category *cat= categories.find (category); if (cat) { // use the existend item QListViewItem *catItem = cat->getListItem(); if (catItem) { QListViewItem * item = new ShadedListItem( 0, catItem ); +#ifdef JPATCH_HDE + item->setText( 0, name ); + item->setText( 1, user ); + item->setText( 2, password ); + item->setText( 3, comment ); +#else item->setText( 0, tr( name ) ); item->setText( 1, tr( user ) ); item->setText( 2, tr( password ) ); item->setText( 3, tr( comment ) ); +#endif catItem->setOpen( TRUE ); } } else { QListViewItem *catI = new ShadedListItem( 1, ListView ); // create and insert a new item QListViewItem * item = new ShadedListItem( 0, catI ); +#ifdef JPATCH_HDE + item->setText( 0, name ); + item->setText( 1, user ); + item->setText( 2, password ); + item->setText( 3, comment ); +#else item->setText( 0, tr( name ) ); item->setText( 1, tr( user ) ); item->setText( 2, tr( password ) ); item->setText( 3, tr( comment ) ); +#endif catI->setOpen( TRUE ); Category *c1 = new Category(); c1->setCategoryName(category); QString icon; QString fullIconPath; QPixmap *pix; // #ifndef WIN32 icon = conf->readEntry(APP_KEY+category); // #endif bool isIconAv = false; if (!icon.isEmpty() && !icon.isNull()) { // build the full path fullIconPath = iconPath + icon; @@ -1896,71 +1979,89 @@ bool ZSafe::openDocument(const char* _filename, const char* ) if (pwdOk == 0) { // unset the document entry conf->writeEntry(APP_KEY+"document", "INVALIDPWD"); if (conf) delete conf; exitZs (1); } retval = loadEntry(entry); int numberOfEntries=0; while (retval == 1) { - QString category(entry[0]); - QString name(entry[1]); - QString user(entry[2]); - QString password(entry[3]); - QString comment(entry[4]); - QString field5(entry[5]); - QString field6(entry[6]); + QString category( QString::fromUtf8(entry[0]) ); + QString name( QString::fromUtf8(entry[1]) ); + QString user( QString::fromUtf8(entry[2]) ); + QString password( QString::fromUtf8(entry[3]) ); + QString comment( QString::fromUtf8(entry[4]) ); + QString field5( QString::fromUtf8(entry[5]) ); + QString field6( QString::fromUtf8(entry[6]) ); // add the subitems to the categories Category *cat= categories.find (category); if (cat) { // use the existend item QListViewItem *catItem = cat->getListItem(); if (catItem) { QListViewItem * item = new ShadedListItem( 0, catItem ); +#ifdef JPATCH_HDE + item->setText( 0, name ); + item->setText( 1, user ); + item->setText( 2, password ); + item->setText( 3, comment ); + item->setText( 4, field5 ); + item->setText( 5, field6 ); +#else item->setText( 0, tr( name ) ); item->setText( 1, tr( user ) ); item->setText( 2, tr( password ) ); item->setText( 3, tr( comment ) ); item->setText( 4, tr( field5 ) ); item->setText( 5, tr( field6 ) ); +#endif if (expandTree) catItem->setOpen( TRUE ); numberOfEntries++; } } else { QListViewItem *catI = new ShadedListItem( 1, ListView ); // create and insert a new item QListViewItem * item = new ShadedListItem( 0, catI ); +#ifdef JPATCH_HDE + item->setText( 0, name ); + item->setText( 1, user ); + item->setText( 2, password ); + item->setText( 3, comment ); + item->setText( 4, field5 ); + item->setText( 5, field6 ); +#else item->setText( 0, tr( name ) ); item->setText( 1, tr( user ) ); item->setText( 2, tr( password ) ); item->setText( 3, tr( comment ) ); item->setText( 4, tr( field5 ) ); item->setText( 5, tr( field6 ) ); +#endif if (expandTree) catI->setOpen( TRUE ); Category *c1 = new Category(); c1->setCategoryName(category); QString icon; QString fullIconPath; QPixmap *pix; // #ifndef WIN32 icon = conf->readEntry(APP_KEY+category); // #endif bool isIconAv = false; if (!icon.isEmpty() && !icon.isNull()) { // build the full path @@ -2246,47 +2347,46 @@ bool ZSafe::saveDocument(const char* _filename, saveConf(); } QListViewItem *i; // step through all categories for (i = ListView->firstChild(); i != NULL; i = i->nextSibling()) { // step through all subitems QListViewItem *si; for (si = i->firstChild(); si != NULL; si = si->nextSibling()) { int j=0; - entry[j] = (char*)malloc(strlen(i->text(0))+1); - strcpy(entry[j++], i->text(0)); - entry[j] = (char*)malloc(strlen(si->text(0))+1); - strcpy(entry[j++], si->text(0)); - entry[j] = (char*)malloc(strlen(si->text(1))+1); - strcpy(entry[j++], si->text(1)); - entry[j] = (char*)malloc(strlen(si->text(2))+1); - strcpy(entry[j++], si->text(2)); - entry[j] = (char*)malloc(strlen(si->text(3))+1); - strcpy(entry[j++], si->text(3)); - - entry[j] = (char*)malloc(strlen(si->text(4))+1); - strcpy(entry[j++], si->text(4)); - entry[j] = (char*)malloc(strlen(si->text(5))+1); - strcpy(entry[j++], si->text(5)); + entry[j] = (char*)malloc(strlen(i->text(0).utf8())+1); + strcpy(entry[j++], i->text(0).utf8()); + entry[j] = (char*)malloc(strlen(si->text(0).utf8())+1); + strcpy(entry[j++], si->text(0).utf8()); + entry[j] = (char*)malloc(strlen(si->text(1).utf8())+1); + strcpy(entry[j++], si->text(1).utf8()); + entry[j] = (char*)malloc(strlen(si->text(2).utf8())+1); + strcpy(entry[j++], si->text(2).utf8()); + entry[j] = (char*)malloc(strlen(si->text(3).utf8())+1); + strcpy(entry[j++], si->text(3).utf8()); + entry[j] = (char*)malloc(strlen(si->text(4).utf8())+1); + strcpy(entry[j++], si->text(4).utf8()); + entry[j] = (char*)malloc(strlen(si->text(5).utf8())+1); + strcpy(entry[j++], si->text(5).utf8()); retval = saveEntry(entry); for (int z=0; z<j; z++) { free(entry[z]); } if (retval == PWERR_DATA) { qWarning("1: Error writing file, contents not saved"); saveFinalize(); return false; } } } if (saveFinalize() == PWERR_DATA) { @@ -3190,34 +3290,39 @@ void ZSafe::editCategory() } } else { // #ifndef WIN32 conf->removeEntry (category); // #endif saveConf(); cat->setIcon (*getPredefinedIcon(category)); } // change the category name of the selected category QListViewItem *catItem = cat->getListItem(); if (catItem) { qWarning (category); +#ifdef JPATCH_HDE + catItem->setText( 0, category ); + cat->setCategoryName (category); +#else catItem->setText( 0, tr( category ) ); cat->setCategoryName (tr(category)); +#endif cat->initListItem(); categories.insert (category, cat); } } saveCategoryDialogFields(dialog); } else { // delete dialog; dialog->hide(); return; } } } @@ -3516,45 +3621,67 @@ void ZSafe::saveDocumentAs() } } void ZSafe::saveDocumentWithoutPwd() { saveDocument(filename, FALSE); } void ZSafe::saveDocumentWithPwd() { saveDocument(filename, TRUE); } void ZSafe::about() { QString info; +#ifdef JPATCH_HDE + info = "<html><body><div align=""center"">"; + info += "<b>"; + info += tr("Zaurus Password Manager<br>"); + info += tr("ZSafe version 2.1.2-jv01b<br>"); + info += "</b>"; + info += tr("by Carsten Schneider<br>"); + info += "zcarsten@gmx.net<br>"; + info += "http://z-soft.z-portal.info/zsafe"; + info += "<br>"; + info += tr("Translations by Robert Ernst<br>"); + info += "robert.ernst@linux-solutions.at<br>"; + + info += "<br><br>"; + info += QString::fromUtf8("�~W��~\\��~^/VGA Zaurus対�~\\�~C~Q�~C~C�~C~A�~\\� ~H~P<br>"); + info += "HADECO R&D<br>"; + info += "r&d@hadeco.co.jp<br>"; + info += "http://www.hadeco.co.jp/r&d/<br>"; + info += "<br></div>"; + info += "</body></html>"; +#else info = "<html><body><div align=""center"">"; info += "<b>"; info += tr("Zaurus Password Manager<br>"); info += tr("ZSafe version 2.1.2<br>"); info += "</b>"; info += tr("by Carsten Schneider<br>"); info += "zcarsten@gmx.net<br>"; info += "http://z-soft.z-portal.info/zsafe"; info += "<br>"; info += tr("Translations by Robert Ernst<br>"); info += "robert.ernst@linux-solutions.at<br>"; info += "<br></div>"; info += "</body></html>"; +#endif // QMessageBox::information( this, tr("ZSafe"), info, tr("&OK"), 0); QMessageBox mb( this, tr("ZSafe")); mb.setText (info); mb.setButtonText (QMessageBox::Ok, tr ("&OK")); QPixmap zsafe_img((const char**) zsafe_xpm); mb.setIconPixmap (zsafe_img); mb.exec(); } void ZSafe::setExpandFlag() { expandTree = !expandTree; file->setItemChecked('o', expandTree); #ifndef DESKTOP |