--- /dev/null
+Fixing build with GCC-4.5
+
+http://bugs.gentoo.org/show_bug.cgi?id=322227
+
+--- qt/CanvasView.cxx
++++ qt/CanvasView.cxx
+@@ -1670,12 +1670,12 @@
+
+ if ( cut_low < plotter_low )
+ {
+- Range currentRange = Range::Range ( plotter_low, cut_high );
++ Range currentRange = Range ( plotter_low, cut_high );
+ cut1d -> setCutRangeAt ( currentRange , 0 );
+ }
+ if ( cut_high > plotter_high )
+ {
+- Range currentRange = Range::Range ( cut_low , plotter_high );
++ Range currentRange = Range ( cut_low , plotter_high );
+ cut1d -> setCutRangeAt ( currentRange , 0 );
+ }
+ }
+@@ -1697,23 +1697,23 @@
+
+ if ( cut_low_x < plotter_low_x )
+ {
+- Range currentRange = Range::Range ( plotter_low_x, cut_high_x );
++ Range currentRange = Range ( plotter_low_x, cut_high_x );
+ cut2d -> setCutRangeAt ( currentRange , 0 );
+ }
+ if ( cut_high_x > plotter_high_x )
+ {
+- Range currentRange = Range::Range ( cut_low_x , plotter_high_x );
++ Range currentRange = Range ( cut_low_x , plotter_high_x );
+ cut2d -> setCutRangeAt ( currentRange , 0 );
+ }
+
+ if ( cut_low_y < plotter_low_y )
+ {
+- Range currentRange = Range::Range ( plotter_low_y, cut_high_y );
++ Range currentRange = Range ( plotter_low_y, cut_high_y );
+ cut2d -> setCutRangeAt ( currentRange , 1 );
+ }
+ if ( cut_high_y > plotter_high_y )
+ {
+- Range currentRange = Range::Range ( cut_low_y , plotter_high_y );
++ Range currentRange = Range ( cut_low_y , plotter_high_y );
+ cut2d -> setCutRangeAt ( currentRange , 1 );
+ }
+ }
+@@ -1730,13 +1730,13 @@
+ double old_high = oldRange.high();
+
+ if ( datax < ( old_low + old_high ) / 2 ) {
+- Range currentRange = Range::Range ( datax , old_high );
++ Range currentRange = Range ( datax , old_high );
+ cut1d -> setCutRangeAt ( currentRange , 0 );
+ }
+
+ else
+ {
+- Range currentRange = Range::Range ( old_low , datax );
++ Range currentRange = Range ( old_low , datax );
+ cut1d -> setCutRangeAt ( currentRange , 0 );
+ }
+ notifyObservers();
+@@ -1761,7 +1761,7 @@
+ if ( ( dis_low_x <= 0.1 * (old_high_x - old_low_x)) &&
+ ( dis_low_y <= 0.1 * (old_high_y - old_low_y)) &&
+ ( m_edge == 0 ) || ( m_edge == 1 ) ) {
+- Range currentRange = Range::Range ( datax, old_high_x );
++ Range currentRange = Range ( datax, old_high_x );
+ cut2d -> setCutRangeAt ( currentRange, 0 );
+
+ // Handle shift drag.
+@@ -1775,10 +1775,10 @@
+ // is protected.
+ vector <double> adjusted;
+ qtview->fillPickedPoint(view_left, view_bottom, adjusted);
+- currentRange = Range::Range ( adjusted[2], old_high_y );
++ currentRange = Range ( adjusted[2], old_high_y );
+ }
+ else
+- currentRange = Range::Range ( datay, old_high_y );
++ currentRange = Range ( datay, old_high_y );
+ cut2d -> setCutRangeAt ( currentRange, 1 );
+ m_edge = 1;
+ }
+@@ -1787,7 +1787,7 @@
+ else if ( ( dis_low_x <= 0.1 * (old_high_x - old_low_x)) &&
+ ( dis_high_y <= 0.1 * (old_high_y - old_low_y)) &&
+ ( m_edge == 0 ) || ( m_edge == 2 ) ) {
+- Range currentRange = Range::Range ( datax, old_high_x );
++ Range currentRange = Range ( datax, old_high_x );
+ cut2d -> setCutRangeAt ( currentRange, 0 );
+
+ // Handle shift drag
+@@ -1801,10 +1801,10 @@
+ // is protected.
+ vector <double> adjusted;
+ qtview->fillPickedPoint(view_left, view_top, adjusted);
+- currentRange = Range::Range ( old_low_y, adjusted[2]);
++ currentRange = Range ( old_low_y, adjusted[2]);
+ }
+ else
+- currentRange = Range::Range ( old_low_y, datay );
++ currentRange = Range ( old_low_y, datay );
+ cut2d -> setCutRangeAt ( currentRange, 1 );
+ m_edge = 2;
+ }
+@@ -1813,7 +1813,7 @@
+ else if ( ( dis_high_x <= 0.1 * (old_high_x - old_low_x)) &&
+ ( dis_low_y <= 0.1 * (old_high_y - old_low_y)) &&
+ ( m_edge == 0 ) || ( m_edge == 3 ) ) {
+- Range currentRange = Range::Range ( old_low_x, datax );
++ Range currentRange = Range ( old_low_x, datax );
+ cut2d -> setCutRangeAt ( currentRange, 0 );
+
+ // Handle shift drag.
+@@ -1827,10 +1827,10 @@
+ // is protected.
+ vector <double> adjusted;
+ qtview->fillPickedPoint(view_right, view_bottom, adjusted);
+- currentRange = Range::Range ( adjusted[2], old_high_y );
++ currentRange = Range ( adjusted[2], old_high_y );
+ }
+ else
+- currentRange = Range::Range ( datay, old_high_y );
++ currentRange = Range ( datay, old_high_y );
+ cut2d -> setCutRangeAt ( currentRange, 1 );
+ m_edge = 3;
+ }
+@@ -1839,7 +1839,7 @@
+ else if ( ( dis_high_x <= 0.1 * (old_high_x - old_low_x)) &&
+ ( dis_high_y <= 0.1 * (old_high_y - old_low_y)) &&
+ ( m_edge == 0) || ( m_edge == 4 ) ) {
+- Range currentRange = Range::Range ( old_low_x, datax );
++ Range currentRange = Range ( old_low_x, datax );
+ cut2d -> setCutRangeAt ( currentRange, 0 );
+
+ // Handle shift drag.
+@@ -1853,10 +1853,10 @@
+ // is protected.
+ vector <double> adjusted;
+ qtview->fillPickedPoint(view_right, view_top, adjusted);
+- currentRange = Range::Range ( old_low_y, adjusted[2] );
++ currentRange = Range ( old_low_y, adjusted[2] );
+ }
+ else
+- currentRange = Range::Range ( old_low_y, datay );
++ currentRange = Range ( old_low_y, datay );
+ cut2d -> setCutRangeAt ( currentRange, 1 );
+ m_edge = 4;
+ }
+@@ -1866,7 +1866,7 @@
+ ( dis_low_x <= dis_low_y ) &&
+ ( dis_low_x <= dis_high_y ) &&
+ ( m_edge == 0 ) || ( m_edge == 5 ) ) {
+- Range currentRange = Range::Range ( datax, old_high_x );
++ Range currentRange = Range ( datax, old_high_x );
+ cut2d -> setCutRangeAt ( currentRange, 0 );
+ m_edge = 5;
+ }
+@@ -1876,7 +1876,7 @@
+ ( dis_high_x <= dis_low_y ) &&
+ ( dis_high_x <= dis_high_y ) &&
+ ( m_edge == 0 ) || ( m_edge == 6 ) ) {
+- Range currentRange = Range::Range ( old_low_x, datax );
++ Range currentRange = Range ( old_low_x, datax );
+ cut2d -> setCutRangeAt ( currentRange, 0 );
+ m_edge = 6;
+ }
+@@ -1886,7 +1886,7 @@
+ ( dis_low_y <= dis_low_x ) &&
+ ( dis_low_y <= dis_high_y ) &&
+ ( m_edge == 0 ) || ( m_edge == 7 ) ) {
+- Range currentRange = Range::Range ( datay, old_high_y );
++ Range currentRange = Range ( datay, old_high_y );
+ cut2d -> setCutRangeAt ( currentRange, 1 );
+ m_edge = 7;
+ }
+@@ -1894,7 +1894,7 @@
+ // Top
+ else
+ {
+- Range currentRange = Range::Range ( old_low_y, datay );
++ Range currentRange = Range ( old_low_y, datay );
+ cut2d -> setCutRangeAt ( currentRange, 1 );
+ m_edge = 8;
+ }
+@@ -1924,7 +1924,7 @@
+ high= old_pos;
+ }
+
+- Range currentRange = Range::Range ( low, high );
++ Range currentRange = Range ( low, high );
+ cut1d -> setCutRangeAt ( currentRange , 0 );
+ }
+ notifyObservers();
+@@ -1947,7 +1947,7 @@
+ low = datax;
+ high = old_pos_x;
+ }
+- Range currentRange = Range::Range ( low, high );
++ Range currentRange = Range ( low, high );
+ cut2d -> setCutRangeAt ( currentRange, 0 );
+
+ if ( datay > old_pos_y ) {
+@@ -1958,7 +1958,7 @@
+ low = datay;
+ high = old_pos_y;
+ }
+- currentRange = Range::Range ( low, high );
++ currentRange = Range ( low, high );
+ cut2d -> setCutRangeAt ( currentRange, 1 );
+ }
+ notifyObservers();
+@@ -1989,7 +1989,7 @@
+ low = datax - width/2;
+ high = datax + width/2;
+ }
+- Range currentRange = Range::Range ( low, high );
++ Range currentRange = Range ( low, high );
+ cut1d -> setCutRangeAt (currentRange, 0 );
+ notifyObservers();
+ }
+@@ -2033,9 +2033,9 @@
+ high_y = datay + width_y/2;
+ }
+
+- Range currentRange = Range::Range ( low_x, high_x );
++ Range currentRange = Range ( low_x, high_x );
+ cut2d -> setCutRangeAt (currentRange, 0 );
+- currentRange = Range::Range ( low_y, high_y );
++ currentRange = Range ( low_y, high_y );
+ cut2d -> setCutRangeAt (currentRange, 1 );
+ notifyObservers();
+ }