Commit Graph
100 Commits
Author SHA1 Message Date
Rene Gollent 473a74f72e Debugger: Add support for copying variable values.
- Implements a simple copy option in the variables context menu that
  allows one to copy the displayed value to the clipboard.
2014-06-28 19:47:27 -04:00
Rene Gollent 133af3f5e1 HaikuDepot: Fix x86 build. 2014-03-28 22:12:06 -04:00
Rene Gollent de1fb0e450 Time prefs: Fix x86-64 build. 2013-12-13 16:30:26 -05:00
Rene Gollent fab28082af Fix ICNSTranslator hybrid build. 2013-12-03 16:55:45 -05:00
Rene Gollent 2d1c064a54 Fix STXTTranslator build.
- Adjust include path for new location of names.h.
2013-11-22 17:02:45 -05:00
Rene Gollent a11cd14453 Cleanups. 2013-09-29 20:55:54 -04:00
Rene Gollent 4a3649a4ac libpackage_build: Fix build on FreeBSD.
FreeBSD's gcc doesn't include /usr/local/{include,lib} in its default
search paths, but libcurl gets installed there.
2013-09-29 17:51:23 -04:00
Rene Gollent 5ef03b1bda libpackage_build: Fix build on gcc2 haiku.
- gcc2 lacks the -iquote option, and side effects of some of the other flags
  we use with it during the build cause some of libcurl's includes to fail.
  This temporarily works around the problem until gcc2 can be suitably fixed.
2013-09-29 17:25:34 -04:00
Rene Gollent 47b36c83e9 HaikuDepot: Implement download progress handling.
- PackageManager: Add simple progress listener class for other parts
  of depot to use, which in turn is notified when the user interaction
  handler's download progress hook is called.

- InstallAction: Implement progress listener interface and add self
  as listener when initiating a package installation.

This gets basic download progress reporting working in Depot, but isn't
yet complete, as, with the current implementation it doesn't properly handle
any dependent packages that might get downloaded, since InstallAction currently
only knows about the package info that it's directly responsible for. Needs a
bit more work to handle that correctly.
2013-09-29 17:25:34 -04:00
Rene Gollent 647fb4ed35 HaikuDepot: Add download progress package state.
- Add accessors for storing/retrieving current download progress.
- Adjust PackageListView to be able to create a progress state from
  the download percentage.
2013-09-29 17:25:33 -04:00
Rene Gollent 493d13f0b4 libpackage: Add missing build dependency. 2013-09-29 17:25:33 -04:00
Rene Gollent 9345049af8 Package Kit: Implement progress notifications.
- BJobStateListener: Add progress state and corresponding hook.
- FetchFileJob: Notify job progress hook on libcurl notifications.
- UserInteractionHandler: Add hooks for download progress and checksum
  validation progress.
- PackageManager: inherit from JobStateListener and watch for job
  notifications for internally generated jobs. Forward to corresponding
  UserInteractionHandler hooks as needed.
- Adapt pkgman, HaikuDepot and package_daemon to above changes.
  Neither HaikuDepot nor package_daemon's progress hooks are wired up to
  do anything yet though.
2013-09-29 17:25:33 -04:00
Rene Gollent fe39d2eb8d BPackageManager: Eliminate RequestHandler.
- Pull functionality back into package manager itself since the extra
  indirection doesn't really buy us anything in this case, as neither
  request that it handles requires a decision provider.
- Adjust pkgman and HaikuDepot accordingly.
2013-09-29 17:25:32 -04:00
Rene Gollent 672795a37e BDecisionProvider: Make YesNoDecisionNeeded() non-abstract.
- A subset of jobs that require a BContext don't in fact make use of the
decision provider. As such, make the default implementation usable for
those cases so one doesn't need to always create a dummy derived class.
2013-09-29 17:25:31 -04:00
Rene Gollent a7a7aaaf3d libpackage: Add global init/terminate routines.
- Currently only used to call libcurl's global initialization and
  cleanup routines.
