From 97da5c19891d57ed6d18cda5888f5a13fe0b0f65 Mon Sep 17 00:00:00 2001 From: sniperbeamer Date: Sat, 16 Feb 2008 12:36:28 +0000 Subject: [PATCH] Completely removed Qt3Support dependency Cleaned up qmake project file Compiles on Windows + many Windows specific improvements Various small fixes git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@152 b624d157-de02-0410-bad0-e51aec6abb33 --- share/ico/keepassx.ico | Bin 0 -> 5430 bytes share/ico/keepassx.rc | 1 + src/dialogs/AboutDlg.cpp | 43 +++--- src/forms/AboutDlg.ui | 5 +- src/forms/EditGroupDlg.ui | 2 +- src/forms/SimplePasswordDlg.ui | 2 +- src/lib/ShortcutWidget.cpp | 4 +- src/lib/ShortcutWidget.h | 3 + src/main.cpp | 96 ++++++------ src/main.h | 3 +- src/mainwindow.cpp | 26 +++- src/mainwindow.h | 1 + src/src.pro | 267 +++++++++++++++++---------------- 13 files changed, 244 insertions(+), 209 deletions(-) create mode 100644 share/ico/keepassx.ico create mode 100644 share/ico/keepassx.rc diff --git a/share/ico/keepassx.ico b/share/ico/keepassx.ico new file mode 100644 index 0000000000000000000000000000000000000000..a63ca8b7267e4d1ea4eda4e7130d0e9d09556799 GIT binary patch literal 5430 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"Information on how to translate KeePassX can be found under:") - +"
http://keepassx.sourceforge.net/"); + +"
http://www.keepassx.org/"); QString str; str+=""+tr("Team")+"
"; str+="
"; @@ -77,34 +77,29 @@ close(); } void AboutDialog::loadLicFromFile(){ - -QFile gpl(AppDir+"/../share/keepass/license.html"); -if(!gpl.exists()){ -QMessageBox::critical(this,tr("Error"),tr("File '%1' could not be found.") - .arg("'license.html'")+"\n"+tr("Make sure that the program is installed correctly.") - ,tr("OK"),0,0,2,1); -return; -} - -if(!gpl.open(QIODevice::ReadOnly)){ -QMessageBox::critical(this,tr("Error"),tr("Could not open file '%1'") - .arg("'license.txt'")+"\n"+tr("The following error occured:")+"\n"+gpl.errorString() - ,tr("OK"),0,0,2,1); -return; -} - -char* buffer=new char[gpl.size()]; -long l=gpl.read(buffer,gpl.size()); -gpl.close(); -Edit_License->setHtml(QString::fromUtf8(buffer,l)); -delete buffer; + QString filename; + filename = AppDir+"/../share/keepass/license.html"; + if (!QFile::exists(filename)){ + filename = AppDir+"/share/license.html"; + if (!QFile::exists(filename)){ + filename.clear(); + } + } + QFile gpl(filename); + if (filename.isEmpty() || !gpl.open(QIODevice::ReadOnly)){ + QMessageBox::critical(this,tr("Error"),tr("File '%1' could not be found.") + .arg("'license.html'")+"\n"+tr("Make sure that the program is installed correctly.") + ,tr("OK"),0,0,2,1); + } + + Edit_License->setHtml(QString::fromUtf8(gpl.readAll())); } void AboutDialog::OnHomepageClicked(){ -openBrowser("http://keepassx.sf.net"); + openBrowser("http://www.keepassx.org/"); } void AboutDialog::OnEMailClicked(){ -openBrowser("mailto:keepassx@gmail.com"); + openBrowser("mailto:keepassx@gmail.com"); } diff --git a/src/forms/AboutDlg.ui b/src/forms/AboutDlg.ui index 2e3677e..ede67c8 100644 --- a/src/forms/AboutDlg.ui +++ b/src/forms/AboutDlg.ui @@ -65,7 +65,7 @@ - 3 + 0 @@ -184,9 +184,6 @@ http://keepassx.sourceforge.net - - - diff --git a/src/forms/EditGroupDlg.ui b/src/forms/EditGroupDlg.ui index 35b462c..c4468eb 100644 --- a/src/forms/EditGroupDlg.ui +++ b/src/forms/EditGroupDlg.ui @@ -132,11 +132,11 @@ - qPixmapFromMimeSource EditTitle ComboIconPicker + diff --git a/src/forms/SimplePasswordDlg.ui b/src/forms/SimplePasswordDlg.ui index be7cb76..ee2c1be 100644 --- a/src/forms/SimplePasswordDlg.ui +++ b/src/forms/SimplePasswordDlg.ui @@ -125,7 +125,7 @@ - qPixmapFromMimeSource + diff --git a/src/lib/ShortcutWidget.cpp b/src/lib/ShortcutWidget.cpp index a6c4d8e..2ebb5d0 100644 --- a/src/lib/ShortcutWidget.cpp +++ b/src/lib/ShortcutWidget.cpp @@ -18,12 +18,14 @@ ***************************************************************************/ #include "ShortcutWidget.h" + +#if defined(GLOBAL_AUTOTYPE) && defined(Q_WS_X11) + #include #include #include #include "HelperX11.h" -#if defined(GLOBAL_AUTOTYPE) && defined(Q_WS_X11) ShortcutWidget::ShortcutWidget(QWidget* parent) : QLineEdit(parent), lock(false), failed(false){ } diff --git a/src/lib/ShortcutWidget.h b/src/lib/ShortcutWidget.h index c75123f..1e47acc 100644 --- a/src/lib/ShortcutWidget.h +++ b/src/lib/ShortcutWidget.h @@ -21,7 +21,10 @@ #define SHORTCUT_WIDGET_H #include + +#if defined(GLOBAL_AUTOTYPE) && defined(Q_WS_X11) #include "lib/AutoType.h" +#endif class ShortcutWidget : public QLineEdit{ Q_OBJECT diff --git a/src/main.cpp b/src/main.cpp index 966e235..1a3d004 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -52,6 +52,9 @@ #if defined(Q_WS_X11) && defined(GLOBAL_AUTOTYPE) #include "Application_X11.h" #endif +#ifdef Q_WS_WIN +#include +#endif using namespace std; @@ -60,6 +63,7 @@ QHashIconCache; KpxConfig *config; QString AppDir; +QString HomeDir; QString PluginLoadError; bool TrActive; QString DetailViewTemplate; @@ -78,6 +82,15 @@ int main(int argc, char **_argv) QString ArgFile,ArgCfg,ArgLang,IniFilename; QApplication* app=NULL; AppDir=applicationDirPath(); +#if defined Q_WS_WIN + HomeDir = QString::fromLocal8Bit(qgetenv("APPDATA").constData()); + if(!HomeDir.isEmpty() && QFile::exists(HomeDir)) + HomeDir = QDir::fromNativeSeparators(HomeDir)+"/KeePassX"; + else + HomeDir = QDir::homePath()+"/KeePassX"; +#else + HomeDir = QDir::homePath()+"/.keepassx"; +#endif bool ArgMin = false; bool ArgLock = false; parseCmdLineArgs(argc,argv,ArgFile,ArgCfg,ArgLang,ArgMin,ArgLock); @@ -85,12 +98,12 @@ int main(int argc, char **_argv) //Load Config if(ArgCfg.isEmpty()){ - if(!QDir(QDir::homePath()+"/.keepassx").exists()){ + if(!QDir(HomeDir).exists()){ QDir conf(QDir::homePath()); - if(!conf.mkdir(".keepassx")){ - cout << "Warning: Could not create directory '~/.keepassx'." << endl;} + if(!QDir().mkpath(HomeDir)) + qDebug("Warning: Could not create directory '%s'", CSTR(HomeDir)); } - IniFilename=QDir::homePath()+"/.keepassx/config"; + IniFilename=HomeDir+"/config"; } else IniFilename=ArgCfg; @@ -163,8 +176,9 @@ int main(int argc, char **_argv) qtTranslator=new QTranslator; if(loadTranslation(translator,"keepass-",loc.name(),QStringList() - << app->applicationDirPath()+"/../share/keepass/i18n/" - << QDir::homePath()+"/.keepassx/" )) + << AppDir+"/../share/keepass/i18n/" + << AppDir+"/share/i18n/" + << HomeDir)) { app->installTranslator(translator); TrActive=true; @@ -177,18 +191,21 @@ int main(int argc, char **_argv) delete translator; TrActive=false; } - - if(loadTranslation(qtTranslator,"qt_",loc.name(),QStringList() - << QLibraryInfo::location(QLibraryInfo::TranslationsPath) - << app->applicationDirPath()+"/../share/keepass/i18n/" - << QDir::homePath()+"/.keepass/" )) - app->installTranslator(qtTranslator); - else{ - if(loc.name()!="en_US") - qWarning(QString("Qt: No Translation found for '%1 (%2)' using 'English (UnitedStates)'") - .arg(QLocale::languageToString(loc.language())) - .arg(QLocale::countryToString(loc.country())).toAscii()); - delete qtTranslator; + + if(TrActive){ + if(loadTranslation(qtTranslator,"qt_",loc.name(),QStringList() + << QLibraryInfo::location(QLibraryInfo::TranslationsPath) + << AppDir+"/../share/keepass/i18n/" + << AppDir+"/share/i18n/" + << HomeDir)) + app->installTranslator(qtTranslator); + else{ + if(loc.name()!="en_US") + qWarning(QString("Qt: No Translation found for '%1 (%2)' using 'English (UnitedStates)'") + .arg(QLocale::languageToString(loc.language())) + .arg(QLocale::countryToString(loc.country())).toAscii()); + delete qtTranslator; + } } @@ -281,7 +298,7 @@ void openBrowser(const QString& UrlString){ QUrl url(UrlString); if(url.scheme().isEmpty()) url=QUrl("http://"+UrlString); - if(config->urlCmdDef()){ + if(config->urlCmdDef() || url.scheme()=="mailto"){ QDesktopServices::openUrl(url); } else{ @@ -297,22 +314,22 @@ void openBrowser(const QString& UrlString){ } } -///TODO 0.2.3 remove -void loadImg(QString name,QPixmap& Img){ - if(Img.load(AppDir+"/../share/keepass/icons/"+name)==false){ - if(Img.load(AppDir+"/share/"+name)==false){ - QMessageBox::critical(0,QApplication::translate("Main","Error"), - QApplication::translate("Main","File '%1' could not be found.") - .arg(name),QApplication::translate("Main","OK"),0,0,2,1); - exit(1); - } +QString getImageFile(const QString& name){ + if (QFile::exists(AppDir+"/../share/keepass/icons/"+name)) + return AppDir+"/../share/keepass/icons/"+name; + else if (QFile::exists(AppDir+"/share/icons/"+name)) + return AppDir+"/share/icons/"+name; + else{ + QMessageBox::critical(0,QApplication::translate("Main","Error"), + QApplication::translate("Main","File '%1' could not be found.") + .arg(name),QApplication::translate("Main","OK"),0,0,2,1); + exit(1); } } ///TODO 0.2.3 remove void loadImages(){ - QPixmap tmpImg; - loadImg("clientic.png",tmpImg); + QPixmap tmpImg(getImageFile("clientic.png")); EntryIcons=new QPixmap[BUILTIN_ICONS]; for(int i=0;i Use specified file for loading/saving the configuration." << endl; cout << " -min Start minimized." << endl; @@ -437,6 +445,8 @@ void showErrMsg(const QString& msg,QWidget* parent){ QMessageBox::critical(parent,QApplication::translate("Main","Error"),msg,QApplication::translate("Main","OK")); } +//TODO Plugins +/* QString findPlugin(const QString& filename){ QFileInfo info; @@ -446,7 +456,7 @@ QString findPlugin(const QString& filename){ return QString(); } - +*/ QString makePathRelative(const QString& AbsDir,const QString& CurDir){ QStringList abs=AbsDir.split('/'); diff --git a/src/main.h b/src/main.h index f5d7f5f..085aab2 100644 --- a/src/main.h +++ b/src/main.h @@ -54,12 +54,13 @@ QString applicationDirPath(); const QIcon& getIcon(const QString& name); const QPixmap* getPixmap(const QString& name); QString decodeFileError(QFile::FileError Code); -QString findPlugin(const QString& filename); +//QString findPlugin(const QString& filename); //TODO Plugins QString makePathRelative(const QString& Abs,const QString& Cur); extern QString PluginLoadError; extern KpxConfig *config; extern QString AppDir; +extern QString HomeDir; extern bool TrActive; extern QString DetailViewTemplate; extern QPixmap *EntryIcons; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d355c7d..4281e8f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -78,7 +78,7 @@ KeepassMainWindow::KeepassMainWindow(const QString& ArgFile,bool ArgMin,bool Arg InUnLock=false; unlockDlg=NULL; setupUi(this); -#ifdef QT_WS_MAC +#ifdef Q_WS_MAC setUnifiedTitleAndToolBarOnMac(true); #endif #ifdef AUTOTYPE @@ -218,6 +218,7 @@ void KeepassMainWindow::setupConnections(){ void KeepassMainWindow::setupToolbar(){ toolBar=new QToolBar(this); + toolBar->setMovable(false); addToolBar(toolBar); toolBar->setIconSize(QSize(config->toolbarIconSize(),config->toolbarIconSize())); ViewShowToolbarAction=toolBar->toggleViewAction(); @@ -269,6 +270,8 @@ void KeepassMainWindow::setupIcons(){ ExtrasSettingsAction->setIcon(getIcon("appsettings")); #ifdef AUTOTYPE EditAutoTypeAction->setIcon(getIcon("autotype")); +#else + EditAutoTypeAction->setVisible(false); #endif //HelpHandbookAction->setIcon(getIcon("manual")); //TODO Handbook HelpAboutAction->setIcon(getIcon("help")); @@ -982,7 +985,11 @@ void KeepassMainWindow::hideEvent(QHideEvent* event){ if (config->lockOnMinimize() && !IsLocked && FileOpen) OnUnLockWorkspace(); if (config->showSysTrayIcon() && config->minimizeTray()){ - setVisible(false); +#ifdef Q_WS_WIN + QTimer::singleShot(100, this, SLOT(hide())); +#else + hide(); +#endif event->accept(); return; } @@ -1091,13 +1098,22 @@ void KeepassMainWindow::OnSysTrayActivated(QSystemTrayIcon::ActivationReason rea hide(); } else{ - showNormal(); - if (IsLocked) - OnUnLockWorkspace(); +#ifdef Q_WS_WIN + QTimer::singleShot(100, this, SLOT(restoreWindow())); +#else + restoreWindow(); +#endif } } } +void KeepassMainWindow::restoreWindow(){ + showNormal(); + activateWindow(); + if (IsLocked) + OnUnLockWorkspace(); +} + void KeepassMainWindow::OnExtrasPasswordGen(){ CGenPwDialog dlg(this,true); dlg.exec(); diff --git a/src/mainwindow.h b/src/mainwindow.h index f81a89e..909ee98 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -92,6 +92,7 @@ class KeepassMainWindow : public QMainWindow, public Ui_MainWindow{ void OnShowSearchResults(); void OnEntryChanged(SelectionState); void OnSysTrayActivated(QSystemTrayIcon::ActivationReason); + void restoreWindow(); void OnImport(QAction*); void OnExport(QAction*); void OnDetailViewUrlClicked(const QUrl& url); diff --git a/src/src.pro b/src/src.pro index 4666507..d7e9214 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,63 +1,70 @@ -###################################################################### -# Automatically generated by qmake (2.01a) Mo Jan 29 18:17:19 2007 -###################################################################### -DEPENDPATH += "crypto \ +DEPENDPATH += crypto \ dialogs \ export \ forms \ import \ lib \ translations \ - res" + res + +win32:QMAKE_WIN32 = 1 + +MOC_DIR = ../build/moc +UI_DIR = ../build/ui +OBJECTS_DIR = ../build +RCC_DIR = ../build/rcc + INSTALLS += target data data.files += ../share/keepass/* TARGET = ../bin/keepassx -isEmpty(PREFIX){ - PREFIX = /usr -} +unix : !macx : !isEqual(QMAKE_WIN32,1) { + isEmpty(PREFIX):PREFIX = /usr -unix : !macx { - !isEqual(AUTOTYPE,0){ - DEFINES += AUTOTYPE - !isEqual(GLOBAL_AUTOTYPE,0){ + !isEqual(AUTOTYPE,0) { + DEFINES += AUTOTYPE + !isEqual(GLOBAL_AUTOTYPE,0) { DEFINES += GLOBAL_AUTOTYPE - } - } - target.path = $${PREFIX}/bin - data.path = $${PREFIX}/share/keepass - pixmaps.files = ../share/pixmaps/* - pixmaps.path = $${PREFIX}/share/pixmaps - desktop.files = ../share/applications/* - desktop.path = $${PREFIX}/share/applications - INSTALLS += pixmaps desktop - contains(DEFINES,AUTOTYPE){ - LIBS += -lXtst - SOURCES += lib/HelperX11.cpp lib/AutoType_X11.cpp - HEADERS += lib/HelperX11.h - } - contains(DEFINES,GLOBAL_AUTOTYPE){ - SOURCES += Application_X11.cpp - HEADERS += Application_X11.h } } - -contains(DEFINES,GLOBAL_AUTOTYPE){ - FORMS += forms/AutoTypeDlg.ui - HEADERS += dialogs/AutoTypeDlg.h - SOURCES += dialogs/AutoTypeDlg.cpp + target.path = $${PREFIX}/bin + data.path = $${PREFIX}/share/keepass + pixmaps.files = ../share/pixmaps/* + pixmaps.path = $${PREFIX}/share/pixmaps + desktop.files = ../share/applications/* + desktop.path = $${PREFIX}/share/applications + INSTALLS += pixmaps desktop + contains(DEFINES,AUTOTYPE) { + LIBS += -lXtst + SOURCES += lib/HelperX11.cpp lib/AutoType_X11.cpp + HEADERS += lib/HelperX11.h + } + contains(DEFINES,GLOBAL_AUTOTYPE) { + SOURCES += Application_X11.cpp + HEADERS += Application_X11.h + } } macx { - target.path = /Applications - data.path = /Applications/keepass.app/Contents/share/keepass + isEmpty(PREFIX):PREFIX = /Applications + target.path = $${PREFIX} + data.path = $${PREFIX}/keepassx.app/Contents/share/keepass } -win32 { - TARGET = ../$$TARGET - QMAKE_LINK_OBJECT_SCRIPT = ../build/$$QMAKE_LINK_OBJECT_SCRIPT +isEqual(QMAKE_WIN32,1) { + isEmpty(PREFIX):PREFIX = "C:/Program files/KeePassX" + target.path = $${PREFIX} + data.path = $${PREFIX}/share + RC_FILE = ../share/ico/keepassx.rc + QMAKE_LINK_OBJECT_SCRIPT = $${OBJECTS_DIR}/$${QMAKE_LINK_OBJECT_SCRIPT} +} + +contains(DEFINES,GLOBAL_AUTOTYPE) { + FORMS += forms/AutoTypeDlg.ui + HEADERS += dialogs/AutoTypeDlg.h + SOURCES += dialogs/AutoTypeDlg.cpp } FORMS += forms/EditGroupDlg.ui \ @@ -70,34 +77,35 @@ FORMS += forms/EditGroupDlg.ui \ forms/PasswordDlg.ui \ forms/EditEntryDlg.ui \ forms/PasswordGenDlg.ui \ - forms/SelectIconDlg.ui \ - forms/CollectEntropyDlg.ui \ - forms/CustomizeDetailViewDlg.ui \ - forms/CalendarDlg.ui \ -# forms/TrashCanDlg.ui \ - forms/ExpiredEntriesDlg.ui \ - forms/WorkspaceLockedWidget.ui \ - forms/AddBookmarkDlg.ui \ - forms/ManageBookmarksDlg.ui + forms/SelectIconDlg.ui \ + forms/CollectEntropyDlg.ui \ + forms/CustomizeDetailViewDlg.ui \ + forms/CalendarDlg.ui \ +# forms/TrashCanDlg.ui \ + forms/ExpiredEntriesDlg.ui \ + forms/WorkspaceLockedWidget.ui \ + forms/AddBookmarkDlg.ui \ + forms/ManageBookmarksDlg.ui + TRANSLATIONS += translations/keepass-de_DE.ts \ - translations/keepass-ru_RU.ts \ - translations/keepass-es_ES.ts \ - translations/keepass-fr_FR.ts \ - translations/keepass-cs_CS.ts \ + translations/keepass-ru_RU.ts \ + translations/keepass-es_ES.ts \ + translations/keepass-fr_FR.ts \ + translations/keepass-cs_CS.ts \ translations/keepass-xx_XX.ts -HEADERS += lib/IniReader.h \ - lib/UrlLabel.h \ + +HEADERS += lib/UrlLabel.h \ mainwindow.h \ Kdb3Database.h \ lib/SecString.h \ crypto/twoclass.h \ crypto/twofish.h \ - import/Import.h \ - import/Import_KeePassX_Xml.h \ + import/Import.h \ + import/Import_KeePassX_Xml.h \ import/Import_PwManager.h \ export/Export_Txt.h \ - export/Export_KeePassX_Xml.h \ - export/Export.h \ + export/Export_KeePassX_Xml.h \ + export/Export.h \ import/Import_KWalletXml.h \ dialogs/AboutDlg.h \ dialogs/EditGroupDlg.h \ @@ -108,44 +116,44 @@ HEADERS += lib/IniReader.h \ dialogs/SimplePasswordDlg.h \ dialogs/EditEntryDlg.h \ dialogs/PasswordGenDlg.h \ - dialogs/SelectIconDlg.h \ - dialogs/CollectEntropyDlg.h \ - dialogs/CustomizeDetailViewDlg.h \ - dialogs/CalendarDlg.h \ - dialogs/ExpiredEntriesDlg.h \ -# dialogs/TrashCanDlg.h \ + dialogs/SelectIconDlg.h \ + dialogs/CollectEntropyDlg.h \ + dialogs/CustomizeDetailViewDlg.h \ + dialogs/CalendarDlg.h \ + dialogs/ExpiredEntriesDlg.h \ +# dialogs/TrashCanDlg.h \ lib/random.h \ Database.h \ # lib/KdePlugin.h \ - lib/AutoType.h \ - lib/FileDialogs.h \ - lib/ShortcutWidget.h \ + lib/AutoType.h \ + lib/FileDialogs.h \ + lib/ShortcutWidget.h \ global.h \ main.h \ lib/GroupView.h \ lib/EntryView.h \ crypto/arcfour.h \ lib/KpFileIconProvider.h \ - crypto/aes_edefs.h \ - crypto/aes_tdefs.h \ - crypto/aes.h \ - crypto/aesopt.h \ - crypto/aestab.h \ - crypto/aescpp.h \ - crypto/sha256.h \ - crypto/yarrow.h \ - crypto/blowfish.h \ - crypto/sha1.h \ - lib/WaitAnimationWidget.h \ - plugins/interfaces/IFileDialog.h \ - plugins/interfaces/IKdeInit.h \ - plugins/interfaces/IGnomeInit.h \ - plugins/interfaces/IIconTheme.h \ - KpxConfig.h \ -# KpxFirefox.h \ - dialogs/AddBookmarkDlg.h \ - lib/bookmarks.h \ - dialogs/ManageBookmarksDlg.h + crypto/aes_edefs.h \ + crypto/aes_tdefs.h \ + crypto/aes.h \ + crypto/aesopt.h \ + crypto/aestab.h \ + crypto/aescpp.h \ + crypto/sha256.h \ + crypto/yarrow.h \ + crypto/blowfish.h \ + crypto/sha1.h \ + lib/WaitAnimationWidget.h \ + plugins/interfaces/IFileDialog.h \ +# plugins/interfaces/IKdeInit.h \ +# plugins/interfaces/IGnomeInit.h \ + plugins/interfaces/IIconTheme.h \ + KpxConfig.h \ +# KpxFirefox.h \ + dialogs/AddBookmarkDlg.h \ + lib/bookmarks.h \ + dialogs/ManageBookmarksDlg.h SOURCES += lib/UrlLabel.cpp \ main.cpp \ mainwindow.cpp \ @@ -153,14 +161,14 @@ SOURCES += lib/UrlLabel.cpp \ lib/SecString.cpp \ crypto/twoclass.cpp \ crypto/twofish.cpp \ - crypto/blowfish.cpp \ - crypto/sha1.cpp \ - import/Import.cpp \ + crypto/blowfish.cpp \ + crypto/sha1.cpp \ + import/Import.cpp \ import/Import_PwManager.cpp \ - import/Import_KeePassX_Xml.cpp \ + import/Import_KeePassX_Xml.cpp \ export/Export_Txt.cpp \ - export/Export_KeePassX_Xml.cpp \ - export/Export.cpp \ + export/Export_KeePassX_Xml.cpp \ + export/Export.cpp \ import/Import_KWalletXml.cpp \ dialogs/AboutDlg.cpp \ dialogs/EditGroupDlg.cpp \ @@ -171,58 +179,59 @@ SOURCES += lib/UrlLabel.cpp \ dialogs/SimplePasswordDlg.cpp \ dialogs/EditEntryDlg.cpp \ dialogs/PasswordGenDlg.cpp \ - dialogs/SelectIconDlg.cpp \ - dialogs/CollectEntropyDlg.cpp \ - dialogs/CustomizeDetailViewDlg.cpp \ - dialogs/CalendarDlg.cpp \ - dialogs/ExpiredEntriesDlg.cpp \ -# dialogs/TrashCanDlg.cpp \ + dialogs/SelectIconDlg.cpp \ + dialogs/CollectEntropyDlg.cpp \ + dialogs/CustomizeDetailViewDlg.cpp \ + dialogs/CalendarDlg.cpp \ + dialogs/ExpiredEntriesDlg.cpp \ +# dialogs/TrashCanDlg.cpp \ lib/random.cpp \ Database.cpp \ # lib/KdePlugin.cpp \ lib/GroupView.cpp \ lib/EntryView.cpp \ - lib/FileDialogs.cpp \ + lib/FileDialogs.cpp \ crypto/arcfour.cpp \ lib/KpFileIconProvider.cpp \ lib/ShortcutWidget.cpp \ - crypto/aescrypt.c \ - crypto/aeskey.c \ - crypto/aestab.c \ - crypto/aes_modes.c \ - crypto/sha256.cpp \ - crypto/yarrow.cpp \ - lib/WaitAnimationWidget.cpp \ - KpxConfig.cpp \ + crypto/aescrypt.c \ + crypto/aeskey.c \ + crypto/aestab.c \ + crypto/aes_modes.c \ + crypto/sha256.cpp \ + crypto/yarrow.cpp \ + lib/WaitAnimationWidget.cpp \ + KpxConfig.cpp \ # KpxFirefox.cpp \ dialogs/AddBookmarkDlg.cpp \ - lib/bookmarks.cpp \ -dialogs/ManageBookmarksDlg.cpp + lib/bookmarks.cpp \ + dialogs/ManageBookmarksDlg.cpp + RESOURCES += res/resources.qrc -MOC_DIR = ../build/moc -UI_DIR = ../build/ui -OBJECTS_DIR = ../build/ -RCC_DIR = ../build/rcc CONFIG = qt \ -uic \ -resources \ -thread \ -stl \ -warn_off + uic \ + resources \ + thread \ + stl \ + warn_off QT += xml TEMPLATE = app INCLUDEPATH += . \ -lib \ -crypto \ -plugins/interfaces \ -export \ -import \ -dialogs \ -./ - -isEqual(RELEASE,1){ + lib \ + crypto \ + plugins/interfaces \ + export \ + import \ + dialogs \ + ./ + +isEqual(RELEASE,1) { CONFIG += release } -else{ +else { CONFIG += debug } + +isEqual(QMAKE_WIN32,1) { + CONFIG += windows +}