-rw-r--r-- | noncore/apps/zsafe/zsafe.cpp | 132 | ||||
-rw-r--r-- | noncore/apps/zsafe/zsafe.h | 8 |
2 files changed, 122 insertions, 18 deletions
diff --git a/noncore/apps/zsafe/zsafe.cpp b/noncore/apps/zsafe/zsafe.cpp index 189453e..5cad7cb 100644 --- a/noncore/apps/zsafe/zsafe.cpp +++ b/noncore/apps/zsafe/zsafe.cpp | |||
@@ -54,6 +54,7 @@ using namespace Opie::Ui; | |||
54 | 54 | ||
55 | #ifdef DESKTOP | 55 | #ifdef DESKTOP |
56 | #include <qfiledialog.h> | 56 | #include <qfiledialog.h> |
57 | #include <qdragobject.h> | ||
57 | #ifndef WIN32 | 58 | #ifndef WIN32 |
58 | #include <qsettings.h> | 59 | #include <qsettings.h> |
59 | #else | 60 | #else |
@@ -393,6 +394,7 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl ) | |||
393 | IsCut = false; | 394 | IsCut = false; |
394 | IsCopy = false; | 395 | IsCopy = false; |
395 | modified = false; | 396 | modified = false; |
397 | showpwd = false; | ||
396 | 398 | ||
397 | // set the config file | 399 | // set the config file |
398 | cfgFile=QDir::homeDirPath(); | 400 | cfgFile=QDir::homeDirPath(); |
@@ -457,7 +459,8 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl ) | |||
457 | QPixmap passwords( ( const char** ) passwords_data ); | 459 | QPixmap passwords( ( const char** ) passwords_data ); |
458 | QPixmap software( ( const char** ) software_data ); | 460 | QPixmap software( ( const char** ) software_data ); |
459 | QPixmap general( ( const char** ) general_data ); | 461 | QPixmap general( ( const char** ) general_data ); |
460 | if ( !name ) | 462 | QPixmap image0( ( const char** ) zsafe_xpm ); |
463 | if ( !name ) | ||
461 | setName( "ZSafe" ); | 464 | setName( "ZSafe" ); |
462 | 465 | ||
463 | #ifdef DESKTOP | 466 | #ifdef DESKTOP |
@@ -492,26 +495,63 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl ) | |||
492 | QString filename = conf->readEntry(APP_KEY+"document"); | 495 | QString filename = conf->readEntry(APP_KEY+"document"); |
493 | if (filename.isEmpty() || filename.isNull()) | 496 | if (filename.isEmpty() || filename.isNull()) |
494 | { | 497 | { |
495 | if ( !QDir( zsafeAppDirPath ).exists() ) | 498 | |
499 | // check if the directory application exists, if not | ||
500 | // create it | ||
501 | // #ifndef WIN32 | ||
502 | // QString d1("Documents/application"); | ||
503 | // #else | ||
504 | QString d1(QDir::homeDirPath() + "/Documents/application"); | ||
505 | // #endif | ||
506 | QDir pd1(d1); | ||
507 | if (!pd1.exists()) | ||
508 | { | ||
509 | |||
510 | QDir pd2(QDir::homeDirPath() + "/Documents"); | ||
511 | if (!pd2.exists()) { | ||
512 | QDir pd3(QDir::homeDirPath()); | ||
513 | if (!pd3.mkdir("Documents", FALSE)) { | ||
514 | } | ||
515 | } | ||
516 | |||
517 | if (!pd2.mkdir("application", FALSE)) | ||
496 | { | 518 | { |
497 | //FIXME: Pending someone to look into why QDir.mkdir does not work as expected | 519 | QMessageBox::critical( 0, tr("ZSafe"), |
498 | QString cmdline = QString().sprintf( "mkdir -p %s", (const char*) zsafeAppDirPath ); | 520 | #ifdef JPATCH_HDE |
499 | ::system( cmdline ); | 521 | tr("<P>Can't create directory ..."+d1+"</P><P>ZSafe will now exit.</P>")); |
522 | #else | ||
523 | tr("<P>Can't create directory %1</P><P>ZSafe will now exit.</P>").arg(d1)); | ||
524 | #endif | ||
525 | exitZs (1); | ||
500 | } | 526 | } |
501 | if ( !QDir( zsafeAppDirPath ).exists() ) | 527 | } |
528 | // #ifndef WIN32 | ||
529 | // QString d2("Documents/application/zsafe"); | ||
530 | // #else | ||
531 | QString d2(QDir::homeDirPath() + "/Documents/application/zsafe"); | ||
532 | // #endif | ||
533 | QDir pd2(d2); | ||
534 | if (!pd2.exists()) | ||
535 | { | ||
536 | if (!pd1.mkdir("zsafe", FALSE)) | ||
502 | { | 537 | { |
503 | QMessageBox::critical( 0, "ZSafe", tr("Can't create application data directory.\nZSafe will now exit.")); | 538 | QMessageBox::critical( 0, tr("ZSafe"), |
504 | exitZs (1); | 539 | #ifdef JPATCH_HDE |
540 | tr("<P>Can't create directory ...//Documents/application/zsafe</P><P>ZSafe will now exit.</P")); | ||
541 | #else | ||
542 | tr("<P>Can't create directory %1</P><P>ZSafe will now exit.</P>").arg(d2)); | ||
543 | #endif | ||
544 | exitZs (1); | ||
505 | } | 545 | } |
506 | } | 546 | } |
507 | 547 | ||
508 | // set the default filename | 548 | // set the default filename |
509 | filename = zsafeAppDirPath + "/passwords.zsf"; | 549 | filename = zsafeAppDirPath + "/passwords.zsf"; |
510 | 550 | ||
511 | // save the current filename to the config file | 551 | // save the current filename to the config file |
512 | conf->writeEntry(APP_KEY+"document", filename); | 552 | conf->writeEntry(APP_KEY+"document", filename); |
513 | saveConf(); | 553 | saveConf(); |
514 | 554 | } | |
515 | //if (filename == "INVALIDPWD") | 555 | //if (filename == "INVALIDPWD") |
516 | //filename = ""; | 556 | //filename = ""; |
517 | 557 | ||
@@ -531,6 +571,7 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl ) | |||
531 | 571 | ||
532 | infoForm = new InfoForm(); | 572 | infoForm = new InfoForm(); |
533 | categoryDialog = NULL; | 573 | categoryDialog = NULL; |
574 | infoForm->setIcon( image0); | ||
534 | 575 | ||
535 | // add a menu bar | 576 | // add a menu bar |
536 | QMenuBar *menu = new QMenuBar( this ); | 577 | QMenuBar *menu = new QMenuBar( this ); |
@@ -666,6 +707,13 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl ) | |||
666 | connect( ListView, SIGNAL( returnPressed(QListViewItem*) ), | 707 | connect( ListView, SIGNAL( returnPressed(QListViewItem*) ), |
667 | this, SLOT( showInfo(QListViewItem*) ) ); | 708 | this, SLOT( showInfo(QListViewItem*) ) ); |
668 | 709 | ||
710 | #ifndef DESKTOP | ||
711 | QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold); | ||
712 | #endif | ||
713 | connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | ||
714 | this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); | ||
715 | |||
716 | this->setIcon( image0); | ||
669 | } | 717 | } |
670 | 718 | ||
671 | const QColor *ZSafe::evenRowColor = &Qt::white; | 719 | const QColor *ZSafe::evenRowColor = &Qt::white; |
@@ -1516,7 +1564,7 @@ void ZSafe::readAllEntries() | |||
1516 | // build the full path | 1564 | // build the full path |
1517 | fullIconPath = iconPath + icon; | 1565 | fullIconPath = iconPath + icon; |
1518 | pix = new QPixmap (fullIconPath); | 1566 | pix = new QPixmap (fullIconPath); |
1519 | if (pix) | 1567 | if (!pix->isNull()) |
1520 | { | 1568 | { |
1521 | QImage img = pix->convertToImage(); | 1569 | QImage img = pix->convertToImage(); |
1522 | pix->convertFromImage(img.smoothScale(14,14)); | 1570 | pix->convertFromImage(img.smoothScale(14,14)); |
@@ -1731,7 +1779,7 @@ void ZSafe::readAllEntries() | |||
1731 | // build the full path | 1779 | // build the full path |
1732 | fullIconPath = iconPath + icon; | 1780 | fullIconPath = iconPath + icon; |
1733 | pix = new QPixmap (fullIconPath); | 1781 | pix = new QPixmap (fullIconPath); |
1734 | if (pix) | 1782 | if (!pix->isNull()) |
1735 | { | 1783 | { |
1736 | QImage img = pix->convertToImage(); | 1784 | QImage img = pix->convertToImage(); |
1737 | pix->convertFromImage(img.smoothScale(14,14)); | 1785 | pix->convertFromImage(img.smoothScale(14,14)); |
@@ -1760,6 +1808,8 @@ void ZSafe::resume(int) | |||
1760 | owarn << "Resume" << oendl; | 1808 | owarn << "Resume" << oendl; |
1761 | // hide the main window | 1809 | // hide the main window |
1762 | 1810 | ||
1811 | if ( !showpwd ) | ||
1812 | { | ||
1763 | infoForm->hide(); | 1813 | infoForm->hide(); |
1764 | // open zsafe again | 1814 | // open zsafe again |
1765 | m_password = ""; | 1815 | m_password = ""; |
@@ -1786,6 +1836,7 @@ void ZSafe::resume(int) | |||
1786 | 1836 | ||
1787 | // ask for password and read again | 1837 | // ask for password and read again |
1788 | openDocument(filename); | 1838 | openDocument(filename); |
1839 | } | ||
1789 | } | 1840 | } |
1790 | 1841 | ||
1791 | //--------------------------------------------- | 1842 | //--------------------------------------------- |
@@ -1954,7 +2005,7 @@ bool ZSafe::openDocument(const char* _filename, const char* ) | |||
1954 | // build the full path | 2005 | // build the full path |
1955 | fullIconPath = iconPath + icon; | 2006 | fullIconPath = iconPath + icon; |
1956 | pix = new QPixmap (fullIconPath); | 2007 | pix = new QPixmap (fullIconPath); |
1957 | if (pix) | 2008 | if (!pix->isNull()) |
1958 | { | 2009 | { |
1959 | QImage img = pix->convertToImage(); | 2010 | QImage img = pix->convertToImage(); |
1960 | pix->convertFromImage(img.smoothScale(14,14)); | 2011 | pix->convertFromImage(img.smoothScale(14,14)); |
@@ -2302,6 +2353,9 @@ void ZSafe::getDocPassword(QString title) | |||
2302 | newPwdDialog = dialog; | 2353 | newPwdDialog = dialog; |
2303 | newPwdDialogResult = false; | 2354 | newPwdDialogResult = false; |
2304 | 2355 | ||
2356 | QPixmap image0( ( const char** ) zsafe_xpm ); | ||
2357 | dialog->setIcon( image0); | ||
2358 | |||
2305 | connect( dialog->PasswordField, SIGNAL( returnPressed() ), | 2359 | connect( dialog->PasswordField, SIGNAL( returnPressed() ), |
2306 | this, SLOT( setPasswordDialogDone() ) ); | 2360 | this, SLOT( setPasswordDialogDone() ) ); |
2307 | 2361 | ||
@@ -2692,7 +2746,7 @@ void ZSafe::addCategory() | |||
2692 | fullIconPath = iconPath + icon; | 2746 | fullIconPath = iconPath + icon; |
2693 | pix = new QPixmap (fullIconPath); | 2747 | pix = new QPixmap (fullIconPath); |
2694 | // pix->resize(14, 14); | 2748 | // pix->resize(14, 14); |
2695 | if (pix) | 2749 | if (!pix->isNull()) |
2696 | { | 2750 | { |
2697 | // save the full pixmap name into the config file | 2751 | // save the full pixmap name into the config file |
2698 | // #ifndef WIN32 | 2752 | // #ifndef WIN32 |
@@ -3161,7 +3215,7 @@ void ZSafe::editCategory() | |||
3161 | // build the full path | 3215 | // build the full path |
3162 | fullIconPath = iconPath + icon; | 3216 | fullIconPath = iconPath + icon; |
3163 | pix = new QPixmap (fullIconPath); | 3217 | pix = new QPixmap (fullIconPath); |
3164 | if (pix) | 3218 | if (!pix->isNull()) |
3165 | { | 3219 | { |
3166 | // save the full pixmap name into the config file | 3220 | // save the full pixmap name into the config file |
3167 | // #ifndef WIN32 | 3221 | // #ifndef WIN32 |
@@ -3692,4 +3746,50 @@ void ZSafe::setDocument(const QString& fileref) | |||
3692 | } | 3746 | } |
3693 | 3747 | ||
3694 | 3748 | ||
3749 | void ZSafe::ListPressed(int mouse, QListViewItem *item, const QPoint&, int column) { | ||
3750 | if(item ==0) return; | ||
3751 | switch (mouse) { | ||
3752 | case 1: | ||
3753 | { | ||
3754 | #ifdef DESKTOP | ||
3755 | QDragObject *d = new QTextDrag( item->text(column) , this ); | ||
3756 | d->dragCopy(); | ||
3757 | #endif | ||
3758 | } | ||
3759 | break; | ||
3760 | case 2: | ||
3761 | { | ||
3762 | QClipboard *cb = QApplication::clipboard(); | ||
3763 | |||
3764 | QIconSet copy_img((const char**) copy_xpm); | ||
3765 | QIconSet edit_img((const char**) edit_xpm); | ||
3766 | QPixmap folder_open_img((const char**) folder_open_xpm); | ||
3767 | QPixmap editdelete_img((const char**) editdelete_xpm); | ||
3768 | |||
3769 | QPopupMenu *m = new QPopupMenu(this); | ||
3770 | int copyItem = m->insertItem( copy_img, tr( "Copy to Clipboard" )); | ||
3771 | int editItem = m->insertItem(edit_img, tr( "Edit" )); | ||
3772 | int showItem = m->insertItem(folder_open_img, tr( "Show Info" )); | ||
3773 | int cancelItem = m->insertItem( editdelete_img, tr( "Cancel" )); | ||
3774 | m->setFocus(); | ||
3775 | int me=m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y() ) ) ; | ||
3776 | if(me == copyItem) { | ||
3777 | copyClip( item->text(column) ) ; | ||
3778 | } else if (me == cancelItem) { | ||
3779 | cb->clear(); | ||
3780 | } else if (me == editItem) { | ||
3781 | editPwd(); | ||
3782 | } else if (me == showItem) { | ||
3783 | showInfo(item); | ||
3784 | } | ||
3785 | } | ||
3786 | break; | ||
3787 | }; | ||
3788 | } | ||
3789 | |||
3790 | void ZSafe::copyClip( const QString &text) { | ||
3791 | QClipboard *cb = QApplication::clipboard(); | ||
3792 | cb->setText( text); | ||
3793 | } | ||
3794 | |||
3695 | 3795 | ||
diff --git a/noncore/apps/zsafe/zsafe.h b/noncore/apps/zsafe/zsafe.h index eef5cdc..ca041ff 100644 --- a/noncore/apps/zsafe/zsafe.h +++ b/noncore/apps/zsafe/zsafe.h | |||
@@ -61,8 +61,8 @@ public: | |||
61 | ZSafe( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = WDestructiveClose ); | 61 | ZSafe( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = WDestructiveClose ); |
62 | ~ZSafe(); | 62 | ~ZSafe(); |
63 | 63 | ||
64 | static const QColor *evenRowColor; | 64 | static const QColor *evenRowColor; |
65 | static const QColor *oddRowColor; | 65 | static const QColor *oddRowColor; |
66 | 66 | ||
67 | QToolButton* Edit; | 67 | QToolButton* Edit; |
68 | QToolButton* Delete; | 68 | QToolButton* Delete; |
@@ -81,6 +81,7 @@ public: | |||
81 | bool IsCopy; | 81 | bool IsCopy; |
82 | bool IsCut; | 82 | bool IsCut; |
83 | bool modified; // true if database is modified | 83 | bool modified; // true if database is modified |
84 | bool showpwd; // show PWD Dialog | ||
84 | 85 | ||
85 | QListViewItem *lastSearchedCategory; | 86 | QListViewItem *lastSearchedCategory; |
86 | QListViewItem *lastSearchedItem; | 87 | QListViewItem *lastSearchedItem; |
@@ -183,6 +184,9 @@ public slots: | |||
183 | 184 | ||
184 | virtual void categoryFieldActivated( const QString& str); | 185 | virtual void categoryFieldActivated( const QString& str); |
185 | 186 | ||
187 | virtual void ListPressed(int, QListViewItem *, const QPoint&, int); | ||
188 | virtual void copyClip( const QString &text); | ||
189 | |||
186 | private slots: | 190 | private slots: |
187 | void setDocument(const QString& fileref); | 191 | void setDocument(const QString& fileref); |
188 | void slotLoadDocu(); | 192 | void slotLoadDocu(); |