# HG changeset patch # User Chris Cannam # Date 1373631922 -3600 # Node ID 1a0fdad4af4df7ebb2901731ae66abb7e5c727ad # Parent 8663a831838f566c315c84547d59e662f176afe1# Parent 7cb6112c59ca1e4161876dca31adcb00f77c6d6b Merge from the default branch diff -r 8663a831838f -r 1a0fdad4af4d .hgtags --- a/.hgtags Thu Jun 20 13:47:36 2013 +0100 +++ b/.hgtags Fri Jul 12 13:25:22 2013 +0100 @@ -24,3 +24,6 @@ c9d6cf9c51c8e15a06fa1f5c1678d0331dc837cb sv_v1.8 3803f6dcf361c9ec82badb20e3ca9f5c712c5d2f sv_v1.9 ea786e8bd931243adc95a040988edd0d6b5bbc0a sv_v2.0 +c6d705bf1672f2cd7f3d4cfe46aa3db6062c004c sv_v2.1 +c6d705bf1672f2cd7f3d4cfe46aa3db6062c004c sv_v2.1 +77fa3fdbfc7e2b9f96eac6524d48294fb47760c3 sv_v2.1 diff -r 8663a831838f -r 1a0fdad4af4d acinclude.m4 --- a/acinclude.m4 Thu Jun 20 13:47:36 2013 +0100 +++ b/acinclude.m4 Fri Jul 12 13:25:22 2013 +0100 @@ -66,7 +66,7 @@ AC_REQUIRE([AC_PROG_CXX]) if test x$QMAKE = x ; then - AC_CHECK_PROG(QMAKE, qmake-qt4, $QTDIR/bin/qmake-qt4,,$QTDIR/bin/) + AC_CHECK_PROG(QMAKE, qmake-qt5, $QTDIR/bin/qmake-qt5,,$QTDIR/bin/) fi if test x$QMAKE = x ; then AC_CHECK_PROG(QMAKE, qmake, $QTDIR/bin/qmake,,$QTDIR/bin/) @@ -75,16 +75,16 @@ AC_CHECK_PROG(QMAKE, qmake.exe, $QTDIR/bin/qmake.exe,,$QTDIR/bin/) fi if test x$QMAKE = x ; then - AC_CHECK_PROG(QMAKE, qmake-qt4, qmake-qt4,,$PATH) + AC_CHECK_PROG(QMAKE, qmake-qt5, qmake-qt5,,$PATH) fi if test x$QMAKE = x ; then AC_CHECK_PROG(QMAKE, qmake, qmake,,$PATH) fi if test x$QMAKE = x ; then AC_MSG_ERROR([ -Failed to find the required qmake-qt4 or qmake program. Please -ensure you have the necessary Qt4 development files installed, and -if necessary set QTDIR to the location of your Qt4 installation. +Failed to find the required qmake-qt5 or qmake program. Please +ensure you have the necessary Qt5 development files installed, and +if necessary set QTDIR to the location of your Qt5 installation. ]) fi @@ -98,11 +98,11 @@ # QMAKE_VERSION_OUTPUT=`$QMAKE -v` case "$QMAKE_VERSION_OUTPUT" in - *2.*4.*) ;; + *5.*) ;; *) AC_MSG_WARN([ *** The version of qmake found in "$QMAKE" looks like it might be - from the wrong version of Qt (Qt4 is required). Please check - that this is the correct version of qmake for Qt4 builds. + from the wrong version of Qt (Qt5 is required). Please check + that this is the correct version of qmake for Qt5 builds. ]) esac diff -r 8663a831838f -r 1a0fdad4af4d configure --- a/configure Thu Jun 20 13:47:36 2013 +0100 +++ b/configure Fri Jul 12 13:25:22 2013 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for SVgui 1.8. +# Generated by GNU Autoconf 2.69 for SVgui 2.1. # # Report bugs to . # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='SVgui' PACKAGE_TARNAME='svgui' -PACKAGE_VERSION='1.8' -PACKAGE_STRING='SVgui 1.8' +PACKAGE_VERSION='2.1' +PACKAGE_STRING='SVgui 2.1' PACKAGE_BUGREPORT='cannam@all-day-breakfast.com' PACKAGE_URL='' @@ -1319,7 +1319,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures SVgui 1.8 to adapt to many kinds of systems. +\`configure' configures SVgui 2.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1380,7 +1380,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of SVgui 1.8:";; + short | recursive ) echo "Configuration of SVgui 2.1:";; esac cat <<\_ACEOF @@ -1525,7 +1525,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -SVgui configure 1.8 +SVgui configure 2.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1865,7 +1865,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by SVgui $as_me 1.8, which was +It was created by SVgui $as_me 2.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3957,8 +3957,8 @@ if test x$QMAKE = x ; then - # Extract the first word of "qmake-qt4", so it can be a program name with args. -set dummy qmake-qt4; ac_word=$2 + # Extract the first word of "qmake-qt5", so it can be a program name with args. +set dummy qmake-qt5; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_QMAKE+:} false; then : @@ -3974,7 +3974,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_QMAKE="$QTDIR/bin/qmake-qt4" + ac_cv_prog_QMAKE="$QTDIR/bin/qmake-qt5" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -4074,8 +4074,8 @@ fi if test x$QMAKE = x ; then - # Extract the first word of "qmake-qt4", so it can be a program name with args. -set dummy qmake-qt4; ac_word=$2 + # Extract the first word of "qmake-qt5", so it can be a program name with args. +set dummy qmake-qt5; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_QMAKE+:} false; then : @@ -4091,7 +4091,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_QMAKE="qmake-qt4" + ac_cv_prog_QMAKE="qmake-qt5" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -4153,9 +4153,9 @@ fi if test x$QMAKE = x ; then as_fn_error $? " -Failed to find the required qmake-qt4 or qmake program. Please -ensure you have the necessary Qt4 development files installed, and -if necessary set QTDIR to the location of your Qt4 installation. +Failed to find the required qmake-qt5 or qmake program. Please +ensure you have the necessary Qt5 development files installed, and +if necessary set QTDIR to the location of your Qt5 installation. " "$LINENO" 5 fi @@ -4169,16 +4169,16 @@ # QMAKE_VERSION_OUTPUT=`$QMAKE -v` case "$QMAKE_VERSION_OUTPUT" in - *2.*4.*) ;; + *5.*) ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** The version of qmake found in \"$QMAKE\" looks like it might be - from the wrong version of Qt (Qt4 is required). Please check - that this is the correct version of qmake for Qt4 builds. + from the wrong version of Qt (Qt5 is required). Please check + that this is the correct version of qmake for Qt5 builds. " >&5 $as_echo "$as_me: WARNING: *** The version of qmake found in \"$QMAKE\" looks like it might be - from the wrong version of Qt (Qt4 is required). Please check - that this is the correct version of qmake for Qt4 builds. + from the wrong version of Qt (Qt5 is required). Please check + that this is the correct version of qmake for Qt5 builds. " >&2;} esac @@ -5158,10 +5158,10 @@ SV_MODULE_MODULE=vamphostsdk -SV_MODULE_VERSION_TEST="vamp-hostsdk >= 2.3.1" +SV_MODULE_VERSION_TEST="vamp-hostsdk >= 2.5" SV_MODULE_HEADER=vamp-hostsdk/PluginLoader.h SV_MODULE_LIB=vamp-hostsdk -SV_MODULE_FUNC=libvamphostsdk_v_2_3_1_present +SV_MODULE_FUNC=libvamphostsdk_v_2_5_present SV_MODULE_HAVE=HAVE_$(echo vamphostsdk | tr 'a-z' 'A-Z') SV_MODULE_FAILED=1 if test -n "$vamphostsdk_LIBS" ; then @@ -7417,7 +7417,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by SVgui $as_me 1.8, which was +This file was extended by SVgui $as_me 2.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7470,7 +7470,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -SVgui config.status 1.8 +SVgui config.status 2.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -8044,7 +8044,7 @@ fi -if ! $QMAKE -r; then +if ! $QMAKE -r svgui.pro; then as_fn_error $? "qmake failed: Command was \"$QMAKE -r\"" "$LINENO" 5 fi @@ -8056,7 +8056,7 @@ The file config.pri contains the configuration settings for qmake. If you want to adjust these by hand, edit config.pri -and run \"qmake -r\" again to regenerate the Makefile. +and run \"$QMAKE -r\" again to regenerate the Makefile. " >&5 $as_echo "$as_me: @@ -8066,5 +8066,5 @@ The file config.pri contains the configuration settings for qmake. If you want to adjust these by hand, edit config.pri -and run \"qmake -r\" again to regenerate the Makefile. +and run \"$QMAKE -r\" again to regenerate the Makefile. " >&6;} diff -r 8663a831838f -r 1a0fdad4af4d configure.ac --- a/configure.ac Thu Jun 20 13:47:36 2013 +0100 +++ b/configure.ac Fri Jul 12 13:25:22 2013 +0100 @@ -1,5 +1,5 @@ -AC_INIT(SVgui, 1.8, cannam@all-day-breakfast.com) +AC_INIT([SVgui], [2.1], cannam@all-day-breakfast.com) AC_CONFIG_SRCDIR(widgets/Fader.h) @@ -80,7 +80,7 @@ SV_MODULE_REQUIRED([sndfile],[sndfile >= 1.0.16],[sndfile.h],[sndfile],[sf_open]) SV_MODULE_REQUIRED([samplerate],[samplerate >= 0.1.2],[samplerate.h],[samplerate],[src_new]) SV_MODULE_REQUIRED([vamp],[vamp >= 2.1],[vamp/vamp.h],[],[]) -SV_MODULE_REQUIRED([vamphostsdk],[vamp-hostsdk >= 2.3.1],[vamp-hostsdk/PluginLoader.h],[vamp-hostsdk],[libvamphostsdk_v_2_3_1_present]) +SV_MODULE_REQUIRED([vamphostsdk],[vamp-hostsdk >= 2.5],[vamp-hostsdk/PluginLoader.h],[vamp-hostsdk],[libvamphostsdk_v_2_5_present]) SV_MODULE_REQUIRED([rubberband],[rubberband],[rubberband/RubberBandStretcher.h],[rubberband],[rubberband_new]) SV_MODULE_OPTIONAL([liblo],[],[lo/lo.h],[lo],[lo_address_new]) @@ -114,7 +114,7 @@ AC_OUTPUT -if ! $QMAKE -r; then +if ! $QMAKE -r svgui.pro; then AC_MSG_ERROR([qmake failed: Command was "$QMAKE -r"]) fi @@ -126,5 +126,5 @@ The file config.pri contains the configuration settings for qmake. If you want to adjust these by hand, edit config.pri -and run "qmake -r" again to regenerate the Makefile. +and run "$QMAKE -r" again to regenerate the Makefile. ]) diff -r 8663a831838f -r 1a0fdad4af4d layer/Colour3DPlotLayer.cpp --- a/layer/Colour3DPlotLayer.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/layer/Colour3DPlotLayer.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -952,13 +952,13 @@ if (!m_cache) { m_cache = new QImage (cacheWidth, cacheHeight, QImage::Format_Indexed8); - m_cache->setNumColors(256); +// No longer exists in Qt5: m_cache->setNumColors(256); m_cache->fill(0); if (!m_normalizeVisibleArea) { m_peaksCache = new QImage (cacheWidth / m_peakResolution + 1, cacheHeight, QImage::Format_Indexed8); - m_peaksCache->setNumColors(256); +// No longer exists in Qt5: m_peaksCache->setNumColors(256); m_peaksCache->fill(0); } else if (m_peaksCache) { delete m_peaksCache; diff -r 8663a831838f -r 1a0fdad4af4d layer/SpectrogramLayer.cpp --- a/layer/SpectrogramLayer.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/layer/SpectrogramLayer.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -2293,7 +2293,7 @@ if (m_colourScale == PhaseColourScale) usePeaksCache = false; } - m_drawBuffer.setNumColors(256); +// No longer exists in Qt5: m_drawBuffer.setNumColors(256); for (int pixel = 0; pixel < 256; ++pixel) { m_drawBuffer.setColor(pixel, m_palette.getColour(pixel).rgb()); } diff -r 8663a831838f -r 1a0fdad4af4d layer/TimeValueLayer.cpp --- a/layer/TimeValueLayer.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/layer/TimeValueLayer.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -81,7 +81,7 @@ } #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::setModel(" << model << ")" << endl; + std::cerr << "TimeValueLayer::setModel(" << model << ")" << std::endl; #endif emit modelReplaced(); @@ -328,6 +328,11 @@ max = std::max(fabsf(min), fabsf(max)); min = -max; } + +#ifdef DEBUG_TIME_VALUE_LAYER + std::cerr << "TimeValueLayer::getValueExtents: min = " << min << ", max = " << max << std::endl; +#endif + return true; } @@ -350,7 +355,7 @@ } #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::getDisplayExtents: min = " << min << ", max = " << max << endl; + std::cerr << "TimeValueLayer::getDisplayExtents: min = " << min << ", max = " << max << std::endl; #endif return true; @@ -373,7 +378,7 @@ m_scaleMaximum = max; #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::setDisplayExtents: min = " << min << ", max = " << max << endl; + std::cerr << "TimeValueLayer::setDisplayExtents: min = " << min << ", max = " << max << std::endl; #endif emit layerParametersChanged(); @@ -405,7 +410,7 @@ int nr = mapper->getPositionForValue(dmax - dmin); #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::getCurrentVerticalZoomStep: dmin = " << dmin << ", dmax = " << dmax << ", nr = " << nr << endl; + std::cerr << "TimeValueLayer::getCurrentVerticalZoomStep: dmin = " << dmin << ", dmax = " << dmax << ", nr = " << nr << std::endl; #endif delete mapper; @@ -460,7 +465,7 @@ } #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::setVerticalZoomStep: " << step << ": " << newmin << " -> " << newmax << " (range " << newdist << ")" << endl; + std::cerr << "TimeValueLayer::setVerticalZoomStep: " << step << ": " << newmin << " -> " << newmax << " (range " << newdist << ")" << std::endl; #endif setDisplayExtents(newmin, newmax); @@ -512,6 +517,8 @@ if (prevPoints.empty()) { usePoints = nextPoints; + } else if (nextPoints.empty()) { + // stick with prevPoints } else if (long(prevPoints.begin()->frame) < v->getStartFrame() && !(nextPoints.begin()->frame > v->getEndFrame())) { usePoints = nextPoints; @@ -524,7 +531,7 @@ int fuzz = 2; int px = v->getXForFrame(usePoints.begin()->frame); if ((px > x && px - x > fuzz) || - (px < x && x - px > fuzz + 1)) { + (px < x && x - px > fuzz + 3)) { usePoints.clear(); } } @@ -756,14 +763,29 @@ } else { getDisplayExtents(min, max); - + if (m_verticalScale == LogScale) { LogRange::mapRange(min, max); log = true; } } - if (max == min) max = min + 1.0; +#ifdef DEBUG_TIME_VALUE_LAYER + std::cerr << "TimeValueLayer::getScaleExtents: min = " << min << ", max = " << max << std::endl; +#endif + + if (max == min) { + max = max + 0.5; + min = min - 0.5; + } else { + float margin = (max - min) / 10.0; + max = max + margin; + min = min - margin; + } + +#ifdef DEBUG_TIME_VALUE_LAYER + std::cerr << "TimeValueLayer::getScaleExtents: min = " << min << ", max = " << max << " (after adjustment)" << std::endl; +#endif } int @@ -828,8 +850,8 @@ } #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::getColourForValue: min " << min << ", max " - << max << ", log " << log << ", value " << val << endl; + std::cerr << "TimeValueLayer::getColourForValue: min " << min << ", max " + << max << ", log " << log << ", value " << val << std::endl; #endif QColor solid = ColourMapper(m_colourMap, min, max).map(val); @@ -872,8 +894,8 @@ paint.setBrush(brushColour); #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::paint: resolution is " - << m_model->getResolution() << " frames" << endl; + std::cerr << "TimeValueLayer::paint: resolution is " + << m_model->getResolution() << " frames" << std::endl; #endif float min = m_model->getValueMinimum(); @@ -899,6 +921,12 @@ v->getXForFrame(frame0 + m_model->getResolution()) - v->getXForFrame(frame0); + if (m_plotStyle == PlotStems) { + if (w < 2) w = 2; + } else { + if (w < 1) w = 1; + } + paint.save(); QPainterPath path; @@ -944,7 +972,7 @@ if (m_plotStyle != PlotSegmentation) { textY = y - paint.fontMetrics().height() - + paint.fontMetrics().ascent(); + + paint.fontMetrics().ascent() - 1; if (textY < paint.fontMetrics().ascent() + 1) { textY = paint.fontMetrics().ascent() + 1; } @@ -971,8 +999,6 @@ // std::cout << "frame = " << p.frame << ", x = " << x << ", haveNext = " << haveNext // << ", nx = " << nx << std::endl; - if (w < 1) w = 1; - if (m_plotStyle == PlotDiscreteCurves) { paint.setPen(QPen(getBaseQColor(), 3)); paint.setBrush(Qt::NoBrush); @@ -1005,30 +1031,36 @@ } } + bool illuminate = false; + if (illuminateFrame == p.frame) { - //!!! aside from the problem of choosing a colour, it'd be - //better to save the highlighted rects and draw them at - //the end perhaps - - //!!! not equipped to illuminate the right section in line - //or curve mode + // not equipped to illuminate the right section in line + // or curve mode if (m_plotStyle != PlotCurve && m_plotStyle != PlotDiscreteCurves && m_plotStyle != PlotLines) { - paint.setPen(getForegroundQColor(v)); - } - } + illuminate = true; + } + } if (m_plotStyle != PlotLines && m_plotStyle != PlotCurve && m_plotStyle != PlotDiscreteCurves && m_plotStyle != PlotSegmentation) { + if (illuminate) { + paint.save(); + paint.setPen(getForegroundQColor(v)); + paint.setBrush(getForegroundQColor(v)); + } if (m_plotStyle != PlotStems || w > 1) { paint.drawRect(x, y - 1, w, 2); } + if (illuminate) { + paint.restore(); + } } if (m_plotStyle == PlotConnectedPoints || @@ -1050,7 +1082,6 @@ if (pointCount == 0) { path.moveTo(x + w/2, y); } - ++pointCount; // paint.drawLine(x + w/2, y, nx + w/2, ny); path.lineTo(nx + w/2, ny); @@ -1074,7 +1105,6 @@ if (pointCount == 0 || gap) { path.moveTo((x0 + x1) / 2, (y0 + y1) / 2); } - ++pointCount; if (nx - x > 5) { path.cubicTo(x0, y0, @@ -1094,14 +1124,14 @@ if (m_plotStyle == PlotSegmentation) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "drawing rect" << endl; + std::cerr << "drawing rect" << std::endl; #endif if (nx <= x) continue; paint.setPen(QPen(getForegroundQColor(v), 2)); - if (illuminateFrame != p.frame) { + if (!illuminate) { if (!m_drawSegmentDivisions || nx < x + 5 || x >= v->width() - 1) { @@ -1112,14 +1142,33 @@ paint.drawRect(x, -1, nx - x, v->height() + 1); } - if (p.label != "") { - if (!haveNext || nx > x + 6 + paint.fontMetrics().width(p.label)) { - v->drawVisibleText(paint, x + 5, textY, p.label, View::OutlinedText); -// paint.drawText(x + 5, textY, p.label); + QString label = p.label; + bool italic = false; + + if (label == "" && + (m_plotStyle == PlotPoints || + m_plotStyle == PlotSegmentation || + m_plotStyle == PlotConnectedPoints)) { + char lc[20]; + snprintf(lc, 20, "%.3g", p.value); + label = lc; + italic = true; + } + + if (label != "") { + bool haveRoom = nx > x + 6 + paint.fontMetrics().width(label); + if (haveRoom || + (!haveNext && + (pointCount == 0 || !italic))) { + v->drawVisibleText(paint, x + 5, textY, label, + italic ? + View::OutlinedItalicText : + View::OutlinedText); } } prevFrame = p.frame; + ++pointCount; } if ((m_plotStyle == PlotCurve || m_plotStyle == PlotDiscreteCurves || @@ -1281,7 +1330,7 @@ TimeValueLayer::drawStart(View *v, QMouseEvent *e) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::drawStart(" << e->x() << "," << e->y() << ")" << endl; + std::cerr << "TimeValueLayer::drawStart(" << e->x() << "," << e->y() << ")" << std::endl; #endif if (!m_model) return; @@ -1301,7 +1350,7 @@ i != points.end(); ++i) { if (((i->frame / resolution) * resolution) != frame) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "ignoring out-of-range frame at " << i->frame << endl; + std::cerr << "ignoring out-of-range frame at " << i->frame << std::endl; #endif continue; } @@ -1331,7 +1380,7 @@ TimeValueLayer::drawDrag(View *v, QMouseEvent *e) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::drawDrag(" << e->x() << "," << e->y() << ")" << endl; + std::cerr << "TimeValueLayer::drawDrag(" << e->x() << "," << e->y() << ")" << std::endl; #endif if (!m_model || !m_editing) return; @@ -1357,18 +1406,18 @@ if (i->frame == m_editingPoint.frame && i->value == m_editingPoint.value) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "ignoring current editing point at " << i->frame << ", " << i->value << endl; + std::cerr << "ignoring current editing point at " << i->frame << ", " << i->value << std::endl; #endif continue; } if (((i->frame / resolution) * resolution) != frame) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "ignoring out-of-range frame at " << i->frame << endl; + std::cerr << "ignoring out-of-range frame at " << i->frame << std::endl; #endif continue; } #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "adjusting to new point at " << i->frame << ", " << i->value << endl; + std::cerr << "adjusting to new point at " << i->frame << ", " << i->value << std::endl; #endif m_editingPoint = *i; m_originalPoint = m_editingPoint; @@ -1393,7 +1442,7 @@ TimeValueLayer::drawEnd(View *, QMouseEvent *) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::drawEnd" << endl; + std::cerr << "TimeValueLayer::drawEnd" << std::endl; #endif if (!m_model || !m_editing) return; finish(m_editingCommand); @@ -1450,7 +1499,7 @@ TimeValueLayer::editStart(View *v, QMouseEvent *e) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::editStart(" << e->x() << "," << e->y() << ")" << endl; + std::cerr << "TimeValueLayer::editStart(" << e->x() << "," << e->y() << ")" << std::endl; #endif if (!m_model) return; @@ -1473,7 +1522,7 @@ TimeValueLayer::editDrag(View *v, QMouseEvent *e) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::editDrag(" << e->x() << "," << e->y() << ")" << endl; + std::cerr << "TimeValueLayer::editDrag(" << e->x() << "," << e->y() << ")" << std::endl; #endif if (!m_model || !m_editing) return; @@ -1499,7 +1548,7 @@ TimeValueLayer::editEnd(View *, QMouseEvent *) { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "TimeValueLayer::editEnd" << endl; + std::cerr << "TimeValueLayer::editEnd" << std::endl; #endif if (!m_model || !m_editing) return; @@ -1791,7 +1840,7 @@ if (generation == Labeller::ValueFromCyclicalCounter || generation == Labeller::ValueFromTwoLevelCounter) { - int cycleSize = QInputDialog::getInteger + int cycleSize = QInputDialog::getInt (0, tr("Select cycle size"), tr("Cycle size:"), 4, 2, 16, 1); labeller.setCounterCycleSize(cycleSize); @@ -1839,9 +1888,9 @@ newPoint.value = i->getValue(); } else { #ifdef DEBUG_TIME_VALUE_LAYER - SVDEBUG << "Setting value on point at " << newPoint.frame << " from labeller"; + std::cerr << "Setting value on point at " << newPoint.frame << " from labeller"; if (i == points.begin()) { - SVDEBUG << ", no prev point" << endl; + std::cerr << ", no prev point" << std::endl; } else { std::cerr << ", prev point is at " << prevPoint.frame << std::endl; } diff -r 8663a831838f -r 1a0fdad4af4d svgui.pro --- a/svgui.pro Thu Jun 20 13:47:36 2013 +0100 +++ b/svgui.pro Fri Jul 12 13:25:22 2013 +0100 @@ -1,143 +1,157 @@ - -TEMPLATE = lib - -include(config.pri) - -CONFIG += staticlib qt thread warn_on stl rtti exceptions -QT += network xml gui - -TARGET = svgui - -DEPENDPATH += . ../svcore -INCLUDEPATH += . ../svcore -OBJECTS_DIR = o -MOC_DIR = o - -HEADERS += layer/Colour3DPlotLayer.h \ - layer/ColourDatabase.h \ - layer/ColourMapper.h \ - layer/ImageLayer.h \ - layer/ImageRegionFinder.h \ - layer/Layer.h \ - layer/LayerFactory.h \ - layer/NoteLayer.h \ - layer/FlexiNoteLayer.h \ - layer/PaintAssistant.h \ - layer/RegionLayer.h \ - layer/SingleColourLayer.h \ - layer/SliceableLayer.h \ - layer/SliceLayer.h \ - layer/SpectrogramLayer.h \ - layer/SpectrumLayer.h \ - layer/TextLayer.h \ - layer/TimeInstantLayer.h \ - layer/TimeRulerLayer.h \ - layer/TimeValueLayer.h \ - layer/WaveformLayer.h -SOURCES += layer/Colour3DPlotLayer.cpp \ - layer/ColourDatabase.cpp \ - layer/ColourMapper.cpp \ - layer/ImageLayer.cpp \ - layer/ImageRegionFinder.cpp \ - layer/Layer.cpp \ - layer/LayerFactory.cpp \ - layer/NoteLayer.cpp \ - layer/FlexiNoteLayer.cpp \ - layer/PaintAssistant.cpp \ - layer/RegionLayer.cpp \ - layer/SingleColourLayer.cpp \ - layer/SliceLayer.cpp \ - layer/SpectrogramLayer.cpp \ - layer/SpectrumLayer.cpp \ - layer/TextLayer.cpp \ - layer/TimeInstantLayer.cpp \ - layer/TimeRulerLayer.cpp \ - layer/TimeValueLayer.cpp \ - layer/WaveformLayer.cpp - -HEADERS += view/Overview.h \ - view/Pane.h \ - view/PaneStack.h \ - view/View.h \ - view/ViewManager.h -SOURCES += view/Overview.cpp \ - view/Pane.cpp \ - view/PaneStack.cpp \ - view/View.cpp \ - view/ViewManager.cpp - -HEADERS += widgets/ActivityLog.h \ - widgets/AudioDial.h \ - widgets/ClickableLabel.h \ - widgets/ColourNameDialog.h \ - widgets/CommandHistory.h \ - widgets/CSVFormatDialog.h \ - widgets/Fader.h \ - widgets/InteractiveFileFinder.h \ - widgets/IconLoader.h \ - widgets/ImageDialog.h \ - widgets/ItemEditDialog.h \ - widgets/KeyReference.h \ - widgets/LabelCounterInputDialog.h \ - widgets/LayerTree.h \ - widgets/LayerTreeDialog.h \ - widgets/LEDButton.h \ - widgets/ListInputDialog.h \ - widgets/MIDIFileImportDialog.h \ - widgets/ModelDataTableDialog.h \ - widgets/NotifyingCheckBox.h \ - widgets/NotifyingComboBox.h \ - widgets/NotifyingPushButton.h \ - widgets/NotifyingTabBar.h \ - widgets/Panner.h \ - widgets/PluginParameterBox.h \ - widgets/PluginParameterDialog.h \ - widgets/ProgressDialog.h \ - widgets/PropertyBox.h \ - widgets/PropertyStack.h \ - widgets/RangeInputDialog.h \ - widgets/SelectableLabel.h \ - widgets/SubdividingMenu.h \ - widgets/TextAbbrev.h \ - widgets/Thumbwheel.h \ - widgets/TipDialog.h \ - widgets/TransformFinder.h \ - widgets/WindowShapePreview.h \ - widgets/WindowTypeSelector.h -SOURCES += widgets/ActivityLog.cpp \ - widgets/AudioDial.cpp \ - widgets/ColourNameDialog.cpp \ - widgets/CommandHistory.cpp \ - widgets/CSVFormatDialog.cpp \ - widgets/Fader.cpp \ - widgets/InteractiveFileFinder.cpp \ - widgets/IconLoader.cpp \ - widgets/ImageDialog.cpp \ - widgets/ItemEditDialog.cpp \ - widgets/KeyReference.cpp \ - widgets/LabelCounterInputDialog.cpp \ - widgets/LayerTree.cpp \ - widgets/LayerTreeDialog.cpp \ - widgets/LEDButton.cpp \ - widgets/ListInputDialog.cpp \ - widgets/MIDIFileImportDialog.cpp \ - widgets/ModelDataTableDialog.cpp \ - widgets/NotifyingCheckBox.cpp \ - widgets/NotifyingComboBox.cpp \ - widgets/NotifyingPushButton.cpp \ - widgets/NotifyingTabBar.cpp \ - widgets/Panner.cpp \ - widgets/PluginParameterBox.cpp \ - widgets/PluginParameterDialog.cpp \ - widgets/ProgressDialog.cpp \ - widgets/PropertyBox.cpp \ - widgets/PropertyStack.cpp \ - widgets/RangeInputDialog.cpp \ - widgets/SelectableLabel.cpp \ - widgets/SubdividingMenu.cpp \ - widgets/TextAbbrev.cpp \ - widgets/Thumbwheel.cpp \ - widgets/TipDialog.cpp \ - widgets/TransformFinder.cpp \ - widgets/WindowShapePreview.cpp \ - widgets/WindowTypeSelector.cpp + +TEMPLATE = lib + +exists(config.pri) { + include(config.pri) +} +win* { + !exists(config.pri) { + DEFINES += HAVE_BZ2 HAVE_FFTW3 HAVE_FFTW3F HAVE_SNDFILE HAVE_SAMPLERATE HAVE_VAMP HAVE_VAMPHOSTSDK HAVE_RUBBERBAND HAVE_DATAQUAY HAVE_LIBLO HAVE_MAD HAVE_ID3TAG + } +} + +CONFIG += staticlib qt thread warn_on stl rtti exceptions +QT += network xml gui widgets + +TARGET = svgui + +DEPENDPATH += . ../svcore +INCLUDEPATH += . ../svcore +OBJECTS_DIR = o +MOC_DIR = o + +win32-g++ { + INCLUDEPATH += ../sv-dependency-builds/win32-mingw/include +} +win32-msvc* { + INCLUDEPATH += ../sv-dependency-builds/win32-msvc/include +} + +HEADERS += layer/Colour3DPlotLayer.h \ + layer/ColourDatabase.h \ + layer/ColourMapper.h \ + layer/ImageLayer.h \ + layer/ImageRegionFinder.h \ + layer/Layer.h \ + layer/LayerFactory.h \ + layer/NoteLayer.h \ + layer/FlexiNoteLayer.h \ + layer/PaintAssistant.h \ + layer/RegionLayer.h \ + layer/SingleColourLayer.h \ + layer/SliceableLayer.h \ + layer/SliceLayer.h \ + layer/SpectrogramLayer.h \ + layer/SpectrumLayer.h \ + layer/TextLayer.h \ + layer/TimeInstantLayer.h \ + layer/TimeRulerLayer.h \ + layer/TimeValueLayer.h \ + layer/WaveformLayer.h +SOURCES += layer/Colour3DPlotLayer.cpp \ + layer/ColourDatabase.cpp \ + layer/ColourMapper.cpp \ + layer/ImageLayer.cpp \ + layer/ImageRegionFinder.cpp \ + layer/Layer.cpp \ + layer/LayerFactory.cpp \ + layer/NoteLayer.cpp \ + layer/FlexiNoteLayer.cpp \ + layer/PaintAssistant.cpp \ + layer/RegionLayer.cpp \ + layer/SingleColourLayer.cpp \ + layer/SliceLayer.cpp \ + layer/SpectrogramLayer.cpp \ + layer/SpectrumLayer.cpp \ + layer/TextLayer.cpp \ + layer/TimeInstantLayer.cpp \ + layer/TimeRulerLayer.cpp \ + layer/TimeValueLayer.cpp \ + layer/WaveformLayer.cpp + +HEADERS += view/Overview.h \ + view/Pane.h \ + view/PaneStack.h \ + view/View.h \ + view/ViewManager.h +SOURCES += view/Overview.cpp \ + view/Pane.cpp \ + view/PaneStack.cpp \ + view/View.cpp \ + view/ViewManager.cpp + +HEADERS += widgets/ActivityLog.h \ + widgets/AudioDial.h \ + widgets/ClickableLabel.h \ + widgets/ColourNameDialog.h \ + widgets/CommandHistory.h \ + widgets/CSVFormatDialog.h \ + widgets/Fader.h \ + widgets/InteractiveFileFinder.h \ + widgets/IconLoader.h \ + widgets/ImageDialog.h \ + widgets/ItemEditDialog.h \ + widgets/KeyReference.h \ + widgets/LabelCounterInputDialog.h \ + widgets/LayerTree.h \ + widgets/LayerTreeDialog.h \ + widgets/LEDButton.h \ + widgets/ListInputDialog.h \ + widgets/MIDIFileImportDialog.h \ + widgets/ModelDataTableDialog.h \ + widgets/NotifyingCheckBox.h \ + widgets/NotifyingComboBox.h \ + widgets/NotifyingPushButton.h \ + widgets/NotifyingTabBar.h \ + widgets/Panner.h \ + widgets/PluginParameterBox.h \ + widgets/PluginParameterDialog.h \ + widgets/ProgressDialog.h \ + widgets/PropertyBox.h \ + widgets/PropertyStack.h \ + widgets/RangeInputDialog.h \ + widgets/SelectableLabel.h \ + widgets/SubdividingMenu.h \ + widgets/TextAbbrev.h \ + widgets/Thumbwheel.h \ + widgets/TipDialog.h \ + widgets/TransformFinder.h \ + widgets/WindowShapePreview.h \ + widgets/WindowTypeSelector.h +SOURCES += widgets/ActivityLog.cpp \ + widgets/AudioDial.cpp \ + widgets/ColourNameDialog.cpp \ + widgets/CommandHistory.cpp \ + widgets/CSVFormatDialog.cpp \ + widgets/Fader.cpp \ + widgets/InteractiveFileFinder.cpp \ + widgets/IconLoader.cpp \ + widgets/ImageDialog.cpp \ + widgets/ItemEditDialog.cpp \ + widgets/KeyReference.cpp \ + widgets/LabelCounterInputDialog.cpp \ + widgets/LayerTree.cpp \ + widgets/LayerTreeDialog.cpp \ + widgets/LEDButton.cpp \ + widgets/ListInputDialog.cpp \ + widgets/MIDIFileImportDialog.cpp \ + widgets/ModelDataTableDialog.cpp \ + widgets/NotifyingCheckBox.cpp \ + widgets/NotifyingComboBox.cpp \ + widgets/NotifyingPushButton.cpp \ + widgets/NotifyingTabBar.cpp \ + widgets/Panner.cpp \ + widgets/PluginParameterBox.cpp \ + widgets/PluginParameterDialog.cpp \ + widgets/ProgressDialog.cpp \ + widgets/PropertyBox.cpp \ + widgets/PropertyStack.cpp \ + widgets/RangeInputDialog.cpp \ + widgets/SelectableLabel.cpp \ + widgets/SubdividingMenu.cpp \ + widgets/TextAbbrev.cpp \ + widgets/Thumbwheel.cpp \ + widgets/TipDialog.cpp \ + widgets/TransformFinder.cpp \ + widgets/WindowShapePreview.cpp \ + widgets/WindowTypeSelector.cpp diff -r 8663a831838f -r 1a0fdad4af4d view/Overview.cpp --- a/view/Overview.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/view/Overview.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -22,6 +22,8 @@ #include #include +//#define DEBUG_OVERVIEW 1 + using std::cerr; using std::endl; @@ -90,14 +92,20 @@ } void -Overview::globalCentreFrameChanged(unsigned long) +Overview::globalCentreFrameChanged(unsigned long f) { +#ifdef DEBUG_OVERVIEW + std::cerr << "Overview::globalCentreFrameChanged: " << f << std::endl; +#endif update(); } void -Overview::viewCentreFrameChanged(View *v, unsigned long) +Overview::viewCentreFrameChanged(View *v, unsigned long f) { +#ifdef DEBUG_OVERVIEW + std::cerr << "Overview[" << this << "]::viewCentreFrameChanged(" << v << "): " << f << std::endl; +#endif if (m_views.find(v) != m_views.end()) { update(); } @@ -115,6 +123,10 @@ void Overview::viewManagerPlaybackFrameChanged(unsigned long f) { +#ifdef DEBUG_OVERVIEW + std::cerr << "Overview[" << this << "]::viewManagerPlaybackFrameChanged(" << f << "): " << f << std::endl; +#endif + bool changed = false; f = getAlignedPlaybackFrame(); @@ -130,7 +142,9 @@ { // Recalculate zoom in case the size of the widget has changed. -// SVDEBUG << "Overview::paintEvent: width is " << width() << ", centre frame " << m_centreFrame << endl; +#ifdef DEBUG_OVERVIEW + std::cerr << "Overview::paintEvent: width is " << width() << ", centre frame " << m_centreFrame << std::endl; +#endif size_t startFrame = getModelsStartFrame(); size_t frameCount = getModelsEndFrame() - getModelsStartFrame(); @@ -148,10 +162,14 @@ centreFrame = (startFrame + getModelsEndFrame())/2; } if (centreFrame != m_centreFrame) { -// SVDEBUG << "Overview::paintEvent: Centre frame changed from " -// << m_centreFrame << " to " << centreFrame << " and thus start frame from " << getStartFrame(); +#ifdef DEBUG_OVERVIEW + std::cerr << "Overview::paintEvent: Centre frame changed from " + << m_centreFrame << " to " << centreFrame << " and thus start frame from " << getStartFrame(); +#endif m_centreFrame = centreFrame; -// SVDEBUG << " to " << getStartFrame() << endl; +#ifdef DEBUG_OVERVIEW + std::cerr << " to " << getStartFrame() << std::endl; +#endif emit centreFrameChanged(m_centreFrame, false, PlaybackIgnore); } @@ -259,6 +277,9 @@ if (std::max(m_centreFrame, newCentreFrame) - std::min(m_centreFrame, newCentreFrame) > size_t(m_zoomLevel)) { size_t rf = alignToReference(newCentreFrame); +#ifdef DEBUG_OVERVIEW + std::cerr << "Overview::mouseMoveEvent: x " << e->x() << " and click x " << m_clickPos.x() << " -> frame " << newCentreFrame << " -> rf " << rf << std::endl; +#endif emit centreFrameChanged(rf, true, PlaybackScrollContinuous); } } @@ -269,6 +290,10 @@ long frame = getFrameForX(e->x()); size_t rf = 0; if (frame > 0) rf = alignToReference(frame); +#ifdef DEBUG_OVERVIEW + std::cerr << "Overview::mouseDoubleClickEvent: frame " << frame << " -> rf " << rf << std::endl; +#endif + m_clickedInRange = false; // we're not starting a drag with the second click emit centreFrameChanged(rf, true, PlaybackScrollContinuous); } diff -r 8663a831838f -r 1a0fdad4af4d view/Pane.cpp --- a/view/Pane.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/view/Pane.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -1124,7 +1125,6 @@ if (m_manager && m_manager->shouldShowVerticalScale()) { for (LayerList::iterator vi = m_layers.end(); vi != m_layers.begin(); ) { --vi; - QPainter paint(image); sw = (*vi)->getVerticalScaleWidth (this, m_manager->shouldShowVerticalColourScale(), paint); break; @@ -1540,7 +1540,8 @@ // std::cerr << "mouseMoveEvent" << std::endl; - updateContextHelp(&e->pos()); + QPoint pos = e->pos(); + updateContextHelp(&pos); if (m_navigating && m_clickedInRange && !m_releasing) { @@ -2374,7 +2375,8 @@ << ", possibleActions: " << e->possibleActions() << ", proposedAction: " << e->proposedAction() << std::endl; - if (e->provides("text/uri-list") || e->provides("text/plain")) { + if (e->mimeData()->hasFormat("text/uri-list") || + e->mimeData()->hasFormat("text/plain")) { if (e->proposedAction() & Qt::CopyAction) { e->acceptProposedAction(); @@ -2391,7 +2393,8 @@ std::cerr << "dropEvent: text: \"" << e->mimeData()->text().toStdString() << "\"" << std::endl; - if (e->provides("text/uri-list") || e->provides("text/plain")) { + if (e->mimeData()->hasFormat("text/uri-list") || + e->mimeData()->hasFormat("text/plain")) { if (e->proposedAction() & Qt::CopyAction) { e->acceptProposedAction(); @@ -2400,16 +2403,16 @@ e->accept(); } - if (e->provides("text/uri-list")) { - - SVDEBUG << "accepting... data is \"" << e->encodedData("text/uri-list").data() << "\"" << endl; + if (e->mimeData()->hasFormat("text/uri-list")) { + + SVDEBUG << "accepting... data is \"" << e->mimeData()->data("text/uri-list").data() << "\"" << endl; emit dropAccepted(QString::fromLocal8Bit - (e->encodedData("text/uri-list").data()) + (e->mimeData()->data("text/uri-list").data()) .split(QRegExp("[\\r\\n]+"), QString::SkipEmptyParts)); } else { emit dropAccepted(QString::fromLocal8Bit - (e->encodedData("text/plain").data())); + (e->mimeData()->data("text/plain").data())); } } } diff -r 8663a831838f -r 1a0fdad4af4d view/View.cpp --- a/view/View.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/view/View.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -731,10 +731,16 @@ void View::drawVisibleText(QPainter &paint, int x, int y, QString text, TextStyle style) const { - if (style == OutlinedText) { + if (style == OutlinedText || style == OutlinedItalicText) { paint.save(); + if (style == OutlinedItalicText) { + QFont f(paint.font()); + f.setItalic(true); + paint.setFont(f); + } + QColor penColour, surroundColour, boxColour; penColour = getForeground(); @@ -744,6 +750,7 @@ paint.setPen(Qt::NoPen); paint.setBrush(boxColour); + QRect r = paint.fontMetrics().boundingRect(text); r.translate(QPoint(x, y)); // std::cerr << "drawVisibleText: r = " << r.x() << "," <getCurrentPlayingFrame(); #ifdef DEBUG_VIEW_MANAGER - std::cout << "ViewManager::checkPlayStatus: Playing, frame " << m_playbackFrame << ", levels " << m_lastLeft << "," << m_lastRight << std::endl; + std::cerr << "ViewManager::checkPlayStatus: Playing, frame " << m_playbackFrame << ", levels " << m_lastLeft << "," << m_lastRight << std::endl; #endif emit playbackFrameChanged(m_playbackFrame); @@ -492,7 +492,7 @@ } #ifdef DEBUG_VIEW_MANAGER -// std::cout << "ViewManager::checkPlayStatus: Not playing" << std::endl; +// std::cerr << "ViewManager::checkPlayStatus: Not playing" << std::endl; #endif } } @@ -510,7 +510,7 @@ View *v = dynamic_cast(sender()); #ifdef DEBUG_VIEW_MANAGER - SVDEBUG << "ViewManager::viewCentreFrameChanged(" << f << ", " << locked << ", " << mode << "), view is " << v << endl; + std::cerr << "ViewManager::viewCentreFrameChanged(" << f << ", " << locked << ", " << mode << "), view is " << v << std::endl; #endif if (locked) { @@ -539,7 +539,7 @@ ViewManager::seek(unsigned long f) { #ifdef DEBUG_VIEW_MANAGER - std::cout << "ViewManager::seek(" << f << ")" << std::endl; + std::cerr << "ViewManager::seek(" << f << ")" << std::endl; #endif if (m_playSource && m_playSource->isPlaying()) { @@ -549,7 +549,7 @@ m_playbackFrame = f; m_playSource->play(f); #ifdef DEBUG_VIEW_MANAGER - std::cout << "ViewManager::considerSeek: reseeking from " << playFrame << " to " << f << std::endl; + std::cerr << "ViewManager::considerSeek: reseeking from " << playFrame << " to " << f << std::endl; #endif emit playbackFrameChanged(f); } @@ -578,7 +578,7 @@ } #ifdef DEBUG_VIEW_MANAGER - std::cout << "ViewManager::viewZoomLevelChanged(" << v << ", " << z << ", " << locked << ")" << std::endl; + std::cerr << "ViewManager::viewZoomLevelChanged(" << v << ", " << z << ", " << locked << ")" << std::endl; #endif emit viewZoomLevelChanged(v, z, locked); diff -r 8663a831838f -r 1a0fdad4af4d widgets/AudioDial.cpp --- a/widgets/AudioDial.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/AudioDial.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -510,7 +510,7 @@ } else { - int newPosition = QInputDialog::getInteger + int newPosition = QInputDialog::getInt (this, tr("Enter new value"), tr("Enter a new value from %1 to %2:") diff -r 8663a831838f -r 1a0fdad4af4d widgets/InteractiveFileFinder.cpp --- a/widgets/InteractiveFileFinder.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/InteractiveFileFinder.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -130,7 +130,7 @@ // Use our own QFileDialog just for symmetry with getSaveFileName below QFileDialog dialog; - dialog.setFilters(filter.split('\n')); + dialog.setNameFilters(filter.split('\n')); dialog.setWindowTitle(title); dialog.setDirectory(lastPath); @@ -254,7 +254,7 @@ // need to adjust the file extension based on the selected filter QFileDialog dialog; - dialog.setFilters(filter.split('\n')); + dialog.setNameFilters(filter.split('\n')); dialog.setWindowTitle(title); dialog.setDirectory(lastPath); @@ -289,7 +289,7 @@ if ((type == LayerFile || type == LayerFileNoMidi) && fi.suffix() == "") { QString expectedExtension; - QString selectedFilter = dialog.selectedFilter(); + QString selectedFilter = dialog.selectedNameFilter(); if (selectedFilter.contains(".svl")) { expectedExtension = "svl"; } else if (selectedFilter.contains(".txt")) { diff -r 8663a831838f -r 1a0fdad4af4d widgets/KeyReference.cpp --- a/widgets/KeyReference.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/KeyReference.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -49,7 +49,7 @@ QString name = action->text(); if (overrideName != "") name = overrideName; - QString shortcut = action->shortcut(); + QString shortcut = action->shortcut().toString(); QString tip = action->statusTip(); registerShortcut(name, shortcut, tip); diff -r 8663a831838f -r 1a0fdad4af4d widgets/LayerTree.cpp --- a/widgets/LayerTree.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/LayerTree.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -238,7 +238,7 @@ { if (!parent.isValid()) { if (row >= m_models.size()) return QModelIndex(); - return createIndex(row, column, 0); + return createIndex(row, column, (void *)0); } return QModelIndex(); diff -r 8663a831838f -r 1a0fdad4af4d widgets/LayerTreeDialog.cpp --- a/widgets/LayerTreeDialog.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/LayerTreeDialog.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -51,7 +51,11 @@ subgrid->addWidget(m_modelView); m_modelView->verticalHeader()->hide(); +#if (QT_VERSION >= 0x050000) + m_modelView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); +#else m_modelView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); +#endif m_modelView->setShowGrid(false); m_modelModel = new ModelMetadataModel(m_paneStack, true); @@ -69,7 +73,11 @@ subgrid->setMargin(5); m_layerView = new QTreeView; +#if (QT_VERSION >= 0x050000) + m_layerView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); +#else m_layerView->header()->setResizeMode(QHeaderView::ResizeToContents); +#endif subgrid->addWidget(m_layerView); m_layerModel = new LayerTreeModel(m_paneStack); diff -r 8663a831838f -r 1a0fdad4af4d widgets/ListInputDialog.cpp --- a/widgets/ListInputDialog.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/ListInputDialog.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -25,8 +25,8 @@ ListInputDialog::ListInputDialog(QWidget *parent, const QString &title, const QString &labelText, const QStringList &list, - int current, Qt::WFlags f) : - QDialog(parent, f), + int current) : + QDialog(parent), m_strings(list) { setWindowTitle(title); @@ -89,9 +89,9 @@ QString ListInputDialog::getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &list, - int current, bool *ok, Qt::WFlags f) + int current, bool *ok) { - ListInputDialog dialog(parent, title, label, list, current, f); + ListInputDialog dialog(parent, title, label, list, current); bool accepted = (dialog.exec() == QDialog::Accepted); if (ok) *ok = accepted; diff -r 8663a831838f -r 1a0fdad4af4d widgets/ListInputDialog.h --- a/widgets/ListInputDialog.h Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/ListInputDialog.h Fri Jul 12 13:25:22 2013 +0100 @@ -37,7 +37,7 @@ public: ListInputDialog(QWidget *parent, const QString &title, const QString &label, const QStringList &list, - int current = 0, Qt::WFlags f = 0); + int current = 0); virtual ~ListInputDialog(); void setItemAvailability(int item, bool available); @@ -47,7 +47,7 @@ static QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &list, - int current = 0, bool *ok = 0, Qt::WFlags f = 0); + int current = 0, bool *ok = 0); protected: QStringList m_strings; diff -r 8663a831838f -r 1a0fdad4af4d widgets/Thumbwheel.cpp --- a/widgets/Thumbwheel.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/Thumbwheel.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -373,7 +373,7 @@ } else { - int newValue = QInputDialog::getInteger + int newValue = QInputDialog::getInt (this, tr("Enter new value"), tr("Enter a new value from %1 to %2:") diff -r 8663a831838f -r 1a0fdad4af4d widgets/TipDialog.cpp --- a/widgets/TipDialog.cpp Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/TipDialog.cpp Fri Jul 12 13:25:22 2013 +0100 @@ -28,8 +28,8 @@ #include -TipDialog::TipDialog(QWidget *parent, Qt::WFlags flags) : - QDialog(parent, flags), +TipDialog::TipDialog(QWidget *parent) : + QDialog(parent), m_tipNumber(0), m_label(0), m_caption(tr("Tip of the Day")) diff -r 8663a831838f -r 1a0fdad4af4d widgets/TipDialog.h --- a/widgets/TipDialog.h Thu Jun 20 13:47:36 2013 +0100 +++ b/widgets/TipDialog.h Fri Jul 12 13:25:22 2013 +0100 @@ -32,7 +32,7 @@ Q_OBJECT public: - TipDialog(QWidget *parent = 0, Qt::WFlags flags = 0); + TipDialog(QWidget *parent = 0); virtual ~TipDialog(); bool isOK() { return !m_tips.empty(); }