]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-score.cc
Negative quote count for low quotes (,) in octave check. Fixes #201
[lilypond.git] / lily / paper-score.cc
index 8dfbc38939b4f1c8a57ed4d1137d6adf88045a2f..047e880f3c1fc085ce2899f1efd65c03fc842b51 100644 (file)
@@ -10,7 +10,6 @@
 
 #include "all-font-metrics.hh"
 #include "book.hh"
-#include "gourlay-breaking.hh"
 #include "international.hh"
 #include "main.hh"
 #include "misc.hh"
@@ -75,33 +74,41 @@ Paper_score::find_break_indices () const
        retval.push_back (i);
     }
 
+  cols_ = all;
+  break_indices_ = retval;
+
   return retval;
 }
 
+vector<vsize>
+Paper_score::get_break_indices () const
+{
+  if (break_indices_.empty ())
+    find_break_indices ();
+  return break_indices_;
+}
+
+vector<Grob*>
+Paper_score::get_columns () const
+{
+  if (cols_.empty ())
+    find_break_indices ();
+  return cols_;
+}
 
 vector<Column_x_positions>
 Paper_score::calc_breaking ()
 {
-  Break_algorithm *algorithm = 0;
+  Constrained_breaking algorithm (this);
   vector<Column_x_positions> sol;
 
   message (_ ("Calculating line breaks...") + " ");
 
   int system_count = robust_scm2int (layout ()->c_variable ("system-count"), 0);
   if (system_count)
-    {
-      Constrained_breaking *b = new Constrained_breaking;
-      b->resize (system_count);
-      algorithm = b;
-    }
-  else
-    algorithm = new Gourlay_breaking;
-  
-  algorithm->set_pscore (this);
-  sol = algorithm->solve ();
-  delete algorithm;
-
-  return sol;
+    algorithm.resize (system_count);
+
+  return algorithm.solve ();
 }
 
 void
@@ -112,7 +119,7 @@ Paper_score::process ()
                 system_->element_count (),
                 system_->spanner_count ()));
 
-  message (_ ("Preprocessing graphical objects...") + " ");
+  message (_ ("Preprocessing graphical objects..."));
 
   /* FIXME: Check out why we need this - removing gives assertion failures
      down the road.