[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/suse_kickoff_qstyle/kicker/kicker/ui
From:       Stephan Binner <binner () kde ! org>
Date:       2006-11-20 11:39:16
Message-ID: 1164022756.389304.8477.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 606410 by binner:

break long help text instead of truncating/blending it


 M  +34 -5     k_new_mnu.cpp  
 M  +2 -0      k_new_mnu.h  


--- branches/work/suse_kickoff_qstyle/kicker/kicker/ui/k_new_mnu.cpp #606409:606410
@@ -2108,6 +2108,27 @@
     }
 }
 
+QString KMenu::insertBreaks(const QString& text, QFontMetrics fm, int width, QString \
leadInsert) +{
+    QString result, line;
+    QStringList words = QStringList::split(' ', text);
+
+    for(QStringList::Iterator it = words.begin(); it != words.end(); ++it) {
+       if (fm.width(line+' '+*it) >= width) {
+          if (!result.isEmpty())
+             result = result + '\n';
+          result = result + line;
+          line = leadInsert + *it;
+       }
+       else
+          line = line + ' ' + *it;
+    }
+    if (!result.isEmpty())
+       result = result + '\n';
+
+    return result + line;
+}
+
 void KMenu::clearSearchResults(bool showHelp)
 {
     m_searchResultsWidget->clear();
@@ -2115,17 +2136,25 @@
     setTabOrder(m_kcommand, m_searchResultsWidget);
 
     if (showHelp) {
+        const int width = m_searchResultsWidget->width();
+        QFontMetrics fm = m_searchResultsWidget->fontMetrics();
+
         QListViewItem* item;
-        item = new QListViewItem( m_searchResultsWidget, "   " + i18n("- Add \
ext:type to specify a file extension.") ); +        item = new QListViewItem( \
m_searchResultsWidget, insertBreaks(i18n("- Add ext:type to specify a file \
extension."), fm, width, "   ") );  item->setSelectable(false);
-        item = new QListViewItem( m_searchResultsWidget, "   " + i18n("- When \
searching for a phrase, add quotes.") ); +        item->setMultiLinesEnabled(true);
+        item = new QListViewItem( m_searchResultsWidget, insertBreaks(i18n("- When \
searching for a phrase, add quotes."), fm, width, "   " ) );  \
                item->setSelectable(false);
-        item = new QListViewItem( m_searchResultsWidget, "   " + i18n("- To exclude \
search terms, use the minus symbol in front.") ); +        \
item->setMultiLinesEnabled(true); +        item = new QListViewItem( \
m_searchResultsWidget, insertBreaks(i18n("- To exclude search terms, use the minus \
symbol in front."), fm, width, "   " ) );  item->setSelectable(false);
-        item = new QListViewItem( m_searchResultsWidget, "   " + i18n("- To search \
for optional terms, use OR.") ); +        item->setMultiLinesEnabled(true);
+        item = new QListViewItem( m_searchResultsWidget, insertBreaks(i18n("- To \
search for optional terms, use OR."), fm, width, "   ")  );  \
                item->setSelectable(false);
-        item = new QListViewItem( m_searchResultsWidget, "   " + i18n("- You can use \
upper and lower case.") ); +        item->setMultiLinesEnabled(true);
+        item = new QListViewItem( m_searchResultsWidget, insertBreaks(i18n("- You \
can use upper and lower case."), fm, width, "   ")  );  item->setSelectable(false);
+        item->setMultiLinesEnabled(true);
         item = new QListViewItem( m_searchResultsWidget, i18n("Search Quick Tips"));
         item->setSelectable(false);
     }
--- branches/work/suse_kickoff_qstyle/kicker/kicker/ui/k_new_mnu.h #606409:606410
@@ -332,6 +332,8 @@
 
     void resetOverflowCategory();
     void fillOverflowCategory();
+
+    QString insertBreaks(const QString& text, QFontMetrics fm, int width, QString \
leadInsert = QString::null);  };
 
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic