diff --git a/share/macx_bundle/Info.plist b/share/macx_bundle/Info.plist
new file mode 100644
index 0000000..bce3985
--- /dev/null
+++ b/share/macx_bundle/Info.plist
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+ CFBundleIconFile
+ icon.icns
+
+ CFBundlePackageType
+ APPL
+
+ CFBundleGetInfoString
+ KeePassX 0.3.4
+
+ CFBundleSignature
+ kpsx
+
+ CFBundleExecutable
+ KeePassX
+
+ CFBundleVersion
+ 0.3.4
+
+ CFBundleShortVersionString
+ 0.3.4
+
+ CFBundleName
+ KeePassX
+
+ CFBundleInfoDictionaryVersion
+ 6.0
+
+ CFBundleIdentifier
+ com.apple.application-bundle
+
+ CFBundleDocumentTypes
+
+
+ CFBundleTypeExtensions
+
+ kdb
+
+ CFBundleTypeIconFile
+ icon
+ CFBundleTypeName
+ KeePassX Password Database
+ CFBundleTypeOSTypes
+
+ kpsx
+
+ CFBundleTypeRole
+ Editor
+
+
+
+
+
diff --git a/src/KpxConfig.cpp b/src/KpxConfig.cpp
index 5379064..080c459 100644
--- a/src/KpxConfig.cpp
+++ b/src/KpxConfig.cpp
@@ -211,6 +211,14 @@ QString KpxConfig::keyTypeToString(tKeyType keyType){
return res;
}
+QByteArray KpxConfig::mainWindowGeometry() {
+ QVariant var = settings.value("UI/MainWindowGeometry");
+ if (var.type() == QVariant::ByteArray)
+ return var.toByteArray();
+ else
+ return QByteArray();
+}
+
QRect KpxConfig::dialogGeometry(const QWidget* widget){
Q_ASSERT(widget->parentWidget()!=NULL && widget->parentWidget()->window()!=NULL);
QSize size = settings.value(QString("UI/%1Size").arg(widget->objectName()),widget->size()).toSize();
diff --git a/src/KpxConfig.h b/src/KpxConfig.h
index b4f83ab..c252410 100644
--- a/src/KpxConfig.h
+++ b/src/KpxConfig.h
@@ -63,7 +63,7 @@ public:
QString lastFile(){return settings.value("Options/LastFile").toString();}
QString lastKeyLocation(){return settings.value("Options/LastKeyLocation").toString();}
tKeyType lastKeyType(){return stringToKeyType(settings.value("Options/LastKeyType").toString());}
- QRect mainWindowGeometry(const QRect& defaultValue){return settings.value("UI/MainWindowGeometry",defaultValue).toRect();}
+ QByteArray mainWindowGeometry();
bool minimizeToTray(){return settings.value("Options/MinimizeToTray",false).toBool();}
bool minimizeTray(){return settings.value("Options/MinimizeTray",false).toBool();}
bool startMinimized(){return settings.value("Options/StartMinimized",false).toBool();}
@@ -130,7 +130,7 @@ public:
void setLastFile(const QString& value){settings.setValue("Options/LastFile",value);}
void setLastKeyLocation(const QString& value){settings.setValue("Options/LastKeyLocation",value);}
void setLastKeyType(tKeyType value){settings.setValue("Options/LastKeyType",keyTypeToString(value));}
- void setMainWindowGeometry(const QRect& value){settings.setValue("UI/MainWindowGeometry",value);}
+ void setMainWindowGeometry(const QByteArray& value){settings.setValue("UI/MainWindowGeometry",value);}
void setMinimizeToTray(bool value){settings.setValue("Options/MinimizeToTray",value);}
void setMinimizeTray(bool value){settings.setValue("Options/MinimizeTray",value);}
void setStartMinimized(bool value){settings.setValue("Options/StartMinimized",value);}
diff --git a/src/dialogs/AboutDlg.cpp b/src/dialogs/AboutDlg.cpp
index 9dcc6d6..9d0771d 100644
--- a/src/dialogs/AboutDlg.cpp
+++ b/src/dialogs/AboutDlg.cpp
@@ -47,6 +47,8 @@ AboutDialog::AboutDialog(QWidget* parent):QDialog(parent)
str+="
";
str+="Felix Geyer
"+tr("Developer, Project Admin")+"
sniperbeamer@users.sf.net
";
str+="
";
+ str+="Brandon Mayes
"+tr("Developer")+"
bdmayes@users.sourceforge.net
";
+ str+="
";
str+="Eugen Gorschenin
"+tr("Web Designer")+"
geugen@users.sf.de
";
str+="
";
str+="Juan J González Cárdenas [Jota Jota]
"+tr("Developer")+"
myxelf@users.sf.net
";
diff --git a/src/dialogs/PasswordGenDlg.cpp b/src/dialogs/PasswordGenDlg.cpp
index 9d475c9..8c4d31b 100644
--- a/src/dialogs/PasswordGenDlg.cpp
+++ b/src/dialogs/PasswordGenDlg.cpp
@@ -112,6 +112,7 @@ CGenPwDialog::CGenPwDialog(QWidget* parent, bool StandAloneMode,Qt::WFlags fl)
checkBoxPN->setChecked(true);
checkBoxPS->setChecked(false);
}
+ Edit_chars->setText(config->pwGenCharList());
Check_ExcludeLookAlike->setChecked(config->pwGenExcludeLookAlike());
Check_EveryGroup->setChecked(config->pwGenEveryGroup());
Spin_Num->setValue(config->pwGenLength());
@@ -143,6 +144,7 @@ CGenPwDialog::~CGenPwDialog(){
pwGenOptions.setBit(12,checkBoxPN->isChecked());
pwGenOptions.setBit(13,checkBoxPS->isChecked());
config->setPwGenOptions(pwGenOptions);
+ config->setPwGenCharList(Edit_chars->text());
config->setPwGenExcludeLookAlike(Check_ExcludeLookAlike->isChecked());
config->setPwGenEveryGroup(Check_EveryGroup->isChecked());
config->setPwGenLength(Spin_Num->value());
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 1073210..599400b 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -67,7 +67,9 @@ KeepassMainWindow::KeepassMainWindow(const QString& ArgFile,bool ArgMin,bool Arg
autoType->registerGlobalShortcut(config->globalShortcut());
#endif
setWindowModified(false);
- setGeometry(config->mainWindowGeometry(geometry()));
+ QByteArray windowGeo = config->mainWindowGeometry();
+ if (!windowGeo.isEmpty())
+ restoreGeometry(windowGeo);
VSplitter->restoreState(config->vSplitterPos());
HSplitter->restoreState(config->hSplitterPos());
SysTray=new QSystemTrayIcon(this);
@@ -1022,7 +1024,7 @@ void KeepassMainWindow::closeEvent(QCloseEvent* e){
autoType->unregisterGlobalShortcut();
#endif
- config->setMainWindowGeometry(geometry());
+ config->setMainWindowGeometry(saveGeometry());
// workaround if window has never been visible
if (isVisible() || VSplitter->sizes()[0]!=VSplitter->sizes()[1])
config->setVSplitterPos(VSplitter->saveState());
diff --git a/src/src.pro b/src/src.pro
index 3e80731..620889e 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -78,6 +78,7 @@ macx {
LIBS += -framework Carbon -framework AppKit -lz
}
QMAKE_BUNDLE_DATA += data
+ QMAKE_INFO_PLIST= ../share/macx_bundle/Info.plist
ICON = ../share/macx_bundle/icon.icns
CONFIG += app_bundle
isEqual(ARCH,UNIVERSAL){