Commit Graph

981 Commits

Author SHA1 Message Date
Felix Geyer
85031658d1 Add Q_STATIC_ASSERT macro, backported from Qt 5. 2012-07-01 21:27:11 +02:00
Felix Geyer
6ce53b142d clang: Use __has_feature() to detect C++11 features. 2012-07-01 20:24:43 +02:00
Felix Geyer
ee3bc89a54 Coding style fixes. 2012-06-30 00:22:07 +02:00
Felix Geyer
baa5a74ba0 Convert iconCount() and expiredIconIndex() to constants. 2012-06-29 15:22:43 +02:00
Felix Geyer
4e6cf15a09 Fix compiler warning about __GXX_EXPERIMENTAL_CXX0X__ being undefined. 2012-06-29 14:34:17 +02:00
Felix Geyer
2287250a07 Define COMPILER_EXPLICIT_OVERRIDES when using gcc >= 4.7. 2012-06-29 14:18:12 +02:00
Felix Geyer
68155e8f89 Make use of Q_NULLPTR. 2012-06-29 14:15:16 +02:00
Felix Geyer
af142fc433 Optionally enable C++ 11. 2012-06-29 14:14:58 +02:00
Florian Geyer
204822b66f Improve auto save handling. 2012-06-24 19:30:30 +02:00
Felix Geyer
b0ad864fe0 Always convert explicitly from QByteArray to QString. 2012-06-24 18:23:27 +02:00
Felix Geyer
f690522725 Coding style fixes. 2012-06-24 11:32:54 +02:00
Florian Geyer
a720903083 Use temporary settings file for gui test. 2012-06-14 23:07:49 +02:00
Thom Troy
bd5dd130e5 Add auto save on exit 2012-06-12 10:00:02 +02:00
Thom Troy
17f4e23215 Added automatically saving DB after change 2012-06-12 10:00:01 +02:00
Felix Geyer
d3fcf2e0c4 Move singleton instance code to static member functions. 2012-05-31 14:51:44 +02:00
Florian Geyer
cf5f56af6f Rename setting so it refers only to group expanded state changes. 2012-05-30 11:27:09 +02:00
Florian Geyer
5003499700 Add settings option if visual changes mark databases as modified. 2012-05-29 22:10:03 +02:00
Florian Geyer
6f48983efe Remember last opened files. 2012-05-27 23:41:33 +02:00
Felix Geyer
7194a3d7a8 Store defaults in Config. 2012-05-27 20:05:57 +02:00
Felix Geyer
de95b6c347 Add DataPath::icon() parameter to only use local icons. 2012-05-27 12:43:58 +02:00
Felix Geyer
c6253fc025 Make copy constructor and assignment operator of singleton classes private. 2012-05-26 16:45:59 +02:00
Felix Geyer
e323fd169e Use QDesktopServices::storageLocation() on Mac OS too. 2012-05-25 13:42:59 +02:00
Florian Geyer
b5249d196d Rename KeePassApp to Application and move it to gui directory. 2012-05-21 22:04:40 +02:00
Florian Geyer
d445bf1ecd Use a signal to connect to a slot in main window.
Coding style fixes.

