Commit Graph
16 Commits
Author SHA1 Message Date
Axel Dörfler 9e98ea36fd The DataEditor now has a separate entry_ref for attributes - that's used
to have access to the attributes of a root directory. Internally, only
this ref is used when accessing attribute data.
Also fixed an initialization bug in case the stream couldn't be properly
opened; some values were just set too late (could lead to strange things
as well as a crash).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-17 08:34:34 +00:00
Axel Dörfler 0283ecc0cd Implemented case insensitive search. It's now available in hex mode as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6822 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-29 21:15:31 +00:00
Axel Dörfler 8db249194c Implemented find functionality. The find panel is still missing though, it
just searches for "test".
The find itself is implemented in DataEditor::Find() which sets the editor
in read-only mode and searches for the specified data. It will update a
progress monitor, it will find data no matter if it's on a view size break,
and it is interruptible at any time.
The DataEditor change methods now respect the read-only mode, and return
B_NOT_ALLOWED in this case.
Renamed the UpdateLooper class to EditorLooper class, since it now also
runs the find action.
The ProbeView class now maintains the "Find Again" menu item; it's target
message always contains the item that last searched for.
The HeaderView will now show a "Stop" button while the search operation
is in progress; it also acts as the Find() progress monitor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-28 04:10:48 +00:00
Axel Dörfler a7511f3654 Implemented changing the block size - that caused several changes to
DataEditor::SetViewSize()/SetViewOffset() because they did not correctly
update some values under certain circumstances.
There is now a kMsgDataEditorParameterChange instead of just ...OffsetChange;
the message will contain information about what has changed exactly.
Added a new kDataViewPreferredSize notifier that indicates a change of
the preferred size of the DataView. The ProbeView now listens to that
instead of knowing when to update the window limits.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-27 02:51:48 +00:00
Axel Dörfler a4ce63bfc4 Implemented Save() functionality. ApplyChanges() can now create the editor
version of the file from any state.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 16:41:09 +00:00
Axel Dörfler c65f61d4ad Added a StateWatcher class that will automatically send notices for
all changed states during the lifetime of the object upon destruction.
Added some comments.
Uncommented the IsModified() method (does not yet work correctly, though).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6760 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 15:18:02 +00:00
Axel Dörfler 707aa753f3 Removed DataEditor::SetToAttribute() method.
DataEditor::InitCheck() is now properly working for all types.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 05:03:38 +00:00
Axel Dörfler 66fcb84e31 Now maintains the undo/redo state watcher, and also the data update
containing the range of affected bytes.
Added missing initialization of fLastChange and fFirstChange.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 16:54:28 +00:00
Axel Dörfler 32069a88fa Made the attribute type accessible read-only.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 07:15:56 +00:00
Axel Dörfler 84a09d60e1 No longer takes an attribute for a file, or a device for an attribute.
Implemented attribute support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 04:32:01 +00:00
Axel Dörfler 053bb7380a Added a UpdateIfNeeded() method that you can call when you are not
interested in the data at all.
No longer imitates the BHandler observer model, but directly send
its update messages to the observers.
Now also stores the entry_ref of the file/device in the editor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-24 03:27:45 +00:00
Axel Dörfler 602992140d Implemented proper focus handling in DataView instead of forcing focus
whenever the window got activated.
New DataView::MakeVisible() makes sure the specified position is visible
in the view, and scrolls to it if not (both, horizontally and vertically).
Implemented cursor navigation and selection extension in the DataView class.
Fixed a bug in DataView::SetSelection() that could let slip through invalid
values.
Renamed DataEditor observer notices.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 14:37:09 +00:00
Axel Dörfler f7efc8f447 The DataEditor class is now subclasses from BLocker instead of aggregating
it. This way, it can directly be used in the BAutolock class, and also provides
some more sophisticated locking functions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-18 02:31:48 +00:00
Axel Dörfler 8b6c387e95 Fixed the wrong return type of ViewSize().
Reduced the number of state message types.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 20:33:46 +00:00
Axel Dörfler f748e2d460 Extended watching mechanism (it now works more like the BHandler watching
mechanism) - it's not really used yet, though.
Fixed some variable initialization bugs and missing return values.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-12 03:00:56 +00:00
Axel Dörfler 1df68d1dee Started to work on a DiskProbe replacement as a side project.
Implemented the basic editor engine that has features like undo/redo
and everything else DiskProbe could possibly need - not complete yet,
though it already has everything that would be needed for a 1:1 DiskProbe
duplicate.
The DiskProbe app is currently just a small text based test for that engine.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-15 17:21:23 +00:00