commit:     d00e8fb937c0b220c170d3b78b4926ee933aa3e1
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  9 00:29:19 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Jan  9 00:38:46 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d00e8fb9

sci-visualization/zhu3d: Port to Qt5, EAPI 6, qmake-utils

Bug: https://bugs.gentoo.org/643970
Package-Manager: Portage-2.3.19, Repoman-2.3.6

 .../zhu3d/files/zhu3d-4.2.6-qt5.patch              | 205 +++++++++++++++++++++
 sci-visualization/zhu3d/zhu3d-4.2.6-r1.ebuild      |  84 +++++++++
 2 files changed, 289 insertions(+)

diff --git a/sci-visualization/zhu3d/files/zhu3d-4.2.6-qt5.patch 
b/sci-visualization/zhu3d/files/zhu3d-4.2.6-qt5.patch
new file mode 100644
index 00000000000..e1d956c8c07
--- /dev/null
+++ b/sci-visualization/zhu3d/files/zhu3d-4.2.6-qt5.patch
@@ -0,0 +1,205 @@
+From 4557d1111c030d9fa4449500b5624024abe9fc8a Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <andreas.sturmlech...@gmail.com>
+Date: Tue, 9 Jan 2018 01:01:01 +0100
+Subject: [PATCH 1/2] Initial port to Qt5
+
+---
+ src/legedit.cpp    | 14 +++++++-------
+ src/mainwindow.cpp |  2 +-
+ src/property.cpp   |  4 ++--
+ src/usredit.cpp    |  2 +-
+ zhu3d.pro          |  3 +--
+ 5 files changed, 12 insertions(+), 13 deletions(-)
+
+diff --git a/src/legedit.cpp b/src/legedit.cpp
+index b0f5b28..9ce44b0 100644
+--- a/src/legedit.cpp
++++ b/src/legedit.cpp
+@@ -89,13 +89,13 @@ void legWidget::createAxesTable() {
+       axesTable->setColumnCount(7);
+ 
+       axesTable->setHorizontalHeaderLabels(columnLabels);
+-      axesTable->horizontalHeader()->setResizeMode(0, 
QHeaderView::Interactive);
+-      axesTable->horizontalHeader()->setResizeMode(1, 
QHeaderView::Interactive);
+-      axesTable->horizontalHeader()->setResizeMode(2, QHeaderView::Fixed);
+-      axesTable->horizontalHeader()->setResizeMode(3, QHeaderView::Fixed);
+-      axesTable->horizontalHeader()->setResizeMode(4, QHeaderView::Fixed);
+-      axesTable->horizontalHeader()->setResizeMode(5, QHeaderView::Fixed);
+-      axesTable->horizontalHeader()->setResizeMode(6, QHeaderView::Fixed);
++      axesTable->horizontalHeader()->setSectionResizeMode(0, 
QHeaderView::Interactive);
++      axesTable->horizontalHeader()->setSectionResizeMode(1, 
QHeaderView::Interactive);
++      axesTable->horizontalHeader()->setSectionResizeMode(2, 
QHeaderView::Fixed);
++      axesTable->horizontalHeader()->setSectionResizeMode(3, 
QHeaderView::Fixed);
++      axesTable->horizontalHeader()->setSectionResizeMode(4, 
QHeaderView::Fixed);
++      axesTable->horizontalHeader()->setSectionResizeMode(5, 
QHeaderView::Fixed);
++      axesTable->horizontalHeader()->setSectionResizeMode(6, 
QHeaderView::Fixed);
+       axesTable->verticalHeader()->show();
+       axesTable->setShowGrid(true);
+ 
+diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
+index 970f1bf..48d23af 100644
+--- a/src/mainwindow.cpp
++++ b/src/mainwindow.cpp
+@@ -1804,7 +1804,7 @@ void MaiWindow::benchmarkSlot() {
+       QMessageBox::information(
+               this,
+               tr("Benchmark"),
+-              result.toAscii().data()
++              result.toLatin1().data()
+               );
+ 
+       /** Restore and perform updates */
+diff --git a/src/property.cpp b/src/property.cpp
+index eff4442..99216d7 100644
+--- a/src/property.cpp
++++ b/src/property.cpp
+@@ -138,11 +138,11 @@ void iniITL() {
+  ** Copy a QString to a plain old character-string
+ ****************************************************************************/
+ void q2cstrcpy(char *str, const QString qstr) {
+-      strcpy(str, qstr.toAscii().data());
++      strcpy(str, qstr.toLatin1().data());
+ }
+ 
+ char *q2cstrcpy(const QString qstr) {
+-      return qstr.toAscii().data();
++      return qstr.toLatin1().data();
+ }
+ 
+ 
+diff --git a/src/usredit.cpp b/src/usredit.cpp
+index 18b58d5..6088906 100644
+--- a/src/usredit.cpp
++++ b/src/usredit.cpp
+@@ -128,7 +128,7 @@ void usrWidget::createUsrTable() {
+       QStringList columnLabel(tr("Item"));
+ 
+       usrTable->setHorizontalHeaderLabels(columnLabel);
+-      usrTable->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
++      usrTable->horizontalHeader()->setSectionResizeMode(0, 
QHeaderView::Stretch);
+       usrTable->verticalHeader()->show();
+       usrTable->setShowGrid(true);
+ 
+diff --git a/zhu3d.pro b/zhu3d.pro
+index efa3d53..cae8b78 100644
+--- a/zhu3d.pro
++++ b/zhu3d.pro
+@@ -47,8 +47,7 @@
+ TEMPLATE  = app
+ CONFIG   += release
+ TARGET    = zhu3d
+-QT       += opengl
+-
++QT       += opengl printsupport widgets
+ 
+ # ============================================================================
+ # Workaround for Qt4-4.8.4 and missing reference to 'gluPerspective'
+-- 
+2.15.1
+
+
+From fac5c787ef8e82d92c75c91554508211e1320418 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <andreas.sturmlech...@gmail.com>
+Date: Tue, 9 Jan 2018 01:20:55 +0100
+Subject: [PATCH 2/2] Drop PostScript option, unsupported by Qt5PrintSupport
+
+---
+ src/glwidget.cpp  | 35 -----------------------------------
+ src/picedit.cpp   |  6 ------
+ src/ui/picedit.ui | 10 ----------
+ 3 files changed, 51 deletions(-)
+
+diff --git a/src/glwidget.cpp b/src/glwidget.cpp
+index 1719ec0..6343f1e 100644
+--- a/src/glwidget.cpp
++++ b/src/glwidget.cpp
+@@ -910,41 +910,6 @@ void OGLWidget::savePic() {
+                       QApplication::restoreOverrideCursor();
+                       break;
+               }
+-
+-              case PS: {
+-                      fileName=QFileDialog::getSaveFileName(
+-                                      this,
+-                                      tr("Save as *.ps"),
+-                                      workDir,
+-                                      "Images (*.ps)");
+-
+-                      if(fileName.isEmpty())
+-                              return;
+-
+-                      /** Complete filename */
+-                      if(!fileName.toUpper().endsWith(".PS"))
+-                              fileName+=".ps";
+-
+-                      /** Set up printer */
+-                      QApplication::setOverrideCursor(Qt::WaitCursor);
+-                      QPrinter printer(QPrinter::HighResolution);
+-                      printer.setOutputFormat(QPrinter::PostScriptFormat);
+-                      printer.setResolution(pic.dpi);
+-                      printer.setOutputFileName(fileName);    // Enables 
toFile automatically
+-                      printer.setFullPage(true);
+-
+-                      /** "Print" over painter */
+-                      QImage image=pixmap.toImage();
+-                      QPainter painter(&printer);
+-                      QRect rect=painter.viewport();
+-                      QSize size=image.size();
+-                      size.scale(rect.size(), Qt::KeepAspectRatio);
+-                      painter.setViewport(0, 0, size.width(), size.height());
+-                      painter.setWindow(image.rect());
+-                      painter.drawImage(0, 0, image);
+-                      QApplication::restoreOverrideCursor();
+-                      break;
+-              }
+       }
+ }
+ 
+diff --git a/src/picedit.cpp b/src/picedit.cpp
+index 149c9d3..74383a7 100644
+--- a/src/picedit.cpp
++++ b/src/picedit.cpp
+@@ -49,7 +49,6 @@ picWidget::picWidget(QWidget *parent) : QWidget(parent) {
+       connect(pngFmt, SIGNAL(clicked()), this, SLOT(pngSlot()));
+       connect(jpgFmt, SIGNAL(clicked()), this, SLOT(jpgSlot()));
+       connect(pdfFmt, SIGNAL(clicked()), this, SLOT(pdfSlot()));
+-      connect(psFmt,  SIGNAL(clicked()), this, SLOT(psSlot()));
+ }
+ 
+ 
+@@ -71,11 +70,6 @@ void picWidget::switchBox() {
+                               qual->setEnabled(false);
+                               dpi->setEnabled(false);
+                               break;
+-              case PS:
+-                              psFmt->setChecked(true);
+-                              qual->setEnabled(false);
+-                              dpi->setEnabled(true);
+-                              break;
+       }
+ }
+ 
+diff --git a/src/ui/picedit.ui b/src/ui/picedit.ui
+index 12e6148..9a498f2 100644
+--- a/src/ui/picedit.ui
++++ b/src/ui/picedit.ui
+@@ -263,16 +263,6 @@
+           </property>
+          </widget>
+         </item>
+-        <item>
+-         <widget class="QRadioButton" name="psFmt" >
+-          <property name="toolTip" >
+-           <string>PostScript</string>
+-          </property>
+-          <property name="text" >
+-           <string>PS</string>
+-          </property>
+-         </widget>
+-        </item>
+        </layout>
+       </item>
+       <item row="0" column="0" >
+-- 
+2.15.1
+

diff --git a/sci-visualization/zhu3d/zhu3d-4.2.6-r1.ebuild 
b/sci-visualization/zhu3d/zhu3d-4.2.6-r1.ebuild
new file mode 100644
index 00000000000..bbd09ac9b8e
--- /dev/null
+++ b/sci-visualization/zhu3d/zhu3d-4.2.6-r1.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit desktop qmake-utils
+
+DESCRIPTION="Interactive 3D mathematical function viewer"
+HOMEPAGE="https://sourceforge.net/projects/zhu3d";
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+DEPEND="
+       dev-qt/qtcore:5
+       dev-qt/qtgui:5
+       dev-qt/qtopengl:5
+       dev-qt/qtprintsupport:5
+       dev-qt/qtwidgets:5
+       virtual/glu
+       virtual/opengl
+"
+RDEPEND="${DEPEND}"
+
+DOCS=( {readme,src/changelog}.txt )
+HTML_DOCS=( doc/. )
+
+PATCHES=( "${FILESDIR}"/${P}-qt5.patch )
+
+src_prepare() {
+       default
+
+       local datadir=/usr/share/${PN}
+       sed \
+               -e "s:^SYSDIR=:SYSDIR=${datadir}/system:" \
+               -e "s:^TEXDIR=:TEXDIR=${datadir}/textures:" \
+               -e "s:^WORKDIR=:WORKDIR=${datadir}/work:" \
+               -e "s:^DOCDIR=:DOCDIR=/usr/share/doc/${PF}/html:" \
+               -i ${PN}.pri || die "sed zhu3d.pri failed"
+
+       sed \
+               -e "/# Optimisation/,/# Include/d" \
+               -i ${PN}.pro || die "optimisation sed failed"
+}
+
+src_configure() {
+       eqmake5 zhu3d.pro
+}
+
+src_install() {
+       # not working: emake install INSTALL_ROOT="${D}" || die
+       dobin zhu3d
+
+       einstalldocs
+
+       local lang
+       for lang in ${LANGS} ; do
+               if use linguas_${lang} ; then
+
+                       insinto /usr/share/${PN}/system/languages
+                       doins system/languages/${PN}_${lang}.qm
+
+                       if [ -e doc/${PN}_${lang}.html ] ; then
+                               dohtml doc/${PN}_${lang}.html
+                       fi
+               fi
+       done
+
+       insinto /usr/share/${PN}
+       doins -r work/textures
+
+       insinto /usr/share/${PN}/work
+       doins -r work/*.zhu work/slideshow
+
+       insinto /usr/share/${PN}/system
+       doins -r system/*.zhu system/icons
+
+       doicon system/icons/${PN}.png
+       make_desktop_entry ${PN} "Zhu3D Function Viewer" \
+               ${PN} "Education;Science;Math;Qt"
+}

Reply via email to