http://gitorious.org/keepassx/keepassx/merge_requests/10
2012-05-21 22:04:40 +02:00
Tobias Tangemann
679398be00 Handle OSX Finder events 2012-05-21 22:04:40 +02:00
Felix Geyer
ca7c59d313 Fix data path on Mac OS. 2012-05-21 17:55:09 +02:00
Felix Geyer
5297722ede Include header cleanup. 2012-05-20 23:08:23 +02:00
Florian Geyer
4797926be6 History items can now be removed.
Refs #23
2012-05-20 13:07:45 +02:00
Florian Geyer
4ec9df76cd Add toHex function to Uuid. 2012-05-18 14:41:34 +02:00
Florian Geyer
d218924b4f Add expiry option to group edit. 2012-05-18 10:52:05 +02:00
Florian Geyer
810a6e4b39 Display history items.
Refs #23
2012-05-17 23:29:37 +02:00
Florian Geyer
eb82df5994 Add entry clone functionality. 2012-05-16 10:30:25 +02:00
Felix Geyer
5ef3cdb428 Add some more asserts to make sure we only store UTC QDateTimes. 2012-05-16 10:05:58 +02:00
Felix Geyer
ce268260b1 Display expired entries and groups struck out. 2012-05-15 20:02:08 +02:00
Florian Geyer
621ec80bbe Use static constants for default icon numbers. 2012-05-15 18:46:59 +02:00
Felix Geyer
b90807c4d3 Coding style fixes. 2012-05-15 17:48:48 +02:00
Felix Geyer
a407e0082b Coding style improvements. 2012-05-14 19:10:42 +02:00
Felix Geyer
cd41727583 Get rid of Database pointer in Metadata. 2012-05-14 17:04:05 +02:00
Felix Geyer
53fb28624e Fix memory leak in Entry::truncateHistory(). 2012-05-14 16:29:22 +02:00
Felix Geyer
b88a0d8de3 Coding style improvements. 2012-05-14 16:27:59 +02:00
Florian Geyer
a57e8f9864 Preserve order of custom icons.
Closes #25
2012-05-13 20:50:41 +02:00
Florian Geyer
6b6c109903 Add search.
Refs #24
2012-05-13 19:21:10 +02:00
Florian Geyer
746a535c7d Create recycle bin with search state and auto type disabled. 2012-05-13 19:03:41 +02:00
Felix Geyer
af726d465d Fix typo. 2012-05-13 13:33:55 +02:00
Florian Geyer
4807ec3368 Include groups in custom icon delete check.
Refs #22
2012-05-12 02:14:06 +02:00
Florian Geyer
e4b6289c0b Prevent deletion of custom icon if it is still used by other entries.
Refs #22
2012-05-12 00:30:29 +02:00
Florian Geyer
1c24b2c5c4 Add gui option for history max items and size to database settings widget. 2012-05-11 20:14:52 +02:00
Florian Geyer
1a74feb253 Improve history limits.
Closes #16
2012-05-11 20:14:43 +02:00
jacek81
8c87a87da6 Added history limits enforcement 2012-05-11 20:04:51 +02:00
Felix Geyer
860a2131b3 Emit dataChanged() when the entry icon has changed. 2012-05-11 14:14:12 +02:00
Felix Geyer
0b592c69b0 Emit defaultKeyModified() only when the data has actually changed. 2012-05-11 14:13:22 +02:00
Felix Geyer
587a647c11 New TODO comment style.
Qt Creator 2.5 is able to parse those.
2012-05-11 12:39:06 +02:00
Felix Geyer
cc6f524168 Add Tools::readFromDevice() and make FileKey use it. 2012-05-10 19:00:36 +02:00
Felix Geyer
6eebd95de1 Move FileKey::isHex() to Tools. 2012-05-10 18:34:51 +02:00
Felix Geyer
ce0007acd2 Improve file dialog filter for adding custom icons. 2012-05-10 18:09:42 +02:00
Felix Geyer
6234065898 Make sure TimeInfo only contains UTC values. 2012-05-09 23:16:32 +02:00
Andreas Piesk
7568582b05 compile with QT < 4.7 (RHEL6 an clones) 2012-05-09 22:15:28 +02:00
Felix Geyer
18c7fae463 Add icons used by KMessageWidget. 2012-05-03 00:15:31 +02:00
Felix Geyer
539ea5bd44 Add generic DataPath::icon() method. 2012-05-02 23:48:17 +02:00
Felix Geyer
739f4d97a6 Coding style fixes. 2012-05-02 17:04:03 +02:00
Felix Geyer
f89ffa10e6 Add Tools::readAllFromDevice().
Make KeePass2XmlReader::readCompressedBinary() use the new function.
2012-05-02 11:06:24 +02:00
Felix Geyer
599d60270d Coding style fixes. 2012-04-28 21:42:23 +02:00
Felix Geyer
1d39368f8d Support editing attribute values in a separate text edit. 2012-04-28 19:11:15 +02:00
Felix Geyer
7c094d4723 Add EntryAttributes::rename(). 2012-04-27 12:34:15 +02:00
Felix Geyer
de4b90cdf1 Copy custom icons when moved to another database.
Closes #9
2012-04-27 11:22:02 +02:00
Felix Geyer
c36481edae Support setting a new parent group with an empty db. 2012-04-27 10:50:32 +02:00
Felix Geyer
79b6ff99e4 Mark library include dirs as SYSTEM.
Compilers will suppress warnings from files in those directories.
2012-04-26 12:18:38 +02:00
Felix Geyer
7865f5eee9 Fix some pedantic compiler warnings. 2012-04-26 11:59:53 +02:00
Felix Geyer
9e0a6ad2d8 Add an assignment operator to Uuid and support serialization with QDataStream. 2012-04-25 00:15:40 +02:00
Felix Geyer
d5cd0dcd14 Add a method to get databases by uuid.
Each database gets a random uuid on construction which is not saved by
KeePass2XmlWriter and only valid until the database object is deleted.
2012-04-25 00:12:23 +02:00
Felix Geyer
0d20955920 Fix bug where index is wrong when a group is moved to the end from the same parent.
This triggered the bug:
group->setParent(group->parentGroup());

