From 5775eaae36b2849f3251865f013f11890900f2b2 Mon Sep 17 00:00:00 2001 From: tarek_saidi Date: Mon, 12 Jun 2006 21:16:22 +0000 Subject: [PATCH] metastreams get correct group IDs (instead of 0), new CustomIcon metastream format (Rev 2), alpha blending for banner icons, new banner standard icon (key.png) git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@98 b624d157-de02-0410-bad0-e51aec6abb33 --- share/keepass/icons/key.png | Bin 1630 -> 1239 bytes src/PwManager.cpp | 47 ++++--- src/PwManager.h | 1 + src/forms/EditGroupDlg.ui | 244 +++++++++++++++++++----------------- src/lib/GroupView.cpp | 3 +- src/main.cpp | 8 +- 6 files changed, 169 insertions(+), 134 deletions(-) diff --git a/share/keepass/icons/key.png b/share/keepass/icons/key.png index d6c284ad06651606075ecfe0eeb7d6991e4a72e6..594ffbf99f5480e96ae86666f80cb1647c4d384c 100755 GIT binary patch delta 1230 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 zlmbpfu-00000OldImgID=entry->ImageID; + entry->ImageID=Icon; + } } for(int i=0;iBinaryDesc="bin-stream"; e->Title="Meta-Info"; e->UserName="SYSTEM"; -e->Additional="KPX_CUSTOM_ICONS"; +e->Additional="KPX_CUSTOM_ICONS_2"; e->URL="$"; e->ImageID=0; +if(Groups.size())e->GroupID=Groups[0].ID; int Size=12; quint32 NumEntries=Entries.size(); quint32 NumGroups=Groups.size(); -Size+=8*(NumEntries+NumGroups); +Size+=8*NumGroups+20*NumEntries; Size+=CustomIcons.size()*1000; // 1KB e->BinaryData.reserve(Size); e->BinaryData.resize(12); @@ -327,11 +344,11 @@ for(int i=0;iBinaryData.append(png); } for(quint32 i=0;iBinaryData.append(QByteArray::fromRawData(Bin,8)); + memcpyToLEnd32(Bin+16,&id); + e->BinaryData.append(QByteArray::fromRawData(Bin,20)); } for(quint32 i=0;i getChildIds(CGroup* pGroup); CEntry& entry(unsigned long index); + CEntry* getEntry(const KpxUuid& uuid); void setEntry(unsigned long index,CEntry& Entry); int numEntries(); CEntry* cloneEntry(CEntry* pEntry); diff --git a/src/forms/EditGroupDlg.ui b/src/forms/EditGroupDlg.ui index 482e5e5..81fb52d 100644 --- a/src/forms/EditGroupDlg.ui +++ b/src/forms/EditGroupDlg.ui @@ -8,135 +8,147 @@ 0 0 - 302 - 105 + 350 + 120 + + + 0 + 0 + 0 + 0 + + - 302 - 105 + 350 + 120 - 302 - 105 + 350 + 120 Group Properties - - - - 70 - 10 - 230 - 21 - - - - - - - 10 - 10 - 27 - 20 - - - - Title: - - - - - - 10 - 40 - 43 - 20 - - - - Icon: - - - - - - 10 - 62 - 290 - 16 - - - - QFrame::HLine - - - QFrame::Sunken - - - Qt::Horizontal - - - - - - 140 - 76 - 70 - 24 - - - - O&K - - - Alt+K - - - - - - 220 - 76 - 70 - 24 - - - - &Cancel - - - Alt+C - - - - - - 68 - 37 - 62 - 26 - - - - - - - 135 - 38 - 21 - 23 - - - - > - - + + + 9 + + + 6 + + + + + 0 + + + 6 + + + + + Icon: + + + + + + + Title: + + + + + + + + + + Qt::Horizontal + + + + 172 + 20 + + + + + + + + + + + > + + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + Qt::Horizontal + + + + + + + 0 + + + 6 + + + + + Qt::Horizontal + + + + 121 + 20 + + + + + + + + O&K + + + Alt+K + + + + + + + &Cancel + + + Alt+C + + + + + + qPixmapFromMimeSource diff --git a/src/lib/GroupView.cpp b/src/lib/GroupView.cpp index be1d128..e9c9595 100644 --- a/src/lib/GroupView.cpp +++ b/src/lib/GroupView.cpp @@ -89,6 +89,7 @@ if(DragType==GROUP){ item->setFont(0,f); LastHoverItem=item; event->setAccepted(true); + ///@FIXME does not work for top level groups } else{ LastHoverItem=NULL; @@ -277,7 +278,7 @@ QPen pen(QColor(100,100,100)); pen.setWidth(2); pen.setStyle(Qt::DotLine); painter.setPen(pen); -qDebug("UPDATE: (%i,%i) %ix%i",event->rect().x(),event->rect().y(),event->rect().width(),event->rect().height()); +//qDebug("UPDATE: (%i,%i) %ix%i",event->rect().x(),event->rect().y(),event->rect().width(),event->rect().height()); if(!InsertionMarker.isNull()){ painter.drawLine(InsertionMarker); } diff --git a/src/main.cpp b/src/main.cpp index d7413a8..0fa8b7f 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -202,10 +202,14 @@ if(color1!=color2){ else{ banner_pixmap->fill(color1); } -painter.drawPixmap(10,10,*symbol); +QPixmap icon(32,32); +icon.fill(textcolor); +icon.setAlphaChannel(*symbol); +painter.drawPixmap(10,10,icon); + pen.setColor(textcolor); painter.setPen(pen); -painter.drawText(50,30,text); +painter.drawText(50,35,text); Banner->setPixmap(*banner_pixmap); }