esubtitle.cpp: honour "rewrap subtitles" option for "gstreamer" media
authorErik Slagter <erik@slagter.name>
Fri, 17 May 2013 16:18:26 +0000 (18:18 +0200)
committerErik Slagter <erik@slagter.name>
Fri, 17 May 2013 16:18:26 +0000 (18:18 +0200)
text subtitles

lib/gui/esubtitle.cpp

index f96cac9..ac20b32 100644 (file)
@@ -155,16 +155,32 @@ void eSubtitleWidget::setPage(const ePangoSubtitlePage &p)
 {
        int elements, element, startY, width, height, size_per_element;
        int lowerborder;
+       bool rewrap;
 
        m_pango_page = p;
        m_pango_page_ok = 1;
        invalidate(m_visible_region); // invalidate old visible regions
        m_visible_region.rects.clear();
 
+       rewrap = eConfigManager::getConfigBoolValue("config.subtitles.subtitle_rewrap");
        lowerborder = eConfigManager::getConfigIntValue("config.subtitles.subtitle_position", 50);
 
        elements = m_pango_page.m_elements.size();
 
+       if(rewrap)
+       {
+               std::string::iterator it;
+
+               for (element = 0; element < elements; element++)
+               {
+                       std::string& line = m_pango_page.m_elements[element].m_pango_line;
+
+                       for (it = line.begin(); it != line.end(); it++)
+                               if((*it) == '\n')
+                                       *it = ' ';
+               }
+       }
+
        if (elements > 1)
                startY = size().height() / 2;
        else