[Qgis-developer] Patch to Remove Qt3 Dependencies
Tim Sutton
tim at linfiniti.com
Mon Apr 28 09:00:47 EDT 2008
Hi
I also had problems with applying the patch - seems to be diffs of
various of the CMakeLists.txt files. I did a bit of hacky workarounds
and was able to mostly compile under windows and mac with the
exception of some qt3isms remaining in:
src/plugins/grass/qgsgrassregion.cpp
Though I'm unsure if this is simply a symptom of me not tweaking the
patch properly.
Regards
Tim
2008/4/28 Marco Hugentobler <marco.hugentobler at karto.baug.ethz.ch>:
> Hi Tom,
>
> Many thanks for this patch.
> I tried to apply it and ran into the following problem with r8383 from trunk.
> Then the compile fails (probably because of the patching problem?).
>
> Regards,
> Marco
>
> marco at ikapc2:~/src/qgis$ patch -p0 < /home/marco/tmp/qgisqt4_r8378.diff
> patching file python/core/qgsmaplayerregistry.sip
> patching file src/app/qgsdelattrdialog.h
> patching file src/app/qgsbookmarks.cpp
> patching file src/app/qgsserversourceselect.h
> patching file src/app/legend/qgslegendlayerfile.cpp
> patching file src/app/legend/qgslegend.cpp
> patching file src/app/qgsattributetable.cpp
> Hunk #1 FAILED at 16.
> 1 out of 27 hunks FAILED -- saving rejects to file
> src/app/qgsattributetable.cpp.rej
> patching file src/app/qgsoptions.cpp
> patching file src/app/qgssearchquerybuilder.cpp
> patching file src/app/qgsrasterlayerproperties.cpp
> patching file src/app/qgsattributetable.h
> patching file src/app/qgsattributeactiondialog.cpp
> patching file src/app/qgsmeasuredialog.cpp
> patching file src/app/qgspastetransformations.cpp
> patching file src/app/composer/qgscomposermap.cpp
> patching file src/app/composer/qgscomposerlabel.cpp
> patching file src/app/composer/qgscomposer.cpp
> patching file src/app/composer/qgscomposervectorlegend.cpp
> patching file src/app/composer/qgscomposerscalebar.h
> patching file src/app/composer/qgscomposervectorlegend.h
> patching file src/app/composer/qgscomposeritem.h
> patching file src/app/qgsattributetabledisplay.cpp
> patching file src/app/qgspgquerybuilder.cpp
> Hunk #1 FAILED at 13.
> 1 out of 5 hunks FAILED -- saving rejects to file
> src/app/qgspgquerybuilder.cpp.rej
> patching file src/app/qgsabout.cpp
> patching file src/app/qgisapp.h
> patching file src/app/qgspythondialog.cpp
> patching file src/app/qgspythonutils.cpp
> patching file src/app/qgsgeomtypedialog.cpp
> patching file src/app/qgsvectorlayerproperties.cpp
> patching file src/app/qgsnumericsortlistviewitem.h
> patching file src/app/qgsgraduatedsymboldialog.cpp
> patching file src/app/qgsdbsourceselect.cpp
> patching file src/app/main.cpp
> patching file src/app/qgsdelattrdialog.cpp
> patching file src/app/qgsnumericsortlistviewitem.cpp
> patching file src/app/CMakeLists.txt
> patch: **** malformed patch at line 2869:
>
> Am Freitag 25 April 2008 04:43:54 schrieb Tom Elwertowski:
>
>
> > Hello all,
> >
> > Here is a patch which removes use of Qt3 routines for all of QGIS except
> > the GRASS plugin:
> >
> > http://telwertowski.home.comcast.net/qgisqt4_r8378.diff
> >
> > Please test it and send comments. After resolving any issues, I would like
> > to submit it to svn trunk.
> >
> > The GRASS plugin, which probably contains about half of the Qt3
> > dependencies, will be done later. The patch was done to build with the
> > Qt/Mac/64bit alpha1 release; Qt3 features are not being ported to
> > Mac/64bit.
> >
> > Three categories of changes have be made:
> >
> > 1. Remove use of qt3support library (Q3 classes).
> > 2. Remove use of qt3 compatibility routines in qt4 classes.
> > 3. Remove automatic cast of QString to char*.
> >
> > Classes and places with non-trivial changes are:
> >
> > Q3Table to QtableWidget (qgsattributeactiondialog, qgsattributetable,
> > qgsmeasure) Q3ListView to QTreeWidget (qgsbookmarks,
> > qgsrasterlayerproperties, qgsgeomtypedialog, qgsserversourceselect) Q3Dict
> > to QHash (qgsprojectproperty)
> > Q3Process to QProcess (qgsgpsplugin)
> >
> > The most complex change involved handling selections in the item view
> > classes (tables, trees and lists) so this should be tested the most.
> >
> > In spite of its name, QTreeWidget also handles multicolumn lists which are
> > not trees; just set rootIsDecoated to false. Qt4 QListWidget is for lists
> > with one column and no header.
> >
> > Qt4 has two classes for each item view: QTable/Tree/ListWidget and
> > QTable/Tree/ListView. The Widget classes contain a backing store and the
> > View classes don't. The Widget classes correspond more closely to the Q3
> > classes.
> >
> > qgsattributetable, which can take a while to load large tables, should
> > probably be rewritten as a QTableView with an QAbstractTableModel subclass
> > to pull individual cells directly for the provider as needed. It has been
> > ported as a QTableWidget to keep the port straightforward and not introduce
> > additional refactoring into this edit.
> >
> > Removing automatic casts of QString to char* also uncovered some odd code.
> > Defining QT_NO_CAST_TO_ASCII will produce a compile error whenever an
> > implicit QString cast occurs. Based on these two examples, this macro
> > serves as 'lint' for QStrings.
> >
> > QString str; delete str; // compiles due to cast of str.
> > tr("abc" + def + tr("ghi")) // ought to be tr("abc") + def + tr("ghi")
> >
> > In most cases, I have used toUtf8() to eliminate implicit casts. If a file
> > already used toAscii(), toLatin1() or toLocal8Bit(), I also used it to keep
> > the file consistent. Implicit casts have also been removed from the GRASS
> > plugin so that QT_NO_CAST_TO_ASCII can be defined for all future builds.
> >
> > The patch has been tested using Qt4.2, 4.3 and 4.4RC1 as well as
> > Qt4.4-Cocoa-alpha1.
> >
> > Tom
> > _______________________________________________
> > Qgis-developer mailing list
> > Qgis-developer at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
>
> --
> Dr. Marco Hugentobler
> Institute of Cartography
> ETH Zurich
> Technical Advisor QGIS Project Steering Committee
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
--
Tim Sutton
QGIS Project Steering Committee Member - Release Manager
Visit http://qgis.org for a great open source GIS
openModeller Desktop Developer
Visit http://openModeller.sf.net for a great open source ecological
niche modelling tool
Home Page: http://tim.linfiniti.com
Skype: timlinux
Irc: timlinux on #qgis at freenode.net
More information about the Qgis-developer
mailing list