Add Entry (qt4)
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@24 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
aeeba6a916
commit
aa615d2ed6
|
@ -27,7 +27,7 @@ GroupID=0;
|
|||
Creation=QDateTime::currentDateTime();
|
||||
LastMod=QDateTime::currentDateTime();
|
||||
LastAccess=QDateTime::currentDateTime();
|
||||
Expire=QDateTime(QDate(2999,12,28),QTime(23,59,59));
|
||||
Expire=QDateTime(QDate(2999,12,28),QTime(23,59,59)); //Never
|
||||
BinaryDataLength=0;
|
||||
pBinaryData=NULL;
|
||||
}
|
||||
|
|
|
@ -309,6 +309,12 @@ return true;
|
|||
}
|
||||
|
||||
|
||||
void PwDatabase::addEntry(CEntry* NewEntry){
|
||||
CEntry *entry=addEntry();
|
||||
*entry=*NewEntry;
|
||||
}
|
||||
|
||||
|
||||
CEntry* PwDatabase::addEntry(){
|
||||
CEntry NewEntry;
|
||||
if(Entries.size()==0){
|
||||
|
@ -316,7 +322,7 @@ if(Entries.size()==0){
|
|||
getRandomBytes(&NewEntry.ID,16,1,false);
|
||||
}
|
||||
else {
|
||||
NewEntry.sID=(*(Entries.end()-1)).sID+1;
|
||||
NewEntry.sID=Entries.back().sID+1;
|
||||
while(1){
|
||||
bool used=false;
|
||||
getRandomBytes(&NewEntry.ID,16,1,false);
|
||||
|
@ -846,7 +852,6 @@ for(i=GroupIndex+1; i<Groups.size(); i++){
|
|||
if(Groups[i].Level<=group->Level)break;
|
||||
}
|
||||
NumChilds=i-GroupIndex-1;
|
||||
qDebug("NUMCHILDS=%i\n",NumChilds);
|
||||
//delete entries
|
||||
for(i=GroupIndex; i<=GroupIndex+NumChilds; i++){
|
||||
for(int j=0; j<Entries.size();){
|
||||
|
|
|
@ -66,6 +66,7 @@ public:
|
|||
void deleteEntry(CEntry* pEntry);
|
||||
void moveEntry(CEntry* pEntry,CGroup* pDstGroup);
|
||||
CEntry* addEntry();
|
||||
void addEntry(CEntry* NewEntry);
|
||||
void merge(PwDatabase* db2);
|
||||
bool isParentGroup(CGroup* Group,CGroup* PotenialParent);
|
||||
QString getError(); //get first error
|
||||
|
|
|
@ -36,6 +36,7 @@ header()->setResizeMode(QHeaderView::Stretch);
|
|||
|
||||
void KeepassEntryView::updateItems(){
|
||||
clear();
|
||||
Items.clear();
|
||||
if(!db)return;
|
||||
EntryViewItem *tmp=NULL;
|
||||
for(int i=0;i<db->Entries.size();i++){
|
||||
|
@ -72,9 +73,11 @@ for(int i=0;i<db->Entries.size();i++){
|
|||
tmp->setText(j++,entry->BinaryDesc);}
|
||||
Items.back()->setIcon(0,EntryIcons[entry->ImageID]);
|
||||
}
|
||||
setCurrentGroup(CurrentGroup);
|
||||
}
|
||||
|
||||
void KeepassEntryView::setCurrentGroup(uint id){
|
||||
CurrentGroup=id;
|
||||
for(int i=0; i<Items.size();i++){
|
||||
setItemHidden(Items[i],(Items[i]->pEntry->GroupID != id));
|
||||
|
||||
|
|
|
@ -164,8 +164,6 @@ void KeepassGroupView::mouseMoveEvent(QMouseEvent *event){
|
|||
drag->setMimeData(mimeData);
|
||||
drag->setPixmap(DragPixmap);
|
||||
drag->start();
|
||||
|
||||
|
||||
}
|
||||
|
||||
void KeepassGroupView::updateItems(){
|
||||
|
|
|
@ -82,11 +82,12 @@ void KeepassMainWindow::setupConnections(){
|
|||
connect(EditNewGroupAction, SIGNAL(triggered()), this, SLOT(OnEditNewGroup()));
|
||||
connect(EditEditGroupAction, SIGNAL(triggered()), this, SLOT(OnEditEditGroup()));
|
||||
connect(EditDeleteGroupAction, SIGNAL(triggered()), this, SLOT(OnEditDeleteGroup()));
|
||||
connect(EditNewEntryAction, SIGNAL(triggered()), this, SLOT(OnEditNewEntry()));
|
||||
|
||||
connect(GroupView,SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),this,
|
||||
SLOT(OnCurrentGroupChanged(QTreeWidgetItem*,QTreeWidgetItem*)));
|
||||
SLOT(OnCurrentGroupChanged(QTreeWidgetItem*,QTreeWidgetItem*)));
|
||||
connect(EntryView,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,
|
||||
SLOT(OnEntryItemDoubleClicked(QTreeWidgetItem*,int)));
|
||||
SLOT(OnEntryItemDoubleClicked(QTreeWidgetItem*,int)));
|
||||
connect(EntryView,SIGNAL(itemSelectionChanged()), this, SLOT(OnEntrySelectionChanged()));
|
||||
connect(GroupView,SIGNAL(itemSelectionChanged()), this, SLOT(OnGroupSelectionChanged()));
|
||||
}
|
||||
|
@ -265,7 +266,7 @@ default: Q_ASSERT(false);
|
|||
}
|
||||
|
||||
void KeepassMainWindow::setStateEntrySelected(SelectionState s){
|
||||
EntrySelection=NONE;
|
||||
EntrySelection=s;
|
||||
switch(EntrySelection){
|
||||
case NONE:
|
||||
EditPasswordToClipboardAction->setEnabled(false);
|
||||
|
@ -413,4 +414,21 @@ CGroup *pGroup=static_cast<GroupViewItem*>(GroupView->selectedItems()[0])->pGrou
|
|||
db->deleteGroup(pGroup);
|
||||
GroupView->updateItems();
|
||||
setStateFileModified(true);
|
||||
}
|
||||
|
||||
void KeepassMainWindow::OnEditNewEntry(){
|
||||
CEntry NewEntry;
|
||||
NewEntry.GroupID=currentGroup()->ID;
|
||||
CEditEntryDlg dlg(db,&NewEntry,this,"EditEntryDialog",true);
|
||||
if(dlg.exec()){
|
||||
db->addEntry(&NewEntry);
|
||||
EntryView->updateItems();
|
||||
setStateFileModified(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
CGroup* KeepassMainWindow::currentGroup(){
|
||||
Q_ASSERT(GroupView->selectedItems().size());
|
||||
return static_cast<GroupViewItem*>(GroupView->selectedItems()[0])->pGroup;
|
||||
}
|
|
@ -64,6 +64,7 @@ private slots:
|
|||
void OnEditNewGroup();
|
||||
void OnEditEditGroup();
|
||||
void OnEditDeleteGroup();
|
||||
void OnEditNewEntry();
|
||||
void OnCurrentGroupChanged(QTreeWidgetItem*,QTreeWidgetItem*);
|
||||
void OnEntryItemDoubleClicked(QTreeWidgetItem* item,int column);
|
||||
void OnEntrySelectionChanged();
|
||||
|
@ -84,6 +85,7 @@ private:
|
|||
void openDatabase(QString filename);
|
||||
bool closeDatabase();
|
||||
void editEntry(CEntry* pEntry);
|
||||
inline CGroup* currentGroup();
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue