Export_KeePassX_Xml export_KeePassX_Xml;
KeepassMainWindow::KeepassMainWindow(const QString& ArgFile,bool ArgMin,bool ArgLock,QWidget *parent, Qt::WFlags flags) :QMainWindow(parent,flags){
+ ShutingDown=false;
IsLocked=false;
EventOccurred=true;
inactivityCounter=0;
connect(ViewToolButtonSize22Action,SIGNAL(toggled(bool)), this, SLOT(OnViewToolbarIconSize22(bool)));
connect(ViewToolButtonSize28Action,SIGNAL(toggled(bool)), this, SLOT(OnViewToolbarIconSize28(bool)));
connect(ViewShowStatusbarAction,SIGNAL(toggled(bool)),statusBar(),SLOT(setVisible(bool)));
+#ifdef Q_WS_MAC
+ connect(ViewMinimizeAction, SIGNAL(triggered()), SLOT(showMinimized()));
+#endif
connect(ExtrasSettingsAction,SIGNAL(triggered(bool)),this,SLOT(OnExtrasSettings()));
connect(ExtrasPasswordGenAction,SIGNAL(triggered(bool)),this,SLOT(OnExtrasPasswordGen()));
case 22: ViewToolButtonSize22Action->setChecked(true); break;
case 28: ViewToolButtonSize28Action->setChecked(true); break;
}
+
+#ifdef Q_WS_MAC
+ ViewMenu->addSeparator();
+ ViewMenu->addAction(ViewMinimizeAction);
+#endif
SysTrayMenu = new QMenu(APP_DISPLAY_NAME,this);
SysTrayMenu->addAction(FileUnLockWorkspaceAction);
#ifdef Q_WS_MAC
FileSaveAsAction->setShortcut(tr("Shift+Ctrl+S"));
EditGroupSearchAction->setShortcut(tr("Shift+Ctrl+F"));
+ ViewMinimizeAction->setShortcut(tr("Ctrl+M"));
#endif
//ExtrasTrashCanAction->setVisible(false); //TODO For KP 2.x only
}
void KeepassMainWindow::OnFileExit(){
+ ShutingDown = true;
close();
}
}
void KeepassMainWindow::closeEvent(QCloseEvent* e){
+ if (!ShutingDown && config->showSysTrayIcon() && config->minimizeToTray()){
+ e->ignore();
+ if (config->lockOnMinimize() && !IsLocked && FileOpen)
+ OnUnLockWorkspace();
+ hide();
+ return;
+ }
+
if(FileOpen && !closeDatabase()){
+ ShutingDown = false;
e->ignore();
if (!isVisible())
show();
}
void KeepassMainWindow::restoreWindow(){
+#ifdef Q_WS_WIN
+ if (windowState() & Qt::WindowMaximized)
+ showMaximized();
+ else
+ showNormal();
+#else
showNormal();
+#endif
activateWindow();
if (IsLocked)
OnUnLockWorkspace();
}
void KeepassMainWindow::OnShutdown(QSessionManager& manager) {
+ ShutingDown = true;
+
/* QApplication::commitData() only closes visible windows,
so we need to manually close mainwindow if it's hidden */
if (manager.allowsInteraction() && !isVisible()) {