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
Turns out it didn't work with the menu in sticky mode (because of the triggers).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6787 a95241bf-73f2-0310-859d-f6bbb57e9c96
CommitChanges() method. Editors like the MimeTypeEditor will use this
to propagate their current content when the window receives QuitRequested().
Brought the StringEditor to a usable state (note, currently, all attribute
editors can only change what's there; they cannot change the size of the
attribute - this will be fixed at a later point).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6785 a95241bf-73f2-0310-859d-f6bbb57e9c96
won't try to open the file read-only anymore.
RefsReceived() now opens an alert explaining the reason if Probe() fails.
Slightly changed the about requester.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6784 a95241bf-73f2-0310-859d-f6bbb57e9c96
adopts the block size from the file system in that case.
Fixed the broken check for a device (would also succeed for other types,
stat.st_mode types cannot just be or'd).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6783 a95241bf-73f2-0310-859d-f6bbb57e9c96
Also fixed a possibly wrong cursor position in that case.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6782 a95241bf-73f2-0310-859d-f6bbb57e9c96
(since only volumes can slip through, not any directory).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6781 a95241bf-73f2-0310-859d-f6bbb57e9c96
The header will now get the entry_ref from the editor, and not the one
passed to the view (because it may have redirected it).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6780 a95241bf-73f2-0310-859d-f6bbb57e9c96
pass B_SIMPLE_DATA messages to the application but relabel them as
B_REFS_RECEIVED first.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6779 a95241bf-73f2-0310-859d-f6bbb57e9c96
other file types, but the block size menu didn't take that into account, it
always showed "512" to be active when started.
Also, if the DataEditor has a block size that is not yet part of the block
size menu, it will be added and made current.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6778 a95241bf-73f2-0310-859d-f6bbb57e9c96
handier granularity.
ReplaceChange will now try to merge with the next ReplaceChange if they
are adjacent.
Fixed compilation with tracing enabled.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6776 a95241bf-73f2-0310-859d-f6bbb57e9c96
convenient and actually shows some trust in the users decision :-)
Also changed the text to make clear that this action is not covered by
the undo functionality.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6775 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added a possible "block" member for the kMsgPositionUpdate message.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6774 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
Implemented the print view stuff (as borrowed from ShowImage). Not yet tested
because the print_server is funny today over here...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6770 a95241bf-73f2-0310-859d-f6bbb57e9c96
Moved the DiskProbe application signature constant into the DiskProbe.h header file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6769 a95241bf-73f2-0310-859d-f6bbb57e9c96
window is closed.
Also, it now reports errors from the save operation if there were any.
Enabled the "Print" and "Page Setup" menu items.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6767 a95241bf-73f2-0310-859d-f6bbb57e9c96
wrong index to the fChanges list.
Added the compile time possibility to trace the data editor changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6765 a95241bf-73f2-0310-859d-f6bbb57e9c96
BInvoker::SetTarget() could not work yet (before the view was added to
the window).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6762 a95241bf-73f2-0310-859d-f6bbb57e9c96
It will now call DataEditor::Save() in B_SAVE_REQUESTED, but it doesn't yet
notify the user on errors (other then printing them to stdout).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6761 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
anyway, and I think it doesn't really belong to this app's realm.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6759 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
Now also changes the selection to the cursor position in the hex editor when
you change the first part of the byte.
No need to hold the editor lock for Replace().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6743 a95241bf-73f2-0310-859d-f6bbb57e9c96
Replace(), Insert(), and Remove() now locks the editor themselves.
ReplaceChange::Normalize() corrected the size for the right reason in a wrong way.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6741 a95241bf-73f2-0310-859d-f6bbb57e9c96
block position where the currently selected bytes would point to).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6740 a95241bf-73f2-0310-859d-f6bbb57e9c96
Implemented editing functionality for both focus types.
Optimized InvalidateRange() if the update spans over the whole view.
Now resets the cursor position/selection when the editor offset changed.
UpdateFromEditor() now takes the range of the size into account.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6739 a95241bf-73f2-0310-859d-f6bbb57e9c96
was broken).
"Write" had the wrong shortcut (and I already wondered...).
The PositionSlider now correctly disables itself when it's not needed. Added
some nice disabled drawings for the slider bar.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6737 a95241bf-73f2-0310-859d-f6bbb57e9c96
standard ProbeView), and one type editor. Started to implemented different
type editors, so far we have: BooleanEditor, StringEditor (not yet fully
working), NumberEditor, and MimeTypeEditor (not complete).
Needed to trick quite a bit to get BTabView to do what I want, since we
cannot detach the ProbeView without losing all of its menus.
All editor views share one backend DataEditor object, so everything is
synchronized and updated automatically.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6736 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed the size limits when the view is buried a bit deeper in the hierarchy.
Tried to disable the slider when it's of no use, but it has no effect...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6735 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
When the settings are loaded, all parameters are checked for validity.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6715 a95241bf-73f2-0310-859d-f6bbb57e9c96
The number base type (hex or decimal) and the window frame is already
correctly maintained (font size is only displayed, but not yet changed).
I don't know the meaning of the last 4 bytes in DiskProbe_data, but
it's probably not that bad.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6714 a95241bf-73f2-0310-859d-f6bbb57e9c96
ProbeWindow is now the base class for FileWindow and AttributeWindow.
Currently, attribute window has no special additional controls, but that will come.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6713 a95241bf-73f2-0310-859d-f6bbb57e9c96
is data available in the clipboard or not. "Copy" and "Select All" now
work.
All position updates are now handled by a separate looper class (UpdateLooper),
and are actually applied at the editor. UpdateLooper will send a kMsgUpdateData
to its target synchronously when necessary. Seeking a file now works nicely
and very smooth.
HeaderView::MessageReceived() and UpdateLooper::MessageReceived() only
consider the most current update message for kMsgSliderUpdate resp.
kMsgPositionUpdate.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6707 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now listens to B_SELECT_ALL, and B_COPY.
B_COPY copies the selection as "application/octect-stream" and, if
it's a valid ASCII string, also as "text/plain".
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6706 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added a message that initiates a data update from the editor.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6705 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
views - that makes all sliders accessible again.
Thanks to Marcus for reporting that bug.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6703 a95241bf-73f2-0310-859d-f6bbb57e9c96
else is not found here. The BeOS kernel also exports these two *_etc()
functions, and we might want to do that, too.
{receive|send}_data() are now interruptible from userland, but not when
called from the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6700 a95241bf-73f2-0310-859d-f6bbb57e9c96
Copied over the function description of user_strlcpy() from x86/arch_cpu.h
to this file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6697 a95241bf-73f2-0310-859d-f6bbb57e9c96
Implemented the B_CURRENT_TEAM mechanism for _get_next_sem_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6691 a95241bf-73f2-0310-859d-f6bbb57e9c96
out the port_info setup to fill_port_info(), implemented the B_CURRENT_TEAM
behaviour as described in the BeBook (well, almost, since B_CURRENT_TEAM
is not defined in R5, it's just "0"), improved error checking.
Cleaned up user syscalls.
Replaced SYS_MAX_OS_NAME_LEN with B_OS_NAME_LENGTH.
Banned strncpy().
Added our license.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6687 a95241bf-73f2-0310-859d-f6bbb57e9c96
Replaced "addr" with "addr_t".
And while I was at it, I also added the additional team parent/child members
as found in NewOS change 1930 (not applying the whole change yet).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6686 a95241bf-73f2-0310-859d-f6bbb57e9c96
with B_OS_NAME_LENGTH, make use of the IS_USER_ADDRESS() macro, etc.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6685 a95241bf-73f2-0310-859d-f6bbb57e9c96
Cleaned up _get_thread_info() & _get_next_thread_info() - factored out
the thread_info setup into fill_thread_info().
Is now using team_is_alive() instead of team_get_team_struct().
Replaced SYS_MAX_OS_NAME_LEN with B_OS_NAME_LENGTH.
Banned strncpy() in favor for strlcpy().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6683 a95241bf-73f2-0310-859d-f6bbb57e9c96
actually used at several places (like get_next_thread_info(), ...).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6682 a95241bf-73f2-0310-859d-f6bbb57e9c96
Replaced some old error codes.
Explained a bit more how to solve a race condition.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6681 a95241bf-73f2-0310-859d-f6bbb57e9c96
Removed old error codes.
Replaced the DEVFS_IOCTL_* with their Be equivalents. Note, the related
functions are not user space safe yet. But since the devfs will be
almost rewritten, there is no point in changing it now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6679 a95241bf-73f2-0310-859d-f6bbb57e9c96
You don't have to check against NULL when deleting an object.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6674 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added our license to the updated source files.
Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6672 a95241bf-73f2-0310-859d-f6bbb57e9c96