copy to clipboard (qt4), tool buttons
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@26 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
		
							parent
							
								
									77524c5b93
								
							
						
					
					
						commit
						8409e57be1
					
				
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.8 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 2.0 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 2.6 KiB  | 
							
								
								
									
										17
									
								
								src/main.cpp
								
								
								
								
							
							
						
						
									
										17
									
								
								src/main.cpp
								
								
								
								
							| 
						 | 
				
			
			@ -51,6 +51,10 @@ QIcon *Icon_FileSaveAs;
 | 
			
		|||
QIcon *Icon_Exit;
 | 
			
		||||
QIcon *Icon_File_Export;
 | 
			
		||||
QIcon *Icon_EditDelete;
 | 
			
		||||
QIcon *Icon_EditAdd;
 | 
			
		||||
QIcon *Icon_EditEdit;
 | 
			
		||||
QIcon *Icon_EditUsernameToCb;
 | 
			
		||||
QIcon *Icon_EditPasswordToCb;
 | 
			
		||||
QString DateTimeFormat("no-format-string");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -256,7 +260,18 @@ Icon_Exit=new QIcon(tmpImg);
 | 
			
		|||
//--------------------------
 | 
			
		||||
loadImg(ThemeDir+"/actions/editdelete.png",tmpImg);
 | 
			
		||||
Icon_EditDelete=new QIcon(tmpImg);
 | 
			
		||||
 | 
			
		||||
//--------------------------
 | 
			
		||||
loadImg(ThemeDir+"/actions/edit_add.png",tmpImg);
 | 
			
		||||
Icon_EditAdd=new QIcon(tmpImg);
 | 
			
		||||
//--------------------------
 | 
			
		||||
loadImg(ThemeDir+"/actions/edit.png",tmpImg);
 | 
			
		||||
Icon_EditEdit=new QIcon(tmpImg);
 | 
			
		||||
//--------------------------
 | 
			
		||||
loadImg(ThemeDir+"/actions/identity.png",tmpImg);
 | 
			
		||||
Icon_EditUsernameToCb=new QIcon(tmpImg);
 | 
			
		||||
//--------------------------
 | 
			
		||||
loadImg(ThemeDir+"/actions/klipper_dock.png",tmpImg);
 | 
			
		||||
Icon_EditPasswordToCb=new QIcon(tmpImg);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,6 +51,11 @@ extern QIcon *Icon_FileSaveAs;
 | 
			
		|||
extern QIcon *Icon_Exit;
 | 
			
		||||
extern QIcon *Icon_File_Export;
 | 
			
		||||
extern QIcon *Icon_EditDelete;
 | 
			
		||||
extern QIcon *Icon_EditAdd;
 | 
			
		||||
extern QIcon *Icon_EditEdit;
 | 
			
		||||
extern QIcon *Icon_EditDelete;
 | 
			
		||||
extern QIcon *Icon_EditUsernameToCb;
 | 
			
		||||
extern QIcon *Icon_EditPasswordToCb;
 | 
			
		||||
