Commit Graph

647 Commits

Author SHA1 Message Date
Florian Geyer
e5062cb745 Coding style fixes. 2012-05-15 18:51:45 +02:00
Florian Geyer
da713b0993 Use default icon if no icon is selected in entry/group edit. 2012-05-15 18:46:59 +02:00
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
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
e8ac70120b Delete entries for good if already in recycle bin 2012-04-19 01:02:23 +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
Florian Geyer
5661f29f7d Add ability to delete entries via gui. 2012-04-18 23:06:21 +02:00
Felix Geyer
37291d278e Fix some more lines that are too long. 2012-04-18 23:05:31 +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
89f138a868 Remove unnecessary currentIndexChanged signal in database widget. 2012-04-18 17:03:58 +02:00
Florian Geyer
3b603f685a Display expiry time in local time, but save in utc. 2012-04-18 17:03:58 +02:00
Florian Geyer
48f8b1a116 Do not partly update an entry when different passwords are supplied. 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
9dc362c97e Add tabstop order for EditEntryWidgetMain. 2012-04-18 17:03:58 +02:00
Florian Geyer
7c70eccaf7 Add password repeat check for entry passwords. 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
e1632e8087 Disable timeinfo update for history entries on database parsing. 2012-04-18 17:03:57 +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
900420630d Fix checking if database has a key. 2012-04-18 17:03:57 +02:00
Florian Geyer
26436d764a Remove duplicate connect on currentChanged signal of the tab widget. 2012-04-18 17:03:57 +02:00
Florian Geyer
fec19b475e Disable/enable menu actions depending on what currently can be done. 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
afb521c6bf Silence some unused variable warnings when building in release mode. 2012-04-18 16:07:58 +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
3baaf6be97 Add TestGui::testEditEntry().
This tests that the database isn't marked as modified when we don't change
anything but still press the Ok button.
2012-04-14 20:31:35 +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
8f79e914f4 Create m_entryAttachments in EditEntryWidget. Fixes a crash. 2012-04-14 18:45:32 +02:00
Felix Geyer
849f83e030 Add a new tab to the entry widget that shows attributes and attachments. 2012-04-14 15:43:41 +02:00
Felix Geyer
2b16648370 Add EntryAttachmentsModel and EntryAttributesModel. 2012-04-14 15:41:57 +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
0ca32ea110 Fix syntax error. 2012-04-11 23:40:53 +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
73e1104442 Fix database name showing a star at the end when asking to save changes. 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
3c0efd6809 Fix missing write of group notes. 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
a058dcee5d Multiple DatabaseTabWidget fixes.
Close databases on exit. Ask to save changes on database close.
Remove database from db list on database close.
Delete file pointer on database close.
Require to set master key at database creation time.
Append "*" to tabname if database is modified.
Handle database modified signals in database tab widget.
2012-04-11 21:50:20 +02:00
Felix Geyer
e39827d777 Only delete old file when the new one has been saved successfully. 2012-04-11 21:50:20 +02:00
Florian Geyer
7880c0e4f5 Check both password edit fields. 2012-04-11 21:49:59 +02:00
Florian Geyer
1d23ed46e5 Add modified signal for database. 2012-04-11 20:01:36 +02:00
Felix Geyer
2f58b854ed Print warning about invalid entry references. 2012-04-11 18:46:23 +02:00
Felix Geyer
cba8fd7e51 Add Tools.cpp to the cmake file. 2012-04-10 15:31:47 +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
b3063c6fc8 Small include file cleanup. 2012-04-05 19:08:45 +02:00
Felix Geyer
8fc68045f6 Move the code to open database files from DatabaseTabWidget to DatabaseOpenDialog. 2012-04-05 19:03:55 +02:00
Felix Geyer
9d1838a0fe Rename KeyOpenDialog to DatabaseOpenDialog. 2012-04-05 18:31:12 +02:00
Tim Swast
585e77e85c Fixed build for MacOS.
Signed-off-by: Felix Geyer <debfx@fobos.de>
2012-01-13 18:25:04 +01:00
Felix Geyer
2612fc8e44 Expand GUI to allow changing the master key. 2012-01-13 17:52:37 +01:00
Felix Geyer
0ad1bf0a70 Add CompositeKey::clear(). 2012-01-11 23:59:50 +01:00
Felix Geyer
279585fff4 Mark some constructor as explicit. 2012-01-11 19:18:35 +01:00
Felix Geyer
6422dee4fc Update include guard name. 2012-01-11 18:12:41 +01: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
40e96ad7b3 Make password and expiry information editable in EditEntryWidget. 2012-01-07 16:18:21 +01:00
Felix Geyer
007a901dba Proper error handling for reading databases. 2012-01-06 20:03:13 +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
17d0fb9963 Add include guards. 2012-01-01 21:57:13 +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
fdf600e09a Mark some methods as private. 2012-01-01 18:10:51 +01:00
Felix Geyer
4cb8cffe3f Rename DatabaseManager to DatabaseTabWidget and turn it into a QTabWidget. 2011-12-30 18:43:24 +01:00
Felix Geyer
752c720226 Install the keepassx binary and database icons. 2011-12-29 23:50:22 +01:00
Florian Geyer
42773f51a4 Add function to get current database widget. 2011-12-29 20:03:20 +01:00
Felix Geyer
58d4a0208b Fix crash when editing an entry. 2011-12-29 19:04:25 +01:00
Felix Geyer
73b84ff670 Make the edit entry button work. 2011-12-29 19:01:58 +01:00
Felix Geyer
e11b0061d4 Fix coding style. 2011-12-28 19:05:31 +01:00
Florian Geyer
d2712b2a95 Pre-select current file in save as dialog. 2011-12-27 16:06:07 +01:00
Felix Geyer
4d8e9561a7 Implement GUI for creating entries. 2011-12-27 16:04:59 +01:00
Felix Geyer
019bcd380e Implement the GUI for editing and creating groups. 2011-12-27 15:49:06 +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
fb6ab63d6b Merge git://gitorious.org/~blueice/keepassx/blueices-keepassx into merge-request 2011-12-26 19:21:08 +01:00
Felix Geyer
509328343f Show KeyOpenDialog with show() instead of exec(). 2011-12-26 19:17:11 +01:00
Florian Geyer
cef8032a74 Activate corresponding tab when opening new database. 2011-12-26 18:58:14 +01:00
Felix Geyer
57388ac896 Add UI as a member variable instead of inheriting it. 2011-12-26 18:55:50 +01:00
Felix Geyer
f90831b809 Use an own FileDialog class instead of QFileDialog. 2011-12-26 01:21:29 +01:00
Felix Geyer
256dc89466 Remember last key file. 2011-12-25 20:36:45 +01:00
Felix Geyer
62e7ba6e55 Fix tab names and add tab tooltips. 2011-12-25 19:47:41 +01:00
Felix Geyer
35066bca8b Implement global config class. 2011-12-25 19:17:40 +01:00
Felix Geyer
21acb02e3e Fix code formatting. 2011-12-24 23:50:05 +01:00
Felix Geyer
f7b95842b9 Merge git://gitorious.org/~blueice/keepassx/blueices-keepassx into merge-request 2011-12-24 23:46:57 +01:00
Felix Geyer
c5100594b2 Add missing tr(). 2011-12-24 19:26:18 +01:00
Florian Geyer
1dc90c1a77 Implement save as. 2011-12-24 19:22:42 +01:00
Felix Geyer
566b239a50 Implement opening databases with key files. 2011-12-24 19:19:52 +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
f215ffa3fa Implement support for key files.
Closes #5.
2011-12-21 23:22:07 +01:00
Felix Geyer
cd919949fd Add a bunch of entry and group actions. 2011-12-16 17:56:13 +01:00
Felix Geyer
11ccdd4c9c Add more Crypto::initalized() assertions. 2011-11-20 11:46:09 +01:00
Felix Geyer
bc63d18f68 Make sure gcrypt is initalized when SymmetricCipherGcrypt objects are created. 2011-11-20 10:24:12 +01:00
Felix Geyer
baace14918 Initalize autoEnableVisualHiding. 2011-11-20 10:16:13 +01:00
Felix Geyer
5df933be25 New actions: new, save and close database. 2011-11-16 18:47:17 +01:00
Felix Geyer
0ba03920df Automatically check password checkbox and make toggle password button work. 2011-11-16 18:46:09 +01:00
Felix Geyer
c7ed5f8421 Implement opening/closing databases. 2011-11-13 14:55:20 +01:00
Felix Geyer
0e41ed72dd Emit signal when changing the database name. 2011-11-13 14:54:11 +01:00
Felix Geyer
0014d50b59 Deep copy subkeys when cloning CompositeKey. 2011-11-13 14:52:43 +01:00
Felix Geyer
9b46225937 Fix cmake files to use new gcrypt variables. 2011-11-12 14:30:16 +01:00
Felix Geyer
9ffa5232f5 Remove some unneeded includes. 2011-11-12 12:20:08 +01:00
Felix Geyer
8a964f35d1 Add brackets. 2011-11-12 10:42:34 +01:00
Felix Geyer
9ef105e1ae Use QtConcurrentRun instead of subclassing QThread. 2011-11-12 01:49:19 +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
8335db4db5 Add Random::randomUInt() and Random::randomUIntRange(). 2011-07-08 14:40:42 +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
a299dd9715 Integrate KeePass2RandomStream into KeePass2 reader and writer classes.
This hopefully completes support for reading/writing kdbx <= 2.14 files.

