The popularity of Visual Clients continues to grow. 

P4V, the visual client for Perforce Helix Core version control system, has long been a popular app. It complements the command line, even for the most command line savvy developers. Some unique Helix Core features like the Stream Graph and the Revision Graph are only available in P4V, due to their visual nature. 

P4V is very popular in the game development community, because most artists and designers like working in an attractive UI rather than from the command line.

With the 2019.2 release of P4V, it’s entering a new era with significant new features.

Dark Mode comes to P4V! There are a lot of reasons for the popularity of Dark or flat user interface themes, such as its ability to reduce eye strain in low-light conditions. Another reason often mentioned is that such themes can help you concentrate your eyes longer and keep your attention on the screen.

On the P4V Preferences 'Display' panel you can switch between light and dark. Changing this setting to “Dark Mode” and restarting P4V enables this new feature.  You can also enable Dark Mode in P4Admin and P4Merge, by making similar preferences changes in those apps.

For designers using dark or flat themed tools, such as Photoshop, Unity or Unreal, and for coders using popular IDEs like Microsoft Visual Studio or VS Code, it’s a big win because it will be less jarring switching back and forth with P4V.

Another great new P4V feature is P4VJS. Customizability has been a key feature of P4V for a long time, and this new feature brings it to a new level.

Now you can support any HTML5 content inside P4V. This new capability gives you an easier and more powerful way to add your own or existing web pages to custom P4V tabs and windows.

One you turn on HTML Tools in P4V Preferences, you can add edit and remove tools locally. After enabling the setting, you can then go to the Tools Menu, and choose Manage Tools, and you will see the new HTML Windows and HTML Tabs choices.

You can globally control the presence of the feature in P4V clients by setting the P4V.Features.HTMLTools setting. The default is on, but when you set it set to off the HTML Tool editors are not enabled and HTML windows and tabs are not shown for this P4V connection.

For custom HTML pages that you add using HTML tools, P4V provides security by letting you specify a whitelist of base URLs.

Click the “only accept html tools from” checkbox, then add your “accepted base url”, for example:

…tabs will only load from this base url.

Sample programs are included to help you get started, and there is even a demo mode so you can see the examples without a lot of heavy lifting. This is all covered in the p4vjs user guide.

You can find the demos in C:\Program Files\Perforce\P4VResources\p4vjs\examples

The demos appear in the view menu, which is where your own HTML tools will appear, too!

First, let’s look at the P4V Images Demo. This is a demo that shows how you can use the built-in images from P4V to enhance your own HTML tools. It’s an attractive, dark theme table shown in a tab.

Then we have a demo that runs a Jobs Query, and shows you the results also in an attractive dark theme table shown in its own tab.

Finally, we have Server Info, in a tab.  This could come in handy with commandline skittish end users!

When you restart P4V, demo mode goes away, but you can see the demos again by activating them in the preferences panel.

Perforce Streams provides a better way to manage change across codelines.

Now it’s even better because you can manage changes to stream specs better with the ability to shelve them in a numbered changelist.

You can diff a shelved stream with other shelved streams or a checked-out stream.

The stream spec can be also submitted from the shelf. And you can request a Helix Swarm review of the changes made to the stream spec.

There’s a new Stream Revision Graph that lets you see the changes to streams over time, like the file revision graph.

Check out all these features and more by downloading the latest version of P4V.

Course - Using the Helix Visual Client - P4V