2013-09-29 17:25:31 -04:00
Rene Gollent e4227e934e Add libcurl dependency to haiku system package. 2013-09-29 17:25:30 -04:00
Rene Gollent cd76e0903f libpackage: Use libcurl directly for downloads.
- Initial step towards allowing listening for download progress.
2013-09-29 17:25:29 -04:00
Rene Gollent 9549402d30 Add libcurl build feature. 2013-09-29 17:25:29 -04:00
Rene Gollent c8f47aeac8 Fix build. 2013-09-26 21:00:26 -04:00
Rene Gollent 23afdc2ba4 Network preflet: Fix gcc4 build. 2013-09-26 19:44:11 -04:00
Rene Gollent a5d9833346 HaikuDepot: Minor optimization.
- PackageAction now stores/returns a type code indicating the embodied
  action. Adjust PackageActionView accordingly in its comparison of
  the old/new package action list.
2013-09-22 17:30:02 -04:00
Rene Gollent dd9658f010 HaikuDepot: Sort package list by name column on startup. 2013-09-22 17:26:26 -04:00
Rene Gollent f4058a3f9f HaikuDepot: Adjust displayed publisher.
- If available, show the package's copyright information for the
  publisher rather than the vendor, as the latter simply indicates
  the maintainer of the repository rather than the actual developers
  of the software contained in the package.
2013-09-22 16:49:38 -04:00
Rene Gollent 34f4c3ec4f HaikuDepot: Fix #10000.
- When switching selected packages, compare the new and old package action
  list. If they're the same, don't bother rebuilding the button bar.
2013-09-22 16:49:38 -04:00
Rene Gollent 99b3982f2c PackageListView: Force status field to update properly. 2013-09-22 09:04:59 -04:00
Rene Gollent 9e8ffcbb8f HaikuDepot: Rework to get actions working properly.
- BPackageManager doesn't (currently) support being reused for multiple
  differing actions, so instantiate it on the fly for each action to be
  performed.

- As such, pull the package action worker out of PackageManager and into
  MainWindow. Define abstract interface PackageActionHandler for other
  parts of Depot to use to instruct it to queue actions.

- Adjust other parts of code to take the above into account.
2013-09-22 09:02:46 -04:00
Rene Gollent c996b65a89 HaikuDepot: Init with correct repo flags before performing actions.
Still something not entirely correct with the uninstall case though.
2013-09-21 16:58:14 -04:00
Rene Gollent e550d7b8c5 HaikuDepot: Miscellanous improvements to package state tracking.
- MainWindow now listens for package installation state changes so
  it can keep Model's package location lists in sync.
- PackageListView now updates its status column on package state changes.
- PackageInfoView now updates the available action list when package
  installation state changes.
- PackageManager populates the expected user-specified install/uninstall
  package sets for ProblemWindow so that one can properly filter those out.

There still remain some issues with the installed locations for ResultWindow
not being entirely correct though, which causes issues for package
uninstallation.
2013-09-21 14:27:12 -04:00
Rene Gollent fdcd014b1d HaikuDepot: Only send package status change notifications...
...if the package status actually did change.
2013-09-21 08:41:18 -04:00
Rene Gollent 7cf0e76439 HaikuDepot: Cleanups.
- Fix passing the force parameter to the refresh worker. This makes the
  refresh depots menu item actually work.

- Make failure messages regarding depot initialization/refresh visible to the
  user.
2013-09-20 14:40:04 -04:00
Rene Gollent 4f9db8d66d Should have been part of previous commit. 2013-09-19 21:23:45 +02:00
Rene Gollent efcb3de14e Debugger: Fix #9961.
- The previous solution was applying source path mappings too early, with
  the consequence that the file manager would incorrectly adjust some
  relocations due to not being aware of the presence of all the possible
  parent paths yet, leading to the observed "Source not available" behavior
  when restoring some combinations of mappings. We now lazily apply the
  mappings at the point when the source code itself is actually requested
  to be loaded, which doesn't occur until after all image loading, etc.
  has completed, so the information map is complete.
