"Client Kit for Perforce", is a proof-of-concept demonstrating a
Qt Thin Client application useful for quickly creating custom Perforce
clients with a wide range of capabilities using a combination of Qt/C++
and web technologies (HTML5). The code uses no special Perforce knowledge.
This is a key advantage, as all of the source code is made freely
available for maximum flexibility, power and creativity.
Having all the source available means the Qt/C++ core can be very
compact, because only the minimum needed C++ code for supporting an
application needs to be built-in. (It also means that any given
example, including the one here, only hints at the possibilities of
marrying the power of Qt and HTML5).
Another benefit of providing the C++ core is that the security model
can be fine tuned to the application.
The "Kit" part of the name refers to the (relatively) easy re-usability
of HTML and JavaScript components. Pieces such as a depot tree and local
tree browser can be written separately and then quickly added together
to build custom clients. Ideally, the Ecosystem will build and extend
the "Kit" components.
Building P4ClientKit
--------------------
1. Download Qt libraries http://qt.nokia.com/products/. We've tested with
4.7.2 and 4.7.4
2. Download Perforce C++ API ftp://ftp.perforce.com/perforce/
3. Tip: C++ API documentation
http://www.perforce.com/perforce/doc.current/manuals/p4api/index.html
4. Build Qt/C++ application:
KCommon.h
ClientKitApi.h
main.cpp
ClientKitApi.cpp
mainwindow.cpp
5. Also link in the Perforce C++ API.
6. Qt Creator and Visual Studio VS2008 have been used to build on WinXP and Mac OSX.
7. Tip: Qt Plug-in for Visual Studio helps configure custom build step for MOC compiler
required by Qt
8. Once the C++ application is built, drag & drop html files onto the P4ClientKit window to
run them (or configure start application through the P4ClientKit.conf file)
9. Tip: Open the "SimpleCommandApplet.js" in the "sample applet/js/" directory and enter
your port, username, and client on lines 4, 5, and 6 to configure your Perforce connection
for the samples
If you run into trouble, I'll try (but can't guarantee) to help you. Questions, comments also to: jcreasy at perforce dot com