Then index was group->parentGroup()->children().size() instead of size()-1.
2012-04-25 00:10:06 +02:00
Felix Geyer
e026f3d1eb Create a history item when changing entries.
Closes #15
2012-04-23 21:20:05 +02:00
Felix Geyer
3df2ad35cb Constification and some style fixes. 2012-04-23 21:09:01 +02:00
Felix Geyer
f28f868671 Coding style fixes. 2012-04-23 17:02:09 +02:00
Felix Geyer
bddc29101c Introduce Group::aboutToMove() and moved() signals.
Emit them instead of remove/add when groups are moved within
a database.
2012-04-23 16:57:08 +02:00
Florian Geyer
222abe09d9 Make save order for deleted objects consistent. 2012-04-22 19:59:50 +02:00
Felix Geyer
ef26065a99 Update LocationChanged time when entries and groups are moved.
Closes #3
2012-04-22 12:10:21 +02:00
Felix Geyer
cc426d2453 Add missing check for group database. 2012-04-22 00:58:35 +02:00
Felix Geyer
0bcce7ce7f Remove some unnecessary initializations. 2012-04-22 00:38:21 +02:00
Felix Geyer
411617cc8b Add convenience function Database::addDeletedObject(const Uuid&).
Drop Group::addDeletedObject() and make Entry call the Database function
instead.
2012-04-22 00:29:39 +02:00
Florian Geyer
5dc21a191b Clean up group deletion. 2012-04-22 00:11:17 +02:00
Florian Geyer
8467e7756d Add ability to delete groups via gui. 2012-04-22 00:11:17 +02:00
Felix Geyer
19bacd6737 Use QPointer for Entry::m_lastTopVisibleEntry.
Closes #14
2012-04-22 00:10:04 +02:00
Felix Geyer
a3e7c93b59 Store group references in Metadata as QPointer.
QPointer sets itself to 0 when the referenced object has been deleted.

Refs #14
2012-04-22 00:07:27 +02:00
Felix Geyer
19a5aad90a Declare the TypeInfo for some classes/structs.
Qt's container classes benefit from this information.
2012-04-21 18:39:09 +02:00
Florian Geyer
258af265c7 Save reference to deleted entries in deletedObject list. 2012-04-21 17:28:44 +02:00
Florian Geyer
1fc5f7a69f Add database settings widget and ability to change transform rounds count. 2012-04-21 17:28:44 +02:00
Felix Geyer
8acd6f74d8 Support KeePass format 3.00 (used by KeePass2 >= 2.15).
Closes #6

Attachments are now stored in a pool under Metadata instead of in entries.
The protected flag of attachments isn't supported anymore.
New metadata attributes: color, historyMaxItems and historyMaxSize.
Dropped metadata attribute: autoEnableVisualHiding.
2012-04-21 16:45:46 +02:00
Florian Geyer
f8e2c95162 Add hasChild function to check for a child in a QObject tree. 2012-04-19 01:02:23 +02:00
Felix Geyer
246bc0115e More coding style fixes. 2012-04-19 00:25:57 +02:00
Felix Geyer
3d1fc6cd6d Set the group of the entry in Database::recycleEntry().
Drop Metadata::addEntryToRecycleBin() and add a non-const
Metadata::recycleBin() getter instead.
2012-04-18 23:27:14 +02:00
Florian Geyer
8735a4846c Move deleted entries to recycle bin if enabled. 2012-04-18 23:09:00 +02:00
Felix Geyer
2e011d5362 Improve code style. 2012-04-18 22:08:22 +02:00
Felix Geyer
cfe5b48bfd Handle Group::setIcon() manually instead of calling set().
That way we don't emit modified() in between setting the attributes.
2012-04-18 17:14:51 +02:00
Felix Geyer
ca5dd373ed Only disconnect m_db when it exists.
Previously we disconnected everyone when m_db == 0.
2012-04-18 17:07:40 +02:00
Florian Geyer
84d9d2ec47 Update timeinfo of group only when properties of the group itself change. 2012-04-18 17:03:58 +02:00
Florian Geyer
34204f3281 Disconnect entry from database, when removed. 2012-04-18 17:03:58 +02:00
Florian Geyer
d85e5d7560 Update connection of modified signals of entries when a parent group changes database. 2012-04-18 17:03:58 +02:00
Florian Geyer
d73cbafb8e Add slot to update the timeinfo of a group and connect it on modified signal.
Connect modified signal of entries directly to database, so timeinfo of group is not updated.
2012-04-18 17:03:58 +02:00
Florian Geyer
fc8f1231c6 Fix expiry time and bool not being updated. 2012-04-18 17:03:58 +02:00
Florian Geyer
46bbabbe3c Use UTC time spec. 2012-04-18 17:03:57 +02:00
Florian Geyer
ad865774d1 Add slot to update the timeinfo of an entry and connect it on modified signal. 2012-04-18 17:03:57 +02:00
Florian Geyer
eb4f82a7ed Add hasKey property to database and also make it accessible via the DatabaseWidget. 2012-04-18 17:03:57 +02:00
Felix Geyer
a5ac1f2e80 Call m_group->database() instead of keeping a reference to Database in Entries.
Previously we didn't update m_db when the database of the group changed.
2012-04-18 13:57:57 +02:00
Felix Geyer
38585663e1 Don't modify the protected status of default attributes.
They are handled by Metadata::protect*.
2012-04-14 19:41:56 +02:00
Felix Geyer
3d7479c67b Change EntryAttributes::copyFrom() to copyCustomKeysFrom().
That way we don't overwrite the default entries in EditEntryWidget::saveEntry().
2012-04-14 19:38:45 +02:00
Felix Geyer
51854a7a45 Only emit signals from clear() when the internal data is non-empty.
Also make sure that m_attributes always contains the default attributes.
2012-04-14 18:47:40 +02:00
Felix Geyer
d4a94a8996 Move attributes and attachments handking from Entry into own classes. 2012-04-14 15:38:20 +02:00
Felix Geyer
4334824e85 Emit modified() after all icon attributes have been set in Entry::setIcon(). 2012-04-11 22:05:24 +02:00
Florian Geyer
674909f635 Add modified signals for entries. 2012-04-11 21:50:20 +02:00
Florian Geyer
8b62365f8e Add modified signals for groups. 2012-04-11 21:50:20 +02:00
Florian Geyer
c80be1dd84 Add modified signals for metadata. 2012-04-11 21:50:20 +02:00
Florian Geyer
1d23ed46e5 Add modified signal for database. 2012-04-11 20:01:36 +02:00
Felix Geyer
08c8afc8f0 Add a Tools class with a humanReadableFileSize() method. 2012-04-09 23:53:46 +02:00
Felix Geyer
9aaec3499d Add signals for attribute and attachment changes. 2012-04-09 23:52:06 +02:00
Felix Geyer
57a953476a Use QMap to store attributes and attachments.
QMap keeps the keys in a consistent order (sorted).
2012-04-09 22:20:11 +02:00
Felix Geyer
d527e63f1f Change the Entry attributes/attachment API to provide a stable key order. 2012-04-06 19:33:29 +02:00
Felix Geyer
a8a6439ba0 Fix typo. 2012-01-07 17:18:48 +01:00
Felix Geyer
f39dfa1c88 Honor protect parameter when overwriting an attribute/attachment. 2012-01-07 16:23:20 +01:00
Felix Geyer
e397080d79 Rename addAttribute() to setAttribute() and addAttachment() to setAttachment(). 2012-01-07 16:22:11 +01:00
Felix Geyer
fea148803c Rename getPath() -> path(). 2012-01-06 15:49:52 +01:00
Felix Geyer
bda22394f5 Add a dataPath() generater function instead of using static DataPath methods. 2012-01-05 22:36:06 +01:00
Felix Geyer
5db102d668 Compress svg icon. 2012-01-05 22:33:05 +01:00
Felix Geyer
55c94e6166 Set application window icon. 2012-01-05 22:27:08 +01:00
Felix Geyer
00aafa69f5 Store database icons as QImage instead of QIcon.
This has the advantage that they can be used without a running X server.
Add methods to retrieve QPixmaps that are converted from the stored QImages
and cached by QPixmapCache.
2012-01-01 21:52:54 +01:00
Felix Geyer
bce46c5ece Enforce that group/entry uuid is set when writing a database. 2011-12-27 15:47:06 +01:00
Felix Geyer
4ebcd53801 Ignore compiler warnings in qendian.h. 2011-12-26 19:34:34 +01:00
Felix Geyer
35066bca8b Implement global config class. 2011-12-25 19:17:40 +01:00
Felix Geyer
61dc295fa0 Syntax fixes. 2011-12-24 17:26:04 +01:00
Felix Geyer
1e4587c7a3 Add a class which provides the path to data files. 2011-12-23 11:59:09 +01:00
Felix Geyer
af820f4931 Add missing include guards. 2011-12-23 10:28:18 +01:00
Felix Geyer
baace14918 Initalize autoEnableVisualHiding. 2011-11-20 10:16:13 +01:00
Felix Geyer
0e41ed72dd Emit signal when changing the database name. 2011-11-13 14:54:11 +01:00
Felix Geyer
8a964f35d1 Add brackets. 2011-11-12 10:42:34 +01:00
Felix Geyer
027362be76 Notify entry/group parent on deletion.
Also make the root group pseudo static, i.e. it shouldn't be changed
after the database has been fully constructed.
2011-07-09 21:54:01 +02:00
Felix Geyer
d4f02a78a7 Coding style fixes. 2011-07-08 14:51:14 +02:00
Felix Geyer
4dbdc4d847 Make some Group methods private. 2011-07-08 13:57:02 +02:00
Felix Geyer
a1bfb1f319 Initalize more member variables. 2011-07-07 12:52:30 +02:00
Felix Geyer
afb285a476 Use a special enum for inherit/enable/disable variables. 2011-07-07 12:45:14 +02:00
Felix Geyer
be934b2fce Always add the default attributes to Entry and don't allow to delete them. 2011-07-07 12:42:08 +02:00
Felix Geyer
1d6e106aee Initalize protect switch variables. 2011-07-06 23:44:29 +02:00
Felix Geyer
6d4561bc57 Initalize pointer in Group. *sigh* 2011-07-06 23:43:02 +02:00
Felix Geyer
5cb906c235 Properly initialize various attributes. 2011-06-29 16:47:05 +02:00
Felix Geyer
6afda908bc Move key transform() call into Database. 2011-06-29 16:39:39 +02:00
Felix Geyer
2adf3770b0 Fix typo.
aka project might be still alive commit
2011-06-25 23:10:42 +02:00
Felix Geyer
cfb55828b6 Add initial support for encrypted database fields. 2011-01-13 22:31:17 +01:00
Felix Geyer
8fc2b9328e Improve EditEntryWidget. 2010-10-06 22:54:07 +02:00
Felix Geyer
e3da80fcc6 Add KeePass2Writer.
Support attributes MasterKeyChanged, MasterKeyChangeRec, MasterKeyChangeForce and Tags.
Close streams in the dtor.
2010-09-25 12:41:00 +02:00
Felix Geyer
8b5dcc7bee Use the Uuid::LENGTH constant instead of literals. 2010-09-23 00:19:02 +02:00
Felix Geyer
9f0c3e5411 Implement Uuid::random(). 2010-09-22 00:16:01 +02:00
Felix Geyer
89e778d324 Display warning when an invalid icon index is requested. 2010-09-21 22:39:42 +02:00
Felix Geyer
567dd92d4c Add built-in icons. 2010-09-19 21:22:24 +02:00
Felix Geyer
5da7d3fca6 Implement writing in SymmetricCipherStream and add a unit test. 2010-09-18 17:19:42 +02:00
Felix Geyer
9f282928e8 Implement reading encrypted kdbx files. 2010-09-13 23:24:36 +02:00
Felix Geyer
26de957a98 Indentation and variable naming fixes. 2010-09-13 23:16:28 +02:00
Felix Geyer
f5dd24fdbe Use upper case names for constants. 2010-09-05 11:46:36 +02:00
Felix Geyer
ee4c2c3dd4 Move core/Parser to format/KeePass2XmlReader and core/Writer to format/KeePass2XmlWriter. 2010-08-31 14:39:35 +02:00
Felix Geyer
3bf0564436 Handle CustomData element.
This should make support for reading and writing
KeePass 2 XML files complete (closes #1).
2010-08-26 00:31:07 +02:00
Felix Geyer
8df8f69e10 Actually calling writeDeletedObjects() would be a good idea. 2010-08-25 23:45:16 +02:00
Felix Geyer
cd26e9d474 Add a bunch of new Parser testcases. 2010-08-25 21:14:41 +02:00
Felix Geyer
542ecd41d1 Fix UUID not being set for history entries. 2010-08-25 21:13:50 +02:00
Felix Geyer
e7a9d57800 Set icon id even if it's 0 as icon numbering starts at 0. 2010-08-25 19:26:01 +02:00
Felix Geyer
82cb315977 Implement some const methods properly. 2010-08-25 14:00:46 +02:00
Felix Geyer
3193adc215 Support Entry History and DeletedObjects. 2010-08-25 13:52:59 +02:00
Felix Geyer
ef52e98ee6 Coding style++ 2010-08-24 23:12:01 +02:00
Felix Geyer
e96c3bb011 Un-constify Entry* and Group* in various related signals and models/views. 2010-08-23 21:30:20 +02:00
Felix Geyer
707cf1bbe8 Some Writer fixes and add methods to actually make it write. 2010-08-22 16:01:09 +02:00
Felix Geyer
82afd43f12 Support EnableAutoType and EnableSearching group properties. 2010-08-19 14:03:54 +02:00
Felix Geyer
2b939617bb Implement XML Writer (maybe even works!) 2010-08-18 22:57:26 +02:00
Felix Geyer
8d623f37ca Add EntryModel. 2010-08-18 16:22:48 +02:00
Felix Geyer
84bc5ef463 Add convenience methods to access common attributes. 2010-08-18 15:08:17 +02:00
Felix Geyer
623b325fa1 Implement support for group tree changes in GroupModel. 2010-08-18 10:27:40 +02:00
Felix Geyer
e28ed4891b Add signal for changes in Group. 2010-08-15 15:03:47 +02:00
Felix Geyer
072a8ccf1b Add GroupModel and corresponding unit test. 2010-08-15 12:31:48 +02:00
Felix Geyer
a3211872e0 Use static method instead of a constructor for random Uuids. 2010-08-14 12:44:55 +02:00
Felix Geyer
d8b21c8b04 Mark constructors as explicit. 2010-08-14 12:28:52 +02:00
Felix Geyer
01694c3271 Implement Entry::image(). 2010-08-14 12:24:35 +02:00
Felix Geyer
bd1ea05017 Fix parser and add unit tests. 2010-08-13 18:08:06 +02:00
Felix Geyer
b64dbce2da Build fixes. 2010-08-12 21:43:57 +02:00
Felix Geyer
dae532d659 More work on the parser and Entry/Group data structures. 2010-08-12 21:38:59 +02:00
Felix Geyer
3e3c23e4ad Initial import. 2010-08-07 15:10:44 +02:00