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){