2013-09-19 20:55:18 +02:00
Rene Gollent c848949bf1 Debugger: Fix crash in Inspector.
- If a selection was active, and the hex mode was switched to not
  display, a divide by zero crash would occur. Spotted by Olivier Coursiere.
2013-09-19 17:43:36 +02:00
Rene Gollent b967ea4be4 Debugger: Temporarily disable file manager mappings.
- There seem to be cases where the file manager is incorrectly reapplying
  stored mappings, resulting in no source being displayed. As such, the
  functionality is being disabled until the cause can be found.
2013-09-19 17:01:52 +02:00
Rene Gollent 44698a437d HaikuDepot: Start implementing UserInteractionHandler hooks.
- Use package daemon's ProblemWindow/ResultWindow for the HandleProblems()
  and ConfirmChanges() hooks respectively.
2013-09-19 15:52:24 +02:00
Rene Gollent 4bee7f070b HaikuDepot: Add "Refresh repositories" menu item.
- Allows the user to request manually updating the package list
  from the server.
2013-09-19 15:32:47 +02:00
Rene Gollent cea02697b4 HaikuDepot: Fix a few issues pointed out by Stephan. Thanks! 2013-09-19 14:59:51 +02:00
Rene Gollent b4c8d2ff49 HaikuDepot: Show installation state in list view.
- Add package installation state to PackageInfo and update accordingly
  in Model.
- Add package listener event for installation state change (not yet used).
- PackageListView now fetches installation state from package and displays
  accordingly.
2013-09-19 13:45:12 +02:00
Rene Gollent adde35ff14 HaikuDepot: Flesh out PackageManager::GetPackageActions().
- Now actually checks if and where the package is installed, and
  correspondingly returns back the appropriate install/uninstall
  actions. Consequently, HaikuDepot now allows uninstallation of
  (non-system) packages.
2013-09-19 12:16:41 +02:00
Rene Gollent f7bf1d3282 HaikuDepot: Add UninstallPackageAction class. Not yet used. 2013-09-19 12:16:32 +02:00
Rene Gollent db259584ca HaikuDepot: Flesh out PackageActions a bit.
- Add background worker thread for asynchronous processing of
  package actions.
- Implement InstallPackageAction. As such, installing packages now
  actually works.
- Wrap requests in exception handlers, as the package manager uses those
  for various error cases. Fixes several cases of HaikuDepot spontaneously
  closing if a problem occurred. Still TODO: user error reporting, errors
  are currently reported on the console.
2013-09-19 11:52:32 +02:00
Rene Gollent 5af9dc2a77 Style fix. 2013-09-19 11:52:32 +02:00
Rene Gollent 976b547224 HaikuDepot: Implement publisher hyperlink handling.
- Clicking the publisher link now actually attempts to open the site
  in the browser.
2013-09-18 22:32:45 +02:00
Rene Gollent b162bdaf1d Add HaikuDepot to Deskbar menu. 2013-09-18 19:52:11 +02:00
Rene Gollent 52660ce993 gcc2.x build fix. 2013-09-18 19:33:17 +02:00
Rene Gollent c6a952d706 Add HaikuDepot to image. 2013-09-18 18:45:10 +02:00
Rene Gollent d882cc2812 HaikuDepot: Move repo fetch to background worker thread.
- Factor out functions for refreshing the repositories and
  retrieving the package lists.

- Add a background worker thread which handles those tasks and
  then notifies the window when the model is ready.

- Check if we already have a repository cache, and if so, skip the
  refresh step, unless forced. The latter will eventually be possible
  via the UI.
2013-09-18 18:39:32 +02:00
Rene Gollent 2c287f5bae Model: Add Clear() method to empty out existing depot info. 2013-09-18 18:17:30 +02:00
Rene Gollent f7c99dcc33 Remove unnecessary function. 2013-09-18 17:30:13 +02:00
Rene Gollent e12c26ec2d ModelWindow: Populate publisher URL if available.
- Also rework things a bit to fix passing the same reference into the
  installed package list repeatedly, thus causing only the first package
  to be marked as actually being installed.
