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

List:       kde-commits
Subject:    [kalgebra] src: Make the FunctionEdit adapt better to its size
From:       Aleix Pol <aleixpol () kde ! org>
Date:       2013-06-01 0:14:19
Message-ID: 20130601001419.CABD7A6067 () git ! kde ! org
[Download RAW message or body]

Git commit fba7cabe93f3ee6cc67ceec8101b60cf6468c436 by Aleix Pol.
Committed on 01/06/2013 at 02:14.
Pushed by apol into branch 'master'.

Make the FunctionEdit adapt better to its size

Make hte error message re-elide when the size changes.

BUG: 291965

M  +12   -19   src/functionedit.cpp
M  +2    -0    src/functionedit.h

http://commits.kde.org/kalgebra/fba7cabe93f3ee6cc67ceec8101b60cf6468c436

diff --git a/src/functionedit.cpp b/src/functionedit.cpp
index 10e088c..ca09f26 100644
--- a/src/functionedit.cpp
+++ b/src/functionedit.cpp
@@ -131,6 +131,10 @@ FunctionEdit::FunctionEdit(QWidget *parent)
 	
 	m_func->setFocus();
 	m_ok->setEnabled(false);
+	
+	QFont errorFont=m_valid->font();
+	errorFont.setBold(true);
+	m_valid->setFont(errorFont);
 }
 
 FunctionEdit::~FunctionEdit()
@@ -204,24 +208,9 @@ void FunctionEdit::updateDownlimit()
 
 void FunctionEdit::setState(const QString& text, bool negative)
 {
-	QFont errorFont=m_valid->font();
-	errorFont.setBold(true);
-	m_valid->setFont(errorFont);
-	
-	QString errorm=text, error=text;
-	QFontMetrics fm(errorFont);
-	
-	if(fm.width(errorm)>m_valid->width()) {
-		for(int i=3; i<errorm.size(); ++i) {
-			QString aux=i18nc("text ellipsis", "%1...", errorm.mid(0,i));
-			
-			if(fm.width(aux) <= m_valid->width())
-				error=aux;
-			else
-				break;
-		}
-	}
-	m_valid->setText(error);
+	QFontMetrics fm(m_valid->font());
+	m_valid->setText(fm.elidedText(text, Qt::ElideRight, m_valid->width()));
+	m_valid->setToolTip(text);
 	
 	KColorScheme scheme(QPalette::Normal);
 	KColorScheme::ForegroundRole role = negative? KColorScheme::NegativeText : KColorScheme::PositiveText;
@@ -329,4 +318,8 @@ void FunctionEdit::setOptionsShown(bool shown)
 	m_viewTabs->setVisible(shown);
 }
 
-#include "functionedit.moc"
+void FunctionEdit::resizeEvent(QResizeEvent*)
+{
+	QFontMetrics fm(m_valid->font());
+	m_valid->setText(fm.elidedText(m_valid->toolTip(), Qt::ElideRight, m_valid->width()));
+}
diff --git a/src/functionedit.h b/src/functionedit.h
index c22f533..61e7cf1 100644
--- a/src/functionedit.h
+++ b/src/functionedit.h
@@ -89,6 +89,8 @@ public:
 	
 	void setOptionsShown(bool shown);
 	
+	virtual void resizeEvent(QResizeEvent* ev);
+	
 public slots:
 	/** Clears the dialog. */
 	void clear();
[prev in list] [next in list] [prev in thread] [next in thread] 

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