Commit Graph

445 Commits

Author SHA1 Message Date
Florian Geyer
621ec80bbe Use static constants for default icon numbers. 2012-05-15 18:46:59 +02:00
Florian Geyer
62073fa74d Don't fail upon deletion of a custom icon if history items contain the icon, but set a default icon. 2012-05-15 18:46:59 +02:00
Florian Geyer
1415829eaf Use EditWidgetIcons for entry icon selection as well.
Closes #22
2012-05-15 18:46:59 +02:00
Florian Geyer
6a1d6e8dd3 Add icon selection for groups.
Refs #22
2012-05-15 18:46:59 +02:00
Florian Geyer
1cb64f0c9f Make icons edit ui a widget. 2012-05-15 18:46:59 +02:00
Florian Geyer
6f4e855b02 Rename EditEntryWidgetIcons to EditWidgetIcons. 2012-05-15 18:46:59 +02:00
Florian Geyer
7e1f7a8729 Coding style improvements. 2012-05-15 18:46:59 +02:00
Felix Geyer
56ac80f475 Assign some keyboard shortcuts. 2012-05-15 18:16:04 +02:00
Felix Geyer
b90807c4d3 Coding style fixes. 2012-05-15 17:48:48 +02:00
Florian Geyer
0c7e1f1a6b Entry edit widget inherits from base edit widget. 2012-05-15 11:58:09 +02:00
Florian Geyer
eb3a0be809 Group edit widget inherits from base edit widget. 2012-05-15 11:58:09 +02:00
Florian Geyer
f596cc4eec Add base edit widget. 2012-05-15 11:58:03 +02:00
Felix Geyer
7986fd3e31 Use stylesheets to color the password edit background. 2012-05-14 20:24:00 +02:00
Felix Geyer
a407e0082b Coding style improvements. 2012-05-14 19:10:42 +02:00
Felix Geyer
924130e0fe Use Q_FOREACH instead of QListIterator. 2012-05-14 17:56:43 +02:00
Felix Geyer
cd41727583 Get rid of Database pointer in Metadata. 2012-05-14 17:04:05 +02:00
Felix Geyer
10e24e7343 Connect to selectionModel()->currentChanged() instead of reimplementing currentChanged(). 2012-05-14 16:50:28 +02:00
Felix Geyer
120be979e9 Add missing break in switch statements. 2012-05-14 16:45:32 +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
89361b3bea Readability fix in custom icon model. 2012-05-13 21:27:56 +02:00
Florian Geyer
a197cdcce5 Improve selection when adding/removing a custom icon. 2012-05-13 21:19:45 +02:00
Florian Geyer
a57e8f9864 Preserve order of custom icons.
Closes #25
2012-05-13 20:50:41 +02:00
Florian Geyer
459cf051bf Truncate history of all items when history limits are changed. 2012-05-13 19:43:01 +02:00
Florian Geyer
8cd5b1f582 Use current index changed slot instead of selection changed signal in group view to update the entry view. 2012-05-13 19:21:23 +02:00
Florian Geyer
0e19b47755 Disable some menu actions while searching. 2012-05-13 19:21:23 +02:00
Florian Geyer
6b6c109903 Add search.
Refs #24
2012-05-13 19:21:10 +02:00
Florian Geyer
f836629dda Don't reset entry model if the same group is set. 2012-05-13 19:03:41 +02:00
Florian Geyer
746a535c7d Create recycle bin with search state and auto type disabled. 2012-05-13 19:03:41 +02:00
Florian Geyer
078fe3ccf1 Pass database instead of metadata to edit entry widget. 2012-05-13 19:02:07 +02:00
Felix Geyer
af726d465d Fix typo. 2012-05-13 13:33:55 +02:00
Felix Geyer
23792eb069 Remove some asserts in KeePass1Reader. 2012-05-13 13:32:28 +02:00
Felix Geyer
0387da48a4 Add transform round benchmark button to DatabaseWidget. 2012-05-12 15:39:55 +02:00
Felix Geyer
efb40a6567 Fix transform round benchmark. 2012-05-12 15:39:33 +02:00
Felix Geyer
05c41c083e Implement GUI to import KeePass 1 databases.
Closes #2
2012-05-12 10:13:00 +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
15fa09167b Toggle enabled status of add/remove custom icon buttons based on radio button selection. 2012-05-12 00:28:05 +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
8faac078fd Make EntryView sortable. 2012-05-11 12:01:01 +02:00
Florian Geyer
44489bf6f8 Fix creation of history item when a new entry is added.
Add corresponding gui test.
2012-05-11 09:16:45 +02:00
Florian Geyer
887e4067ec Improve selection handling in edit icon widget. 2012-05-11 08:40:02 +02:00
Felix Geyer
65bdc207b7 Make sure we don't create DeletedObjects when importing databases. 2012-05-10 22:54:26 +02:00
Felix Geyer
366d8a0f0e Set master key after reading the database. 2012-05-10 22:46:36 +02:00
Felix Geyer
9d8e276950 Set uuids for entries. 2012-05-10 21:35:26 +02:00
Felix Geyer
cf4e574c50 Support Twofish encrypted KeePass 1 databases.
Refs #2
2012-05-10 21:06:33 +02:00
Felix Geyer
c02b5abc6e Fix composite keys in KeePass1Reader. 2012-05-10 19:33:49 +02:00
Felix Geyer
7fd8154ea8 Add support for parsing KeePass 1 keyfiles.
Refs #2
2012-05-10 19:33:16 +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
8204f2007a Icon model fixes. 2012-05-10 13:59:36 +02:00
Florian Geyer
0d2ce4c038 Add icon selection for entries.
Refs #22.
2012-05-10 12:05:29 +02:00
Felix Geyer
65f2790170 Parse KeePass 1 database meta streams.
Refs #2
2012-05-10 11:44:25 +02:00
Felix Geyer
79b15e2ac6 Implement support for parsing groups and entries from KeePass 1 databases.
Still missing:
- Key files.
- Twofish encryption.

