summaryrefslogtreecommitdiff
Side-by-side diff
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
@@ -55,4 +55,5 @@ using namespace Opie::Ui;
#ifdef DESKTOP
#include <qfiledialog.h>
+#include <qdragobject.h>
#ifndef WIN32
#include <qsettings.h>
@@ -394,4 +395,5 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
IsCopy = false;
modified = false;
+ showpwd = false;
// set the config file
@@ -458,5 +460,6 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
QPixmap software( ( const char** ) software_data );
QPixmap general( ( const char** ) general_data );
- if ( !name )
+ QPixmap image0( ( const char** ) zsafe_xpm );
+ if ( !name )
setName( "ZSafe" );
@@ -493,17 +496,54 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
if (filename.isEmpty() || filename.isNull())
{
- if ( !QDir( zsafeAppDirPath ).exists() )
+
+ // 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())
+ {
+
+ QDir pd2(QDir::homeDirPath() + "/Documents");
+ if (!pd2.exists()) {
+ QDir pd3(QDir::homeDirPath());
+ if (!pd3.mkdir("Documents", FALSE)) {
+ }
+ }
+
+ if (!pd2.mkdir("application", FALSE))
{
- //FIXME: Pending someone to look into why QDir.mkdir does not work as expected
- QString cmdline = QString().sprintf( "mkdir -p %s", (const char*) zsafeAppDirPath );
- ::system( cmdline );
+ QMessageBox::critical( 0, tr("ZSafe"),
+#ifdef JPATCH_HDE
+ tr("<P>Can't create directory ..."+d1+"</P><P>ZSafe will now exit.</P>"));
+#else
+ tr("<P>Can't create directory %1</P><P>ZSafe will now exit.</P>").arg(d1));
+#endif
+ exitZs (1);
}
- if ( !QDir( zsafeAppDirPath ).exists() )
+ }
+// #ifndef WIN32
+ // QString d2("Documents/application/zsafe");
+// #else
+ QString d2(QDir::homeDirPath() + "/Documents/application/zsafe");
+// #endif
+ QDir pd2(d2);
+ if (!pd2.exists())
+ {
+ if (!pd1.mkdir("zsafe", FALSE))
{
- QMessageBox::critical( 0, "ZSafe", tr("Can't create application data directory.\nZSafe will now exit."));
- exitZs (1);
+ QMessageBox::critical( 0, tr("ZSafe"),
+#ifdef JPATCH_HDE
+ tr("<P>Can't create directory ...//Documents/application/zsafe</P><P>ZSafe will now exit.</P"));
+#else
+ tr("<P>Can't create directory %1</P><P>ZSafe will now exit.</P>").arg(d2));
+#endif
+ exitZs (1);
}
- }
-
+ }
+
// set the default filename
filename = zsafeAppDirPath + "/passwords.zsf";
@@ -512,5 +552,5 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
conf->writeEntry(APP_KEY+"document", filename);
saveConf();
-
+ }
//if (filename == "INVALIDPWD")
//filename = "";
@@ -532,4 +572,5 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
infoForm = new InfoForm();
categoryDialog = NULL;
+ infoForm->setIcon( image0);
// add a menu bar
@@ -667,4 +708,11 @@ ZSafe::ZSafe( QWidget* parent, const char* name, bool modal, WFlags fl )
this, SLOT( showInfo(QListViewItem*) ) );
+#ifndef DESKTOP
+ QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold);
+#endif
+ connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
+ this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) );
+
+ this->setIcon( image0);
}
@@ -1517,5 +1565,5 @@ void ZSafe::readAllEntries()
fullIconPath = iconPath + icon;
pix = new QPixmap (fullIconPath);
- if (pix)
+ if (!pix->isNull())
{
QImage img = pix->convertToImage();
@@ -1732,5 +1780,5 @@ void ZSafe::readAllEntries()
fullIconPath = iconPath + icon;
pix = new QPixmap (fullIconPath);
- if (pix)
+ if (!pix->isNull())
{
QImage img = pix->convertToImage();
@@ -1761,4 +1809,6 @@ void ZSafe::resume(int)
// hide the main window
+ if ( !showpwd )
+ {
infoForm->hide();
// open zsafe again
@@ -1787,4 +1837,5 @@ void ZSafe::resume(int)
// ask for password and read again
openDocument(filename);
+ }
}
@@ -1955,5 +2006,5 @@ bool ZSafe::openDocument(const char* _filename, const char* )
fullIconPath = iconPath + icon;
pix = new QPixmap (fullIconPath);
- if (pix)
+ if (!pix->isNull())
{
QImage img = pix->convertToImage();
@@ -2303,4 +2354,7 @@ void ZSafe::getDocPassword(QString title)
newPwdDialogResult = false;
+ QPixmap image0( ( const char** ) zsafe_xpm );
+ dialog->setIcon( image0);
+
connect( dialog->PasswordField, SIGNAL( returnPressed() ),
this, SLOT( setPasswordDialogDone() ) );
@@ -2693,5 +2747,5 @@ void ZSafe::addCategory()
pix = new QPixmap (fullIconPath);
// pix->resize(14, 14);
- if (pix)
+ if (!pix->isNull())
{
// save the full pixmap name into the config file
@@ -3162,5 +3216,5 @@ void ZSafe::editCategory()
fullIconPath = iconPath + icon;
pix = new QPixmap (fullIconPath);
- if (pix)
+ if (!pix->isNull())
{
// save the full pixmap name into the config file
@@ -3693,3 +3747,49 @@ void ZSafe::setDocument(const QString& fileref)
+void ZSafe::ListPressed(int mouse, QListViewItem *item, const QPoint&, int column) {
+ if(item ==0) return;
+ switch (mouse) {
+ case 1:
+ {
+#ifdef DESKTOP
+ QDragObject *d = new QTextDrag( item->text(column) , this );
+ d->dragCopy();
+#endif
+ }
+ break;
+ case 2:
+ {
+ QClipboard *cb = QApplication::clipboard();
+
+ QIconSet copy_img((const char**) copy_xpm);
+ QIconSet edit_img((const char**) edit_xpm);
+ QPixmap folder_open_img((const char**) folder_open_xpm);
+ QPixmap editdelete_img((const char**) editdelete_xpm);
+
+ QPopupMenu *m = new QPopupMenu(this);
+ int copyItem = m->insertItem( copy_img, tr( "Copy to Clipboard" ));
+ int editItem = m->insertItem(edit_img, tr( "Edit" ));
+ int showItem = m->insertItem(folder_open_img, tr( "Show Info" ));
+ int cancelItem = m->insertItem( editdelete_img, tr( "Cancel" ));
+ m->setFocus();
+ int me=m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y() ) ) ;
+ if(me == copyItem) {
+ copyClip( item->text(column) ) ;
+ } else if (me == cancelItem) {
+ cb->clear();
+ } else if (me == editItem) {
+ editPwd();
+ } else if (me == showItem) {
+ showInfo(item);
+ }
+ }
+ break;
+ };
+}
+
+void ZSafe::copyClip( const QString &text) {
+ QClipboard *cb = QApplication::clipboard();
+ cb->setText( text);
+}
+
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
@@ -62,6 +62,6 @@ public:
~ZSafe();
- static const QColor *evenRowColor;
- static const QColor *oddRowColor;
+ static const QColor *evenRowColor;
+ static const QColor *oddRowColor;
QToolButton* Edit;
@@ -82,4 +82,5 @@ public:
bool IsCut;
bool modified; // true if database is modified
+ bool showpwd; // show PWD Dialog
QListViewItem *lastSearchedCategory;
@@ -184,4 +185,7 @@ public slots:
virtual void categoryFieldActivated( const QString& str);
+ virtual void ListPressed(int, QListViewItem *, const QPoint&, int);
+ virtual void copyClip( const QString &text);
+
private slots:
void setDocument(const QString& fileref);