esubtitle.cpp: cosmetics and small optimisations
authorErik Slagter <erik@slagter.name>
Fri, 17 May 2013 15:37:52 +0000 (17:37 +0200)
committerErik Slagter <erik@slagter.name>
Fri, 17 May 2013 16:16:57 +0000 (18:16 +0200)
lib/gui/esubtitle.cpp

index 7133e04..f96cac9 100644 (file)
@@ -153,33 +153,42 @@ void eSubtitleWidget::setPage(const eDVBSubtitlePage &p)
 
 void eSubtitleWidget::setPage(const ePangoSubtitlePage &p)
 {
+       int elements, element, startY, width, height, size_per_element;
+       int lowerborder;
+
        m_pango_page = p;
        m_pango_page_ok = 1;
        invalidate(m_visible_region); // invalidate old visible regions
        m_visible_region.rects.clear();
 
-       int elements = m_pango_page.m_elements.size();
-       if (elements)
+       lowerborder = eConfigManager::getConfigIntValue("config.subtitles.subtitle_position", 50);
+
+       elements = m_pango_page.m_elements.size();
+
+       if (elements > 1)
+               startY = size().height() / 2;
+       else
+               startY = size().height() / 3 * 2;
+
+       width = size().width() - startX * 2;
+       height = size().height() - startY;
+
+       if (elements != 0)
+               size_per_element = height / elements;
+       else
+               size_per_element = height;
+
+       for (element = 0; element < elements; element++)
        {
-               int startY = elements > 1
-                       ? size().height() / 2
-                       : size().height() / 3 * 2;
-               int width = size().width() - startX * 2;
-               int height = size().height() - startY;
-               int size_per_element = height / (elements ? elements : 1);
-               for (int i=0; i<elements; ++i)
-               {
-                       eRect &area = m_pango_page.m_elements[i].m_area;
-                       area.setLeft(startX);
-                       int lowerborder = eConfigManager::getConfigIntValue("config.subtitles.subtitle_position", 50);
-                       area.setTop(size_per_element * i + startY - lowerborder);
-                       area.setWidth(width);
-                       area.setHeight(size_per_element);
-                       m_visible_region |= area;
-               }
+               eRect& area = m_pango_page.m_elements[element].m_area;
+               area.setLeft(startX);
+               area.setTop(size_per_element * element + startY - lowerborder);
+               area.setWidth(width);
+               area.setHeight(size_per_element);
+               m_visible_region |= area;
        }
-       int timeout_ms = m_pango_page.m_timeout;
-       m_hide_subtitles_timer->start(timeout_ms, true);
+
+       m_hide_subtitles_timer->start(m_pango_page.m_timeout, true);
        invalidate(m_visible_region); // invalidate new regions
 }