During initial scan of application, detect if root access is available
and track it. If user later selects "Click here for ways to fix this".
display a new dialogue that offers to push the layer directly.
If pushing fails, fall back to production dialogue.
Also add a new persistent setting to enable automatic layer pushing.
* Dock panels shouldn't have any frame border or anything like that.
* They should have an external margin of 3 pixels at their border,
but then no further margins on the layouts (like sub-controls for
the pipeline state views.
* Toolbars should be Raised & Panel frames. Later we'll replace them
with actual QToolBars to better customise the painting.
After selecting an application to launch on Android, inspect it to see if
it contains the RenderDoc layer and required permissions. If it does not,
display a warning similar to desktop. When clicked, if only the layer was
missing, offer to patch the APK, uninstall, and reinstall, with the
warning that it doesn't work for all applications (or at all for GLES).
Also provides pointers to how to package the layer yourself.
The process works by using the host temp directory to pull the APK and
modify it. If the steps fail for any reason, the log is populated and
patching is halted.
* Instead of having button enabling and so on logic in both
on_hostname_textEdited and on_hosts_itemClicked, just handle the
hostname edit as selection or unselecting any matching item, and then
process all the logic whenever the selection changes.
* Checking for a NULL parent item doesn't work, the parent will be the
invisible root item.
* Also make sure we don't delete a host that might have enumerations
still going for it.
* This was only added because the default tree widget controls don't
render any grid lines. Now that we're custom drawing them, the row
colors are distracting and can be confusing on themes where the
selected row is very faint.
* Added a couple of utility macros to help with the conversion. lit() is
paired with tr() for untranslated text.
* QFormatStr is more explicitly for non-textual formatting strings.
* Both are just #define'd to QStringLiteral()
* Tacking -official onto the git hash was a hack only needed on windows,
and since we want more information it doesn't scale.
* Instead we track anything we need to know about the version in
separate variables, like whether it's a stable build or a nightly/
local build. Or if it's built by a downstream distribution then the
version number for the downstream build.
* Since we're promoting everything, we reset the behaviour of
RDTreeWidget so that it's not doing anything different by default.
* RDTreeWidget's interface is a bit different, exposing some useful
things like a single selected item and so on.
* We also can't set columns in the Qt Creator UI anymore, so we set them
from code.
* We previously were only checking if all lookups had completed before
self-deleting, but we also need to make sure nothing externally is
still holding onto the dialog.
* In python it's not as quick to get ~0U since ints aren't unsigned or
fixed size. Adding named constants makes it easier for people to use
the right values, and C++ users can still pass ~0U.
* Generally this means removing ref out parameters and instead returning
values. In a couple of cases we will want to avoid copies in future
either by returning const references (e.g. to the pipeline state which
is immutable).
* At the same time, some pointless bool return values that were always
true and didn't indicate errors have been removed. They can be added
again if an error condition comes back.
* Some free functions still have out parameters as C linkage doesn't
allow returning user types by value.
* The C# UI still invokes into C wrappers for all the C++ classes, which
handle taking the return value and doing a copy into an out parameter
still for compatibility.