2013-09-18 17:30:13 +02:00
Rene Gollent 2f89f68ee7 MainWindow: Initial hooks into package kit.
- MainWindow now attempts to refresh all available repositories and
  fetch their respective package lists on startup. Much still remains
  to be done, such as factoring this out into a background process so
  it doesn't prevent the window from showing, and making the refresh step
  optional if we already have valid repository information, but this at
  least gets us showing the available package list from HaikuPorts.
2013-09-18 15:31:15 +02:00
Rene Gollent 0c5468eef0 HaikuDepot: Stub out various support classes for package kit use.
- DecisionProvider and JobStateListener will be needed in order to
  interact with the package kit in various ways eventually, though
  the implementations are currently all empty.

- Adjust HaikuDepot's PackageManager class to inherit from
  BPackageManager, so as to be able to actually interface with
  the package repositories.
2013-09-18 15:31:15 +02:00
Rene Gollent 93cb796e37 Context: Add more uniqueness to temp directory names.
- If a single thread attempted to establish multiple package kit
  contexts, it would fail due to a collision between their respective
  temporary directories. As such, use both the thread ID and
  system_time() as a random elements in the directory name to ensure
  this doesn't occur.
2013-09-18 15:31:14 +02:00
Rene Gollent d6f41e8920 Debugger: Fix off by one error in report generator.
- The disassembly dump would consequently stop at the instruction
  prior to the actual crash culprit, and also erroneously mark it
  as such.
(cherry picked from commit 7de035619b)
2013-09-17 18:19:35 +02:00
Rene Gollent 7de035619b Debugger: Fix off by one error in report generator.
- The disassembly dump would consequently stop at the instruction
  prior to the actual crash culprit, and also erroneously mark it
  as such.
2013-09-17 18:18:59 +02:00
Rene Gollent 176041c517 Build fix. 2013-09-17 16:02:43 +02:00
Rene Gollent 1f67148f70 Automatic whitespace cleanup. 2013-09-17 16:01:50 +02:00
Rene Gollent 6f17e7a7b3 Remove references to HAIKU_LOCALE_LIBS.
- No longer exists in PM branch, and isn't really necessary any
  more as it only refers to liblocalestub anyhow.
2013-09-17 15:58:56 +02:00
Rene Gollent eeebe2843a Manually merge 1410faca6c. 2013-09-17 14:42:08 +02:00
Rene Gollent 89d18e912d Debugger: MemoryView - Tweak target address drawing.
- Since we actually draw a selection now, change the target address
  highlight to clearly distinguish it. Rather than inverting it, it's
  now drawn with a normal background and red text in the hex display.
  The text mode subcomponent still shows it as an invert though, since
  the latter doesn't currently indicate the selection.
2013-09-17 14:42:07 +02:00
Rene Gollent 98c5cb2682 Debugger: Fix RegistersView context menu.
- Always grab the address value from the actual register value column,
  rather than the one that's in fact under the mouse. Fixes the "Inspect"
  item sending you to inspect address 0 if you happened to right click over
  the register name rather than the value.
2013-09-17 14:42:07 +02:00
Rene Gollent 2c130f09bf Debugger: Fix calculation in MemoryView.
- The offset calculation for mapping the current point wasn't taking
  into account the number of bytes per hex block, causing it to be
  proportionally further off if one switched to 16/32/64-bit hex mode.

Gets mouse selection working properly in said modes.
2013-09-17 14:42:07 +02:00
Rene Gollent 72b9e4a7bc Fix gcc2 build. 2013-09-17 14:42:02 +02:00
Rene Gollent 62b27e6277 Fix previous format problem more correctly.
Thanks Ingo, Oliver and Ithamar for the hint.
2013-09-17 14:42:01 +02:00
Rene Gollent 153c6c4a40 Debugger: Fix data copy issue.
- B_PRIx8 unfortunately doesn't necessarily strictly stay within the bounds
  of an 8-bit hex constant, so force the size passed to snprintf to make it
  that way.
2013-09-17 14:42:00 +02:00
Rene Gollent 59cef1fa18 Build fix. 2013-09-17 14:42:00 +02:00
Rene Gollent f7e1dc6c46 Debugger: Add selection support to MemoryView.
- The Inspector's memory view now supports selecting chunks of the hex display in
  the manner one would in a TextView. The selection can also be copied to the clipboard,
  or if it matches the size of a target address, can be used as input for an address to
  inspect directly.

Still needs some fine tuning, but basically works.
2013-09-17 14:41:59 +02:00
Rene Gollent ad054cf1e1 Debugger: Implement #9961.
- FileManager now saves any explicitly located file mappings,
  and properly restores them when reloading the same team/files later.
2013-09-17 14:41:59 +02:00
Rene Gollent 64aae11716 Fix incorrect name usage. 2013-09-17 14:41:58 +02:00
Rene Gollent af8e2aa473 Debugger: add settings manager for source location mappings.
- If it was necessary to help the debugger locate a particular source
  file due to it not being found on disk at the location specified in
  the debug information, the associated user-supplied path mappings
  are now saved and restored in the team settings. The file manager still
  needs a bit of extra work to apply these as files are added though.
2013-09-17 14:41:58 +02:00
Rene Gollent 02cac49250 Debugger: Implement #9960.
- DebugReportGenerator now retrieves and dumps disassembly for the crashing
  function up to the crashing line.
2013-09-17 14:40:38 +02:00
Rene Gollent 5077cb09cb Debugger: add Inspect context item to Registers view.
- Allows one to treat the value of a register as a memory
  address and jump directly to inspecting said address.
2013-09-17 14:40:20 +02:00
Rene Gollent 1ea8fd5216 Debugger: Add missing std::nothrow. 2013-09-17 14:40:19 +02:00
Rene Gollent 5594217b7f Fix accidentally truncated addresses in call frame unwind. 2013-09-17 14:40:19 +02:00
Rene Gollent 5ad39153e3 Debugger: MemoryView - Tweak target address drawing.
- Since we actually draw a selection now, change the target address
  highlight to clearly distinguish it. Rather than inverting it, it's
  now drawn with a normal background and red text in the hex display.
  The text mode subcomponent still shows it as an invert though, since
  the latter doesn't currently indicate the selection.
2013-09-17 12:07:52 +02:00
Rene Gollent 4ce4250be0 Debugger: Fix RegistersView context menu.
- Always grab the address value from the actual register value column,
  rather than the one that's in fact under the mouse. Fixes the "Inspect"
  item sending you to inspect address 0 if you happened to right click over
  the register name rather than the value.
2013-09-17 11:17:31 +02:00
Rene Gollent a82e311cf1 Debugger: Fix calculation in MemoryView.
- The offset calculation for mapping the current point wasn't taking
  into account the number of bytes per hex block, causing it to be
  proportionally further off if one switched to 16/32/64-bit hex mode.

Gets mouse selection working properly in said modes.
2013-09-17 11:14:38 +02:00
Rene Gollent 206313697f Fix gcc2 build. 2013-09-16 22:39:18 +02:00
Rene Gollent f831939874 Fix previous format problem more correctly.
Thanks Ingo, Oliver and Ithamar for the hint.
2013-09-16 21:29:32 +02:00
Rene Gollent fb916bc870 Debugger: Fix data copy issue.
- B_PRIx8 unfortunately doesn't necessarily strictly stay within the bounds
  of an 8-bit hex constant, so force the size passed to snprintf to make it
  that way.
2013-09-16 20:22:24 +02:00
Rene Gollent af967edb7d Build fix. 2013-09-16 19:59:33 +02:00
Rene Gollent 6c5893fbbf Debugger: Add selection support to MemoryView.
- The Inspector's memory view now supports selecting chunks of the hex display in
  the manner one would in a TextView. The selection can also be copied to the clipboard,
  or if it matches the size of a target address, can be used as input for an address to
  inspect directly.

Still needs some fine tuning, but basically works.
2013-09-16 19:45:27 +02:00
Rene Gollent 29fdf5e8ae Debugger: Implement #9961.
- FileManager now saves any explicitly located file mappings,
  and properly restores them when reloading the same team/files later.
2013-09-16 15:29:19 +02:00
Rene Gollent 37fc9962f8 Fix incorrect name usage. 2013-09-16 15:29:19 +02:00
Rene Gollent b9b126139a Debugger: add settings manager for source location mappings.
- If it was necessary to help the debugger locate a particular source
  file due to it not being found on disk at the location specified in
  the debug information, the associated user-supplied path mappings
  are now saved and restored in the team settings. The file manager still
  needs a bit of extra work to apply these as files are added though.
2013-09-16 15:29:18 +02:00
Rene Gollent 396a3d082f Merge branch 'debugger_report_add_disassembly' 2013-09-15 15:35:38 +02:00
Rene Gollent 92d6655640 Debugger: Implement #9960.
- DebugReportGenerator now retrieves and dumps disassembly for the crashing
  function up to the crashing line.
2013-09-15 15:32:19 +02:00
Rene Gollent 729075a5e8 Debugger: add Inspect context item to Registers view.
- Allows one to treat the value of a register as a memory
  address and jump directly to inspecting said address.
2013-09-14 17:55:33 +02:00
Rene Gollent 20c5fc4aa6 Debugger: Add missing std::nothrow. 2013-09-14 17:55:32 +02:00
Rene Gollent 74e89b3446 Fix accidentally truncated addresses in call frame unwind. 2013-09-14 17:07:55 +02:00
Rene Gollent 426f721b81 Fix default alignment on BCheckBox.
Was most readily noticeable in WebPositive's Find pane, where the
CheckBox was incorrectly top-aligned. Thanks to Humdinger for reporting.
2013-09-11 18:23:07 -04:00
Rene Gollent f8a99c90ad Cleanups. 2013-08-09 18:51:45 -04:00
Rene Gollent ac4d653dd3 Tracker: Fix another navigator issue.
The problem indicated by #8388 hid another issue with respect to
show/hiding the navigator on the fly, namely that it didn't correctly
respect the type of Tracker window, which would cause the navigator to
show up in cases where it shouldn't, such as query windows.
2013-08-09 18:51:44 -04:00
Rene Gollent b939c39167 Tracker: Fix #8388.
BNavigator shouldn't update its location until AllAttached(). Otherwise,
it might immediately trigger a redraw, and in such a case, the
navigation buttons wouldn't yet have had a chance to load their icon
resources, leading to a debug assert in BPictureButton due to said
images not being present, but required.
2013-08-07 19:42:52 -04:00
Rene Gollent 44646df416 Debugger: Move CLI commands into their own subdir. 2013-08-04 10:50:44 -04:00
Rene Gollent 1f67610d5a Move Alex Smith to active maintainers list. 2013-08-02 22:15:18 -04:00
Rene Gollent 055118de88 AboutSystem: Move Pawel Dziepak to active maintainers list. 2013-08-01 19:29:35 -04:00
Rene Gollent 17d68fd24c Debugger: Fix handling of modified types with no base type.
In the case of a modified type pointing to an unspecified base type,
i.e. const void*, gcc appears to omit the DW_AT_type attribute entirely.
This had the result that such variables wouldn't appear in the var list.
If we encounter such a case, simply assume that the base type is unspecified
rather than failing early.
2013-07-30 22:12:26 -04:00
Rene Gollent 3d286f4454 Debugger: Fix BMessage handling on x86-64.
Unlike the header or field members, the 'what' field is always a 32-bit
integer, rather than being arch-dependent. This would cause us to bail
out early without ever trying to process/resolve children.
2013-07-29 19:11:13 -04:00
Rene Gollent e52af6a9e1 Add LibLayout and BePDF x86-64 packages.
Thanks to Chris Roberts for contributing the former.
2013-07-28 22:09:20 -04:00