Also fix a bug in KeePass2XmlWriter so it sets Protected="True" in the Value
tag instead of Key.
2011-07-07 00:15:52 +02:00
Felix Geyer
58e048be96 Add KeePass2RandomStream class.
It's responsible for processing protected strings in kdbx files.
2011-07-07 00:08:37 +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
ef8935431c Add ability to grab the raw xml string of kdbx databases. 2011-07-06 20:21:40 +02:00
Felix Geyer
5cb906c235 Properly initialize various attributes. 2011-06-29 16:47:05 +02:00
Felix Geyer
c548c7f4b4 Add initial support for writing protected strings. 2011-06-29 16:43:14 +02:00
Felix Geyer
6afda908bc Move key transform() call into Database. 2011-06-29 16:39:39 +02:00
Felix Geyer
fd9685037b Support writing empty color. 2011-06-29 16:33:23 +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
2c8da57ce5 Make some methods static. 2010-11-21 23:11:16 +01:00
Felix Geyer
230d24a123 No longer use automoc. 2010-11-21 23:06:30 +01:00
Felix Geyer
a428464573 Add Salsa20 cipher.
Restructure SymmetricCipher implementation to allow multiple backends.
2010-11-21 16:19:27 +01:00
Felix Geyer
3b9982c0a3 Add .h files that don't have a corresponding .cpp file so QtCreator picks them up. 2010-10-08 16:36:40 +02:00
Felix Geyer
8fc2b9328e Improve EditEntryWidget. 2010-10-06 22:54:07 +02:00
Felix Geyer
0c91be8eac Add initial UI for entry editing. 2010-10-06 19:40:50 +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
b8dfb9cc4d Add support for gzip compressed databases. 2010-09-23 22:27:59 +02:00
Felix Geyer
f0e711ac23 Warn about unsupported icon ids. 2010-09-23 00:21:36 +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
eb6eec616c Add username and URL columns. 2010-09-21 23:01:56 +02:00
Felix Geyer
89e778d324 Display warning when an invalid icon index is requested. 2010-09-21 22:39:42 +02:00
Felix Geyer
537ffafefd Add unit test TestKeePass2Reader. 2010-09-20 00:16:30 +02:00
Felix Geyer
567dd92d4c Add built-in icons. 2010-09-19 21:22:24 +02:00
Felix Geyer
24158bb032 Add signal EntryView::entryActivated(). 2010-09-19 19:45:14 +02:00
Felix Geyer
1ee0c804be Add MainWindow. 2010-09-19 16:59:32 +02:00
Felix Geyer
a49cf184ea Code cleanup. 2010-09-19 16:58:21 +02:00
Felix Geyer
1678351d11 Enable and fix more warnings. 2010-09-18 20:31:14 +02:00
Felix Geyer
5da7d3fca6 Implement writing in SymmetricCipherStream and add a unit test. 2010-09-18 17:19:42 +02:00
Felix Geyer
36d974649e Write the remaining buffer in reset(). 2010-09-18 17:13:28 +02:00
Felix Geyer
c2bdfab158 Implement writing to the SymmetricCipherStream. 2010-09-16 18:20:46 +02:00
Felix Geyer
49d64d8162 Better error checking when opening the stream. 2010-09-16 18:20:22 +02:00
Felix Geyer
d508c2dd68 Open a kdbx file in main() and add more SymmetricCipher tests. 2010-09-13 23:25:48 +02:00
Felix Geyer
9f282928e8 Implement reading encrypted kdbx files. 2010-09-13 23:24:36 +02:00
Felix Geyer
bb6ae3a014 Add reset() and blockSize(). 2010-09-13 23:18:31 +02:00
Felix Geyer
26de957a98 Indentation and variable naming fixes. 2010-09-13 23:16:28 +02:00
Felix Geyer
6a2034fa24 Add crypto classes and tests. Link to libgcrypt. 2010-09-11 19:49:30 +02:00
Felix Geyer
f5dd24fdbe Use upper case names for constants. 2010-09-05 11:46:36 +02:00
Felix Geyer
1cfc34361a Add interface for database reader/writer. 2010-08-31 16:18:45 +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
5efccf32c9 Set horizontal stretch factors. 2010-08-25 10:46:26 +02:00
Felix Geyer
19063d9894 Disable icons in the models for now. 2010-08-24 23:17:09 +02:00
Felix Geyer
ef52e98ee6 Coding style++ 2010-08-24 23:12:01 +02:00
Felix Geyer
194a081bd7 Use a splitter between Group and Entry View. 2010-08-24 23:06:35 +02:00
Felix Geyer
621b367f45 Add EntryView and DatabaseWidget. 2010-08-24 22:26:52 +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
d2e677c7f4 Prefix object attribute with "m_". 2010-08-23 20:57:38 +02:00
Felix Geyer
97ca81f316 Add GroupView. 2010-08-22 16:02:44 +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