Refs #2
2012-05-09 23:16:32 +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
Florian Geyer
93a868a571 Don't show message box when creation of database is canceled. 2012-05-09 20:56:22 +02:00
Florian Geyer
f20d892573 Fix use of wrong slot when connecting the close request signal of the database widget. 2012-05-09 20:11:37 +02:00
Florian Geyer
07aa46c2d6 Activate corresponding tab when closing a database. 2012-05-09 20:11:27 +02:00
Florian Geyer
09248fdb14 Select newly created entries. 2012-05-09 20:03:13 +02:00
Felix Geyer
8122ab2b2c Use quint64 everywhere for the transform rounds number. 2012-05-08 22:31:09 +02:00
Felix Geyer
ebce183925 Start implementing support for reading KeePass 1 databases.
For now only decrypting the database works.

Still missing:
- Actually parsing the database.
- Key files.

Refs #1
2012-05-08 22:06:12 +02:00
Felix Geyer
38e421d9c1 Fix padding handling in SymmetricCipherStream.
The implementation had two issues:
- It didn't add a block full of padding when the input size was a multiple
  of the block size.
- It didn't strip the padding when reading data.
2012-05-08 21:46:01 +02:00
Felix Geyer
7790f2e7ba Add CompositeKey::transformKeyBenchmark().
This method tests how many key transformation rounds can be calculated
within a specific time.
2012-05-07 14:41:31 +02:00
Felix Geyer
d5fc1bf0b4 Improve performance of the key transformation. 2012-05-07 14:31:18 +02:00
Felix Geyer
7649c781dc Improve error handling in HashedBlockStream. 2012-05-06 20:19:20 +02:00
Felix Geyer
35cb4343e6 Set proper text for the toggle toolbar action. 2012-05-06 20:17:26 +02:00
Felix Geyer
f753728e97 Only use one additional thread in CompositeKey::transform(). 2012-05-03 12:21:42 +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
e81ac20442 Fix GPL version number in the about dialog. 2012-05-02 22:43:24 +02:00
Felix Geyer
674320fe2a Set proper window title for DatabaseOpenDialog. 2012-05-02 22:43:00 +02:00
Felix Geyer
739f4d97a6 Coding style fixes. 2012-05-02 17:04:03 +02:00
Felix Geyer
f89a2a4045 Move recycle bin checkbox to the left side. 2012-05-02 16:34:06 +02:00
Florian Geyer
b217475dff Set default name for root group when creating new database. 2012-05-02 16:26:32 +02:00
Felix Geyer
98a2950941 Add KeePassX icon to about dialog. 2012-05-02 16:21:59 +02:00
Felix Geyer
31ab2677f8 Remove status bar in main window. 2012-05-02 15:37:37 +02:00
Felix Geyer
d60e27b4cf Add about dialog. 2012-05-02 15:37:21 +02:00
Felix Geyer
eb430d78a0 Sync expanded state to the view for new groups. 2012-05-02 15:36:27 +02:00
Felix Geyer
1ea14e1090 Turn attachmentsView into a QListView with wrapping turned on. 2012-05-02 11:15:50 +02:00
Felix Geyer
3552a79f13 Implement saving, adding and removing attachments. 2012-05-02 11:11:28 +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
f8f52419c8 Turn EntryAttachmentsModel into a QAbstractListModel. 2012-05-02 10:30:30 +02:00
Florian Geyer
93982aa0c9 Clear attributes edit if there are no attributes. 2012-04-30 18:25:09 +02:00
Florian Geyer
4968292a05 Fix missing connect of collapsed signal. 2012-04-28 22:51:22 +02:00
Florian Geyer
272da8c99c Fix check if file can be opened read only. 2012-04-28 21:43:23 +02:00
Florian Geyer
64170a16ab Fix command line argument parsing. 2012-04-28 21:43:23 +02:00
Florian Geyer
ab32452920 Show entry title/group name in delete dialog. 2012-04-28 21:43:23 +02:00
Florian Geyer
554029ac31 Select newly created groups and expand parent. 2012-04-28 21:43:23 +02:00
Florian Geyer
84a9e397d2 Fix missing connect of expanded signal. 2012-04-28 21:43:23 +02:00
Felix Geyer
599d60270d Coding style fixes. 2012-04-28 21:42:23 +02:00
Felix Geyer
3649c7753c Fix the vertial size policy of the edit entry widget. 2012-04-28 21:30:11 +02:00
Felix Geyer
1d39368f8d Support editing attribute values in a separate text edit. 2012-04-28 19:11:15 +02:00
Felix Geyer
3ab81ea776 Fix bug that EntryAttributesModel isn't updated on reset. 2012-04-28 16:50:51 +02:00
Felix Geyer
7f67019f63 Turn EntryAttributesModel into a QAbstractListModel. 2012-04-28 16:50:17 +02:00
Felix Geyer
6140a688d7 Make EntryAttributesModel editable. 2012-04-27 12:35:13 +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
74ac6c27d7 Support moving entries with drag and drop. 2012-04-26 16:35:13 +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
e4bc302d3d Coding style fixes. 2012-04-25 20:22:55 +02:00
Florian Geyer
c29c423ec8 Add enum to describe current mode of database widget. 2012-04-25 19:46:19 +02:00
Felix Geyer
0ad4b3d8fe Minor improvements in CompositeKey and TestKeys. 2012-04-25 18:35:30 +02:00
Florian Geyer
71b15c589c Implement default username. 2012-04-25 00:30:23 +02:00
Florian Geyer
7a3a783eeb Make dialogy widget work with arbitrary buttons in button boxes. 2012-04-25 00:30:23 +02:00
Florian Geyer
5ce9b5da78 Reset focus when opening database settings, edit entry and edit group widget. 2012-04-25 00:30:23 +02:00
Florian Geyer
f7bdeefbe3 Edit widgets inherit from DialogyWidget.
Closes #17
2012-04-25 00:30:23 +02:00
Florian Geyer
279793365a Add dialogy widget which implements default button behaviour. 2012-04-25 00:30:23 +02:00
Felix Geyer
d3fbb291bd Support moving groups with drag and drop. 2012-04-25 00:22:55 +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
974d4f5807 Allow passing a filename and password on the command line.
Passing passwords on the command line is not exactly best practice but will
greatly improve development productivity.
2012-04-24 11:47:16 +02:00
Felix Geyer
3aac16f03e Make DatabaseWidget ignore the size hint of non-active widgets. 2012-04-24 11:22:55 +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
Florian Geyer
b3ddfca2bd Focus the password line edit on switch to change master key widget. 2012-04-23 17:14:22 +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
Felix Geyer
67bf8e7b2a Write history only for entries that are not history items. 2012-04-22 22:33:14 +02:00
Felix Geyer
7063f5296a Fix memory leak in SymmetricCipherStream. 2012-04-22 22:26:05 +02:00
Felix Geyer
f9abf2171b Focus the password line edit by default. 2012-04-22 20:57:42 +02:00
Florian Geyer
222abe09d9 Make save order for deleted objects consistent. 2012-04-22 19:59:50 +02:00
Felix Geyer
baed7d76cf Use QHash for temporary entry/group containers.
Closes #11
2012-04-22 12:30:38 +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
9726046e24 Display current tab name in window title. 2012-04-22 00:11:17 +02:00
Florian Geyer
e7d0dfbd26 Ask before closing database when in edit mode.
Fixes #12
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
db52267400 Clear keys in assignment operator of composite key.
Fixes corruption of key if master key and then transform rounds is changed.
2012-04-21 18:28:06 +02:00
Florian Geyer
4e2407b3ba Fix groupChanged signal not emitted in all cases. 2012-04-21 18:26:18 +02:00
Florian Geyer
b1db565bee Hide the tar bar when only one database is opened.
Closes #10
2012-04-21 18:24:30 +02:00
Florian Geyer
e06937287c Make toggle password button in ChangeMasterKey widget work. 2012-04-21 17:28:44 +02:00
Florian Geyer
26c4dedd01 Add more options to database settings widget. 2012-04-21 17:28:44 +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