sci-biology/treeviewx: Import debian patchset for wxgtk-3.0 support

Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=563970

Package-Manager: portage-2.2.23
Signed-off-by: Justin Lecher <jlec@gentoo.org>
This commit is contained in:
Justin Lecher
2015-10-25 10:07:05 +01:00
parent 4da60ad3eb
commit f7f14ed9a6
8 changed files with 250 additions and 73 deletions

View File

@@ -0,0 +1,12 @@
## 70_choose_tree.dpatch by William Alexander Grant <william.grant@ubuntu.com.au>
--- tv-0.5.orig/tview.cpp
+++ tv-0.5/tview.cpp
@@ -209,7 +209,7 @@
wxT("SVG vector picture files (*.svg)|*.svg"),
wxSAVE|wxOVERWRITE_PROMPT);
- if (dialog.ShowModal() == wxID_OK)
+ if ((dialog.ShowModal() == wxID_OK) && (p.GetNumTrees() != 0))
{
wxSVGFileDC pictureDC (dialog.GetPath(), 600, 650) ;
OnDraw (&pictureDC);

View File

@@ -0,0 +1,40 @@
Bug: http://code.google.com/p/treeviewx/issues/detail?id=1
Description: fix crash on loading tree file.
Author: Tim Booth
--- tv-0.5.orig/tview.cpp
+++ tv-0.5/tview.cpp
@@ -278,7 +278,7 @@
char buf[256];
strcpy (buf, p->GetLabel().c_str());
wchar_t wbuf[256];
- mbstowcs (wbuf, buf, size_t(wbuf));
+ mbstowcs (wbuf, buf, 256);
s << wbuf;
#else
s << p->GetLabel().c_str();
@@ -563,7 +563,7 @@
char buf[256];
strcpy (buf, t.GetName().c_str());
wchar_t wbuf[256];
- mbstowcs (wbuf, buf, size_t(wbuf));
+ mbstowcs (wbuf, buf, 256);
txt << wbuf;
#else
txt << t.GetName().c_str();
@@ -712,7 +712,7 @@
char buf[256];
strcpy (buf, p.GetIthTreeName(i).c_str());
wchar_t wbuf[256];
- mbstowcs (wbuf, buf, size_t(wbuf));
+ mbstowcs (wbuf, buf, 256);
std::wstring tname = wbuf;
@@ -1046,6 +1046,7 @@
void MyCanvas::OnSize(wxSizeEvent& event)
{
Resize ();
+ Refresh();
event.Skip();
}

View File

@@ -0,0 +1,30 @@
Author: Olly Betts <olly@survex.com>
Description: Update configure.in to match what it must have said when configure was generated.
One thing I should probably explain about the patch as my change may
seem odd otherwise - upstream's configure.in says "USE_SVG=0" but the
generated configure says "USE_SVG=1", so I've simply updated
configure.in to match what it must have said when configure was
generated.
Forwarded: no
--- tv-0.5.orig/configure.in
+++ tv-0.5/configure.in
@@ -66,7 +66,9 @@
case "$wx_version" in
2.4.*) WX_SVG_LIB=[`$WX_CONFIG --basename`_dcsvg-`echo ${wx_version} | sed -e "s:\.[0-9]\{1,\}$::"`]
;;
- *) WX_SVG_LIB=[`$WX_CONFIG --basename`_svg-`echo ${wx_version} | sed -e "s:\.[0-9]\{1,\}$::"`]
+ 2.*) WX_SVG_LIB=[`$WX_CONFIG --basename`_svg-`echo ${wx_version} | sed -e "s:\.[0-9]\{1,\}$::"`]
+ ;;
+ *) WX_SVG_LIB=
;;
esac
@@ -76,7 +78,7 @@
if test "$USE_SVG" = 1 ; then
CXXFLAGS="$CXXFLAGS -DUSE_SVG"
- LIBS="$LIBS -l$WX_SVG_LIB"
+ test -n "$WX_SVG_LIB" && LIBS="$LIBS -l$WX_SVG_LIB"
fi
AC_OUTPUT(Makefile ncl-2.0/Makefile ncl-2.0/src/Makefile TreeLib/Makefile tv.spec)

View File

