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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,6 +56,7 @@ bool ModFlag;
 | 
			
		|||
void CreateBanner();
 | 
			
		||||
void InitGroupComboBox();
 | 
			
		||||
void InitIconComboBox();
 | 
			
		||||
static void saveAttachment(CEntry* pEntry, QWidget* ParentWidget=NULL);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -158,7 +158,7 @@
 | 
			
		|||
    <addaction name="separator" />
 | 
			
		||||
    <addaction name="EditPasswordToClipboardAction" />
 | 
			
		||||
    <addaction name="EditUsernameToClipboardAction" />
 | 
			
		||||
    <addaction name="OpenUrlAction" />
 | 
			
		||||
    <addaction name="EditOpenUrlAction" />
 | 
			
		||||
    <addaction name="EditSaveAttachmentAction" />
 | 
			
		||||
    <addaction name="separator" />
 | 
			
		||||
    <addaction name="EditNewEntryAction" />
 | 
			
		||||
| 
						 | 
				
			
			@ -284,7 +284,7 @@
 | 
			
		|||
    <string>Benutzername in Zwischenablage kopieren</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="OpenUrlAction" >
 | 
			
		||||
  <action name="EditOpenUrlAction" >
 | 
			
		||||
   <property name="text" >
 | 
			
		||||
    <string>URL öffnen</string>
 | 
			
		||||
   </property>
 | 
			
		||||
| 
						 | 
				
			
			@ -328,16 +328,16 @@
 | 
			
		|||
 <pixmapfunction></pixmapfunction>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>KeepassEntryView</class>
 | 
			
		||||
   <class>KeepassGroupView</class>
 | 
			
		||||
   <extends>QTreeWidget</extends>
 | 
			
		||||
   <header>../../src/lib/EntryView.h</header>
 | 
			
		||||
   <header>../../src/lib/GroupView.h</header>
 | 
			
		||||
   <container>0</container>
 | 
			
		||||
   <pixmap></pixmap>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>KeepassGroupView</class>
 | 
			
		||||
   <class>KeepassEntryView</class>
 | 
			
		||||
   <extends>QTreeWidget</extends>
 | 
			
		||||
   <header>../../src/lib/GroupView.h</header>
 | 
			
		||||
   <header>../../src/lib/EntryView.h</header>
 | 
			
		||||
   <container>0</container>
 | 
			
		||||
   <pixmap></pixmap>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										19
									
								
								src/main.cpp
								
								
								
								
							
							
						
						
									
										19
									
								
								src/main.cpp
								
								
								
								
							| 
						 | 
				
			
			@ -28,6 +28,7 @@
 | 
			
		|||
#include <QPainter>
 | 
			
		||||
#include <QImage>
 | 
			
		||||
#include <QStyleFactory>
 | 
			
		||||
#include <QProcess>
 | 
			
		||||
 | 
			
		||||
#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; i<keys.size(); i++){
 | 
			
		||||
cout << keys[i].ascii() << endl;
 | 
			
		||||
}
 | 
			
		||||
QApplication::setStyle(QStyleFactory::create("slimplastic"));
 | 
			
		||||
*/
 | 
			
		||||
QApplication* app=new QApplication(argc,argv);
 | 
			
		||||
QString ArgFile,ArgCfg,IniFilename;
 | 
			
		||||
parseCmdLineArgs(argc,argv,ArgFile,ArgCfg);
 | 
			
		||||
| 
						 | 
				
			
			@ -137,10 +131,6 @@ return r;
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void createBanner(QLabel *Banner,QPixmap* symbol,QString text){
 | 
			
		||||
createBanner(Banner,symbol,text,config.BannerColor1
 | 
			
		||||
			       ,config.BannerColor2
 | 
			
		||||
| 
						 | 
				
			
			@ -193,9 +183,10 @@ Banner->setPixmap(*banner_pixmap);
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
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(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());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue