DoUML / douml

DoUML project: fork of BoUML 4.22
74 stars 35 forks source link

QT5 support #127

Closed glixx closed 9 years ago

glixx commented 10 years ago

It's time for QT4 -> QT5.

glixx commented 9 years ago

The current QT5 implementation is unfinished and not for linux. New patch: http://svnweb.mageia.org/packages/cauldron/douml/current/SOURCES/douml-1.0-mga-qt5-linux.patch?revision=849589&view=co&pathrev=849589 But I have error:

UmlOperation.cpp: In static member function 'static void UmlOperation::write_events(FileOut&)':
UmlOperation.cpp:486:40: error: ambiguous overload for 'operator+' (operand types are 'const WrapperStr' and 'int')
                 out.quote(it_evt.key() + 1);
                                        ^
UmlOperation.cpp:486:40: note: candidates are:
UmlOperation.cpp:486:40: note: operator+(const char*, long int) <built-in>
gilbertoca commented 9 years ago

What about this tool https://github.com/KDAB/Qt4to5 ?

glixx commented 9 years ago

This tool will not help to fix compillation issue.

mobius3 commented 9 years ago

I am looking into it.

mobius3 commented 9 years ago

I am not really sure what Bruno meant with +1 there (if he wanted to cast to integer then add 1) or if he wanted to append the number 1 to the end of the string. I've never used the Xmi plugouts, so I can't really tell. Has any of you used it so that we can check the expected output?

mobius3 commented 9 years ago

I just pushed https://github.com/DoUML/douml/commit/c3c8182f7c68dccd838a6e2a6fdd7a64135e8371, project compiles with Qt5, with the issue above.

glixx commented 9 years ago

Compilation is OK now, except:

( cd src/Libs/L_UniversalModels ; ~/.local/opt/Qt/5.4/gcc_64/bin/qmake -config Release L_UniversalModels.pro; ) || exit 1 ; make -C src/Libs/L_UniversalModels || exit 1
/bin/sh: /home/user/.local/opt/Qt/5.4/gcc_64/bin/qmake: No such file or directory
Makefile:96: recipe for target 'compile' failed
make: *** [compile] Error 1
habipyesilyurt commented 9 years ago

I set up my linux environment and built Xmi2Generator withouth error mentioned above. But it seems you already solved compilation error. Can you check if "L_UniversalModels.pro" exists in "src/Libs/L_UniversalModels/". You may try to compile Universal_Models separately. Or it can be because of "shadow build" setting under "Projects" tab of Qt Creator.

glixx commented 9 years ago

I set up my linux environment and built Xmi2Generator withouth error mentioned above.

I have QT 5.5.0-rc1, but no compillation issue (ambiguous overload for 'operator+') with QT 5.4.0.

I think this issue was solved. Migration on QT5 was finished. Problem with path for qmake exists, but "make QMAKE=path/qmake" works, so it's not critical issue. QT 5.5.0-rc1 is OK now also. Many thanks for everybody.

mobius3 commented 9 years ago

The qmake path was a mistake of mine, I mistakenly commited the changes needed to compile on my machine.

Em sáb, 4 de jul de 2015 às 07:45, glixx notifications@github.com escreveu:

I set up my linux environment and built Xmi2Generator withouth error mentioned above.

I have QT 5.5.0-rc1, but no compillation issue (ambiguous overload for 'operator+') with QT 5.4.0.

I think this issue was solved. Migration on QT5 was finished. Problem with path for qmake exists, but "make QMAKE=path/qmake" works, so it's not critical issue. QT 5.5.0-rc1 is OK now also. Many thanks for everybody.

— Reply to this email directly or view it on GitHub https://github.com/DoUML/douml/issues/127#issuecomment-118499785.

gilbertoca commented 9 years ago

What about this error?

