From 69f00ee477efe19ea608fb952fb9725a1d721ba0 Mon Sep 17 00:00:00 2001 From: tariq Date: Thu, 26 Jan 2006 18:24:50 +0000 Subject: [PATCH] implemented "Open Url" and "Save Attachement" git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@29 b624d157-de02-0410-bad0-e51aec6abb33 --- .../icons/nuvola/32x32/actions/editcopy.png | Bin 0 -> 1329 bytes .../icons/nuvola/32x32/actions/run.png | Bin 0 -> 2057 bytes src/dialogs/EditEntryDlg.cpp | 14 ++++++++----- src/dialogs/EditEntryDlg.h | 1 + src/forms/MainWindow.ui | 12 +++++------ src/main.cpp | 19 +++++------------- src/mainwindow.cpp | 18 +++++++++++++---- src/mainwindow.h | 2 ++ 8 files changed, 37 insertions(+), 29 deletions(-) create mode 100644 share/keepass/icons/nuvola/32x32/actions/editcopy.png create mode 100644 share/keepass/icons/nuvola/32x32/actions/run.png diff --git a/share/keepass/icons/nuvola/32x32/actions/editcopy.png b/share/keepass/icons/nuvola/32x32/actions/editcopy.png new file mode 100644 index 0000000000000000000000000000000000000000..18627b748098467a4e5792a92179e9bdf97b9099 GIT binary patch literal 1329 zcmV-11nKrA6cdY1D6rgMg}HE zW|og{Uq5*N`dKAF0I@J&i-KRj!o7n0TDuB@8Mv4k825VJ1E+F+vOj z8TudQ5OkmaM>vAKjnE;^iB+8TOtA#@Fv( zSYw9~$r4~ZGMMTpFbMGTF#Pxp^$VKMk<$bd5dQ&6{`&Ku0U&@_7#SGrjm(W}Wu?U! z{`~n1x8Uo?4-7r4Phm|Q$T^o0=>2z}zccVMA7EI}5X&Gg%+K)s7g7jdNf)4W|KbY+ z!@W1Z7ytr@MMOv_V@7QZgNdRLO5*rWC|fZgf*Ry(zx;U&I}TrFNC~uI_==SOQGCw; z$#5VHORxX|#KOkL%FNBiN>sTF%SJE*K^Ff55-jWt47_}t48Ndh=s#M}qZdfc@E=))q|^8MvT(%KeEr!vm;b5Kmf5|wVVOrYq(?nA%zH9zJ{d@WFKQK2^mnc zBnSWm5DU8H=or}{7$E^O7+Ng;|A!jqxJp7;sDJ=K0HHYG4^r?V`x2Ya|030Xf6;3` zELrX!a#?^>ngRq6Y6$#A^W}d$d}PD_p*B2VzDF+!|D%N<2mk~S3lk$|W8&|BL|#Sq z`Cp_Q0ONy;RVG9fqND>XK1b$*06+k-eEac-;p5N0@EQ!gQGuQq|D%-yV6}gtY2ZJi zq{QlT2Gr050e}Ev`TG42!~5@l;UR#M^3mcQxeP#d>|eBoD0(_TFAx49RdxUY!~$ys z{bL{y=jbKiKh(UAQF8uA%YI0W6_~?803d)^Q1U*S&tXA|oF3rCFLIh;L<#{0v?dt? zW*ZR}N+19bfXOmg0RRR;XesOee|Rw63U=!t2_o_gBrGCU^ZNeQ&IbI;W|C3i&>D0K zq#+}NdSAK=ZyP4X*^2plH8M;lj{su%_4~(%OOHPYNJ$7WeERwuv(Ug61xTR;DuO@% z0w(0oUl`u}=VrM4mVx2R7ihY`)-m}HvHaBCFAQJaJbwicK#UBADe)ZKLJd58f_%W1 z!5^?HMnqN0z=)@wW`s1!e*XB$@a^+!20m#`24+?c26#`75l8ciiJ9fg>&LHuy?;~- n5I~Fr-8%*dpaJh40|XcV)@vk~yf literal 0 HcmV?d00001 diff --git a/share/keepass/icons/nuvola/32x32/actions/run.png b/share/keepass/icons/nuvola/32x32/actions/run.png new file mode 100644 index 0000000000000000000000000000000000000000..db5111a9af5ab7c467a8d44789301abb186bc3fd GIT binary patch literal 2057 zcmWkvdsvcr7XG*h5}$&b8r}l6$#RB7oi&|Oz&lCmOih_N35u85b;mSy%g7JBkT!U$ z9IeJ=v}`tOw6d{!EJ(1`w4}|_)bUb@Q&x!Sh=Tl<{y677=b!Vu&vVZEp0e2J2&*-Y zYaj@+;zWjiV@BGiu*8}3q5S*>Ghox$JJ}G_+OyT-#2a((kP{Y{vnw+-=imJ76o@Uz zOiH0~{>4vA`6h)gIFi+yvK@l(=QyG4-G@h#i~ul|EVKwpN}})}G7IwoGS_TPzd#_+ zTciMSQaH_IrRrzFCk;e91K}bF?q=gwdAvzXQm!n1f1b5Y0I-xvk9|wM9(by{ z(S;_8>&Xr1Q2}zqWz@Am#wL3AhRG6WYtIx0g=N$|W96W;| zvo-`k>8|eTjy0@iLTr;=YhB&#_OoZtOPe=#NDI+Lb!`mHOh+b+Gz6vSk!7Ev!Ak1i zhA0%SxZ;n}KCYSc{bYy!S|N)%f+`x3o~j)R?R^}*H=e@@-?95N+xgF^f>fSJF6^C~ z)g?=)m!iEp5nbVwm)hnE0(>GxjTO~T<|hDf%KFSt1a%#R)NTi8d+_lYy^od2u2&k9 zT=^+UY(OQ9VXr3cXxPt<>>eW;yqWc~O9@6e~Y z{-Wx0qZ3&xImFFJkKP(?WwMBJfOWK%RscX@5%dkeQk2x(owx@|yx9H*!-!vYro8T1 zVA3AJImH`@L|_-`*8SFe0KsKv6BF-c0R5zE@v4EO9B7a`m`o-j=a>|(nzZ1jZj{J9 zFS8O&d_D2{J5q7@f8}gzNMilDdsDz~?Km=vn@-U7JZ*|7_@xv@H!e|wL-Z^du8_~K zfr0402@J)wWnL@k@}kkvgEUoFBaz$FIqYn{KW_TZeFN6cw@mM!rs2Y4I}7P0lL#>R zvc@1OQ8obj9{L*X?D={USICQc;;o)Xn21jsqF2zC4IO?A=bLQ-5KW|ZnVWk0esu3d z!kr!k3~K-|DT`cQ8j#8MIqi^_1S#x-!Qh~SX;n|)2x&xiz|=<%iJUrKq+|N!;ZpHw zIL@|+Xj$GYQ+;x+1B4}q`(Zu5(#@-SH#s;t$>e-jg~%2y+il5}DnfOMA?K#RTlNcodid%s6h(6hl@lvx1l(;WuoqSM%>1Cg6rz;X8i`9Qz z(mv^E+0)!2KVr4;CQO2mw7y1*_`lY@i{d3=Y6w3o^d_APWz8juDME!VvW}yPv+?~l zz_nRCEEm5CLDy~ce=*!&09Lw-69O?<^4dGoY9E8XuYTLOar91!Sf>k#^i0EtW7;wR z{_|{hi4~*Vcvo091>9wh_IpCvB~k}alPtb`P-#?3zAX{58&%Ey+g57LcPf&c{LkAf>lrx2wvv&!$q0ps- zh^e{R(bmLu2Rie+6_zbLUJdMnd$1_iPB@rQedUP48La_^O8bjam@Ab|R@ps$j=6KH z*Kyx^nrQAOA!a+W_?GGacO@e}i@1X{dHt2jo7ZSWx0jcR33Y=M2UnZrb#)>+Fm=z_ z$3<_4_KYUpzD4oJVqL1~C`($#G}NDhKhSyP!k9oArmR?W_$IIP{G zM83_HWGaLtI8dTxBHls^jdUqyy?3WPtA6TL{eGDG;g2I9m-=dxd-Bj`Nd$;g1qM@J z?XK1dd9BTiMzX&jy1=fp3B@ck#a}NhzQRi;j*}QhTXK>f+uy9!jtTV8^##pMFP7<9 zt9Jan-T*+B3?G9oFDTCNU_sYpcFJF`Hp!8g&U_FQiLMjX$p|_RGGejfT+F7|SF(&K z%In0vUTOM*5AQ%_?UsaE0htuw?z#*~yU4HOC_WQi# zq?>nMI8F{bq@JE>2>LE)NmIUsL1ze28=Ji*`-|k01c=W*!Buu{8K@({j11l z>$1$!p7ZMyOA1z&KhBJdlGYnn7iR`+c(yK>_&mo=xuics4oZ@P-?~>}AarS#Y}+LW l_2uNT5E0~f5D#G~5I4cIVZcySVgBV1CoDSjw_sl3{{gjV&HMlW literal 0 HcmV?d00001 diff --git a/src/dialogs/EditEntryDlg.cpp b/src/dialogs/EditEntryDlg.cpp index 510f4cb..970cc61 100755 --- a/src/dialogs/EditEntryDlg.cpp +++ b/src/dialogs/EditEntryDlg.cpp @@ -279,13 +279,17 @@ ButtonSaveAttachment->setEnabled(true); ButtonDeleteAttachment->setEnabled(true); } -void CEditEntryDlg::OnSaveAttachment() +void CEditEntryDlg::OnSaveAttachment(){ +saveAttachment(entry,this); +} + +void CEditEntryDlg::saveAttachment(CEntry* pEntry, QWidget* ParentWidget) { -QString filename=Q3FileDialog::getSaveFileName(QDir::homeDirPath(),"",this,trUtf8("Anhang speichern...")); +QString filename=Q3FileDialog::getSaveFileName(QDir::homeDirPath(),"",ParentWidget,trUtf8("Anhang speichern...")); if(filename=="")return; QFile file(filename); if(file.exists()){ -int r=QMessageBox::warning(this,QString::fromUtf8("Vorhandene Datei überschreiben?"),QString::fromUtf8("Unter dem gewählten Dateinamen existiert bereits eine Datei.\nSoll sie überschrieben werden?"),"Ja","Nein",NULL,1,1); +int r=QMessageBox::warning(ParentWidget,QString::fromUtf8("Vorhandene Datei überschreiben?"),QString::fromUtf8("Unter dem gewählten Dateinamen existiert bereits eine Datei.\nSoll sie überschrieben werden?"),"Ja","Nein",NULL,1,1); if(r==1)return; if(file.remove()==false){ QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Datei konnte nicht überschrieben werden."),"OK"); @@ -296,13 +300,13 @@ QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Datei konnte nicht erstel return; } -int r=file.write(entry->BinaryData); +int r=file.write(pEntry->BinaryData); if(r==-1){ file.close(); QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Beim schreiben in der Datei ist ein Fehler aufgetreten."),"OK"); return; } -if(r!=entry->BinaryData.length()){ +if(r!=pEntry->BinaryData.length()){ file.close(); QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Die Datei konnte nicht vollständig geschrieben werden."),"OK"); return; diff --git a/src/dialogs/EditEntryDlg.h b/src/dialogs/EditEntryDlg.h index 840d4ad..50bd2a3 100755 --- a/src/dialogs/EditEntryDlg.h +++ b/src/dialogs/EditEntryDlg.h @@ -56,6 +56,7 @@ bool ModFlag; void CreateBanner(); void InitGroupComboBox(); void InitIconComboBox(); +static void saveAttachment(CEntry* pEntry, QWidget* ParentWidget=NULL); public slots: diff --git a/src/forms/MainWindow.ui b/src/forms/MainWindow.ui index 0c0f70c..317fe97 100644 --- a/src/forms/MainWindow.ui +++ b/src/forms/MainWindow.ui @@ -158,7 +158,7 @@ - + @@ -284,7 +284,7 @@ Benutzername in Zwischenablage kopieren - + URL öffnen @@ -328,16 +328,16 @@ - KeepassEntryView + KeepassGroupView QTreeWidget -
../../src/lib/EntryView.h
+
../../src/lib/GroupView.h
0
- KeepassGroupView + KeepassEntryView QTreeWidget -
../../src/lib/GroupView.h
+
../../src/lib/EntryView.h
0
diff --git a/src/main.cpp b/src/main.cpp index ad6644a..5e8ad2c 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include "main.h" #include "PwmConfig.h" @@ -64,13 +65,6 @@ inline void parseCmdLineArgs(int argc, char** argv,QString &ArgFile,QString& Arg int main(int argc, char **argv) { -/* -QStringList keys=QStyleFactory::keys(); -for(int i=0; isetPixmap(*banner_pixmap); void openBrowser(QString url){ - - - +QProcess browser; +QStringList args=QStringList::split(' ',config.OpenUrlCommand.arg(url)); +QString cmd=args.takeFirst(); +browser.startDetached(cmd,args); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f179faf..938bee0 100755 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -89,6 +89,8 @@ void KeepassMainWindow::setupConnections(){ connect(EditDeleteEntryAction, SIGNAL(triggered()), this, SLOT(OnEditDeleteEntry())); connect(EditUsernameToClipboardAction, SIGNAL(triggered()), this, SLOT(OnEditUsernameToClipboard())); connect(EditPasswordToClipboardAction, SIGNAL(triggered()), this, SLOT(OnEditPasswordToClipboard())); + connect(EditOpenUrlAction, SIGNAL(triggered()), this, SLOT(OnEditOpenUrl())); + connect(EditSaveAttachmentAction, SIGNAL(triggered()), this, SLOT(OnEditSaveAttachment())); connect(&ClipboardTimer, SIGNAL(timeout()), this, SLOT(OnClipboardTimeOut())); connect(GroupView,SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),this, @@ -234,7 +236,7 @@ if(!IsOpen){ EditDeleteGroupAction->setEnabled(false); EditPasswordToClipboardAction->setEnabled(false); EditUsernameToClipboardAction->setEnabled(false); - OpenUrlAction->setEnabled(false); + EditOpenUrlAction->setEnabled(false); EditSaveAttachmentAction->setEnabled(false); EditNewEntryAction->setEnabled(false); EditEditEntryAction->setEnabled(false); @@ -289,7 +291,7 @@ switch(EntrySelection){ case NONE: EditPasswordToClipboardAction->setEnabled(false); EditUsernameToClipboardAction->setEnabled(false); - OpenUrlAction->setEnabled(false); + EditOpenUrlAction->setEnabled(false); EditSaveAttachmentAction->setEnabled(false); EditEditEntryAction->setEnabled(false); EditCloneEntryAction->setEnabled(false); @@ -300,7 +302,7 @@ switch(EntrySelection){ case SINGLE: EditPasswordToClipboardAction->setEnabled(true); EditUsernameToClipboardAction->setEnabled(true); - OpenUrlAction->setEnabled(true); + EditOpenUrlAction->setEnabled(true); EditSaveAttachmentAction->setEnabled(true); EditEditEntryAction->setEnabled(true); EditCloneEntryAction->setEnabled(true); @@ -311,7 +313,7 @@ switch(EntrySelection){ case MULTIPLE: EditPasswordToClipboardAction->setEnabled(false); EditUsernameToClipboardAction->setEnabled(false); - OpenUrlAction->setEnabled(false); + EditOpenUrlAction->setEnabled(false); EditSaveAttachmentAction->setEnabled(false); EditEditEntryAction->setEnabled(false); EditCloneEntryAction->setEnabled(true); @@ -487,6 +489,14 @@ Clipboard->clear(QClipboard::Clipboard); qDebug("Clipper cleared."); } +void KeepassMainWindow::OnEditSaveAttachment(){ +CEditEntryDlg::saveAttachment(currentEntry(),this); +} + +void KeepassMainWindow::OnEditOpenUrl(){ +openBrowser(currentEntry()->URL); +} + CGroup* KeepassMainWindow::currentGroup(){ Q_ASSERT(GroupView->selectedItems().size()); diff --git a/src/mainwindow.h b/src/mainwindow.h index c3c9b95..3e65b27 100755 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -71,6 +71,8 @@ private slots: void OnEditDeleteEntry(); void OnEditUsernameToClipboard(); void OnEditPasswordToClipboard(); + void OnEditSaveAttachment(); + void OnEditOpenUrl(); void OnCurrentGroupChanged(QTreeWidgetItem*,QTreeWidgetItem*); void OnEntryItemDoubleClicked(QTreeWidgetItem* item,int column); void OnEntrySelectionChanged();