summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2004-07-10 01:04:49 (UTC)
committer llornkcor <llornkcor>2004-07-10 01:04:49 (UTC)
commitf16bf63fc655c1e85fed6ce96c464553b260f796 (patch) (unidiff)
tree798963e12adcddf320802101982001afa8ee639e
parent944adb8bf2741a16cf627d19e08f51c08920ad89 (diff)
downloadopie-f16bf63fc655c1e85fed6ce96c464553b260f796.zip
opie-f16bf63fc655c1e85fed6ce96c464553b260f796.tar.gz
opie-f16bf63fc655c1e85fed6ce96c464553b260f796.tar.bz2
add right click menu, and drag and drop for desktop version. show icons
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/zsafe/zsafe.cpp132
-rw-r--r--noncore/apps/zsafe/zsafe.h8
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
@@ -53,8 +53,9 @@ using namespace Opie::Ui;
53#include <qpopupmenu.h> 53#include <qpopupmenu.h>
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
60#include "qsettings.h" 61#include "qsettings.h"
@@ -392,8 +393,9 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
392{ 393{
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();
399 cfgFile += "/.zsafe.cfg"; 401 cfgFile += "/.zsafe.cfg";
@@ -456,9 +458,10 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
456 QPixmap bank_cards( ( const char** ) bank_cards_data ); 458 QPixmap bank_cards( ( const char** ) bank_cards_data );
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
464#ifdef WIN32 467#ifdef WIN32
@@ -491,28 +494,65 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
491 QString zsafeAppDirPath = QDir::homeDirPath() + "/Documents/application/zsafe"; 494 QString zsafeAppDirPath = QDir::homeDirPath() + "/Documents/application/zsafe";
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
518 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1); 558 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1);
@@ -530,8 +570,9 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
530 lastSearchedComment = ""; 570 lastSearchedComment = "";
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 );
537 578
@@ -665,8 +706,15 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
665 this, SLOT( showInfo(QListViewItem*) ) ); 706 this, SLOT( showInfo(QListViewItem*) ) );
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
671const QColor *ZSafe::evenRowColor = &Qt::white; 719const QColor *ZSafe::evenRowColor = &Qt::white;
672// const QColor *ZSafe::oddRowColor = &Qt::lightGray; 720// const QColor *ZSafe::oddRowColor = &Qt::lightGray;
@@ -1515,9 +1563,9 @@ void ZSafe::readAllEntries()
1515 { 1563 {
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));
1523 c1->setIconName (icon); 1571 c1->setIconName (icon);
@@ -1730,9 +1778,9 @@ void ZSafe::readAllEntries()
1730 { 1778 {
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));
1738 c1->setIconName (icon); 1786 c1->setIconName (icon);
@@ -1759,8 +1807,10 @@ void ZSafe::resume(int)
1759{ 1807{
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 = "";
1766 selectedItem = NULL; 1816 selectedItem = NULL;
@@ -1785,8 +1835,9 @@ void ZSafe::resume(int)
1785 } 1835 }
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//---------------------------------------------
1792 1843
@@ -1953,9 +2004,9 @@ bool ZSafe::openDocument(const char* _filename, const char* )
1953 { 2004 {
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));
1961 c1->setIconName (icon); 2012 c1->setIconName (icon);
@@ -2301,8 +2352,11 @@ void ZSafe::getDocPassword(QString title)
2301 PasswordForm *dialog = new PasswordForm(this, title, TRUE); 2352 PasswordForm *dialog = new PasswordForm(this, title, TRUE);
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
2308 // CS: !!! 2362 // CS: !!!
@@ -2691,9 +2745,9 @@ void ZSafe::addCategory()
2691 // build the full path 2745 // build the full path
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
2699 conf->writeEntry(APP_KEY+category, icon); 2753 conf->writeEntry(APP_KEY+category, icon);
@@ -3160,9 +3214,9 @@ void ZSafe::editCategory()
3160 { 3214 {
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
3168 conf->writeEntry(APP_KEY+category, icon); 3222 conf->writeEntry(APP_KEY+category, icon);
@@ -3691,5 +3745,51 @@ void ZSafe::setDocument(const QString& fileref)
3691#endif 3745#endif
3692} 3746}
3693 3747
3694 3748
3749void 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
3790void 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
@@ -60,10 +60,10 @@ protected:
60public: 60public:
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;
69 QToolButton* Find; 69 QToolButton* Find;
@@ -80,8 +80,9 @@ public:
80 QListViewItem *copiedItem; // copied item 80 QListViewItem *copiedItem; // copied item
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;
87 QString lastSearchedName; 88 QString lastSearchedName;
@@ -182,8 +183,11 @@ public slots:
182 virtual void setExpandFlag(); 183 virtual void setExpandFlag();
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
186private slots: 190private slots:
187 void setDocument(const QString& fileref); 191 void setDocument(const QString& fileref);
188 void slotLoadDocu(); 192 void slotLoadDocu();
189 void slotRaiseTimer(); 193 void slotRaiseTimer();