/usr/bin/moc -DQT_WEBKIT -DL_TREE_CONTROLLER_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtSql -I/usr/include -Iinclude -I../L_UniversalModels -I../../../bin/moc_release/UniversalModels include/genericeventfilter.h -o ../../../bin/moc_release/UniversalModels/moc_genericeventfilter.cpp
g++ -c -pipe -std=gnu++11 -O2 -fPIC -Wall -W -D_REENTRANT -DQT_WEBKIT -DL_TREE_CONTROLLER_LIBRARY -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtSql -I/usr/include -Iinclude -I../L_UniversalModels -I../../../bin/moc_release/UniversalModels -o ../../../bin/obj_release/UniversalModels/moc_genericeventfilter.o ../../../bin/moc_release/UniversalModels/moc_genericeventfilter.cpp
rm -f libUniversalModels.a
ar cqs libUniversalModels.a ../../../bin/obj_release/UniversalModels/TreeModel.o ../../../bin/obj_release/UniversalModels/TreeItemInterface.o ../../../bin/obj_release/UniversalModels/AdaptingTableModel.o ../../../bin/obj_release/UniversalModels/TableDataInterface.o ../../../bin/obj_release/UniversalModels/AdaptingTableModelPrivate.o ../../../bin/obj_release/UniversalModels/treeviewfunctions.o ../../../bin/obj_release/UniversalModels/treeviewtemplatefunctions.o ../../../bin/obj_release/UniversalModels/genericeventfilter.o ../../../bin/obj_release/UniversalModels/moc_TreeModel.o ../../../bin/obj_release/UniversalModels/moc_AdaptingTableModel.o ../../../bin/obj_release/UniversalModels/moc_TableDataInterface.o ../../../bin/obj_release/UniversalModels/moc_genericeventfilter.o
rm -f ../../../bin/libUniversalModels.a
mv -f libUniversalModels.a ../../../bin/
make[1]: Leaving directory '/home/gilberto.andrade/tmp/git_working_copy/douml/src/Libs/L_UniversalModels'
( cd src ; qmake -config Release douml.pro; ) || exit 1 ; make -C src || exit 1
make[1]: Entering directory '/home/gilberto.andrade/tmp/git_working_copy/douml/src'
g++ -c -pipe -std=gnu++11 -O2 -D_REENTRANT -Wall -W -DBooL=bool -DFALSE=false -DTRUE=true -DTR=tr -D__sil__ -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include -Ibrowser -Idata -Idiagram -Idialog -Imisc -Itool -Ixpm -Iboost -Isrc -Iui -I.. -ILibs/L_UniversalModels -I. -I../bin/moc_release/douml -Iui -o ../bin/obj_release/douml/BrowserAttribute.o browser/BrowserAttribute.cpp
In file included from /usr/include/QtGui/qstyleoption.h:52:0,
                 from /usr/include/QtGui/qabstractitemdelegate.h:46,
                 from /usr/include/QtGui/qabstractitemview.h:48,
                 from /usr/include/QtGui/qtreeview.h:45,
                 from /usr/include/QtGui/qtreewidget.h:45,
                 from /usr/include/QtGui/QTreeWidgetItem:1,
                 from browser/BrowserNode.h:41,
                 from browser/BrowserAttribute.h:40,
                 from browser/BrowserAttribute.cpp:40:
/usr/include/QtGui/qtabwidget.h: In member function ‘QTabBar* TabDialog::tabBar()’:
/usr/include/QtGui/qtabwidget.h:168:14: error: ‘QTabBar* QTabWidget::tabBar() const’ is protected
     QTabBar* tabBar() const;
              ^
In file included from dialog/DialogUtil.h:42:0,
                 from browser/BrowserAttribute.cpp:55:
dialog/tabdialog.h:24:51: error: within this context
     QTabBar *tabBar(){ return m_tabWidget->tabBar();}
                                                   ^
browser/BrowserAttribute.cpp: At global scope:
browser/BrowserAttribute.cpp:249:6: warning: unused parameter ‘p’ [-Wunused-parameter]
 void BrowserAttribute::paintCell(QPainter * p, const QPalette & cg, int column,
      ^
browser/BrowserAttribute.cpp:249:6: warning: unused parameter ‘cg’ [-Wunused-parameter]
browser/BrowserAttribute.cpp:249:6: warning: unused parameter ‘column’ [-Wunused-parameter]
browser/BrowserAttribute.cpp:249:6: warning: unused parameter ‘width’ [-Wunused-parameter]
browser/BrowserAttribute.cpp:249:6: warning: unused parameter ‘alignment’ [-Wunused-parameter]
Makefile:2666: recipe for target '../bin/obj_release/douml/BrowserAttribute.o' failed
make[1]: *** [../bin/obj_release/douml/BrowserAttribute.o] Error 1
make[1]: Leaving directory '/home/gilberto.andrade/tmp/git_working_copy/douml/src'
Makefile:96: recipe for target 'compile' failed
make: *** [compile] Error 1
✘-2 ~/tmp/git_working_copy/douml [master|…4] 
habipyesilyurt commented 9 years ago

Can you check if "QTabBar* QTabWidget::tabBar() const" is protected in the header files of qt version used. I have checked it in qtabwidget.h. This function is public. Which version of qt are you using?

gilbertoca commented 9 years ago

Actually, I was trying to understand why even installing version 5 the problem occurs. After reading about (https://harishnavnit.wordpress.com/2014/03/24/handling-multiple-versions-of-qt/), I found:

✘-2 ~/tmp/git_working_copy/douml [master|…4] 
[gilberto.andrade@A37710] 09:47 $ qmake -v
QMake version 2.01a
Using Qt version 4.8.6 in /usr/lib64
✔ ~/tmp/git_working_copy/douml [master|…4] 
mobius3 commented 9 years ago

Yeah, it does not compile using Qt4 anymore. It needs Qt5.

tibolpol commented 8 years ago

I have both 4 & 5 dev libs, so : make clean && QT_SELECT=5 make