Commit Graph

3194 Commits

Author SHA1 Message Date
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