extern QString DateTimeFormat;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,6 +65,7 @@ KeepassMainWindow::KeepassMainWindow(QWidget *parent, Qt::WFlags flags):QMainWin
 | 
			
		|||
  setupToolbar();
 | 
			
		||||
  setStateFileOpen(false);
 | 
			
		||||
  FileOpen=false;
 | 
			
		||||
  Clipboard=QApplication::clipboard();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void KeepassMainWindow::setupConnections(){
 | 
			
		||||
| 
						 | 
				
			
			@ -86,7 +87,10 @@ void KeepassMainWindow::setupConnections(){
 | 
			
		|||
   connect(EditEditEntryAction, SIGNAL(triggered()), this, SLOT(OnEditEditEntry()));
 | 
			
		||||
   connect(EditCloneEntryAction, SIGNAL(triggered()), this, SLOT(OnEditCloneEntry()));
 | 
			
		||||
   connect(EditDeleteEntryAction, SIGNAL(triggered()), this, SLOT(OnEditDeleteEntry()));
 | 
			
		||||
   connect(EditUsernameToClipboardAction, SIGNAL(triggered()), this, SLOT(OnEditUsernameToClipboard()));
 | 
			
		||||
   connect(EditPasswordToClipboardAction, SIGNAL(triggered()), this, SLOT(OnEditPasswordToClipboard()));
 | 
			
		||||
 | 
			
		||||
   connect(&ClipboardTimer, SIGNAL(timeout()), this, SLOT(OnClipboardTimeOut()));
 | 
			
		||||
   connect(GroupView,SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),this,
 | 
			
		||||
		   SLOT(OnCurrentGroupChanged(QTreeWidgetItem*,QTreeWidgetItem*)));
 | 
			
		||||
   connect(EntryView,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,
 | 
			
		||||
| 
						 | 
				
			
			@ -100,7 +104,12 @@ toolBar->addAction(FileNewAction);
 | 
			
		|||
toolBar->addAction(FileOpenAction);
 | 
			
		||||
toolBar->addAction(FileSaveAction);
 | 
			
		||||
toolBar->addSeparator();
 | 
			
		||||
 | 
			
		||||
toolBar->addAction(EditNewEntryAction);
 | 
			
		||||
toolBar->addAction(EditEditEntryAction);
 | 
			
		||||
toolBar->addAction(EditDeleteEntryAction);
 | 
			
		||||
toolBar->addSeparator();
 | 
			
		||||
toolBar->addAction(EditPasswordToClipboardAction);
 | 
			
		||||
toolBar->addAction(EditUsernameToClipboardAction);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void KeepassMainWindow::setupIcons(){
 | 
			
		||||
| 
						 | 
				
			
			@ -110,6 +119,11 @@ FileSaveAction->setIcon(*Icon_FileSave);
 | 
			
		|||
FileSaveAsAction->setIcon(*Icon_FileSaveAs);
 | 
			
		||||
FileCloseAction->setIcon(*Icon_FileClose);
 | 
			
		||||
FileExitAction->setIcon(*Icon_Exit);
 | 
			
		||||
EditNewEntryAction->setIcon(*Icon_EditAdd);
 | 
			
		||||
EditEditEntryAction->setIcon(*Icon_EditEdit);
 | 
			
		||||
EditDeleteEntryAction->setIcon(*Icon_EditDelete);
 | 
			
		||||
EditPasswordToClipboardAction->setIcon(*Icon_EditPasswordToCb);
 | 
			
		||||
EditUsernameToClipboardAction->setIcon(*Icon_EditUsernameToCb);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -456,7 +470,30 @@ setStateFileModified(true);
 | 
			
		|||
EntryView->updateItems();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void KeepassMainWindow::OnEditUsernameToClipboard(){
 | 
			
		||||
Clipboard->setText(currentEntry()->UserName,  QClipboard::Clipboard);
 | 
			
		||||
ClipboardTimer.start(config.ClipboardTimeOut*1000,true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void KeepassMainWindow::OnEditPasswordToClipboard(){
 | 
			
		||||
Clipboard->setText(currentEntry()->Password.getString(),QClipboard::Clipboard);
 | 
			
		||||
ClipboardTimer.start(config.ClipboardTimeOut*1000,true);
 | 
			
		||||
currentEntry()->Password.delRef();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void KeepassMainWindow::OnClipboardTimeOut(){
 | 
			
		||||
Clipboard->clear(QClipboard::Clipboard);
 | 
			
		||||
qDebug("Clipper cleared.");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CGroup* KeepassMainWindow::currentGroup(){
 | 
			
		||||
Q_ASSERT(GroupView->selectedItems().size());
 | 
			
		||||
return static_cast<GroupViewItem*>(GroupView->selectedItems()[0])->pGroup;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
CEntry* KeepassMainWindow::currentEntry(){
 | 
			
		||||
Q_ASSERT(EntryView->selectedItems().size()==1);
 | 
			
		||||
return static_cast<EntryViewItem*>(EntryView->selectedItems()[0])->pEntry;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -34,7 +34,8 @@
 | 
			
		|||
#include <QDropEvent>
 | 
			
		||||
#include <QListWidget>
 | 
			
		||||
#include <QTreeWidget>
 | 
			
		||||
 | 
			
		||||
#include <QClipboard>
 | 
			
		||||
#include <QTimer>
 | 
			
		||||
 | 
			
		||||
#include "PwManager.h"
 | 
			
		||||
#include "PwmConfig.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -68,16 +69,21 @@ private slots:
 | 
			
		|||
   void OnEditEditEntry();
 | 
			
		||||
   void OnEditCloneEntry();
 | 
			
		||||
   void OnEditDeleteEntry();
 | 
			
		||||
   void OnEditUsernameToClipboard();
 | 
			
		||||
   void OnEditPasswordToClipboard();
 | 
			
		||||
   void OnCurrentGroupChanged(QTreeWidgetItem*,QTreeWidgetItem*);
 | 
			
		||||
   void OnEntryItemDoubleClicked(QTreeWidgetItem* item,int column);
 | 
			
		||||
   void OnEntrySelectionChanged();
 | 
			
		||||
   void OnGroupSelectionChanged();
 | 
			
		||||
   void OnClipboardTimeOut();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
 enum SelectionState{NONE,SINGLE,MULTIPLE};
 | 
			
		||||
 SelectionState GroupSelection, EntrySelection;
 | 
			
		||||
 bool FileOpen;
 | 
			
		||||
 bool ModFlag;
 | 
			
		||||
 QClipboard* Clipboard;
 | 
			
		||||
 QTimer ClipboardTimer;
 | 
			
		||||
 inline void setupToolbar();
 | 
			
		||||
 inline void setupIcons();
 | 
			
		||||
 inline void setupConnections();
 | 
			
		||||
| 
						 | 
				
			
			@ -89,6 +95,7 @@ private:
 | 
			
		|||
 bool closeDatabase();
 | 
			
		||||
 void editEntry(CEntry* pEntry);
 | 
			
		||||
 inline CGroup* currentGroup();
 | 
			
		||||
 inline CEntry* currentEntry();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue