implemented "Open Url" and "Save Attachement"
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@29 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
9d2b50b9c3
commit
69f00ee477
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
|
@ -279,13 +279,17 @@ ButtonSaveAttachment->setEnabled(true);
|
||||||
ButtonDeleteAttachment->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;
|
if(filename=="")return;
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
if(file.exists()){
|
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(r==1)return;
|
||||||
if(file.remove()==false){
|
if(file.remove()==false){
|
||||||
QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Datei konnte nicht überschrieben werden."),"OK");
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int r=file.write(entry->BinaryData);
|
int r=file.write(pEntry->BinaryData);
|
||||||
if(r==-1){
|
if(r==-1){
|
||||||
file.close();
|
file.close();
|
||||||
QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Beim schreiben in der Datei ist ein Fehler aufgetreten."),"OK");
|
QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Beim schreiben in der Datei ist ein Fehler aufgetreten."),"OK");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(r!=entry->BinaryData.length()){
|
if(r!=pEntry->BinaryData.length()){
|
||||||
file.close();
|
file.close();
|
||||||
QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Die Datei konnte nicht vollständig geschrieben werden."),"OK");
|
QMessageBox::critical(NULL,"Fehler",QString::fromUtf8("Die Datei konnte nicht vollständig geschrieben werden."),"OK");
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -56,6 +56,7 @@ bool ModFlag;
|
||||||
void CreateBanner();
|
void CreateBanner();
|
||||||
void InitGroupComboBox();
|
void InitGroupComboBox();
|
||||||
void InitIconComboBox();
|
void InitIconComboBox();
|
||||||
|
static void saveAttachment(CEntry* pEntry, QWidget* ParentWidget=NULL);
|
||||||
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
|
@ -158,7 +158,7 @@
|
||||||
<addaction name="separator" />
|
<addaction name="separator" />
|
||||||
<addaction name="EditPasswordToClipboardAction" />
|
<addaction name="EditPasswordToClipboardAction" />
|
||||||
<addaction name="EditUsernameToClipboardAction" />
|
<addaction name="EditUsernameToClipboardAction" />
|
||||||
<addaction name="OpenUrlAction" />
|
<addaction name="EditOpenUrlAction" />
|
||||||
<addaction name="EditSaveAttachmentAction" />
|
<addaction name="EditSaveAttachmentAction" />
|
||||||
<addaction name="separator" />
|
<addaction name="separator" />
|
||||||
<addaction name="EditNewEntryAction" />
|
<addaction name="EditNewEntryAction" />
|
||||||
|
@ -284,7 +284,7 @@
|
||||||
<string>Benutzername in Zwischenablage kopieren</string>
|
<string>Benutzername in Zwischenablage kopieren</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="OpenUrlAction" >
|
<action name="EditOpenUrlAction" >
|
||||||
<property name="text" >
|
<property name="text" >
|
||||||
<string>URL öffnen</string>
|
<string>URL öffnen</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -328,16 +328,16 @@
|
||||||
<pixmapfunction></pixmapfunction>
|
<pixmapfunction></pixmapfunction>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
<class>KeepassEntryView</class>
|
<class>KeepassGroupView</class>
|
||||||
<extends>QTreeWidget</extends>
|
<extends>QTreeWidget</extends>
|
||||||
<header>../../src/lib/EntryView.h</header>
|
<header>../../src/lib/GroupView.h</header>
|
||||||
<container>0</container>
|
<container>0</container>
|
||||||
<pixmap></pixmap>
|
<pixmap></pixmap>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
<class>KeepassGroupView</class>
|
<class>KeepassEntryView</class>
|
||||||
<extends>QTreeWidget</extends>
|
<extends>QTreeWidget</extends>
|
||||||
<header>../../src/lib/GroupView.h</header>
|
<header>../../src/lib/EntryView.h</header>
|
||||||
<container>0</container>
|
<container>0</container>
|
||||||
<pixmap></pixmap>
|
<pixmap></pixmap>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
|
19
src/main.cpp
19
src/main.cpp
|
@ -28,6 +28,7 @@
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
#include <QStyleFactory>
|
#include <QStyleFactory>
|
||||||
|
#include <QProcess>
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "PwmConfig.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)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
QStringList keys=QStyleFactory::keys();
|
|
||||||
for(int i=0; i<keys.size(); i++){
|
|
||||||
cout << keys[i].ascii() << endl;
|
|
||||||
}
|
|
||||||
QApplication::setStyle(QStyleFactory::create("slimplastic"));
|
|
||||||
*/
|
|
||||||
QApplication* app=new QApplication(argc,argv);
|
QApplication* app=new QApplication(argc,argv);
|
||||||
QString ArgFile,ArgCfg,IniFilename;
|
QString ArgFile,ArgCfg,IniFilename;
|
||||||
parseCmdLineArgs(argc,argv,ArgFile,ArgCfg);
|
parseCmdLineArgs(argc,argv,ArgFile,ArgCfg);
|
||||||
|
@ -137,10 +131,6 @@ return r;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void createBanner(QLabel *Banner,QPixmap* symbol,QString text){
|
void createBanner(QLabel *Banner,QPixmap* symbol,QString text){
|
||||||
createBanner(Banner,symbol,text,config.BannerColor1
|
createBanner(Banner,symbol,text,config.BannerColor1
|
||||||
,config.BannerColor2
|
,config.BannerColor2
|
||||||
|
@ -193,9 +183,10 @@ Banner->setPixmap(*banner_pixmap);
|
||||||
|
|
||||||
|
|
||||||
void openBrowser(QString url){
|
void openBrowser(QString url){
|
||||||
|
QProcess browser;
|
||||||
|
QStringList args=QStringList::split(' ',config.OpenUrlCommand.arg(url));
|
||||||
|
QString cmd=args.takeFirst();
|
||||||
|
browser.startDetached(cmd,args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -89,6 +89,8 @@ void KeepassMainWindow::setupConnections(){
|
||||||
connect(EditDeleteEntryAction, SIGNAL(triggered()), this, SLOT(OnEditDeleteEntry()));
|
connect(EditDeleteEntryAction, SIGNAL(triggered()), this, SLOT(OnEditDeleteEntry()));
|
||||||
connect(EditUsernameToClipboardAction, SIGNAL(triggered()), this, SLOT(OnEditUsernameToClipboard()));
|
connect(EditUsernameToClipboardAction, SIGNAL(triggered()), this, SLOT(OnEditUsernameToClipboard()));
|
||||||
connect(EditPasswordToClipboardAction, SIGNAL(triggered()), this, SLOT(OnEditPasswordToClipboard()));
|
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(&ClipboardTimer, SIGNAL(timeout()), this, SLOT(OnClipboardTimeOut()));
|
||||||
connect(GroupView,SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),this,
|
connect(GroupView,SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),this,
|
||||||
|
@ -234,7 +236,7 @@ if(!IsOpen){
|
||||||
EditDeleteGroupAction->setEnabled(false);
|
EditDeleteGroupAction->setEnabled(false);
|
||||||
EditPasswordToClipboardAction->setEnabled(false);
|
EditPasswordToClipboardAction->setEnabled(false);
|
||||||
EditUsernameToClipboardAction->setEnabled(false);
|
EditUsernameToClipboardAction->setEnabled(false);
|
||||||
OpenUrlAction->setEnabled(false);
|
EditOpenUrlAction->setEnabled(false);
|
||||||
EditSaveAttachmentAction->setEnabled(false);
|
EditSaveAttachmentAction->setEnabled(false);
|
||||||
EditNewEntryAction->setEnabled(false);
|
EditNewEntryAction->setEnabled(false);
|
||||||
EditEditEntryAction->setEnabled(false);
|
EditEditEntryAction->setEnabled(false);
|
||||||
|
@ -289,7 +291,7 @@ switch(EntrySelection){
|
||||||
case NONE:
|
case NONE:
|
||||||
EditPasswordToClipboardAction->setEnabled(false);
|
EditPasswordToClipboardAction->setEnabled(false);
|
||||||
EditUsernameToClipboardAction->setEnabled(false);
|
EditUsernameToClipboardAction->setEnabled(false);
|
||||||
OpenUrlAction->setEnabled(false);
|
EditOpenUrlAction->setEnabled(false);
|
||||||
EditSaveAttachmentAction->setEnabled(false);
|
EditSaveAttachmentAction->setEnabled(false);
|
||||||
EditEditEntryAction->setEnabled(false);
|
EditEditEntryAction->setEnabled(false);
|
||||||
EditCloneEntryAction->setEnabled(false);
|
EditCloneEntryAction->setEnabled(false);
|
||||||
|
@ -300,7 +302,7 @@ switch(EntrySelection){
|
||||||
case SINGLE:
|
case SINGLE:
|
||||||
EditPasswordToClipboardAction->setEnabled(true);
|
EditPasswordToClipboardAction->setEnabled(true);
|
||||||
EditUsernameToClipboardAction->setEnabled(true);
|
EditUsernameToClipboardAction->setEnabled(true);
|
||||||
OpenUrlAction->setEnabled(true);
|
EditOpenUrlAction->setEnabled(true);
|
||||||
EditSaveAttachmentAction->setEnabled(true);
|
EditSaveAttachmentAction->setEnabled(true);
|
||||||
EditEditEntryAction->setEnabled(true);
|
EditEditEntryAction->setEnabled(true);
|
||||||
EditCloneEntryAction->setEnabled(true);
|
EditCloneEntryAction->setEnabled(true);
|
||||||
|
@ -311,7 +313,7 @@ switch(EntrySelection){
|
||||||
case MULTIPLE:
|
case MULTIPLE:
|
||||||
EditPasswordToClipboardAction->setEnabled(false);
|
EditPasswordToClipboardAction->setEnabled(false);
|
||||||
EditUsernameToClipboardAction->setEnabled(false);
|
EditUsernameToClipboardAction->setEnabled(false);
|
||||||
OpenUrlAction->setEnabled(false);
|
EditOpenUrlAction->setEnabled(false);
|
||||||
EditSaveAttachmentAction->setEnabled(false);
|
EditSaveAttachmentAction->setEnabled(false);
|
||||||
EditEditEntryAction->setEnabled(false);
|
EditEditEntryAction->setEnabled(false);
|
||||||
EditCloneEntryAction->setEnabled(true);
|
EditCloneEntryAction->setEnabled(true);
|
||||||
|
@ -487,6 +489,14 @@ Clipboard->clear(QClipboard::Clipboard);
|
||||||
qDebug("Clipper cleared.");
|
qDebug("Clipper cleared.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KeepassMainWindow::OnEditSaveAttachment(){
|
||||||
|
CEditEntryDlg::saveAttachment(currentEntry(),this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void KeepassMainWindow::OnEditOpenUrl(){
|
||||||
|
openBrowser(currentEntry()->URL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
CGroup* KeepassMainWindow::currentGroup(){
|
CGroup* KeepassMainWindow::currentGroup(){
|
||||||
Q_ASSERT(GroupView->selectedItems().size());
|
Q_ASSERT(GroupView->selectedItems().size());
|
||||||
|
|
|
@ -71,6 +71,8 @@ private slots:
|
||||||
void OnEditDeleteEntry();
|
void OnEditDeleteEntry();
|
||||||
void OnEditUsernameToClipboard();
|
void OnEditUsernameToClipboard();
|
||||||
void OnEditPasswordToClipboard();
|
void OnEditPasswordToClipboard();
|
||||||
|
void OnEditSaveAttachment();
|
||||||
|
void OnEditOpenUrl();
|
||||||
void OnCurrentGroupChanged(QTreeWidgetItem*,QTreeWidgetItem*);
|
void OnCurrentGroupChanged(QTreeWidgetItem*,QTreeWidgetItem*);
|
||||||
void OnEntryItemDoubleClicked(QTreeWidgetItem* item,int column);
|
void OnEntryItemDoubleClicked(QTreeWidgetItem* item,int column);
|
||||||
void OnEntrySelectionChanged();
|
void OnEntrySelectionChanged();
|
||||||
|
|
Loading…
Reference in New Issue