Hi Folks
Uploaded is latest QtContribs Windows Installer : QtContribs_Mingw-492_Qt-550_r417_Setup.exe
This installer is based on Qt 5.5 and MinGW 4.9.2 and Harbour fe81270dafef4bd90c24836a1e68ac2ab2cb87cf .
This installer includes commits r392 through r417.
This installers empowers you to play with QML, the next-generation offering by Qt.
HbQtQmlBridge() class simplifies the heavier tasks at the background.
This installer also includes Qt's new module - QtLocation - which, together with QtPositioning
is a perfect fit for many of modern app offerings.
This installer also includes a function, for Windows and Android platforms, __hbqtActivateBarcodeReader()
which bring to your application barcode reading off a mobile phone or web-cam of a laptop.
Enjoy
Pritpal Bedi
a student of software analysis & concepts
2015-07-31 16:05 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r417)
+ hbqtqmlparts
+ hbqtqmlparts/resources
+ hbqtqmlparts/resources/png
+ hbqtqmlparts/resources/png/left-32.png
+ hbqtqmlparts/resources/png/refresh-32.png
+ hbqtqmlparts/resources/png/right-32.png
+ hbqtqmlparts/resources/png/stop-32.png
+ hbqtqmlparts/resources/qml
+ hbqtqmlparts/resources/qml/BarcodeReader.qml
+ hbqtqmlparts/resources/qml/WebView.qml
+ hbqtqmlparts/resources/wav
+ hbqtqmlparts/resources/wav/barcode-beep.wav
+ hbqtqmlparts/resources/wav/camera-flash.wav
+ hbqtqmlparts/misc.prg
+ hbqtqmlparts/qmlbridge.prg
+ hbqtqmlparts/barcodereader.prg
+ hbqtqmlparts/webview.prg
+ hbqtqmlparts/hbqtqmlparts.hbc
+ hbqtqmlparts/hbqtqmlparts.hbp
+ hbqtqmlparts/hbqtqmlparts.hbx
+ hbqtqmlparts/hbqtqmlparts.qrc
+ hbqtqmlparts/tests
+ hbqtqmlparts/tests/demobarcodereader.prg
+ hbqtqmlparts/tests/demowebview.prg
+ hbqtqmlparts/tests/hbmk.hbm
+ qtcontribs.hbp
+ Added: hbqtqmlparts/hbqtqmlparts.hbp
Initial commit of Harbour engine for QML manipulation.
QML is the next-generation offering by Qt which facilitates to develop
modern-looking, javaScript based applications. QML is also the core
language adopted by Ubuntu mobile plaforms and its concept of
one-os-fit-all-devices shift. So seems QML is set to become the
protocol of choice for so many applications.
Harbour's implementation of Qt, i.e. HbQt, is essentially a widget
based implementation. It took me a while to turn to QML because
of the necessity to have barcode reading inside my mobile offerings.
I remained reluctant to give QML a try for a long time because of the
complexity how Signal/Slot mechanism is implemented in Harbour.
But when I took initiative, I found that it is simpler than my fear.
Bottom line is : we can start using QML to some extent alsong-with
and within our existing widget based apps.
CLASS HbQtQmlBridge() provides the building blocks to stream-line
the complexity of signal/slots, set/get properties, execute methods, etc.
CLASS HbQtQmlBridge()
METHOD init( oParent )
METHOD create( oParent )
METHOD setQml( cQml ) -> lSuccess
METHOD show() -> NIL
METHOD setProperty( cProperty, xValue ) -> lSuccess
METHOD setChildProperty( cChild, cProperty, xValue ) -> lSuccess
METHOD getProperty( cProperty ) -> oQVariant | NIL
METHOD getChildProperty( cChild, cProperty ) -> oQVariant | NIL
METHOD invokeMethod( cMethod, ... ) -> oQVariant | NIL
METHOD connect( cSignal, bBlock ) -> lSuccess
METHOD connectChild( cChild, cSignal, bBlock ) -> lSuccess
:create() only initiates a QQuickWidget(), set some of its
properties, connects it to error handeling slots and
lays it in a best-judged layout on its parent.
:setQml( cQml ) is where all the action happens.
This is the only place where we could know if a QML
document has been loaded or not. All subsequest operations
are executable only if we succeed here. Be noted that QML
engine is a scripting engine and is based on JavaScript
heavily.
Lets disect CLASS HbQtBarcodeReader() and BarcodeReader.qml in
relevant context only. HbQtBarcodeReader() is developed to provide
one-line calling methodology in mind and has many other constructs
you are already familiar with.
METHOD HbQtBarcodeReader:create( oParent )
...
...
// register C++ classes in order to access them inside QML
// immediately before those are about to be Used
//
HBQAbstractVideoSurface():registerQmlTypes()
QZXing():registerQmlTypes()
::oQmlBridge := HbQtQmlBridge():new():create( ::oQmlContainerWidget )
// provide the QML document location needed
//
IF ::oQmlBridge:setQml( "qrc:/hbqtqml/resources/qml/BarcodeReader.qml" )
::stopCamera()
#ifndef __ANDROID__
// because QVideoProbe() is only available for Android
// we need render the frame ourselves, so this connection
//
::oQmlBridge:connectChild( "videosurface", "imageAvailable(QImage)", {| oImage | ::dispImage( oImage ) } )
#endif
// we could have connected the "qzxing" child also for the same effect
// but we decided to receive signal via QML document as it implements
// more constructs.
//
::oQmlBridge:connect( "tagFound(QString)", {| cTag | ::manageBarcodeFound( cTag ) } )
__hbqtAppRefresh()
ENDIF
...
...
RETURN self
BarcodeReader.qml [ only relevant parts ]:
=========================================
Rectangle {
id : cameraUI
objectName : "camerainterface" // name to access the object
// as this is the root object
// it can be accessed directly.
property bool stopScanningFrames // can be set/get via :setProperty
signal imageCaptured( string image )
signal tagFound( string tag ) // signal we will receive via :connect
function startScanning() {
stopScanningFrames = false;
}
function stopScanning() {
stopScanningFrames = true;
}
function stopCamera() { // method we will invoke via :invokeMethod
cameraUI.stopScanning();
camera.stop();
}
function startCamera() {
camera.start();
cameraUI.startScanning();
myVideoSurface.decoder = decoder;
myVideoSurface.source = camera;
}
Camera {
id: camera
objectName: "camera" // can be accessed as QObject
// from PRG QObject can only be
// exploited via :connect()
}
VideoOutput {
id : viewfinder
objectName : "viewfinder"
source : Qt.platform.os == "android" ? camera : myVideoSurface
}
QZXing{
id : decoder
objectName : "qzxing"
onTagFound : {
if( ! cameraUI.stopScanningFrames )
{
cameraUI.stopScanningFrames = true;
playSoundCameraFlash.play();
cameraUI.tagFound( tag ); // emit the signal which we :connect()ed
}
}
}
HBQAbstractVideoSurface{
id : myVideoSurface
objectName : "videosurface" // will connect via :connectChild()
}
SoundEffect {
id : playSoundCameraFlash
source : "qrc:/hbqtqml/resources/wav/barcode-beep.wav"
}
}
A convinient function, one-liner, can be fired to scan a barcode as:
__hbqtActivateBarcodeReader( {|cBarcode| LetMePushIntoField( cBarcode ) } )
I hope this class will flourish with passage of time as we will gain
more experience into QML and allied technology. I am impressed with
results and plan to share with you whatever meaningful I could muster.
Enjoy and stay tuned!
2015-07-31 15:14 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r416)
* hbide/projmanager.prg
% Changed: the behavior of opening "Output Console".
In case of any errors in project building Output Console is opened.
At all other times no action is taken. It means if console is
already opened or kept opened after an error, it will remain
visible. A request by Daniel Du Pre.
2015-07-31 13:28 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r415)
+ hbqtwidgets/resources/brw-addcolumn.png
+ hbqtwidgets/resources/brw-goto.png
+ hbqtwidgets/resources/brw-index.png
+ hbqtwidgets/resources/brw-tables.png
+ hbqtwidgets/resources/vz-child.png
+ hbqtwidgets/resources/vz-expand.png
+ hbqtwidgets/resources/vz-parent.png
+ hbqtwidgets/resources/web.png
* hbqtwidgets/hbqtwidgets.qrc
+ Added more images.
+ #define __VZOBJ_PARENT
* hbqtwidgets/alert.prg
% Enhancements for mobile platforms.
* hbqtwidgets/dashboard.prg
% Minor.
* hbqtwidgets/hbqtbrowse.prg
! Fixed: editing window transulency.
! Fixed: to behave properly on mobile platforms.
+ Enhanced: modeless editing protocol.
* hbqtwidgets/misc.prg
+ __hbqtIsAndroid() -> lOnAndroid
+ __hbqtIsMobile() -> lOnMobile
+ __hbqtAppRefresh() -> NIL
Hides and Shows App Windget.
+ __hbqtLayoutWidgetInParent( oWidget, oParent )
+ __hbqtLog( xLog ), __hbqtShowLog(), __hbqtClearLog()
A General purpose logging mechanism based on __hbqtAppWidget().
Mostly useful on mobile platforms where debugging is a nightmare.
+ __hbqtRegisterForOrientationChange( bBlock )
__hbqtBroadcastOrientationChanged( nOrientation )
Actually based on resize event of __hbqtAppWidget() which calls the
bBlock whenever resizing takes place. Mostly useful for mobile platforms.
* hbqtwidgets/silverlight.prg
* hbqtwidgets/slidinglist.prg
* hbqtwidgets/toolbarex.prg
* hbqtwidgets/treeview.prg
* hbqtwidgets/visualitems.prg
* hbqtwidgets/visualizer.prg
+ Many visual enhancements.
* hbqtwidgets/hbqtwidgets.hbp
+ {android}-d__ANDROID
2015-07-30 16:50 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r414)
* hbqt/hbmk2_qt.hb
% Changed: hb_regexMatch() -> hb_regexHas().
! Fixed: a nasty bug ( coutesy Francek ).
* hbqt/qtcore/hbqt_bind.cpp
+ __HBQT_FINDCHILDOBJECT( oQObjectDerivedObject, cChild )
% Some tracing enhancements.
* hbqt/qtcore/qth/QMetaObject.qth
! Streamlined static function ::invokeMethod().
It was necessary to have this method working for QML implementation.
* hbqt/qtcore/qth/QObject.qth
+ Added: more Qt 5.5 introduced methods.
* hbqt/qtgui/hbqt_init.cpp
+ Added: code to manage QImage referenced slots.
* hbqt/qtgui/qth/QWidget.qth
% Removed and added wrongly brought signals.
This had no impact on compiling process.
* hbqt/qtmultimedia/qth/QCamera.qth
* hbqt/qtquick/qth/QQuickWidget.qth
% Flagged to be compiled as non-destroyable by Harbour object.
* hbqt/qzxing/hbqt_hbqzxing.cpp
* hbqt/qzxing/hbqt_hbqzxing.h
+ hbqt/qzxing/hbqt_qabstractvideosurface.cpp
+ hbqt/qzxing/hbqt_qabstractvideosurface.h
+ hbqt/qzxing/hbqt_qquickpainteditem.cpp
+ hbqt/qzxing/hbqt_qquickpainteditem.h
* hbqt/qzxing/hbqtzxing.hbm
* hbqt/qzxing/imagehandler.cpp
* hbqt/qzxing/qth/filelist.hbm
+ hbqt/qzxing/qth/HBQAbstractVideoSurface.qth
* hbqt/qzxing/qth/QZXing.qth
* hbqt/qzxing/zxing/zxing/qrcode/decoder/QRDecodedBitStreamParser.cpp
! Restructed QZing to correctly scan barcodes from an image.
+ Added: class HBQAbstractVideoSurface() to manage video frames
from QML based Camera Type and QWidget based QCamera API's.
Gave me tough times but at the end it was nailed down.
2015-07-02 08:41 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r413)
* hbqt/qtqml/qth/QJSValue.qth
! Miss from the previous commit.
Qt 5.5 fixed a bug in Qt 5.4.
2015-06-30 13:47 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r412)
+ hbqt/qtlocation
+ hbqt/qtlocation/doc
+ hbqt/qtlocation/doc/en
+ hbqt/qtlocation/hbqt_init.cpp
+ hbqt/qtlocation/hbqtlocation.hbc
+ hbqt/qtlocation/hbqtlocation.hbm
+ hbqt/qtlocation/hbqtlocation.hbp
+ hbqt/qtlocation/hbqtlocation.hbx
+ hbqt/qtlocation/hbqtlocations.hbp
+ hbqt/qtlocation/qth
+ hbqt/qtlocation/qth/filelist.hbm
+ hbqt/qtlocation/qth/QGeoCodeReply.qth
+ hbqt/qtlocation/qth/QGeoCodingManager.qth
+ hbqt/qtlocation/qth/QGeoCodingManagerEngine.qth
+ hbqt/qtlocation/qth/QGeoManeuver.qth
+ hbqt/qtlocation/qth/QGeoRoute.qth
+ hbqt/qtlocation/qth/QGeoRouteReply.qth
+ hbqt/qtlocation/qth/QGeoRouteRequest.qth
+ hbqt/qtlocation/qth/QGeoRouteSegment.qth
+ hbqt/qtlocation/qth/QGeoRoutingManager.qth
+ hbqt/qtlocation/qth/QGeoRoutingManagerEngine.qth
+ hbqt/qtlocation/qth/QGeoServiceProvider.qth
+ hbqt/qtlocation/qth/QGeoServiceProviderFactory.qth
+ hbqt/qtlocation/qth/QPlace.qth
+ hbqt/qtlocation/qth/QPlaceAttribute.qth
+ hbqt/qtlocation/qth/QPlaceCategory.qth
+ hbqt/qtlocation/qth/QPlaceContactDetail.qth
+ hbqt/qtlocation/qth/QPlaceContent.qth
+ hbqt/qtlocation/qth/QPlaceContentReply.qth
+ hbqt/qtlocation/qth/QPlaceContentRequest.qth
+ hbqt/qtlocation/qth/QPlaceDetailsReply.qth
+ hbqt/qtlocation/qth/QPlaceEditorial.qth
+ hbqt/qtlocation/qth/QPlaceIcon.qth
+ hbqt/qtlocation/qth/QPlaceIdReply.qth
+ hbqt/qtlocation/qth/QPlaceImage.qth
+ hbqt/qtlocation/qth/QPlaceManager.qth
+ hbqt/qtlocation/qth/QPlaceManagerEngine.qth
+ hbqt/qtlocation/qth/QPlaceMatchReply.qth
+ hbqt/qtlocation/qth/QPlaceMatchRequest.qth
+ hbqt/qtlocation/qth/QPlaceProposedSearchResult.qth
+ hbqt/qtlocation/qth/QPlaceRatings.qth
+ hbqt/qtlocation/qth/QPlaceReply.qth
+ hbqt/qtlocation/qth/QPlaceResult.qth
+ hbqt/qtlocation/qth/QPlaceReview.qth
+ hbqt/qtlocation/qth/QPlaceSearchReply.qth
+ hbqt/qtlocation/qth/QPlaceSearchRequest.qth
+ hbqt/qtlocation/qth/QPlaceSearchResult.qth
+ hbqt/qtlocation/qth/QPlaceSearchSuggestionReply.qth
+ hbqt/qtlocation/qth/QPlaceSupplier.qth
+ hbqt/qtlocation/qth/QPlaceUser.qth
+ Added: Qt 5.5 published QtLocation library exposing locations API.
This library is used in combination with QtPositioning.
* qtcontribs.hbp
+ Added: hbqtlocation.hbp
* hbqt/hbmk2_qt.hb
+ Added: QObject derived class identifiers for QtLocation.
* hbqt/qtcore/hbqt.h
+ Added: #include <QtCore/QObject>
Some headers seem boken in Qt 5.5.
* hbqt/qtcore/hbqt_init.cpp
+ Added: QString$QString, pointera$int$QString callbacks.
Needed for QtLocation defined signals.
+ Added: constants exposed in QtLocation classes.
2015-06-16 16:51 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r411)
* hbide/actions.prg
* hbide/changelog.prg
* hbide/console.prg
* hbide/dbumgr.prg
* hbide/debugger.prg
* hbide/dict.prg
* hbide/docks.prg
* hbide/docwriter.prg
* hbide/edit.prg
* hbide/editor.prg
* hbide/environ.prg
* hbide/findreplace.prg
* hbide/format.prg
* hbide/functions.prg
* hbide/harbourhelp.prg
* hbide/hbqtoolbar.prg
* hbide/home.prg
* hbide/main.prg
* hbide/misc.prg
* hbide/object.prg
* hbide/parts.prg
* hbide/plugins.prg
* hbide/projectwizard.prg
* hbide/projmanager.prg
* hbide/saveload.prg
* hbide/shortcuts.prg
* hbide/skeletons.prg
* hbide/sources.prg
* hbide/stylesheets.prg
* hbide/tags.prg
* hbide/themes.prg
* hbide/tools.prg
* hbide/uisrcmanager.prg
* hbide/wizard.prg
% Copyright year bump.
% Formatting to some sources
! Fixed: reading .hbd files. Now Harbour Help is displayed properly.
% Changed: the behavior of Functions List to start with "Natural Order"
instead of "Sorted Order"
! few more minor fixes.
2015-05-27 17:40 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r410)
* hbqt/hbmk2_qt.hb
! Fixed: greedy regular expression. Was breaking compilation of sone .uis.
* hbqt/qtcore/hbqt_misc.prg
% Optimizations.
* hbqt/qtcore/qth/QRect.qth
* hbqt/qtcore/qth/QRectF.qth
+ Added: new methods introduced in recent Qt versions.
+ Added: one more constant.
+ hbqtwidgets/resources/add.png
+ hbqtwidgets/resources/brw-bottom.png
+ hbqtwidgets/resources/brw-down.png
+ hbqtwidgets/resources/brw-far-left.png
+ hbqtwidgets/resources/brw-far-right.png
+ hbqtwidgets/resources/brw-field.png
+ hbqtwidgets/resources/brw-index.png
+ hbqtwidgets/resources/brw-left.png
+ hbqtwidgets/resources/brw-page-down.png
+ hbqtwidgets/resources/brw-page-up.png
+ hbqtwidgets/resources/brw-right.png
+ hbqtwidgets/resources/brw-search.png
+ hbqtwidgets/resources/brw-top.png
+ hbqtwidgets/resources/brw-up.png
+ hbqtwidgets/resources/checkbox-checked-1.png
+ hbqtwidgets/resources/checkbox-checked-g.png
+ hbqtwidgets/resources/checkbox-checked.png
+ hbqtwidgets/resources/checkbox-unchecked-1.png
+ hbqtwidgets/resources/checkbox-unchecked-g.png
+ hbqtwidgets/resources/checkbox-unchecked.png
+ hbqtwidgets/resources/eye-close-48.png
+ hbqtwidgets/resources/eye-close.png
+ hbqtwidgets/resources/eye-open-48.png
+ hbqtwidgets/resources/eye-open.png
+ hbqtwidgets/resources/left-close.png
+ hbqtwidgets/resources/left-open.png
+ hbqtwidgets/resources/module.png
+ hbqtwidgets/resources/right-close.png
+ hbqtwidgets/resources/right-open.png
+ hbqtwidgets/resources/select-1.png
+ hbqtwidgets/resources/vz-chat-2.png
+ hbqtwidgets/resources/vz-chat.png
+ hbqtwidgets/resources/vz-clock.png
+ hbqtwidgets/resources/vz-collapse.png
+ hbqtwidgets/resources/vz-data.png
+ hbqtwidgets/resources/vz-filter.png
+ hbqtwidgets/resources/vz-items.png
+ hbqtwidgets/resources/vz-layerchange.png
+ hbqtwidgets/resources/vz-layers.png
+ hbqtwidgets/resources/vz-maps.png
+ hbqtwidgets/resources/vz-menu.png
+ hbqtwidgets/resources/vz-more.png
+ hbqtwidgets/resources/vz-mover.png
+ hbqtwidgets/resources/vz-navigate.png
+ hbqtwidgets/resources/vz-properties.png
+ hbqtwidgets/resources/vz-resizer.png
+ hbqtwidgets/resources/vz-states.png
+ hbqtwidgets/resources/vz-threaded.png
+ hbqtwidgets/resources/vz-topic.png
+ Added: some more images.
* hbqtwidgets/hbqtwidgets.qrc
+ Added: entries to above images.
+ Added another constant to manage layers in Visualizer.
* hbqtwidgets/alert.prg
* hbqtwidgets/getlist.prg
* hbqtwidgets/getsys.prg
* hbqtwidgets/hbqtbrowse.prg
* hbqtwidgets/hbqtcolumn.prg
+ hbqtwidgets/messages.prg
* hbqtwidgets/misc.prg
* hbqtwidgets/properties.prg
* hbqtwidgets/silverlight.prg
* hbqtwidgets/slidinglist.prg
* hbqtwidgets/toolbarex.prg
* hbqtwidgets/visualitems.prg
* hbqtwidgets/visualizer.prg
* hbqtwidgets/visualizer.ui
+ hbqtwidgets/messages.ui
* hbqtwidgets/hbqtwidgets.hbp
This commit is a sum total of many enhancements and new features mainly
targetting mobile platforms. Notably, HbQtBrowser has undergone tons of
improvements along-side HbQt Get System. HbQtBrowse now implements modeless
cell editing taking use of HbQtSilverLight object. This is specially useful
for mobile apps where modal event loops are not handelled well.
Now all of the HbQtWidget objects are desktop + mobile compliant.
2015-03-24 09:16 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r409)
* hbqt/qtgui/qth/QCompleter.qth
+ Added: methods introduced in Qt5.2.
* hbqt/hbmk2_qt.hb
% Changed: Rewritten .ui parser code by Francek Prijatelj.
A greately improved parser which fixes many left-overs and other issues.
Tested on HbIDE, HbDBU, many tests and my applications. It is
backwardly compatible but still needs to be improved upon
signal/slots, mostly, by switching on/off by a define.
Please give a big hand to Francek. I personally pay a big thank-you.
2015-03-02 16:11 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r408)
+ libs/openssl-1.0.2/iphone-os
+ libs/openssl-1.0.2/iphone-os/libcrypto.a
+ libs/openssl-1.0.2/iphone-os/libssl.a
+ Added miss from the previous commit.
2015-03-02 16:10 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r407)
* debug/hwgdebug.hbp
% Fixed: build path.
* hbqt/qtgui/qth/QGraphicsItemGroup.qth
+ Added: Static methods.
+ libs
+ libs/openssl-1.0.2
+ libs/openssl-1.0.2/android-armv7
+ libs/openssl-1.0.2/android-armv7/libcrypto.a
+ libs/openssl-1.0.2/android-armv7/libssl.a
+ libs/openssl-1.0.2/mingw491_32
+ libs/openssl-1.0.2/mingw491_32/libcrypto.a
+ libs/openssl-1.0.2/mingw491_32/libssl.a
+ libs/openssl-1.0.2/mac-osx
+ libs/openssl-1.0.2/mac-osx/libcrypto.a
+ libs/openssl-1.0.2/mac-osx/libssl.a
+ Added: Latest OpenSSL binaries linked statically for various platforms.
iOS binary is a fat one containg all flavours for iPhone Simulator,
iPhone -arm86, -arm7v, -x86_64, etc.
The reason to have these binaries in the SVN is that not everybody
has the expertise to build them on their systems because of many
depenendancies must be installed on the machine. In the past I
struggled to obtain the static libraries without success. I thank
Przemek for many pointers to this direction.
2015-02-20 16:50 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r406)
* hbqt/qtcore/qth/QVariant.qth
+ Uncommented method: "const char * typeName () const"
* hbqtwidgets/editor.prg
% Simplifications.
* hbide/setup.ui
+ Added: <General><Editing Area><Split Instances Vertical Prime?>
* hbide/docwriter.prg
* hbide/editor.prg
* hbide/findreplace.prg
* hbide/main.prg
* hbide/misc.prg
* hbide/projmanager.prg
* hbide/saveload.prg
* hbide/sources.prg
* hbide/tools.prg
% Mainly simplification.
+ Redesigned: editing instance "SPLIT" protocol.
Splitting an editing instance can be configured in two ways:
HORIZONTAL Prime [ Default ]
or
VERTICAL Prime [ via <Setup><HbIDE Setup><General><Editing Area>
<Split Instances Vertical Prime?> ]
Horizontal Prime : | | |
| | |
-----
| | |
| | |
Vertical Prime | | |
| | |
---------
| |
| |
2015-02-16 20:59 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r405)
* hbqt/hbmk2_qt.hb
% Changed: to use stdout and/or stderr while catching result of
external process executed to detect the Qt version.
* hbqt/qtcore/qth/QByteArray.qth
% Changed: const char * constData()/data() returns data in proper length
by changing hb_retc(...) to hb_retclen(..., p->size()).
* hbqt/qtcore/qth/QMimeData.qth
% Changed: ( an HbQt Extention )
QVariant imageData () const
=>
QImage imageData () const
It is always tricky to manage all types in QVariant what Qt provides.
Also as the method name implies, one expects that it will return the
immage associated with QMimeData. And hence this simplification.
@Ryszard Glab
Other big stopper was pasting images from the clipboard. Current code
stores QImage in QVariant variable however QVariant has no method to convert
it to QImage. According to the Qt documentation the only solution is casting
at C++ level.
* hbqt/qtgui/hbqt_hbqabstractitemmodel.cpp
* hbqt/qtgui/hbqt_hbqabstractitemmodel.h
+ Added: bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole );
It is a handy mechanism to write back the values of a field just as
those are retrieved via getData method.
@Ryszard Glab
The really big problem with current hbqt code is lack of in-place editing
features of QTableView. Althought QTableView can edit cells using standard
build-in delegates (it work if you return Flags with Qt_ItemIsEditable and
use Qt_EditRole to get value from cell) however there is no possibility to
get back edited value from the delegate editor. Please consider the
following patch to extend current code to return the edited value to
codeblock used in hb_qabstractitemmodel - it requires the the codeblock have
to accept additional fifth parameter.
; The above patch is submitted by Ryszard Glab, a big thank you.
For those who are new to Harbour and HbQt - an introduction to Ryszard Glab.
Ryszard is one of the pioneers in maturing Harbour since its birth until 2008.
Below is his last commit in Harbour:
2008-02-02 23:40 UTC+0100 Ryszard Glab (harbour//
rglab.pl)
Till date he is remembered for his in-depth knowledge about programming
concepts and specifically Harbour. He is finishing a big project
heavily based on HbQt. This patch highlights the state of HbQt to
the effect that now we are production ready.
I have requested him if he could provide few screen-shots of HbQt based
application with short description about its end-usage. That will certainly
put HbQt on some higher plane.
2015-02-13 17:30 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r404)
* hbqt/qtgui/hbqt_hbqgraphicsscene.cpp
% Changed HBQGraphicsScene's grid ruler marking text in ( value / 100 ).
Before it was ( value / 10 ). It prevents cluttering and also
facilitates easy grasp of scalings.
+ hbqtwidgets/resources/prv_zoom_locate.png
* hbqtwidgets/hbqtwidgets.qrc
+ Added a new icon to zoom visualizer scene to clicked position.
* hbqtwidgets/hbqtbrowse.prg
% Changed: HbQtBrowser's scroll behavior to pixels instead of items.
This is a needed feature for mobile devices.
* hbqtwidgets/visualitems.prg
* hbqtwidgets/visualizer.prg
% Modified to scale pixmaps only once per type of image and scene scale.
+ Added another toolbar icon to reach anywhere on the scene but preserving
the zoom level before activation.
1. Zoom to the desired level.
2. Click on the "Zoom Locate" icon.
3. Scene will turn to fit-in-view mode.
4. Double-click on the derired area of the scene.
5. Scene will zoom to previous scale with clicked area anchored in center.
* hbqtwidgets/tests/demovisualizer.prg
! Fixed to demonstrate above feature and to respect previous changes.
2015-02-13 12:41 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r403)
* hbqtwidgets/editor.prg
+ Added: more methods to enahnce its usability.
* hbqtwidgets/hbqtdbu.prg
+ Fixed a nasty bug surfacing when editing last column was finished.
* hbqtwidgets/misc.prg
+ Added function __hbqtLiteDebug( ... ).
The debug string build from list of parameters passed, CNLD types,
is shown as Window's Titlebar retrieved by __hbqtAppWidget().
This is very handy mechanism to debug something on the fly.
__hbqtLiteDebug( "This Text", 213.13, .t., date() )
* hbide/debugger.prg
% Minor. A fix to manage re-availability of Editing Instance Split
functionality.
* hbide/editor.prg
+ Re-activated editing instance's SPLIT feature with more functionality.
Now split can be Horizontal AND/OR Vertical, both together.
+ hbqtwidgets/tests/glossybutton.prg
+ Added demo app to demonstrate QEvent_Paint implementation as a
separate source. The demo is submitted by Luigi, many thanks.
2015-02-11 17:14 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r402)
* hbqt/qscintilla/hbqscintilla.hbp
% Patch sent by Francesco.
* hbqtwidgets/getsys.prg
! Fixed: SET CENTURY ON issue for QGET of type date.
2015-02-02 16:24 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r401)
* hbqt/qscintilla/hbqscintilla.hbp
* hbqt/qscintilla/qth/QsciCommandSet.qth
* hbqt/qscintilla/qth/QsciStyle.qth
% Another patch sent by Francesco.
; Francesco, make sure that you are working with the latest sources
from SF. I had to repatch one you sent from older one.
2015-02-02 00:04 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r400)
+ hbqt/hbqtscintilla.hbc
+ Added .hbc stub to compile hbqscintilla lib.
* hbqt/hbqt.hbc
+ Added: entry for hbqtqscintilla.hbc but commented out.
* hbqt/qscintilla/qth/filelist.hbm
- Commented out few no-longer-required classes.
* hbqt/qscintilla/qth/HBQsciScintilla.qth
* hbqt/qscintilla/qth/QsciAbstractAPIs.qth
* hbqt/qscintilla/qth/QsciAPIs.qth
* hbqt/qscintilla/qth/QsciCommand.qth
* hbqt/qscintilla/qth/QsciCommandSet.qth
* hbqt/qscintilla/qth/QsciDocument.qth
* hbqt/qscintilla/qth/QsciLexer.qth
* hbqt/qscintilla/qth/QsciLexerCPP.qth
* hbqt/qscintilla/qth/QsciLexerFlagship.qth
* hbqt/qscintilla/qth/QsciScintilla.qth
* hbqt/qscintilla/qth/QsciStyle.qth
* hbqt/qscintilla/qth/QsciStyledText.qth
* hbqt/qscintilla/hbqscintilla.hbc
* hbqt/qscintilla/hbqscintilla.hbm
* hbqt/qscintilla/hbqscintilla.hbp
* hbqt/qscintilla/hbqt_hbqsciscintilla.h
! Changes to address QScintilla v2.
; NOTE: Above patch is submitted by Francessco Perillo via Antonio Linares.
They intend to use and enhance QScintilla components.
; DISCLAIMER: I have no interest in QScintilla by now. I wrote these
wrappers to experiment QScintilla be embedded into HbIDE and
had found it to be very limited ( around 2010 ) and have no idea
what they have implemented later, and, weather it is useful
to average HbQt user or not. So any commits for this library
has to be maintained by the respective beneficiaries.
2015-02-01 14:25 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r399)
* hbqt/qtcore/hbqt_hbqslots.cpp
! Fixed: a nasty bug surfacing at some rare combination of libraries.
A SLOT is actually defined/linked or not was not being tested.
* hbqt/qtpositioning/doc/en/class_qgeoareamonitorinfo.txt
* hbqt/qtpositioning/hbqt_init.cpp
% Minor.
* hbqt/qtpositioning/qth/QGeoAreaMonitorInfo.qth
- Commented QVariantMap specific methods. It is acually a typedef.
* hbqtwidgets/hbqtwidgets.hbp
+ Added: __ios__ define for .prg sources if __ios__ is defined
for Harbour builds.
* hbqtwidgets/visualizer.prg
! Guarded QPrinter specific code against #define __ios__.
QPrinter and family is still missing in Qt 5.4 iOS builds.
2015-01-30 14:35 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r398)
* hbide/hbide.hbp
- Removed: edit.prg.
* hbide/debugger.prg
! Tried to fix error in debugger in certain situations.
* hbide/main.prg
! Fixed: INS key was causing RTE.
Implementation transfererred to editing instance object.
* hbide/misc.prg
- Transferred functions belonging to editing instance to HbQtWidgets.
* hbide/resources/hbide-2014.png
% Copyright bump.
* hbqt/hbmk2_qt.hb
+ Added: UI class method :widget() which returns :oWidget.
Useful where ::oUI:oWidget is needed. Now it can be ::oUI:widget().
* hbqt/qtgui/hbqt_hbqplaintextedit.cpp
! Fixed: painting of top-most line at selection process.
* hbqtwidgets/editor.prg
+ Transferred: HbIDE contained functions belong to editing instance.
* hbqtwidgets/resources/hbdbu-2014.png
% Copyright bump.
2015-01-23 17:08 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r397)
* hbqt/qtgui/qth/filelist.hbm
* hbqt/qtnetwork/qth/filelist.hbm
- Excluded some sources not compilable in IOS.
2015-01-23 16:03 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r396)
* hbqt/qscintilla/hbqscintilla.hbc
* hbqt/qtbluetooth/hbqtbluetooth.hbc
* hbqt/qtdeclarative/hbqtdeclarative.hbc
* hbqt/qtdesigner/hbqtdesigner.hbc
* hbqt/qtmultimedia/hbqtmultimedia.hbc
* hbqt/qtmultimediawidgets/hbqtmultimediawidgets.hbc
* hbqt/qtopengl/hbqtopengl.hbc
* hbqt/qtpositioning/hbqtpositioning.hbc
* hbqt/qtqml/hbqtqml.hbc
* hbqt/qtquick/hbqtquick.hbc
* hbqt/qtscript/hbqtscript.hbc
* hbqt/qtsensors/hbqtsensors.hbc
* hbqt/qtsql/hbqtsql.hbc
* hbqt/qtsvg/hbqtsvg.hbc
* hbqt/qtwebkit/hbqtwebkit.hbc
* hbqt/qtwebsockets/hbqtwebsockets.hbc
* hbqt/qtxml/hbqtxml.hbc
* hbqt/qzxing/hbqtzxing.hbc
- Removed "S" suffix used for static libraries.
Better way is to use
HB_BUILD_NAME=-iphone | iphonesimulator | mingw-static etc.
2015-01-23 15:25 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r395)
* hbide/main.prg
! Changed: <#include "hb*.hbx"> with <REQUEST __HBEXTERN__HB*__>
Needed because some of the .hbc in <contrib> do not have
-incpaths=. switch.
2015-01-23 13:40 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r394)
* hbqt/qtcore/hbqt_simulator.c
! Fixed to be linked for all compilers, a nasty omission.
2015-01-23 13:22 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r393)
+ hbqt/qtcore/hbqt_simulator.c
+ Added missing source in previous commit.
2015-01-23 12:54 UTC-0800 Pritpal Bedi (bedipritpal at
hotmail.com)(r392)
* hbide/resources/hbide-2014.png
* hbqtwidgets/resources/hbdbu-2014.png
% Splash image copyright bumped to 2015.
* qtcontribs.hbp
% Minor.
* debug/hwgdebug.hbp
- Excluded for ios builds.
* hbdbu/hbdbu.hbp
% Added ${hb_build} token.
* hbide/findreplace.prg
! Fixed find/replace dialog to behave the same way on OSX.
* hbide/editor.prg
! Fixed to behave excatly the same way on OSX as on Windows.
* hbide/plugins.prg
+ Enhanced to through eleborate error message for
"Run as Script" feature of HbIDE.
* hbide/projmanager.prg
+ "Run as Script" feature enhanced to supply "-n", "-I*"
switches to the build engine. -I switch contains #include file
paths defined in <Setup><HbIDE Setup><Projects><Include Paths>.
* hbide/hbide.hbp
% Tuned to be built as a lib on ios.
* hbnetioqt/hbnetioq.hbp
% Added ${hb_build} token.
* hbqt/qtcore/hbqtcore.hbc
* hbqt/qtgui/hbqtgui.hbc
* hbqt/qtnetwork/hbqtnetwork.hbc
- Removed "s" from static libs definitions.
Was breaking because hbmk2 does not create a lib
with "s" suffix even if HB_STATIC_QT is defined.
* hbqt/hbqt_common.hbm
+ Added ${hb_build}
* hbqt/qtcore/hbqtcore.hbm
+ Added hbqt_simulator.c
* hbqt/qtbluetooth/hbqtbluetooth.hbp
* hbqt/qtdesigner/hbqtdesigner.hbp
* hbqt/qtopengl/hbqtopengl.hbp
* hbqt/qtquick/hbqtquick.hbp
* hbqt/qtwebkit/hbqtwebkit.hbp
* hbqt/qzxing/hbqtzxing.hbp
! Guarded not to be compiled for {__ios__}.
+ hbqt/qtcore/hbqt_simulator.c
+ Added: conditionally compilable source containing
missing functions for iOS builds, mainly for
iPhoneSimulator platform.
* hbqt/qtgui/hbqt_hbqplaintextedit.cpp
! Fixed a nasty bug persistent since begining where
some pointers were not initialized before use.
It resolves a key issue with HbQtEditor()
implementation.
+ Added Qt_Qt_Application* constants introduced in
newer versions of Qt.
* hbqt/qtgui/hbqt_hbqplaintextedit.h
* hbqt/qtgui/hbqt_hbqgraphicsitem.h
- Removed unused variables.
* hbqt/qtgui/qth/QPrinterInfo.qth
* hbqt/qtgui/qth/QPrinter.qth
* hbqt/qtgui/qth/QTextDocument.qth
* hbqt/qtgui/qth/QTextEdit.qth
* hbqt/qtgui/qth/QPlainTextEdit.qth
* hbqt/qtgui/qth/QPrintPreviewWidget.qth
* hbqt/qtgui/qth/QPrintPreviewDialog.qth
* hbqt/qtnetwork/qth/QNetworkAccessManager.qth
* hbqt/qtnetwork/qth/QNetworkReply.qth
* hbqt/qtwebsockets/qth/QWebSocketServer.qth
* hbqt/qtwebsockets/qth/QWebSocket.qth
+ Added conditional inculsion of some methods belonging
to QPrinter & family guarded against HB_BUILD_IOS.
Qt in v5.4 has an issue with these symbols for iOS.
* hbqtwidgets/hbqtwidgets.hbp
% Changes to honor builds-by-name.
+ hbqtwidgets/resources/back-icon.png
+ hbqtwidgets/resources/forward-icon.png
* hbqtwidgets/hbqtwidgets.qrc
+ Added above images.
* hbqtwidgets/editor.prg
* hbqtwidgets/misc.prg
! Fixed to work with OSX.
* hbxbp/dialog.prg
* hbxbp/generic.prg
% Cosmetic.
* hbxbp/hbxbp.hbp
% Changes to honor builds-by-name.
; This commit maily focus on OSX and IOS builds and is being
committed from MAC. How it will fare on Windows is yet to
be tested. So please be patient and report any regression.
Also one more commit is required for ios builds but those
files need more investigation and integration.