summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/addentrywnd_emb.cpp45
-rw-r--r--pwmanager/pwmanager/addentrywnd_emb.h8
-rw-r--r--pwmanager/pwmanager/addentrywndimpl.cpp7
-rw-r--r--pwmanager/pwmanager/addentrywndimpl.h2
-rw-r--r--pwmanager/pwmanager/pwm.cpp4
5 files changed, 51 insertions, 15 deletions
diff --git a/pwmanager/pwmanager/addentrywnd_emb.cpp b/pwmanager/pwmanager/addentrywnd_emb.cpp
index dd09d13..f065058 100644
--- a/pwmanager/pwmanager/addentrywnd_emb.cpp
+++ b/pwmanager/pwmanager/addentrywnd_emb.cpp
@@ -15,90 +15,93 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
$Id$
*/
#include "addentrywnd_emb.h"
+#include "pwmdoc.h"
#include <qlayout.h>
#include <qlabel.h>
#include <qtabwidget.h>
#include <qgroupbox.h>
#include <klocale.h>
#include <kcombobox.h>
#include <klineedit.h>
#include <qpushbutton.h>
#include <qmultilineedit.h>
/*
* Constructs a addEntryWnd as a child of 'parent', with the
* name 'name' and widget flags set to 'f'.
*
* The dialog will by default be modeless, unless you set 'modal' to
* TRUE to construct a modal dialog.
*/
-addEntryWnd::addEntryWnd( QWidget* parent, const char* name)
+addEntryWnd::addEntryWnd( PwMDoc* d, QWidget* parent, const char* name)
: KDialogBase( KDialogBase::Plain, i18n( "edit/add a password entry" ),
KDialogBase::Ok | KDialogBase::Cancel,
- KDialogBase::Ok, parent, name, true )
+ KDialogBase::Ok, parent, name, true ), doc(d)
{
QWidget *page = plainPage();
QVBoxLayout *pageLayout = new QVBoxLayout( page );
QTabWidget* mTabWidget = new QTabWidget( page );
pageLayout->addWidget( mTabWidget );
////////////////////////////////////////////////////////////////////
// This is the Password tab
QWidget *tab1 = new QWidget( mTabWidget );
QGridLayout *layout = new QGridLayout( tab1, 3, 1 );
layout->setMargin( KDialogBase::marginHint() );
layout->setSpacing( KDialogBase::spacingHint() );
int i = 0;
descLineEdit = new KLineEdit( tab1, "descLineEdit" );
- QLabel* label = new QLabel( descLineEdit, i18n("Description:"), tab1 );
- layout->addWidget( label, i, 0 );
+ descLineLabel = new QLabel( descLineEdit, i18n("Description:"), tab1 );
+ layout->addWidget( descLineLabel, i, 0 );
layout->addWidget( descLineEdit, i, 1 );
i++;
categoryComboBox = new KComboBox( tab1 );
- label = new QLabel( categoryComboBox, i18n("Category:"), tab1 );
+ QLabel* label = new QLabel( categoryComboBox, i18n("Category:"), tab1 );
layout->addWidget( label, i, 0 );
layout->addWidget( categoryComboBox, i, 1 );
i++;
categoryComboBox->setEditable( TRUE );
categoryComboBox->setSizeLimit( 100 );
categoryComboBox->setAutoCompletion( TRUE );
categoryComboBox->setDuplicatesEnabled( FALSE );
+ connect(categoryComboBox,SIGNAL(activated(const QString&)), SLOT(categorySelected(const QString&)));
+
usernameLineEdit = new KLineEdit( tab1, "usernameLineEdit" );
- label = new QLabel( usernameLineEdit, i18n("Username:"), tab1 );
- layout->addWidget( label, i, 0 );
+ usernameLineLabel = new QLabel( usernameLineEdit, i18n("Username:"), tab1 );
+ layout->addWidget( usernameLineLabel, i, 0 );
layout->addWidget( usernameLineEdit, i, 1 );
i++;
pwLineEdit = new KLineEdit( tab1, "pwLineEdit" );
pwLineEdit->setEchoMode( QLineEdit::Password );
- label = new QLabel( pwLineEdit, i18n("Password:"), tab1 );
- layout->addWidget( label, i, 0 );
+ pwLineLabel = new QLabel( pwLineEdit, i18n("Password:"), tab1 );
+ layout->addWidget( pwLineLabel, i, 0 );
layout->addWidget( pwLineEdit, i, 1 );
i++;
revealButton = new QPushButton( i18n("&Reveal"), tab1, "revealButton" );
revealButton->setToggleButton( TRUE );
layout->addWidget( revealButton, i, 0 );
generateButton = new QPushButton( i18n("&Generate"), tab1, "generateButton" );
layout->addWidget( generateButton, i, 1 );
i++;
urlLineEdit = new KLineEdit( tab1, "urlLineEdit" );
@@ -187,13 +190,37 @@ void addEntryWnd::revealButton_slot()
}
void addEntryWnd::generateButton_slot()
{
qWarning( "addEntryWnd::generateButton_slot(): Not implemented yet" );
}
void addEntryWnd::advancedCommentButton_slot(bool)
{
qWarning( "addEntryWnd::advancedCommentButton_slot(bool): Not implemented yet" );
}
+void addEntryWnd::categorySelected ( const QString & string )
+{
+ unsigned int idx;
+ bool found = doc->findCategory(string, &idx);
+
+ if (found == true)
+ {
+ qDebug("addEntryWnd::categorySelected found");
+ PwMCategoryItem* catitem = doc->getCategoryEntry(idx);
+
+ descLineLabel->setText(catitem->desc_text.c_str());
+ usernameLineLabel->setText(catitem->name_text.c_str());
+ pwLineLabel->setText(catitem->pw_text.c_str());
+ return;
+ }
+ else
+ {
+ qDebug("addEntryWnd::categorySelected NOT found");
+ BUG();
+ }
+
+
+}
+
diff --git a/pwmanager/pwmanager/addentrywnd_emb.h b/pwmanager/pwmanager/addentrywnd_emb.h
index 83761dc..966d9d2 100644
--- a/pwmanager/pwmanager/addentrywnd_emb.h
+++ b/pwmanager/pwmanager/addentrywnd_emb.h
@@ -30,43 +30,49 @@ $Id$
#include <kdialogbase.h>
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QSpacerItem;
class KLineEdit;
class QPushButton;
class KComboBox;
class QLabel;
class QGroupBox;
class QMultiLineEdit;
+class PwMDoc;
class addEntryWnd : public KDialogBase
{
Q_OBJECT
public:
- addEntryWnd( QWidget* parent = 0, const char* name = 0);
+ addEntryWnd( PwMDoc* doc, QWidget* parent = 0, const char* name = 0);
~addEntryWnd();
KLineEdit* launcherLineEdit;
QPushButton* generateButton;
KLineEdit* descLineEdit;
KComboBox* categoryComboBox;
KLineEdit* usernameLineEdit;
KLineEdit* pwLineEdit;
KLineEdit* urlLineEdit;
+ QLabel* descLineLabel;
+ QLabel* usernameLineLabel;
+ QLabel* pwLineLabel;
QPushButton* revealButton;
QMultiLineEdit* commentTextEdit;
+ PwMDoc* doc;
public slots:
virtual void revealButton_slot();
virtual void generateButton_slot();
virtual void advancedCommentButton_slot(bool on);
protected slots:
virtual void slotOk();
+ virtual void categorySelected ( const QString & string );
};
#endif // ADDENTRYWND_H
diff --git a/pwmanager/pwmanager/addentrywndimpl.cpp b/pwmanager/pwmanager/addentrywndimpl.cpp
index d47f32c..fa6b6c0 100644
--- a/pwmanager/pwmanager/addentrywndimpl.cpp
+++ b/pwmanager/pwmanager/addentrywndimpl.cpp
@@ -31,26 +31,26 @@
#include <kmessagebox.h>
#include <klocale.h>
#include <qpushbutton.h>
#include <qlabel.h>
#include <qlayout.h>
#ifndef PWM_EMBEDDED
AddEntryWndImpl::AddEntryWndImpl()
: addEntryWnd( 0, "AddEntryWndImpl", TRUE)
#else
-AddEntryWndImpl::AddEntryWndImpl( QWidget* parent, const char* name)
- : addEntryWnd( parent, name)
+AddEntryWndImpl::AddEntryWndImpl( PwMDoc* doc, QWidget* parent, const char* name)
+ : addEntryWnd( doc, parent, name)
#endif
{
#ifndef PWM_EMBEDDED
editAdvCommentButton = 0;
commentTextEdit = 0;
#endif
switchComment(false);
pwGen = new PwGenWndImpl(this);
}
AddEntryWndImpl::~AddEntryWndImpl()
{
@@ -106,24 +106,27 @@ void AddEntryWndImpl::cancelButton_slot()
{
done(2);
}
#endif
void AddEntryWndImpl::setCurrCategory(const QString &cat)
{
int i, count = categoryComboBox->count();
for (i = 0; i < count; ++i) {
if (categoryComboBox->text(i) == cat) {
categoryComboBox->setCurrentItem(i);
+#ifdef PWM_EMBEDDED
+ categorySelected(cat);
+#endif
return;
}
}
BUG();
}
void AddEntryWndImpl::revealButton_slot()
{
if (revealButton->isOn()) {
pwLineEdit->setEchoMode(QLineEdit::Normal);
} else {
pwLineEdit->setEchoMode(QLineEdit::Password);
diff --git a/pwmanager/pwmanager/addentrywndimpl.h b/pwmanager/pwmanager/addentrywndimpl.h
index ce9a594..e13eb54 100644
--- a/pwmanager/pwmanager/addentrywndimpl.h
+++ b/pwmanager/pwmanager/addentrywndimpl.h
@@ -36,25 +36,25 @@
#include <qpushbutton.h>
class PwGenWndImpl;
/** "add/edit" Window */
class AddEntryWndImpl : public addEntryWnd
{
Q_OBJECT
public:
#ifndef PWM_EMBEDDED
AddEntryWndImpl();
#else
- AddEntryWndImpl( QWidget* parent = 0, const char* name = 0);
+ AddEntryWndImpl( PwMDoc* doc, QWidget* parent = 0, const char* name = 0);
#endif
~AddEntryWndImpl();
/* get... functions */
QString getDescription()
{ return descLineEdit->text(); }
QString getCategory()
{ return categoryComboBox->currentText(); }
QString getUsername()
{ return usernameLineEdit->text(); }
QString getPassword()
{ return pwLineEdit->text(); }
diff --git a/pwmanager/pwmanager/pwm.cpp b/pwmanager/pwmanager/pwm.cpp
index bd98d72..9642a43 100644
--- a/pwmanager/pwmanager/pwm.cpp
+++ b/pwmanager/pwmanager/pwm.cpp
@@ -624,25 +624,25 @@ void PwM::addPwd_slot1(QString *pw, PwMDoc *_doc)
{
PwMDoc *doc;
if (_doc) {
doc = _doc;
} else {
doc = curDoc();
}
PWM_ASSERT(doc);
doc->timer()->getLock(DocTimer::id_autoLockTimer);
#ifndef PWM_EMBEDDED
AddEntryWndImpl w;
#else
- AddEntryWndImpl w(this, "addentrywndimpl");
+ AddEntryWndImpl w(doc, this, "addentrywndimpl");
#endif
vector<string> catList;
doc->getCategoryList(&catList);
unsigned i, size = catList.size();
for (i = 0; i < size; ++i) {
w.addCategory(catList[i].c_str());
}
w.setCurrCategory(view->getCurrentCategory());
if (pw)
w.pwLineEdit->setText(*pw);
@@ -723,25 +723,25 @@ void PwM::editPwd_slot3(const QString *category, const int *index,
if (category) {
curCategory = *category;
} else {
curCategory = view->getCurrentCategory();
}
PwMDataItem currItem;
if (!doc->getEntry(curCategory, curEntryIndex, &currItem, true)) {
doc->timer()->putLock(DocTimer::id_autoLockTimer);
return;
}
BUG_ON(currItem.binary);
- AddEntryWndImpl w;
+ AddEntryWndImpl w(doc);
vector<string> catList;
doc->getCategoryList(&catList);
unsigned i, size = catList.size();
for (i = 0; i < size; ++i) {
w.addCategory(catList[i].c_str());
}
w.setCurrCategory(curCategory);
w.setDescription(currItem.desc.c_str());
w.setUsername(currItem.name.c_str());
w.setPassword(currItem.pw.c_str());
w.setUrl(currItem.url.c_str());
w.setLauncher(currItem.launcher.c_str());