OSDN Git Service

Add distribution startup scripts, readmes, license etc. from 0.86 distribution
authorNick Clarke <memorius@gmail.com>
Mon, 19 Jul 2010 12:19:42 +0000 (00:19 +1200)
committerRandy Baumgarte <randy@fbn.cx>
Fri, 23 Jul 2010 09:31:05 +0000 (05:31 -0400)
changelog.txt [new file with mode: 0644]
gpl.txt [new file with mode: 0644]
install.txt [new file with mode: 0644]
license.txt [new file with mode: 0644]
nevernote.bat [new file with mode: 0644]
nevernote.png [new file with mode: 0644]
nevernote.sh [new file with mode: 0755]
release.txt [new file with mode: 0644]
shortcuts_howto.txt [new file with mode: 0644]
shortcuts_sample.txt [new file with mode: 0644]

diff --git a/changelog.txt b/changelog.txt
new file mode 100644 (file)
index 0000000..b155f87
--- /dev/null
@@ -0,0 +1,503 @@
+NeverNote 0.86
+
+Changes from 0.85
+- Added the ability to change the background color of notes.
+- Added the ability to change the background of a note in the note list. 
+- Added the ability to rotate images (it's klunky but it seems to work).
+- Added the ability to import notes from a NeverNote extract.
+- Added the ability to edit hyperlinks.
+- Added the ability to insert and delete rows in a table.
+- Added browser backward & forward buttons.
+- Added preliminary support for encrypted databases.  See the note entitled "Encrypting & Decrypting NeverNote's Database" for details.
+- Enabled the ability to open/close notebooks if you are using the "Mimic Evernote" feature so you can limit the display of notesbooks.
+- Altered the behavior of the notebook list to automatically only select one notebook at a time, but the ctrl key will allow you to select multiple notebooks.  This is only if the "Mimic Evernote Selection Behavior" option under preferences is not selected.
+- Corrected a problem where the program would crash if there was not internet connectivity when saving a note.
+- Corrected a nasty bug where multiple notes would be deleted in addition to the one you wanted to delete.
+- Corrected a problem where notes couldn't be restored since the migration to H2.
+- Corrected a problem where password fields didn't work if the hint contained an apostrophe.
+- Corrected a problem where the database error having a null value would cause a thread to crash.
+- Corrected a problem where the save thread might loop forever causing a lockup.
+- Corrected a problem preventing hyperlinks from launching a browser.
+
+Changes from 0.84                 
+- Switched NeverNote from using SQLite as the backend database to H2 and removed QT dependencies from database access. 
+- Added the ability to backup & restore the database.
+- Added the ability to export individual notes.
+- Added the ability to customize the save interval.  It defaults to every 5 minutes and a value of zero disables it.  This is only a safeguard in case NeverNote crashes (I know it is hard to believe, but it does occasionally happen).    
+- Searching on dates using Evernot's search syntax should now work.
+- I added an option to the Preferences dialog box to allow NeverNote to behave more like Evernote's selection behavior.  This disables the dynamic counting, opening or closing a notebook, color highlighting & the selecting of multiple notebooks.  By default it is set to mimic Evernote.
+- Removed the dependency upon clearing out the search criteria after every sync.
+- I added a text zoom option.  I may move it later, but for now it is on the tool bar.
+- The tag, trash, & notebook items are are colored blue if the count is greater than zero.  I saw this on the user forum & thought it was an interesting idea.  I also have it so the parents of any tags are also blue if a child has a count greater than zero.  It is a nice way to see if the children of collapsed parents have any notes.  This only works if the option to mimic Evernote is not selected.
+- If you have PDF preview enabled, the PDF is now displayed when the file is attached to the note.  Previously the preview only displayed after the note was re-displayed.
+- Corrected a problem where the index thread may die due to an out of heap memory condition.
+- Added a check to make sure that the note title doesn't exceed the limits Evernote has set.
+- Altered the indexing logic to update the word weight properly if a duplicate was found within a note that had a heigher weight.  
+- Corrected a problem where saved searches would always be synchronized regardless if they had been changed.
+- Corrected a minor sync problem where synchronizing multiple times might cause notes to be sent unnecessarily.
+- Corrected a problem where attachments or images may be lost if the note results were indexed by Evernote on the same sync as the resource was updated.
+- Corrected a problem where (for some unknown reason) it could loop endlessly when trying to cleanup some of the note HTML during a save.
+- You should notice some performance improvements.
+
+
+------------------------------------------------------------------------------------------------------------
+
+NeverNote 0.84
+
+Changes from 0.83
+
+Changes from 0.83               
+- Added the ability to merge notes.
+- Added the ability to restore a note from history and overwrite the existing note in addition to restoring it as a new note.
+- Added logic to support the TAB & BACKTAB keys within a note.
+- The font color & font hilight buttons are now menus instead of the color dialog box.
+- Corrected a problem with the trash toggle.
+- Corrected a problem where the XML header could be inserted twice.
+- Hopefully corrected the thread problems which were causing occasional crashes when synchronizing or indexing notes.
+- Corrected a problem where notes would not be synchronized when only tags were updated.
+- Corrected a problem where the minimum word length preference could not be changed.
+
+
+------------------------------------------------------------------------------------------------------------
+
+
+NeverNote 0.83
+
+Changes from 0.82
+
+New Features
+- Added the ability to launch an external editor to edit an image.
+- Added the ability to change a saved search without renaming the search itself.
+- It now fully validates against Evernote's standards for note structure, so a lot of the sync errors about undeclared elements or attributes should be gone.  This has two consequences.  First it allowed me to remove a lot of the manual stuff I was doing so things like font sizes & underlining work better.  The second is that it can really slow things down when saving a note that has a lot of bad data since it needs to clean everything out before it can save it.  I've seen it take minutes to save a really bad document, so be patient.  The good news is that, as it encounteres more bad data, it should actually get better because it remembers what is bad and what should be fixed in the future.  Most of the time it isn't too bad.
+- Text highlighting now works thanks to the new way it is validating against Evernote's standards.
+- Corrected a problem where notes might not be displayed in the list depending upon a sequence of selection events.
+- Corrected a problem where duplicating a note might cause attachments or images to be lost on the new note.
+- Hopefully corrected a problem where attaching resources while the note index task is running may cause resources to be lost.
+- A synchronize shouldn't always force a reset of the current search criteria.  It can still happen under certain situations, but it shouldn't always happen.
+- Corrected a problem where notebooks could appear in the closed book list multiple times.
+- I think I removed a problem where a note might get an XML header twice which caused a failure creating or editing a note, but I haven't been able to reproduce it so I can't be sure.
+- Corrected a problem where auto importing of jpg images resulted in the new image being displayed as an attachment rather than an image on the Web & 3.1 clients.
+- Hopefully I corrected the Unicode problems on synchronized notes.
+- Pasting resources & images should hopefully work a bit better.
+- Fixed a shortcut problem on inserting hyperlinks.
+
+
+
+------------------------------------------------------------------------------------------------------------
+
+
+
+NeverNote 0.82
+
+Changes from 0.81
+
+- Encryption keys can now be remembered so you don't constantly need to type in the same password.  They are only stored for the current session. 
+- I changed the tag dialog box so you can add new tags as well as assign current tags (a little like the Evernote 3.1 Windows client).  This is the dialog box that shows up when you cilck the big yellow star button.
+- I combined the notebook open/close dialog boxes into one dialog box to make this feature easier to use.
+- Added an animated sync icon.
+- Altered the editor a bit to enable/disable the "Save Attachments" menu item depending if an attachment exists.  
+- Corrected a problem where the default notebook could be messed up when syncing.  
+- Corrected a problem where searching with notebooks or tags selected could cause notes to not be shown later.
+- Altered the new note logic so if no notebooks are selected, it will now create a note in the default notebook.  If the default notebook isn't open it will use the first notebook it can find.
+- Corrected a problem where a thread would access memory that wasn't available, causing the JVM to crash.
+
+
+------------------------------------------------------------------------------------------------------------
+
+NeverNote 0.81
+
+Changes from 0.80
+
+- Search results should be highlighted.  
+- The first page of a PDF is shown instead of the PDF icon.  This can be enabled or disabled via the preferences.
+- Evernote sends image recognition with an associated weight.  The higher the weight the greater the certainty.  The minimum weight can now be set under the Edit/Preferences/Indexing dialog box.
+- Added more selection criteria to the Attributes panel.
+- Expanded the search logic to include support for TODO: and RESOURCE: tags.  I'm not too sure I have all the bugs worked out of these and I'm not too sure that they won't be painfully slow on larger databases.
+- Fixed some shortcut problems.
+- Corrected a problem where pasted images may appear as attachments on the Web interface.
+- Corrected a poblem where restoring a note version resulted in it being moved to the trash upon the next sync or restart.
+- Corrected a problem where the time format may not be set properly in the preferences dialog.
+- Corrected some search problems.
+- Corrected a problem where closed notebooks could appear in the notebook list, but the contents of those notebooks couldn't be viewed.
+
+
+- It will occasionally crash after a sync completes.  It seems to happen after very large syncs (especially the initial download). 
+- After a sync, the current search is reset.
+- If you are connected and on a laptop, it has problems recovering if you close the laptop and re-open it.  You should be able to continue if you disconnect & reconnect.
+- When doing a drag & drop from the desktop onto an note to create an attachment, NeverNote must be the window that has focus prior to beginning the drag.  If it did not have focus immediately prior to beginning the drag you will not see any attachment created.  If anyone has any idea how to force Webkit JavaScript to grab focus I'd be glad to hear it.  It seems to ignore pasting otherwise.
+
+
+
+
+------------------------------------------------------------------------
+
+
+NeverNote 0.80 
+
+Changes from 0.71
+           
+- Notes are now created and updated using the newer markup format.  This matches the recent moves by Evernote with their software, but it means that you could have trouble viewing a note on Evernote 3.1 if you edit it here (or on the newer Windows or Mac clients).  
+- Reworked database logic to move it from the main thread to a dedicated thread to try and improve responsiveness and database lockouts.
+- Upgraded to Evernote API 1.15.  This probably means absolutely nothing to anyone other than myself, but it is needed to fix some of the delete problems.
+- Altered it to allow 50MB file attachments for premium members.
+- Added the the client to restore a prior version of a note from Evernote's servers.  If you are not a premium member it should allow you to pull a fresh copy of a note on Evernote's servers.  Notes listed can be restored as a new note.  This has only been released in the past few days so I haven't had a lot of time, but it seems to work and you need to be connected for this to work.  (HA! I finally beat Evernote on putting something on the client!).
+- Added basic support for automatic import folders, although subdirectories are not searched yet.
+- Added logic to deal with note conflicts when both the local & remote databases have changed the same note between syncs.
+- Added logic to allow temporary decryption of encrypted text.  
+- Added the ability to insert tables in notes.
+- Added the ability to duplicate an existing note.
+- Altered the way HR tags are handled to hopefully make them less prone to causing crashes.
+- Added an up/down arrow to change displayed notes.
+- Added a counter to display the number of notes in the trash.
+- Added more shortcut to set focus on different line edits and to insert a table.
+- Added a few checks so notes are not marked as non-synced unless fields actually change.
+- Added the beginnings of basic state control for the editor buttons bold, italic, & underline.
+- Added logic to prevent missing images from crashing the application on startup.
+- Added logic so it should remember the window size & position of things within the program better.
+- Added a lock file, so if you try to run it more than once it will give you a warning.
+- Added support for UI style sheets.  It isn't integrated yet, so you need to edit the default.qss in the qss directory and restart to change.
+- When the date/time formats are changed they are now changed in the note index immediately.
+- Changed the search bar to be a drop down list box with a history.
+- After the first sync, you can no longer change the server you are connecting with.  You shouldn't have done it anyway.
+- Changed the close notebook dialog to prevent users from closing every notebook.  One must remain open.
+- Corrected UTF-8/UTF-16 issues which should correct the Euro & other character problems.
+- Corrected a problem where images were not being saved when pasting into NeverNote from another application.
+- Corrected a problem where the contents of an encrypted note would be added to the database word index.
+- Corrected a problem where tags added dynamically were not being displayed in the note itself properly until after returning to the note or restarting the program.
+- Corrected a bug where it would confirm deleting notes, even if the option to confirm deletes was disabled.
+- Corrected a problem where notes were not being saved properly and could result in the loss of the last few minutes of text.
+- Corrected a problem where images could not be saved from NeverNote.
+- Corrected a minor problem where note index column widths were being reset after a sync.
+- Corrected a bug with the account information dialog box where the upload percent was not being displayed properly.
+- Corrected some problems with the attribute search panel display icons.
+- Corrected some problems with attribute panel not displaying the proper results.
+- Corrected a problem where closed notebooks would still be selected for new notes, which made them dififcult to find later.
+- Corrected a problem where creating multiple new tags with new child tags would cause a problem when synchronizing.
+- Corrected a problem where deleting a tag with children would cause the tag tree to become corrupt.
+- Corrected a problem where tag sequence numbers were being either updated incorrectly or were not update at all.
+- Changed the notebook list in the editor to be displayed when other attributes are hidden.
+- Corrected some problems with displaying notes after emptying the trash when tags or notebooks were selected prior to emptying the trash.
+
+
+---- Known Problems ----
+- After a sync, the current search is reset.
+- If you are connected and on a laptop, it has problems recovering if you close the laptop and re-open it.
+- When doing a drag & drop from the desktop onto an note to create an attachment, NeverNote must be the window that has focus prior to beginning the drag.  If it did not have focus immediately prior to beginning the drag you will not see any attachment created.  If anyone has any idea how to force Webkit JavaScript to grab focus I'd be glad to hear it.  It seems to ignore pasting otherwise.
+
+
+------------------------------------------------------------------------
+
+
+
+
+
+
+NeverNote 0.71
+
+Changes fromt 0.70
+- Added the ability change the gui style.  It can be changed in the Edit/Preferences dialog box.
+- Added the ability to do superscript & subscript text.
+- Added the ability to customize menu shortcuts.  See the shortcuts_howto.txt for more information.
+- Added a dialog box to show some database statistics under the Tools menu.
+- Changed it to ignore any errors when deleting items on Evernote servers if they don't exist.
+- Changed the double click action on the task bar icon so it will try (emphasis on TRY) to bring the window to the front.
+- Corrected problem where selecting the option to reindex the entire database was not reindexing resources, just the notes.
+- Corrected a problem where the note title was not being indexed.
+- Corrected a problem where note content could be dropped from the index.
+
+
+
+---- Known Problems ----
+- There are some problems formatting the notes.  These are mainly with things like new attachments & encrypted notes.  It doesn't always happen, but I know it can happen.  Please see the HTML formatting note below for more details.  This same problem also causes sync problems on notes with bullets or number lists two or more levels deep.
+- The Euro symbol doesn't display properly.
+- When the date/time format is changed via the preferences dialog, the change isn't reflected immediately.
+- After a sync, the current search is reset.
+- When doing a drag & drop from the desktop onto an note to create an attachment, NeverNote must be the window that has focus prior to beginning the drag.  If it did not have focus immediately prior to beginning the drag you will not see any attachment created.  If anyone has any idea how to force Webkit JavaScript to grab focus I'd be glad to hear it.  It seems to ignore pasting otherwise.
+
+
+
+
+
+------------------------------------------------------------------------
+
+
+
+NeverNote 0.70
+
+Changes from 0.67 
+- Added the ability to save attachments & images from within NeverNote by right clicking on them.
+- Added the ability to encrypt/decrypt text.  I also want to point out that decryption is permanent.  I don't yet have the logic for temporary decryption.
+- Added the ability to insert hyperlinks.  
+- Added the ability to save changes when an attachment is edited from an external application.  Please note that NeverNote must be running to save the changes and (to be safe) NeverNote should not be closed until the editing application is closed or changes can be lost.  
+- Premium accounts now use a secure connection to transfer data.
+- Added an option to synchronize prior to closing NeverNote if you are connected.
+- Added a hover title to display the original file name of an attachment (if the original name is known).
+- Added the ability to have multiple index threads running at the same time to improve indexing speed.  This requires a restart when changed to become effective.
+- Added locking & unlocking logic around DB routines to try and prevent data loss when the entire database is locked by another thread.
+- Added logic to not permit changes to ink notes and a popup to notify a user that ink notes are not supported if one is clicked.
+- Added logic to prevent a note from being edited if an error happens and an attachment or image isn't found.  This is mainly to try and prevent accidental data loss if you sync to Evernote.
+- Added another column to the note list to show the synchronization status.
+- Added the support of page up & page down when viewing a note.  This does not reposition the editing cursor, it is just a quick method of scanning through a note.
+- Added the date & time the current billing cycle ends to the account dialog box.
+- Added the ability to hide &  show the window by double clicking the tray icon.
+- Changed the attachment & image logic to hopefully be more reliable.
+- Changed Ctrl+Home & Ctrl+End to select the first or last item in the note list when the note list has focus.
+- Corrected a problem where editing a note with an attachment would result in the attachment being dropped.
+- Corrected the editor button bar hide/show logic so it stays hidden after viewing the preferences dialog box.
+- Corrected a problem where the notebook counts were not being incremented when adding a new note.
+- Corrected a problem where pasting images & attachments between notes would result in missing data.
+- Corrected the problem where notes could not be restored from the trash.
+- Corrected the problem where emptying the trash may incorrectly disable the note window under some circumstances.
+- Corrected the problem where to-do check boxes were not always saved.
+- Corrected a problem in the config dialog where the option to synchronize deleted content was not being saved.
+- Corrected a problem where it could loop forever trying to repair a badly formatted note.
+- Added to the experimental fix to correct Evernote 3.1 carriage return problems to try and correct some of the display problems.
+- Hopefully the problem where it was setting the high sequence number to zero when a chunk contained no updates is corrected.  I think this is what was causing it to do unnecessary full syncs rather than incremental.  
+- Hopefully corrected a problem where the next sync, after a sync, after a note was deleted would cause a database lock.  A rather odd bug and I'm not too sure why what I did corrected it, but it seems to have fixed the problem.
+- Performance improvements.  People with larger databases should see a good improvement in startup & synchronization times.
+
+
+---- Known Problems ----
+- There are some problems formatting the notes.  These are mainly with things like new attachments & encrypted notes.  It doesn't always happen, but I know it can happen.  Please see the HTML formatting note below for more details.  This same problem also causes sync problems on notes with bullets or number lists two or more levels deep.
+- The Euro symbol doesn't display properly.
+- When the date/time format is changed via the preferences dialog, the change isn't reflected immediately.
+- After a sync, the current search is reset.
+- When doing a drag & drop from the desktop onto an note to create an attachment, NeverNote must be the window that has focus prior to beginning the drag.  If it did not have focus immediately prior to beginning the drag you will not see any attachment created.  If anyone has any idea how to force Webkit JavasScript to grab focus I'd be glad to hear it.  It seems to ignore pasting otherwise.
+
+
+
+
+
+------------------------------------------------------------------------
+
+
+
+NeverNote 0.67
+
+Changes from 0.66 
+- Added align menu options.
+- Added the ability to change note tags via a line editor.  It is still quirky and you must press ENTER to select an option, but it is a first shot.  If you type a tag that doesn't exist it will dynamically create a new tag.  You can still use the old dialog box.
+- Added the ability to reorder note list columns.
+- Added F11 to hide the left side.
+- Added the ability to hide the editor button bar.
+- Added the ability to hide note list columns.
+- Added the ability to hide individual buttons in the note editor.  If the left hand panels look cramped, hiding some of the unused buttons makes for more space on the left hand side.  
+- Author & Source URL can now be edited.
+- Altered the editor so if there is no note visible it won't let you change the window.  Hopefully this makes it less confusing.
+- Altered the note index table so each line doesn't take up as much space.
+- Altered the attribute tree selection so it is a little less goofy.
+- Altered the behavior of the note & tag menus so they can be resized & still display the counts properly.
+- Corrected some of the email problems.  It should now open a note in your default email client, but it will only include the text of the note (not pictures or attachments).
+- Corrected some of the delete problems & altered the way the display is handled to make them behave a little better.  I still don't think they are perfect but they are better than before.
+- Corrected drag & drop problems.  The last release broke them due to the rewrite.  They now work as well as ever (which isn't saying much).
+- Corrected the left/right/center alignment options in the editor.
+- Corrected a problem where it would allow someone to move a tag to its own child and creating a loop in the process.
+- Corrected a problem where changing the notebook wasn't being updated in the display properly (it did, however, update the database).
+- Corrected a problem where the current note may not be highlighted if it wasn't in the index list prior to it being displayed.
+- Corrected a problem where the altered time wasn't displayed properly.
+- Corrected a problem where a currently selected notebook wasn't being selected as the notebook when creating a new note.
+- Corrected a problem where the source URL was being replaced by the source application.
+- Corrected a problem where the note name wasn't updated in the table properly after it was changed.
+
+
+---- Known Problems ----
+- There are some problems formatting the notes.  These are mainly with things like new attachments & encrypted notes and it doesn't always happen, but I know it can happen.  Please see the HTML formatting note below for more details.  This same problem also causes sync problems on notes with bullets or number lists two or more levels deep.
+- You currently cannot get attachments or images out of NeverNote.
+
+
+
+------------------------------------------------------------------------
+
+
+NeverNote 0.66
+
+Changes from 0.65
+- Major restructuring of how notes are handled internally.  In my testing, this dramatically improved performance on larger databases.
+- The CPU impact of indexing notes should be much less impactive to normal note browsing.
+- Added command line options to permit running multiple copies of NeverNote under the same Linux userid and it will keep the settings different.  See the startup scripts for details.
+- Added the ability to synchronize with the production servers.  By default, it will disable uploads if you do this, but the preferences dialog has the option to re-enable uploads.  If you try this I would be cautious.
+- Added a non-standard feature to "close" notebooks.  See below for details.
+- Added database compact menu option.
+- Added the ability to hide the notes list.
+- Added an "Add Note" option to the system tray menu.
+- Added the ability to temporarily disable indexing.
+- In the past, when NeverNote encountered a document it couldn't parse (Webkit apparently doesn't produce perfect XML) it would do a hard crash to prevent it from causing problems later.  It will now attempt to cleanup the XML so it can continue more gracefully.
+- Notebooks & tag counts should be updated when a note is altered.
+- Changes are now cached for a short period before saving them rather than saving at every keystroke to improve performance.
+- Altered index logic so note resources are not re-indexed when only a note's contents are changed.
+- Some minor display changes.
+- Fixed a problem where NeverNote would try to send local notes & notebooks to Evernote.
+- I think I fixed it so it doesn't destroy the geo tagging information on a note.  I don't have any notes that use this so I can't check it, but it looks correct to me. :-)
+- Fixed a problem where unchanged notes would be resent unnecessarily whenever they were viewed.
+- Fixed a problem where attachments may not be displayed in a note properly and if the note was modified the attachment would be lost.
+- Fixed a problem where hiding the trash area caused the attribute search area to be hidden upon restore.
+- Fixed a problem where closing the program from the icon tray caused things to be hidden upon restore regardless of their original state.
+- Fixed a problem with file name attachments not being sent to Evernote properly.
+- Fixed a problem where some dates were being stored in GMT rather than local time.
+
+
+
+---- Known Problems ----
+- There are some problems formatting the notes.  These are mainly with things like new attachments & encrypted notes and it doesn't always happen, but I know it can happen.  Please see the HTML formatting note below for more details.  This same problem also causes sync problems on notes with bullets or number lists two or more levels deep.
+- Email support is very poor.  I wouldn't use it unless I had no other choice (and even then I wouldn't use it).
+
+
+--- Note 2/10/2010 on Closing & Opening Notebooks ---
+I have added a feature to NeverNote that does not exist in the Evernote client.  This feature is available under the "File/Notebook" menu and it provides the ability to close or open a notebook.  All this really does is to exclude the closed notebooks from being visible on the notebook panel and any search results will not include notes from those notebooks.  It does not impact the ability to synchronize those notebooks or any notes within them.  All notes are also indexed the same as any normal note. 
+
+Why?
+
+There are two main benefits to using this feature.  The first is performance.  By closing a notebook the program automatically filters them, so there is less overhead to managing them.  This is really noticeable if you have a notebook with a large number of notes.  The second benefit is that you don't need to look at them.  If you are like me and have a notebook for things that are seldom used you can reduce the clutter of looking through those notes until you are sure you need them.  Closing & opening a notebook takes a few seconds (depending upon your database size) but it can be done at any time.  Please let me know if you find this feature useful.
+
+
+
+------------------------------------------------------------------------
+
+NeverNote 0.65
+
+Changes from 0.61
+- Added support for a subset of Evernote's search syntax.  Wildcards are supported and you can use the search modifiers any:, notebook:, intitle:, tag:, author:, sourceapplication:, and source:.
+- selecting a saved search should now work (assuming you are only using the subset above).
+- Altered indexing logic so it to try and minimize the response time impact of indexing notes.  It is still painful, although hopefully it is a little better than before.
+- Added the ability to change update & creation dates on a note
+- Added the ability to hide some of the windows.
+- Added bullet & number list icons to the editor button bar.  
+- Added counts to the notebook & tag trees.  See the note below for more details.
+- Added a configuration option to disable the delete verification dialog box.
+- A few minor changes to try and speed up notes with images.
+- Added a Windows batch file in case someone were crazy enough to try this under Windows.
+- Changed sync logic so it won't try to send local changes to Evernote if an inbound sync failed.
+- Changed the message log so it shows a history of status messages instead of the debugging information.
+- I think I fixed the userid/password bug where the saved password could be truncated.
+- Fixed a bug where userid & password wouldn't be populated in the settings dialog if the user had not yet connected.
+- I think I fixed the problem with pasting images where the image may not be saved properly.
+- I may have found the problem where NeverNote would do a full download instead of a sync, but I am doubtful.  If you experience this please send me the logs & any terminal output.  I've had a very difficult time reproducing this problem.
+- Fixed selection model in the tag list so it is a little easier to use.
+- Fixed the name of a few dialog boxes.
+- Fixed problem where focus on the find dialog would be lost after initial find.
+- Fixed a problem where cutting & pasting across XML spans would cause a problem.
+
+
+---- Known Problems ----
+- There are some problems formatting the notes.  These are mainly with things like new attachments & encrypted notes and it doesn't always happen, but I know it can happen.  See one of the notes below for more details.
+- Notes with bullets or number lists two or more levels deep will not sync.  This is related to the formatting notes problem and will hopefully be solved when Evernote permits the newer format for saving notes.
+- Email support is very poor.  I wouldn't use it unless I had no other choice (and even then I wouldn't use it).
+
+
+
+--- Note 2/1/2010 on Notebook & Tag counts ---
+The notebook & tag counts work differently than in the Evernote client.  The counts shown are the intersections between the two lists.  For example, if I select "My Notebook" the tag totals will only show the number of notes in that notebook.  If I select Tag "To-Do", the notebook counts will only show the totals of notes that contain that tag.  In my opinion, this is more useful but I'm open to feedback.  Please let me know if you find this a good or bad thing.  If enough people hate it I'll either put in an option to make it behave like the Evernote client, or I'll add an option to revert this behavior.
+
+
+--- Note 1/29/2010 on Java JDK Versions ---
+One person has reported that the OpenJDK version of Java is consuming a lot of memory.  I don't run that version so I haven't had time to debug why this may be the case, but if you experience this please let me know what your experience is like and if anything you have tried makes it better so I can share it with everyone.
+
+
+--- Note 1/28/2010 On HTML Formatting---
+One of the larger problems I've been having is getting HTML formatted properly so Evernote's servers accept notes which contain more complex layouts.  These restrictions cause me to go through the note to clean things up and it is difficult to find everything.  
+
+I spoke with Dave Engberg on the developers forums about an issue I've been having regarding bullet formats.  He said they were aware of some of the format limitations and they are in the process of changing some of their internal formats to reduce the limitations.  He said it would probably be about 2 months.  This sounds to me like it will reduce a lot of these problems.  As a result, I'm not going to put a lot of my effort in correcting some of these format problems on hold until the new format is released.  I'll still work on some of the obvious NeverNote display problems, but I'm going to focus on other issues as a priority instead of formatting problems.
+
+
+------------------------------------------------------------------------
+
+NeverNote 0.61
+
+- Additional date formats added.
+- Hopefully fixed some of the database problems, or at least reduced some of the problems.
+- I think I fixed a problem where recognition data from Evernote wasn't being saved properly to the index.  This would also impact PDF searches.
+- Resizing of column widths should now be remembered between sessions.
+
+------------------------------------------------------------------------
+
+NeverNote 0.60
+
+- Major rewrite of how threads are handled to try and prevent database corruption.
+- Added ugly message to delay shutdown during database activity.
+- Syncs can now be done automatically based upon a time interval.  This is set in the File/Settings.  This only works if you are connected, otherwise it is ignored.
+- Pasting images directly from the clipboard now works.
+- Dragging & dropping files from the desktop into a note should now work.
+- Saved searches are now synchronized.  You can edit, add, or delete a search, but saved searches are still not actually being used to find notes because it still doesn't support the formal search grammar.
+- Notes are now indexed at a time after they are downloaded.  This is done to reduce download time but at the cost that notes will not be indexed as quickly.  The indexing only happens every few minutes to reduce overhead.
+- Notes displays should be refreshed more frequently during a sync so it doesn't look like it has locked up.
+- Error messages on the status bar should provide more information if problems are encountered during a sync.
+- An optional task bar icon has been added.  The main window can be hidden or shown from the icon.  This is controlled via the settings dialog.
+- It should now remember if the window was maximized the last time it started.
+- It should now remember the prior note viewed after restarting.
+- Added a button to clear the search field.
+- Added time to the created/updated columns.
+- Sort columns should now be remembered between restarts.
+- Date/time formats can be changed via the settings dialog box.
+- Removed the option to do a full refresh from the menu bar.  It is easier to just delete the DB now.
+- Added a menu option to do sync.  It is the same as the button, just on the menu.
+- Added some keyboard shortcuts.
+- Changed trash selection to be a little more intuitive.
+- Minor cosmetic changes on a few dialog boxes.
+- Fixed a problem where one or more notes would not be properly indexed if the program was shutdown during indexing.
+- Fixed a problem where a blank database path in the settings dialog box would cause a problem saving options.
+- Fixed File/Settings dialog where the dialog may not be displayed.
+- Fixed problem where accented characters were not being displayed properly.
+- Fixed minor display problem where some attachments may not show in a note properly.
+- Fixed problem where syncing with more than 1000 notes wouldn't work properly.
+- Fixed problem where the disconnect menu option wasn't working properly.
+- Fixed a problem where a space in the directory path would cause problems when pasting into a note.
+- Fixed a problem where pasting an unknown type of file would cause a null pointer exception.
+- Fixed a few of the more annoying editor quirks like tab order & focus control.
+
+
+------------------------------------------------------------------------
+
+NeverNote 0.52
+
+- File attachment sizes are now checked to make sure they don't exceed 25MB.
+- Font sizes can now be reliably changed.
+- Added logic to retry if a token refresh failed.
+- Corrected the problem causing incremental syncs to fail.
+- Corrected a problem where data may not be saved to the local database after a sync with Evernote.
+- Corrected a problem where a failed authentication token refresh could cause a loop.  Hopefully it stays corrected this time.
+- Corrected a problem where the new authentication token wasn't being saved after being renewed.
+- Corrected a problem where locally created notes & tags could not be synchronized.
+
+
+Known Problems:
+- <HR> tag can cause problems when inserting one between rows of hr tags.
+- There are some problems formatting the notes.  These are mainly with things like new attachments & encrypted notes and it doesn't always happen, but I know it can happen.
+- Email support is very poor.  I wouldn't use it unless I had no other choice (and even then I wouldn't use it).
+
+
+
+------------------------------------------------------------------------
+
+NeverNote 0.5  
+
+- Changed Evernote API from 1.13 to 1.14
+- Added the ability to empty the trash and permanently delete all notes.
+- Added the ability to select & delete multiple notes at once.
+- Added the ability to restore notes from the trash.
+- Added basic drag & drop to assign notes a tag.
+- Added support for to-do lists.
+- Added the ability to attach files via cut & paste.
+- Added the ability to search within a note for specific text.
+- Added basic drag & drop to move notes to a different notebook.
+- Added an ugly status bar to show current quota usage.
+- Added very very basic email of plain text notes.  Warning: It doesn't work all the time.
+- Corrected a problem with the tag tree where someone could move a parent to be a child of an existing child and cause looping tree structures.
+- Corrected a conflict number where a new local notebook or tag could conflict with a remote one of the same name.
+- Corrected a problem where sequence numbers were not being update correctly resulting in unnecessary data transfers.
+- Corrected a problem where saved userid & password may not properly show in login dialog.
+- Corrected problems when modifying a note that contained an attachment or an image that caused the note to lose the data.
+- Corrected problem where authentication token wasn't being refreshed properly.
+
+
+Known Problems
+- <HR> tag can cause problems when inserting one between rows of existing <hr> tags.
+- Font size isn't being saved properly.
+
+
+
+------------------------------------------------------------------------
+
+NeverNote 0.4
+- Initial release
diff --git a/gpl.txt b/gpl.txt
new file mode 100644 (file)
index 0000000..af3c0c5
--- /dev/null
+++ b/gpl.txt
@@ -0,0 +1,86 @@
+GNU GENERAL PUBLIC LICENSE
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. 
+    b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. 
+    c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) 
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, 
+    b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, 
+    c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) 
+
+The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
diff --git a/install.txt b/install.txt
new file mode 100644 (file)
index 0000000..b21360c
--- /dev/null
@@ -0,0 +1,26 @@
+Hello.
+  
+Welcome to NeverNote.     
+
+This is a very basic clone of Evernote designed to run on Linux.  It is written in Java so it will also run on other platforms as well but the primary focus has been to try and get a usable environment for Linux.  While this is designed to work with Evernote, it is in no way connected with or supported by Evernote.  Any problems you encounter will not be corrected by them and, since this is GPL software, you are using this software at your own risk.  See release.txt for details of what works and what doesn't work.
+
+Before trying to run this, please be sure you have Java 1.6 and QT Jambi 4.5 installed.  Java will probably be installed via a package manager and you'll probably need to download QT Jambi from  http://qt.nokia.com/downloads.  The only thing you need to do with Jambi is to have the files untarred to a directory. You'll need to edit the install scripts to point to this directory (the instructions are below).  People have used this with both 64 & 32 bit versions of Linux as well as OpenJDK & Sun's Java and (so far) have not encountered any problems with these different environments.
+
+
+--- To Install --- 
+1.) Edit nevernote.sh (for Linux) or nevernote.bat (for Windows) in this directory.  At the top of the file there will be 4 variables.
+2.) Edit the NEVERNOTE variable to point to the full path of where you installed NeverNote.
+3.) Edit the JAMBI_LOCATION variable to point to the full path of where QT Jambi was installed.
+4.) Edit the JABBI_VERSION variable to indicate the proper QT Jambi version you have installed.  I've tested with 4.5 only.  I don't think older versions will work.
+5.) Edit the JAMBI_PLATFORM variable to indicate the Linux/Windows platform you are running.  
+
+There are additional options if you wish to run multiple copies under the same userid.  These settings are optional and, depending upon your needs, you probably don't need to touch them.  Please see either nevernote.sh or nevernote.bat for details.  
+
+Some archive managers do not untar all subdirectories properly because some of the subdirectories are initially empty.  After untarring, you should see a lib, res, images, db, qss, and logs directories directly under the nevernote directory.  Some of these will be empty until you begin running the program.
+
+If you've read this far and have done everything described above then you're done.  You should be able to run the nevernote.sh (or nevernote.bat for Windows) script and start things up.  The initial synchronize will take a while depending upon the amount of data.  
+
+This prgram has the ability to synchronize against production servers as well as sandbox servers or to use multiple accounts under the same Linux/Windows ID.  Please see the startup script for details if you wish to run multiple copies under the same Linux or Windows userid.     DO NOT MIX PRODUCTION & SANDBOX DATA IN THE SAME DATABASE OR HAVE MULTIPLE USER ACCOUNTS IN THE SAME DATABASE!  Using the same database to store both production & sandbox data or multiple Evernote accounts will cause problems.      If you wish to run multiple copies of NeverNote you must have separate installation directories for each and you MUST edit the startup scripts and give any one after the first a separate name.  By default, it will try to use the sandbox servers.  If you wish to use production data you can change this under the Edit/Preferences directory option.  You must change this BEFORE your first synchronization with Evernote. 
+
+
+
diff --git a/license.txt b/license.txt
new file mode 100644 (file)
index 0000000..f73dcc5
--- /dev/null
@@ -0,0 +1,11 @@
+NeverNote Version 0.80
+
+NeverNote is licensed under the Gnu Public License (GPL) version 2.  
+
+Evernote is Copyright © 2000-2010 Evernote Corporation.All rights reserved.
+
+SQLite database engine is in the public domain.
+
+Qt and Jambi the licensed property of Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide. 
+
+All other trademarks are property of their respective owners.
diff --git a/nevernote.bat b/nevernote.bat
new file mode 100644 (file)
index 0000000..fcba5d9
--- /dev/null
@@ -0,0 +1,72 @@
+rem #####################\r
+rem # Install variables #\r
+rem #####################\r
+set NEVERNOTE=C:\NeverNote\r
+set JAMBI_LOCATION=C:\qtjambi-win32-lgpl-4.5.0_01\r
+set JAMBI_VERSION=4.5.0_01\r
+set JAMBI_PLATFORM=win32-msvc2005\r
+\r
+\r
+\r
+\r
+rem ########################################\r
+rem # Memory settings.  These can be tuned #\r
+rem # to your specific needs.  The greater #\r
+rem # the memory allocated the better      #\r
+rem # your response may be, but the more   #\r
+rem # resources the program will consume.  #\r
+rem # Lower numbers may hurt performance   #\r
+rem # but will reduce resource held by     #\r
+rem # the program.  If you get errors      #\r
+rem # that say "out of memory" you need    #\r
+rem # to increase these values.            #\r
+rem ########################################\r
+rem # Initial heap size\r
+set NN_XMS=128M\r
+rem # Maximum heap size\r
+set NN_XMX=512M\r
+\r
+\r
+rem ########################################\r
+rem # This next variable is optional. It   #\r
+rem # is only needed if you want to run    #\r
+rem # multiple copies of NeverNote under   #\r
+rem # the same Linux user id.  Each        #\r
+rem # additional copy (after the first)    #\r
+rem # should have a unique name.  This     #\r
+rem # permits the settings to be saved     #\r
+rem # properly.  If you only want to run   #\r
+rem # one copy under a single userid, this #\r
+rem # can be commented out.                #\r
+rem ########################################\r
+rem set NN_NAME="sandbox"  \r
+\r
+\r
+\r
+\r
+rem #################################################################\r
+rem #################################################################\r
+rem ## You probably don't need to change anything below this line. ##\r
+rem #################################################################\r
+rem #################################################################\r
+\r
+rem #######################################\r
+rem # delete files in temporary directory #\r
+rem #######################################\r
+del /Q %NEVERNOTE%\res\*.*\r
+\r
+\r
+rem #####################\r
+rem # Setup environment #\r
+rem #####################\r
+set NN_CLASSPATH=%NEVERNOTE%\nevernote.jar\r
+set NN_CLASSPATH=%NN_CLASSPATH%;%NEVERNOTE%\lib\evernote.jar\r
+set NN_CLASSPATH=%NN_CLASSPATH%;%NEVERNOTE%\lib\libthrift.jar\r
+set NN_CLASSPATH=%NN_CLASSPATH%;%NEVERNOTE%\lib\log4j-1.2.14.jar\r
+set NN_CLASSPATH=%NN_CLASSPATH%;%NEVERNOTE%\lib\h2-1.2.136.jar\r
+set NN_CLASSPATH=%NN_CLASSPATH%;%NEVERNOTE%\lib\PDFRenderer.jar\r
+set NN_CLASSPATH=%NN_CLASSPATH%;%JAMBI_LOCATION%\qtjambi-%JAMBI_VERSION%.jar\r
+set NN_CLASSPATH=%NN_CLASSPATH%;%JAMBI_LOCATION%\qtjambi-%JAMBI_PLATFORM%-%JAMBI_VERSION%.jar\r
+\r
+start /B javaw -Xmx%NN_XMX% -Xms%NN_XMS%  -classpath %NN_CLASSPATH% cx.fbn.nevernote.NeverNote --name=%NN_NAME%\r
+exit\r
diff --git a/nevernote.png b/nevernote.png
new file mode 100644 (file)
index 0000000..fc4b0c7
Binary files /dev/null and b/nevernote.png differ
diff --git a/nevernote.sh b/nevernote.sh
new file mode 100755 (executable)
index 0000000..4c12dfd
--- /dev/null
@@ -0,0 +1,80 @@
+#! /bin/sh
+
+###########################################
+# Location variables.  Edit the variables #
+# below to your specific installation.    #
+# The ones below are examples only.       #
+###########################################
+export NEVERNOTE=/home/randy/NeverNote
+export JAMBI_LOCATION=/home/randy/qtjambi
+export JAMBI_VERSION=4.5.2_01
+export JAMBI_PLATFORM=linux32-gcc
+
+
+########################################
+# Memory settings.  These can be tuned #
+# to your specific needs.  The greater #
+# the memory allocated the better      #
+# your response may be, but the more   #
+# resources the program will consume.  #
+# Lower numbers may hurt performance   #
+# but will reduce resource held by     #
+# the program.  If you get errors      #
+# that say "out of memory" you need    #
+# to increase these values.            #
+########################################
+# Initial heap size
+export NN_XMS=128M
+# Maximum heap size
+export NN_XMX=512M
+
+
+########################################
+# This next variable is optional. It   #
+# is only needed if you want to run    #
+# multiple copies of NeverNote under   #
+# the same Linux user id.  Each        #
+# additional copy (after the first)    #
+# should have a unique name.  This     #
+# permits the settings to be saved     #
+# properly.  If you only want to run   #
+# one copy under a single userid, this #
+# can be commented out.                #
+########################################
+#export NN_NAME="sandbox"  
+
+
+###################################################################
+###################################################################
+## You probably don't need to change anything below this line.   ##
+###################################################################
+###################################################################
+
+
+#####################
+# Setup environment #
+#####################
+export NN_CLASSPATH=$NEVERNOTE/nevernote.jar
+export NN_CLASSPATH=$NN_CLASSPATH:$NEVERNOTE/lib/evernote.jar
+export NN_CLASSPATH=$NN_CLASSPATH:$NEVERNOTE/lib/h2-1.2.136.jar
+export NN_CLASSPATH=$NN_CLASSPATH:$NEVERNOTE/lib/libthrift.jar
+export NN_CLASSPATH=$NN_CLASSPATH:$NEVERNOTE/lib/log4j.jar
+export NN_CLASSPATH=$NN_CLASSPATH:$NEVERNOTE/lib/PDFRenderer.jar
+export NN_CLASSPATH=$NN_CLASSPATH:$JAMBI_LOCATION/qtjambi-$JAMBI_VERSION.jar
+export NN_CLASSPATH=$NN_CLASSPATH:$JAMBI_LOCATION/qtjambi-$JAMBI_PLATFORM-$JAMBI_VERSION.jar
+
+
+
+#################################
+# Clear out temporary directory #
+#################################
+touch $NEVERNOTE/res/dummy.txt
+rm $NEVERNOTE/res/*.*
+
+
+###################
+# Run the program #
+###################
+cd $NEVERNOTE
+java -Xmx$NN_XMX -Xms$NN_XMS -classpath $NN_CLASSPATH cx.fbn.nevernote.NeverNote --name=$NN_NAME
+cd -
diff --git a/release.txt b/release.txt
new file mode 100644 (file)
index 0000000..c4b92c8
--- /dev/null
@@ -0,0 +1,104 @@
+Welcome to NeverNote 0.85.      
+
+This is an incomplete clone of Evernote designed to run on Linux.  It is written in Java so it will also run on other platforms as well but the primary focus has been to try and get a usable environment for Linux.  While this is designed to work with Evernote, it is in no way connected with or supported by Evernote.  Any problems you encounter will not be corrected by them and, since this is GPL software, you are using this software at your own risk.  See release.txt for details of what works and what doesn't work.
+
+Before trying to run this, please be sure you have Java 1.6 and QT Jambi 4.5 installed.  Java will probably be installed via a package manager and you'll probably need to download QT Jambi from   http://qt.nokia.com/downloads.  The only thing you need to do with Jambi is to have the files untarred to a directory.  People have used this with both 64 & 32 bit versions of Linux as well as OpenJDK & Sun's Java and (so far) have not encountered any problems with these different environments.
+
+
+--- To Install ---                       
+1.) Edit nevernote.sh (for Linux) or nevernote.bat (for Windows) in this directory.  At the top of the file there will be 4 variables.
+2.) Edit the NEVERNOTE variable to point to the full path of where you installed NeverNote.
+3.) Edit the JAMBI_LOCATION variable to point to the full path of where QT Jambi was installed.
+4.) Edit the JABBI_VERSION variable to indicate the proper QT Jambi version you have installed.  I've tested with 4.5 only.  I don't think older versions will work.
+5.) Edit the JAMBI_PLATFORM variable to indicate the Linux/Windows platform you are running.       
+
+There are additional options if you wish to run multiple copies under the same userid.  These settings are optional and, depending upon your needs, you probably don't need to touch them.  Please see either nevernote.sh or nevernote.bat for details.  
+
+Some archive managers do not untar all subdirectories properly because some of the subdirectories are initially empty.  After untarring, you should see a lib, res, images, db, and logs directories directly under the nevernote directory.  Some of these will be empty until you begin running the program.
+
+When running the program, please start it from within the directory you installed it from.  For example, if you have it installed in /home/randy/nevernote, please issue the ./nevernote.sh command from within the nevernote directory.  Don't do a /home/randy/nevernote/nevernote.sh from another directory.  I'll eventually remove this restriction when I get the time.
+
+If you've read this far and have done everything described above then you're done.  You should be able to run the nevernote.sh script and start things up.  The initial synchronize will take a while depending upon the amount of data.       
+
+This prgram has the ability to synchronize against production servers as well as sandbox servers or to use multiple accounts under the same Linux/Windows ID.  Please see the startup script for details if you wish to run multiple copies under the same Linux or Windows userid.    DO NOT MIX PRODUCTION & SANDBOX DATA IN THE SAME DATABASE OR HAVE MULTIPLE USER ACCOUNTS IN THE SAME DATABASE!      Using the same database to store both production & sandbox data or multiple Evernote accounts will cause problems.   If you wish to run multiple copies of NeverNote you must have separate installation directories for each and you MUST edit the startup scripts and give any one after the first a separate name.  
+
+Please remember this is beta software.  As such, you can expect to encounter problems.  Also please note that until I get to version 1.0 I do not guarantee clean upgrades.  This means I may ask you to delete everything & start over when upgrading.  This can cause you to lose any unsynchronized data.  I really hope to not need to do this and will try to provide upgrades if possible, but it is a matter of time versus effort.  Since only a few people are using it I don't want to put in an enormous amount of time to do clean upgrades.  If this causes a lot of heartache please let me know and I'll try to provide something better.
+       
+
+
+Changes from 0.84                 
+- Switched NeverNote from using SQLite as the backend database to H2 and removed QT dependencies from database access. 
+- Added the ability to backup & restore the database.
+- Added the ability to export individual notes.
+- Added the ability to customize the save interval.  It defaults to every 5 minutes and a value of zero disables it.  This is only a safeguard in case NeverNote crashes (I know it is hard to believe, but it does occasionally happen).    
+- Searching on dates using Evernot's search syntax should now work.
+- I added an option to the Preferences dialog box to allow NeverNote to behave more like Evernote's selection behavior.  This disables the dynamic counting, opening or closing a notebook, color highlighting & the selecting of multiple notebooks.  By default it is set to mimic Evernote.
+- Removed the dependency upon clearing out the search criteria after every sync.
+- I added a text zoom option.  I may move it later, but for now it is on the tool bar.
+- The tag, trash, & notebook items are are colored blue if the count is greater than zero.  I saw this on the user forum & thought it was an interesting idea.  I also have it so the parents of any tags are also blue if a child has a count greater than zero.  It is a nice way to see if the children of collapsed parents have any notes.  This only works if the option to mimic Evernote is not selected.
+- If you have PDF preview enabled, the PDF is now displayed when the file is attached to the note.  Previously the preview only displayed after the note was re-displayed.
+- Corrected a problem where the index thread may die due to an out of heap memory condition.
+- Added a check to make sure that the note title doesn't exceed the limits Evernote has set.
+- Altered the indexing logic to update the word weight properly if a duplicate was found within a note that had a heigher weight.  
+- Corrected a problem where saved searches would always be synchronized regardless if they had been changed.
+- Corrected a minor sync problem where synchronizing multiple times might cause notes to be sent unnecessarily.
+- Corrected a problem where attachments or images may be lost if the note results were indexed by Evernote on the same sync as the resource was updated.
+- Corrected a problem where (for some unknown reason) it could loop endlessly when trying to cleanup some of the note HTML during a save.
+- You should notice some performance improvements.
+
+
+
+---- Known Problems ----
+- After a sync, the current search is reset.
+- Very complex documents can cause the program to crash because it can't clean up the documents well enough to pass Evernote's markup requirements.
+- When doing a drag & drop from the desktop onto an note to create an attachment, NeverNote must be the window that has focus prior to beginning the drag.  If it did not have focus immediately prior to beginning the drag you will not see any attachment created.  If anyone has any idea how to force Webkit JavaScript to grab focus I'd be glad to hear it.  It seems to ignore pasting otherwise.
+- It won't highlight words on a search completion if they are broken up by a format change.  For example, if you search for Mississippi, words like   Mississippi    and Missippi will be highlighted, but Mississippi won't be because the bold breaks up the word.  This doesn't impact search results, just highlighting them.
+- After editing a note with a checkbox, it may generate a SAX PARSE exception about a value.  That is not allowed.       
+- Images can only be editid after syncing.
+- There is a focus problem on some dialog boxes where control is not returned to the editor after closing a dialog using either the escape or return keys.  To get around this, just press Alt-Tab to switch windows and then switch back to regain focus.
+- There have been periodic "pauses" (several minutes in length) when doing a synchronization if you switch notes during the sync.  The cause of this is still unknown so if you see a pattern please let me know.  It doesn't happen all the time.
+- A few times I've seen lockups while indexing, but so far haven't found a pattern.
+
+
+---- Known Limitation ----         
+- Only a subset of the search syntax is supported.
+- There is no spell checking.
+- Only the first page of a PDF can be viewed inline.
+- There is no screen clipper.
+- Emailing only sends the plain text of a note.
+- The editor can be a little strange in its behavior.
+- Ink notes are not supported.
+
+
+--- Note 4/6/2010 on Deleting Notes ---
+The Evernote API allows you to delete notes permanently by using their API.  I was using this function to delete notes when a user emptied the trash.  Apparently some other developers ilked it so much they began deleting stuff that the users wanted to keep.  When this happened, Evernote gets blamed first and they need to spend time fixing the problem.  To prevent them from having this problem in the future they have restricted the ability to permanently delete notes, but provided a way to easily move them to the trash can and they'll then allow you to empty the trash can via the Web interface or one of their clients.
+
+What does this mean?
+
+NeverNote has a trash can, but if I followed their suggestions it would mean that you could never empty the trash without first logging onto their web interface, emptying the trash, and then synchronizing again.  Kind of a bummer.  If I just emptied the trash on my end and not on Evernote's end the notes can magically reappear.  To get around the problem, I modified some of the logic.  When you delete a note, it is moved to the trash (the same as before).  If you synchronize then the note is moved to the trash on Evernote's servers.  If you empty the trash the note will disappear from the trash can, but if you do a sync the note is NOT removed from their trash.  Basically, I'm just hiding the note and placing it in a "virtual" trash can that you can't see, but NeverNote still uses to keep track of the note itself.  If you empty the trash on the Web and do a sync the data is then permanently deleted from NeverNote.         
+
+I understand Evernote's push for this and, if you don't mind an eternal trashcan on the web interface, it is a nice security feature in case you accidentally delete something.  The only bad thing is that if you look at the notes in the trash on the web client they may not match the count on your local server.
+
+
+--- Note 4/2/2010 on Saved Userid & Password ---
+A few people have asked, so I want to explain how NeverNote saves your userid & password for Evernote.  
+
+First, it does not save them by default.  You must set this up in the Edit/Preferences dialog box.  If you choose to save your userid & password it will store them in an encrypted file called secure.txt.  The file is encrypted so the average user can't browse it, but it is not secure from anyone who is determined.  The reason for this is simple.  While the file itself is secure, NeverNote needs to be able to read the file so the program itself has the key.  Since it is open source, anyone with a little ambition can get the key by reading the source and decrypt the file.  If you need true security, I recommend installing NeverNote in an encrypted directory (Linux has really nice in-system encryption) or using something like TrueCrypt.
+
+
+--- Note 3/71/2010 on Customizing Shortcuts ---
+As of the 0.71 release you have the ability to customize the shortcuts for menu items within NeverNote.  I haven't built a graphical setup for this, but the shortcuts_howoto.txt file in the install directory contains information on how to customize shortcuts.  If you do not customize the shortcuts you will continue to use the defaults.
+
+
+--- Note 2/10/2010 on Closing & Opening Notebooks ---
+I have added a feature to NeverNote that does not exist in the Evernote client.  This feature is available under the "File/Notebook" menu and it provides the ability to close or open a notebook.  All this really does is to exclude the closed notebooks from being visible on the notebook panel and any search results will not include notes from those notebooks.  It does not impact the ability to synchronize those notebooks or any notes within them.  All notes are also indexed the same as any normal note. 
+
+Why?
+
+There are two main benefits to using this feature.  The first is performance.  By closing a notebook the program automatically filters them, so there is less overhead to managing them.  This is really noticeable if you have a notebook with a large number of notes.  The second benefit is that you don't need to look at them.  If you are like me and have a notebook for things that are seldom used you can reduce the clutter of looking through those notes until you are sure you need them.  Closing & opening a notebook takes a few seconds (depending upon your database size) but it can be done at any time.  Any searches that are performed will not include notes in these notebooks.  Please let me know if you find this feature useful.
+
+
+--- Note 2/1/2010 on Notebook & Tag counts ---
+The notebook & tag counts work differently than in the Evernote client.  The counts shown are the intersections between the two lists.  For example, if I select "My Notebook" the tag totals will only show the number of notes in that notebook.  If I select Tag "To-Do", the notebook counts will only show the totals of notes that contain that tag.  In my opinion, this is more useful but I'm open to feedback.  Please let me know if you find this a good or bad thing.  If enough people hate it I'll either put in an option to make it behave like the Evernote client, or I'll add an option to revert this behavior. 
+
diff --git a/shortcuts_howto.txt b/shortcuts_howto.txt
new file mode 100644 (file)
index 0000000..944296e
--- /dev/null
@@ -0,0 +1,54 @@
+I've tried to add the ability to customize your NeverNote menu shortcuts,
+but I don't want to take the time to setup a new dialog box and all the
+junk that entails.  So, I chose a text file config instead.  Eventually I 
+may change it so the text file can be edited within the running program, but
+I have other things to spend my time on at the moment.
+
+First, you don't need to do this.  NeverNote comes with a default set of 
+shortcuts.  If you are happy with those then you don't need to do a thing.
+
+If you want to customize your shortcuts then you need to do a little work.
+
+You should have a shortcuts_sample.txt file.  Copy this to shortcuts.txt 
+in your NeverNote install directory.  This is the file that is read 
+when NeverNote starts.  Any changes to this file only happen at startup
+so if you change it you need to restart the program to see those changes.
+
+This file has three main columns.  
+
+The first column is the menu item you are wanting to trigger with the
+shortcut.  For example, File_Note_Add is the shortcut to add a note and
+Tools_Connect is the shortcut under the tools menu to connect.
+
+The second column is the shortcut sequence.  For example, "Ctrl+N" or
+"F10" or "Ctrl+Shift+F12".  
+
+The remainder of the line is comments and comments should begin
+with // characters.  Spaces or tabs are treated as delimiters.
+
+When editing the file, you must have at least the first column (i.e.
+File_Note_Add).  If you do not put anything else on that line or 
+if you just have comments on the rest of the line you will be 
+removing that shortcut.  For example, a line like this will cause 
+the shortcut to add a note to be removed.
+
+File_Note_Add              // Remove that shortcut
+
+If you want to change a shortcut, then put the shortcut sequece.  For example, 
+this line would change the note add shortcut to Ctrl+W
+
+File_Note_Add    Ctrl+W    // Odd shortcut
+
+If you choose a shortcut key sequence that already exists in the it will 
+remove that default shortcut and assign it to your custom shortcut.  If
+you put the same shortcut twice or the same action twice with two
+different shortcuts, the last one will be the one used.
+
+In you shortcuts.txt you only need to put the shortcuts you want
+changed.  Any action not in that file will use the default shortcut (or
+will use the default of no shortcut).  It doesn't hurt to use the 
+complete sample shortcut file, but I'd recommend only having the shortcuts
+you want changed in shortcuts.txt.  It will probably make it easier in the
+long run for you to support if I add other shortcuts later.
+
+Good luck.
diff --git a/shortcuts_sample.txt b/shortcuts_sample.txt
new file mode 100644 (file)
index 0000000..db9afa4
--- /dev/null
@@ -0,0 +1,85 @@
+File_Note_Add                  Ctrl+N          // Add a new note
+File_Note_Reindex                              // Reindex the current note
+File_Note_Modify_Tags                          // Change current note tags
+File_Note_Delete                               // Delete a tag
+File_Note_Restore                              // Restore from the trash
+File_Note_Duplicate                            // Duplicate the current note
+File_Note_Merge                                        // Merge multiple notes
+File_Notebook_Add                              // Add a notebook
+File_Notebook_Edit                             // Edit an existing notebook
+File_Notebook_Delete                           // Delete the existing notebook
+File_Notebook_Close                            // Open/Close (i.e. archive) a notebook
+File_Tag_Add                   Ctrl+Shift+T    // Add a notebook
+File_Tag_Edit                                  // Edit an existing notebook
+File_Tag_Delete                                        // Delete the existing notebook
+File_SavedSearch_Add                           // Add a notebook
+File_SavedSearch_Edit                          // Edit an existing notebook
+File_SavedSearch_Delete                                // Delete the existing notebook
+File_Email                     Ctrl+Shift+E    // Email note
+File_Print                     Ctrl+P          // Print
+File_Empty_Trash                               // Purge all delete notes
+File_Exit                      Ctrl+Q          // I'm outahere
+
+Edit_Find_In_Note              Ctrl+F          // Search only within the current note
+Edit_Undo                      Ctrl+Z          // Undo last change
+Edit_Redo                      Ctrl+Y          // Redo the last undone change
+Edit_Cut                       Ctrl+X          // Cut current selection to the clipboard
+Edit_Copy                      Ctrl+C          // Copy the current selection to the clipboard
+Edit_Paste                     Ctrl+V          // Paste
+Edit_Paste_Without_Formatting  Ctrl+Shift+P    // Paste as plain text
+Edit_Preferences                               // Settings dialog box
+Edit_Image_Rotate_Left                         // Rotate an image left
+Edit_Image_Rotate_Right                                // Rotate an image to the right
+Edit_Delete_Table_Row                          // Delete a table row
+Edit_Insert_Table_Row                          // Insert a table row
+
+Edit_Insert_Hyperlink          Ctrl+K          // Insert a hyperlink (Popup menu)
+Edit_Insert_Todo                               // Insert a todo checkbox (Popup menu)
+Edit_Encrypt_Text                              // Encrypt selected text (Popup menu)
+Edit_Insert_Table                              // Insert a table into a note (Popup menu)
+
+View_Extended_Information      F8              // View details on the current note
+View_Show_Note_List            F10             // Show current notes
+View_Show_Notebooks                            // Show notebooks
+View_Show_Tags                                 // Show the tags window
+View_Show_Attribute_Searches                   // Show the attribute selection tree
+View_Show_SavedSearches                                // Show the saved search tree
+View_Show_Trash                                        // Show the trash window
+View_Show_Editor_Button_Bar                    // Hide the editor button bar
+View_Show_Left_Side            F11             // Hide all left hand windows
+
+Format_Bold                    Ctrl+B          // Bold (duh)
+Format_Underline               Ctrl+U          // Underline
+Format_Italic                  Ctrl+I          // Italic
+Format_Strikethrough           Ctrl+-          // Strikethrough
+Format_Horizontal_Line                         // Href line
+Format_Superscript             Ctrl+=          // Set superscript
+Format_Subscript               Ctrl+Shift+=    // Subscript
+Format_Alignment_Left          Ctrl+L          // Left align text
+Format_Alignment_Center                Ctrl+C          // Center text
+Format_Alignment_Right         Ctrl+R          // Right align text
+Format_List_Bullet             Ctrl+Shift+B    // Bullet list
+Format_List_Numbered           Ctrl+Shift+N    // Numbered list 
+Format_Indent_Increase         Ctrl+M          // Increase the indentation
+Format_Indent_Decrease         Ctrl+Shift+M    // Decrease the indent
+
+Online_Note_History                            // View the current note history
+Online_Synchronize             F9              // Synchronize with Evernote
+Online_Connect                                 // Connect to Evernote
+
+Tools_Account_Information                      // Show account information
+Tools_Reindex_Database                         // Reindex the entire database
+Tools_Disable_Note_Indexing                    // Disable note indexing
+Tools_Compact_Database                         // Free unused database space
+Tools_Database_Status                          // Current database information
+
+About_Release_Notes                            // Current version's release notes
+About_Log                                      // Message log
+About_About                                    // About dialog box
+
+Insert_DateTime                        Ctrl+;          // Insert the current date/time
+Focus_Title                                    // Focus on the current note title
+Focus_Tag                                      // Focus on the tag line
+Focus_Note                                     // Focus on the note itself
+Focus_Author                                   // Focus on the author field
+Focus_Url                                      // Focus on the source URL field