@@ -0,0 +1,16 @@
Description: Fix the extension of the icon
Author: Olly Betts <olly@survex.com>
Last-Update: 2014-06-21
Forwarded: http://code.google.com/p/treeviewx/issues/detail?id=4
--- tv-0.5.orig/tv.cpp
+++ tv-0.5/tv.cpp
@@ -215,7 +215,7 @@
frame->SetIcon(wxIcon("app")); // use the name of the icon in the resource file
#endif
#if defined(__WXGTK__) || defined(__WXMOTIF__)
- frame->SetIcon(wxIcon(wxT("bitmaps/treeview.xbm")));
+ frame->SetIcon(wxIcon(wxT("/usr/share/pixmaps/treeviewx.xpm")));
#endif
#ifdef __WXMAC__

View File

@@ -0,0 +1,78 @@
tv.cpp | 4 ++--
tview.cpp | 12 ++++++++----
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/tv.cpp b/tv.cpp
old mode 100755
new mode 100644
index 1abe90b..0df45a8
--- a/tv.cpp
+++ b/tv.cpp
@@ -163,9 +163,9 @@ bool MyApp::OnInit(void)
{
// Optional command line argument is name of file to open
#if wxUSE_UNICODE
- wchar_t *InputFile = NULL;
+ const wchar_t *InputFile = NULL;
#else
- char *InputFile = NULL;
+ const char *InputFile = NULL;
#endif
// Read input/output files
if (argc > 1)
diff --git a/tview.cpp b/tview.cpp
old mode 100755
new mode 100644
index 93972c3..4b2d593
--- a/tview.cpp
+++ b/tview.cpp
@@ -62,9 +62,13 @@
#ifdef __WXMSW__
#else
#ifdef USE_SVG
+#if wxMAJOR_VERSION >= 3
+ #include <wx/dcsvg.h>
+#else
#include <wx/svg/dcsvg.h>
#endif
#endif
+#endif
// GUI interface
#include "tv.h"
@@ -186,7 +190,7 @@ void TView::OnSavePicture (wxCommandEvent& WXUNUSED(event))
wxFrame *f = GetMainFrame();
wxFileDialog dialog((wxWindow *)f, wxT("Save Picture as"), wxT(""),
pictureFileName, wxT("Enhanced metafile (*.emf)|*.emf"),
- wxSAVE|wxOVERWRITE_PROMPT);
+ wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
if (dialog.ShowModal() == wxID_OK)
{
@@ -206,7 +210,7 @@ void TView::OnSavePicture (wxCommandEvent& WXUNUSED(event))
#endif
wxFileDialog dialog((wxWindow *)f, wxT("Save Picture as"), wxT(""),
pictureFileName, wxT("SVG vector picture files (*.svg)|*.svg"),
- wxSAVE|wxOVERWRITE_PROMPT);
+ wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
if (dialog.ShowModal() == wxID_OK)
{
@@ -361,7 +365,7 @@ bool TView::OnClose(bool deleteWindow)
// Clear the canvas in case we're in single-window mode,
// and the canvas stays.
-#if (wxMINOR_VERSION > 4) // from 2.5 Clear is deprecated
+#if (wxMAJOR_VERSION >= 3 || wxMINOR_VERSION > 4) // from 2.5 Clear is deprecated
canvas->ClearBackground();
#else
canvas->Clear();
@@ -686,7 +690,7 @@ void TView::OnLeafFont (wxCommandEvent& WXUNUSED(event))
wxFontData data;
data.SetInitialFont (LeafFont);
-#ifdef __WXMAC__
+#if wxMAJOR_VERSION >= 3 || defined __WXMAC__
wxFontDialog dialog((wxWindow *)GetFrame(), data);
#else
wxFontDialog dialog((wxWindow *)GetMainFrame(), &data);

View File

@@ -0,0 +1,34 @@
Description: Remove wxSTRING_MAXLEN (removed in wx3.0) and incomp. definition.
The definition wxSTRING_MAXLEN was removed from the public API of wxWidgets.
Its meaning was basically "take all the string", whenever a string length was
expected. The missing definition didn't raise a compilation error because
TreeLib's treedrawer.h contained a fall-back definition, which is however
incompatible with the original definition of wxWidgets and therefore is
interpreted by wxWidgets as a number representing the real string length.
This patch gets rid of the dangerous fall-back definition and of all of its
uses by using alternative wxString constructors that achieve the same
behavior.
Author: Martin Steghöfer <martin@steghoefer.eu>
Last-Update: Sun, 10 Aug 2014 14:06:42 +0200
Bug-Debian: http://bugs.debian.org/751255
--- tv-0.5.orig/TreeLib/treedrawer.cpp
+++ tv-0.5/TreeLib/treedrawer.cpp
@@ -245,7 +245,7 @@
// error in gcc, which is probably a gcc bug
{
wxCoord w, h, descent;
- wxString s (formatedString.c_str(), wxSTRING_MAXLEN);
+ wxString s (formatedString.c_str());
pt.x += dc->GetCharWidth();
pt.y -= dc->GetCharHeight()/2;
dc->DrawText (s, (int)pt.x, (int)pt.y);
@@ -566,7 +566,7 @@
#if USE_WXWINDOWS
wxCoord w, h;
- wxString s (buf, wxSTRING_MAXLEN);
+ wxString s (buf);
dc->GetTextExtent (s, &w, &h);
int x = (int)pt2.x;
int y = (int)pt2.y;

View File

@@ -1,73 +0,0 @@
--- TreeLib/nodeiterator.h.old 2002-02-24 15:37:17.000000000 -0500
+++ TreeLib/nodeiterator.h 2005-02-27 14:23:30.971981368 -0500
@@ -128,34 +128,34 @@
template <class N> N *PreorderIterator<N>::begin ()
{
- cur = root;
- return cur;
+ this->cur = this->root;
+ return this->cur;
}
template <class N> N *PreorderIterator<N>::next ()
{
- if (cur->GetChild())
+ if (this->cur->GetChild())
{
- stk.push (cur);
- N *p = (N *)(cur->GetChild());
- cur = p;
+ this->stk.push (this->cur);
+ N *p = (N *)(this->cur->GetChild());
+ this->cur = p;
}
else
{
- while (!stk.empty() && (cur->GetSibling() == NULL))
+ while (!this->stk.empty() && (this->cur->GetSibling() == NULL))
{
- cur = stk.top();
- stk.pop();
+ this->cur = this->stk.top();
+ this->stk.pop();
}
- if (stk.empty())
- cur = NULL;
+ if (this->stk.empty())
+ this->cur = NULL;
else
{
- N *p = (N *)(cur->GetSibling());
- cur = p;
+ N *p = (N *)(this->cur->GetSibling());
+ this->cur = p;
}
}
- return cur;
+ return this->cur;
}
--- TreeLib/profile.h.old 2002-12-10 06:37:57.000000000 -0500
+++ TreeLib/profile.h 2005-02-27 14:27:51.205419872 -0500
@@ -77,7 +77,7 @@
#include <ctime>
#endif
-
+using namespace std;
/**
*@typedef std::map <std::string, int, std::less<std::string> > LabelMap;
--- TreeLib/treedrawer.cpp.old 2003-08-22 06:47:28.000000000 -0400
+++ TreeLib/treedrawer.cpp 2005-02-27 14:26:19.279394752 -0500
@@ -406,7 +406,7 @@
if (q->IsLeaf())
{
double d = q->GetPathLength() - mMaxPathLength;
- mUltrametric = (std::fabs(d) <= 0.0001);
+ mUltrametric = (fabs(d) <= 0.0001);
// cout << mMaxPathLength << ":" << q->GetPathLength() << " " << d << endl;
}
q = u.next();

View File

@@ -0,0 +1,40 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
WX_GTK_VER=3.0
inherit autotools eutils wxwidgets
DESCRIPTION="A phylogenetic tree viewer"
HOMEPAGE="http://darwin.zoology.gla.ac.uk/~rpage/treeviewx/"
SRC_URI="http://darwin.zoology.gla.ac.uk/~rpage/${PN}/download/0.5/tv-${PV}.tar.gz"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~x86"
SLOT="0"
IUSE=""
DEPEND="x11-libs/wxGTK:${WX_GTK_VER}[X]"
RDEPEND="${DEPEND}"
S="${WORKDIR}/tv-${PV}"
PATCHES=(
"${FILESDIR}"/${PN}-wxt.patch
"${FILESDIR}"/${P}-gcc4.3.patch
"${FILESDIR}"/${P}-70_choose_tree.patch
"${FILESDIR}"/${P}-fix_loading_crash.patch
"${FILESDIR}"/${P}-wx30.patch
"${FILESDIR}"/${P}-svg.patch
"${FILESDIR}"/${P}-treeview-xpm-not-xbm.patch
"${FILESDIR}"/${P}-wxstring-maxlen.patch
)
src_prepare() {
epatch "${PATCHES[@]}"
mv configure.{in,ac} || die
eautoreconf
}