From d6ea6e8971c2c70aebfd77ead7d1c9746e86e5f0 Mon Sep 17 00:00:00 2001 From: tariq Date: Thu, 9 Mar 2006 10:44:14 +0000 Subject: [PATCH] fixed problem with config saving, main-window size an splitter position are restored on start-up, loading icons on demand by QIcon class instead of preload, column resizing stuff (not finished) git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@50 b624d157-de02-0410-bad0-e51aec6abb33 --- .../nuvola/32x32/filesystems/desktop.png | Bin 0 -> 2742 bytes .../icons/nuvola/32x32/filesystems/folder.png | Bin 0 -> 2972 bytes .../nuvola/32x32/filesystems/folder_home.png | Bin 0 -> 2676 bytes .../32x32/filesystems/network_local.png | Bin 0 -> 2217 bytes .../32x32/filesystems/trashcan_full.png | Bin 0 -> 2844 bytes src/PwmConfig.cpp | 45 ++++++++++- src/PwmConfig.h | 8 ++ src/forms/MainWindow.ui | 18 +++-- src/forms/SettingsDlg.ui | 68 ++++++++--------- src/lib/EntryView.cpp | 10 ++- src/lib/EntryView.h | 4 +- src/lib/KpFileIconProvider.cpp | 19 +++++ src/lib/KpFileIconProvider.h | 28 +++++++ src/main.cpp | 70 +++++++----------- src/mainwindow.cpp | 10 ++- src/src.pro | 10 ++- 16 files changed, 192 insertions(+), 98 deletions(-) create mode 100644 share/keepass/icons/nuvola/32x32/filesystems/desktop.png create mode 100644 share/keepass/icons/nuvola/32x32/filesystems/folder.png create mode 100644 share/keepass/icons/nuvola/32x32/filesystems/folder_home.png create mode 100644 share/keepass/icons/nuvola/32x32/filesystems/network_local.png create mode 100644 share/keepass/icons/nuvola/32x32/filesystems/trashcan_full.png create mode 100644 src/lib/KpFileIconProvider.cpp create mode 100644 src/lib/KpFileIconProvider.h diff --git a/share/keepass/icons/nuvola/32x32/filesystems/desktop.png b/share/keepass/icons/nuvola/32x32/filesystems/desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..9b993a5ebb3e6445a0fc7a47fe7acb169bc7966e GIT binary patch literal 2742 zcmV;n3Q6^eP) z?bW#j-XBW80*Hks-eLq<2qZx6{Q-2??|*h8u74(oYuItWJn^aMJtLFx-@A9>8GiqM z2oONDkAmO-E!m8}tg5UC;Ewk&Vqi8BWe_wov1bq#ZUD;i0R#}09q=E5|NnzT#SaEW zR;@3KvnyT2wfIaKPJCa^AZ&GjflcEJDC+cpij@EYh(`B|2SSV zFo-;0koveFrPe{&Pt~7c;*E(6cNp$6Fn{G?c)RWLCx#c#kAWfxAb==y04NLpXA)%i z#qKA{{323E_>VKMu|3P9x4#%JTtE9Ju!Kt_R6B@a$-QL^xBuT_VErk`aI@#nkDo`M z>|*%;XD!f#djJ7Mo&)~lse|I>Erkz|U}Z^4~w-_uk#j@c+kBpeZLo*#;nhSV;2izkjkoi=8=z z_@m?%#hn$^gqb1*J~0GqC@^p-0^^+J4nyVbn+(rQco};9OBnV(Kg4k8^C1T2{~QeW zXa4*5X~VTK6Faah`2U5Wy{~~`+26wq(<{pv&OSTGuM zegGB@47-8&6U=yk0Aj(Jk^eCWGyMAL$HK`KDy1mtsi7&#peoPCpeM`5pefG5V6Gv< zz{bu2*Rf*zS%yj9PBCQ$42%C4By{_f_*a(zelzS zAb?m>Ty#Vj)Wmriq(pcbm|56RoV)wz zNrvoog$zwq$qb)geq`u5-plau>syAOmpB--{uMCXmifj18(hcGaG zV`OOA-OBLt!*hne*O?gfc?ub#5_1{WuD>XB;=$fyXuUsiz zvz1Fz4moe1+s7Cia*yG_Cu0UX1r`QlH94%7!)nn}SFbUM^YJny==w4AZ0KfqcJCR( z->d%_{G~D(d>tbgKK)=|FtX5L;MNEVW?+-@LN^B>fWQvm=Hri#cj9CSu-L)C#`Txs z!YNyZcWNOFYmVJv`1bt=_6z}az>y0V7<7~+8Kn8R8G0=u8ALt^GARFcV`xpvV=xx` z%y8w*Nrr#l-!rJ_>2fhh_+ zcLx5iR~T;GdBotveTu@Mv zq!t>>z`|n=vKkPqK?djuB_&k`1qDS0d3i+!B~>j3RWT6; zb-_Ihn!rG3{H4P1LN$*;-o!|RLD)PB)E)o`AVhoM+s(_*&u^c)Vc&fQ59NOh%uI-? zU0y+&;XNZi!|s#U7}(fY!HExq{{e#t6e6H>@f%p={se{!BO?<7KQJUDM1>dxgoGI6 zzV2h-69nd_Yg`Qbp2RZz5oc%M1Lhb8W=>#xjX?q+fKZF#mz$^0-)JB1XDy{{DI>^m z^(~~?2Z{;MQLR0n_nhZq;9!^C~7G9=8cepNF(;L~Av_0y5zC6_hBTW(o~GsllI)CL0M zS%i<_@1I``4_~}yIRD@s!|CUY3}>GM6CbY}13SMcI8;8r|Hkm@#T$mV*H3)^d1J>T zhIbdQGrYeHY6+bI;`5*q03d)c9RLDS-u|YEQ`R5$p2*0~J%Is~e80VyWO)7Ap5fqq z1BQE_MHrmS4H@>``oeJX1v|rQMlpu}T%ru@oIJoR_@CkJvlk3+?%!nia_8vV|MzxW zVR(DtEW@8KCx9m31mefg`T$&%0t66t2e9$7GZ;26pH<}(n95ne@RN5N1G@q+wTS`c z-Y_s+UCYlf`Ft+JVYLDV4t`;Vf56=F<>Oa|_s^a(e7t-5>z`ZO?lQc-aGBxbt+PNK zprZ5+5Wix8G}KW5KmcKP00@X#8EeN*J#?T_jqCdLYYgx2ZD-*Bzn|gs2TO(n|H6S$ zqQ>z34?Dw$S1%dfKDfp3#K(hAFmzw^zXsphYZh-UIcm_6vP*S_!bbq zV}SIp2m*ir!rvsjy?8?FY6FkI>=p`tez7uq`1qFL%hNjy-*4`I!f<|Jx1b^mh`&&yKLZe80B5o8p?2Y5`~Uy|07*qoM6N<$f=r7Sga7~l literal 0 HcmV?d00001 diff --git a/share/keepass/icons/nuvola/32x32/filesystems/folder.png b/share/keepass/icons/nuvola/32x32/filesystems/folder.png new file mode 100644 index 0000000000000000000000000000000000000000..bd433f4bfd9b001172c5ab8840a261ee9640a1d2 GIT binary patch literal 2972 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 szo5RHT+iwPph*Sc@2uA_C??Bp`xd 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 literal 0 HcmV?d00001 diff --git a/share/keepass/icons/nuvola/32x32/filesystems/trashcan_full.png b/share/keepass/icons/nuvola/32x32/filesystems/trashcan_full.png new file mode 100644 index 0000000000000000000000000000000000000000..f19899dd8003724be482f238052947253d787da4 GIT binary patch literal 2844 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�#YNFEq>`f_T2Kl1vW=Ut-lq4 Go%}xqR5RHC literal 0 HcmV?d00001 diff --git a/src/PwmConfig.cpp b/src/PwmConfig.cpp index bd5dbe1..3adba6c 100755 --- a/src/PwmConfig.cpp +++ b/src/PwmConfig.cpp @@ -25,7 +25,7 @@ using namespace std; bool CConfig::loadFromIni(QString filename){ -CIniFile ini((char*)filename.data()); +ini.SetPath((const char*)filename); ini.ReadFile(); ClipboardTimeOut=ini.GetValueI("Options","ClipboardTimeOut",20); Toolbar=ini.GetValueB("UI","ShowToolbar",true); @@ -47,12 +47,15 @@ PwGenLength=ini.GetValueI("Options","PwGenLength",25); PwGenCharList=ini.GetValue("Options","PwGenCharList","").c_str(); ExpandGroupTree=ini.GetValueB("Options","ExpandGroupTree",true); EnableKdePlugin=ini.GetValueB("KDE Plugin","Enabled",false); +MainWinHeight=ini.GetValueI("UI","MainWinHeight",550); +MainWinWidth=ini.GetValueI("UI","MainWinWidth",900); +MainWinSplit1=ini.GetValueI("UI","MainWinSplit1",100); +MainWinSplit2=ini.GetValueI("UI","MainWinSplit2",300); +ParseIntString(ini.GetValue("UI","ColumnSizes","15,10,10,10,10,10,10,10,10,10").c_str(),ColumnSizes,10); return true; } bool CConfig::saveToIni(QString filename){ -CIniFile ini((const char*)filename); -ini.ReadFile(); ini.SetValueI("Options","ClipboardTimeOut",ClipboardTimeOut); ini.SetValueB("UI","ShowToolbar",Toolbar); ini.SetValueB("UI","ShowEntryDetails",EntryDetails); @@ -73,6 +76,11 @@ ini.SetValueI("Options","PwGenLength",PwGenLength,true); ini.SetValue("Options","PwGenCharList",(const char*)PwGenCharList,true); ini.SetValueB("Options","ExpandGroupTree",ExpandGroupTree,true); ini.SetValueB("KDE Plugin","Enabled",EnableKdePlugin,true); +ini.SetValueI("UI","MainWinHeight",MainWinHeight); +ini.SetValueI("UI","MainWinWidth",MainWinWidth); +ini.SetValueI("UI","MainWinSplit1",MainWinSplit1); +ini.SetValueI("UI","MainWinSplit2",MainWinSplit2); +ini.SetValue("UI","ColumnSizes",(const char*)CreateIntString(ColumnSizes,10),true); if(!ini.WriteFile())return false; else return true; } @@ -135,4 +143,35 @@ if(src[i])str+="1"; else str+="0"; } return str; +} + +#define DEFAULT_INT_VAL 20 + +void CConfig::ParseIntString(const QString &str,int* dst, int count){ +QStringList lst=str.split(","); +if(lst.size()!=count) + qWarning("Warnig: CConfig::ParseIntString(): unexpected item count.\n"); +int* values=new int[count]; +bool err; +for(int i=0;i lst.size()){ + for(int i=lst.size(); i 7 - 7 + 4 0 10 + + + 16777215 + 60 + + @@ -105,7 +111,7 @@ 0 0 724 - 30 + 29 @@ -469,16 +475,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/forms/SettingsDlg.ui b/src/forms/SettingsDlg.ui index 7694e14..cf4a9e5 100644 --- a/src/forms/SettingsDlg.ui +++ b/src/forms/SettingsDlg.ui @@ -27,38 +27,6 @@ Einstellungen - - - - 470 - 310 - 90 - 23 - - - - Abbre&chen - - - Alt+C - - - - - - 380 - 310 - 80 - 23 - - - - O&K - - - Alt+K - - @@ -79,9 +47,9 @@ 10 - 59 + 60 550 - 251 + 241 @@ -355,6 +323,38 @@
+ + + + 380 + 310 + 80 + 23 + + + + O&K + + + Alt+K + + + + + + 470 + 310 + 90 + 23 + + + + Abbre&chen + + + Alt+C + + diff --git a/src/lib/EntryView.cpp b/src/lib/EntryView.cpp index 914f85c..640cd4b 100644 --- a/src/lib/EntryView.cpp +++ b/src/lib/EntryView.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 by Tarek Saidi * + * Copyright (C) 2005-2006 by Tarek Saidi * * tarek.saidi@arcor.de * * * * This program is free software; you can redistribute it and/or modify * @@ -34,8 +34,10 @@ KeepassEntryView::KeepassEntryView(QWidget* parent):QTreeWidget(parent){ CurrentGroup=0; updateColumns(); -header()->setResizeMode(QHeaderView::Stretch); +header()->setResizeMode(QHeaderView::Interactive); +header()->setStretchLastSection(false); ContextMenu=new QMenu(this); + } @@ -66,6 +68,10 @@ e->accept(); ContextMenu->popup(e->globalPos()); } +void KeepassEntryView::resizeEvent(QResizeEvent* e){ + +e->accept(); +} void KeepassEntryView::updateItems(unsigned int GroupID){ diff --git a/src/lib/EntryView.h b/src/lib/EntryView.h index aebd5b5..b8f704b 100644 --- a/src/lib/EntryView.h +++ b/src/lib/EntryView.h @@ -40,9 +40,11 @@ public: private: void setEntry(CEntry* entry); int CurrentGroup; + QListColumnSizes; protected: virtual void contextMenuEvent(QContextMenuEvent *event); - virtual void paintEvent ( QPaintEvent * event ); + virtual void paintEvent(QPaintEvent* event); + virtual void resizeEvent(QResizeEvent* event); }; diff --git a/src/lib/KpFileIconProvider.cpp b/src/lib/KpFileIconProvider.cpp new file mode 100644 index 0000000..1572fd9 --- /dev/null +++ b/src/lib/KpFileIconProvider.cpp @@ -0,0 +1,19 @@ +/*************************************************************************** + * Copyright (C) 2005-2006 by Tarek Saidi * + * tarek.saidi@arcor.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ diff --git a/src/lib/KpFileIconProvider.h b/src/lib/KpFileIconProvider.h new file mode 100644 index 0000000..f0625aa --- /dev/null +++ b/src/lib/KpFileIconProvider.h @@ -0,0 +1,28 @@ +/*************************************************************************** + * Copyright (C) 2005-2006 by Tarek Saidi * + * tarek.saidi@arcor.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include +#include + +class KpFileIconProvider : public QFileIconProvider{ +public: + virtual QIcon icon(IconType type) const; + virtual QIcon icon(const QFileInfo& info) const; +}; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 22fa2b1..bff4557 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -88,6 +88,7 @@ else{ config.loadFromIni(IniFilename);} + //Internationalization QLocale loc=QLocale::system(); QTranslator* translator = 0; @@ -207,15 +208,21 @@ if(Img.load(AppDir+"/../share/keepass/icons/"+name)==false){ } +#define _loadIcon(_VAR,_NAME)\ + _VAR=new QIcon(ThemeDir+_NAME); + void loadImages(){ -QString ThemeDir="nuvola/32x32"; +bool small=true; +QString ThemeDir=AppDir+"/../share/keepass/icons/nuvola/32x32"; QPixmap tmpImg; + //----------------------- loadImg("clientic.png",tmpImg); EntryIcons=new QPixmap[NUM_CLIENT_ICONS]; for(int i=0;isetSizes(QList() << config.MainWinSplit1 << config.MainWinSplit2); QuickSearchEdit=new QLineEdit(toolBar); QuickSearchEdit->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); setupIcons(); @@ -530,8 +531,6 @@ if(dlg.exec()) setStateFileModified(true); } void KeepassMainWindow::OnFileExit(){ -if(FileOpen) - if(!closeDatabase())return; close(); } @@ -765,6 +764,11 @@ setStateFileModified(true); } void KeepassMainWindow::closeEvent(QCloseEvent* e){ +config.MainWinHeight=geometry().height(); +config.MainWinWidth=geometry().width(); +config.MainWinSplit1=splitter->sizes()[0]; +config.MainWinSplit2=splitter->sizes()[1]; + if(FileOpen){ if(!closeDatabase()) e->ignore(); diff --git a/src/src.pro b/src/src.pro index 3c86847..738f0cd 100755 --- a/src/src.pro +++ b/src/src.pro @@ -51,7 +51,8 @@ HEADERS += lib/IniReader.h \ main.h \ lib/GroupView.h \ lib/EntryView.h \ - crypto/arcfour.h + crypto/arcfour.h \ + lib/KpFileIconProvider.h SOURCES += lib/IniReader.cpp \ lib/UrlLabel.cpp \ main.cpp \ @@ -83,7 +84,8 @@ SOURCES += lib/IniReader.cpp \ lib/KdePlugin.cpp \ lib/GroupView.cpp \ lib/EntryView.cpp \ - crypto/arcfour.cpp + crypto/arcfour.cpp \ + lib/KpFileIconProvider.cpp QT += xml \ qt3support MOC_DIR = ../build/moc @@ -99,10 +101,10 @@ exceptions \ stl TEMPLATE = app unix{ - target.path = /usr/local/bin + target.path = /usr/local/bin Share.path = /usr/local/share/keepass } macx{ - target.path = /Applications + target.path = /Applications Share.path = /Applications/keepass.app/Contents/share/keepass }