Slightly improve behavior on resize
[quassel.git] / src / uisupport / multilineedit.cpp
index 77e2cc6..3a6876b 100644 (file)
@@ -54,7 +54,7 @@ MultiLineEdit::MultiLineEdit(QWidget *parent)
   enableFindReplace(false);
 #endif
 
-  setMode(SingleLine);
+  setMode(SingleLine); setLineWrapMode(WidgetWidth);
   reset();
 
   connect(this, SIGNAL(textChanged()), this, SLOT(on_textChanged()));
@@ -65,7 +65,7 @@ MultiLineEdit::~MultiLineEdit() {
 
 void MultiLineEdit::setCustomFont(const QFont &font) {
   setFont(font);
-  computeSizeHint();
+  updateSizeHint();
 }
 
 void MultiLineEdit::setMode(Mode mode) {
@@ -80,7 +80,7 @@ void MultiLineEdit::setMinHeight(int lines) {
     return;
 
   _minHeight = lines;
-  computeSizeHint();
+  updateSizeHint();
 }
 
 void MultiLineEdit::setMaxHeight(int lines) {
@@ -88,10 +88,10 @@ void MultiLineEdit::setMaxHeight(int lines) {
     return;
 
   _maxHeight = lines;
-  computeSizeHint();
+  updateSizeHint();
 }
 
-void MultiLineEdit::enableScrollBars(bool enable) {
+void MultiLineEdit::setScrollBarsEnabled(bool enable) {
   if(_scrollBarsEnabled == enable)
     return;
 
@@ -114,11 +114,12 @@ void MultiLineEdit::updateScrollBars() {
 }
 
 void MultiLineEdit::resizeEvent(QResizeEvent *event) {
-  updateScrollBars();
   QTextEdit::resizeEvent(event);
+  updateSizeHint();
+  updateScrollBars();
 }
 
-void MultiLineEdit::computeSizeHint() {
+void MultiLineEdit::updateSizeHint() {
   QFontMetrics fm(font());
   int minPixelHeight = fm.lineSpacing() * _minHeight;
   int maxPixelHeight = fm.lineSpacing() * _maxHeight;
@@ -142,7 +143,7 @@ void MultiLineEdit::computeSizeHint() {
 QSize MultiLineEdit::sizeHint() const {
   if(!_sizeHint.isValid()) {
     MultiLineEdit *that = const_cast<MultiLineEdit *>(this);
-    that->computeSizeHint();
+    that->updateSizeHint();
   }
   return _sizeHint;
 }
@@ -151,6 +152,18 @@ QSize MultiLineEdit::minimumSizeHint() const {
   return sizeHint();
 }
 
+void MultiLineEdit::setSpellCheckEnabled(bool enable) {
+#ifdef HAVE_KDE
+  setCheckSpellingEnabled(enable);
+#else
+  Q_UNUSED(enable)
+#endif
+}
+
+void MultiLineEdit::setWordWrapEnabled(bool enable) {
+  setLineWrapMode(enable? WidgetWidth : NoWrap);
+}
+
 void MultiLineEdit::historyMoveBack() {
   addToHistory(text(), true);
 
@@ -303,7 +316,7 @@ void MultiLineEdit::on_textChanged() {
     _lastDocumentHeight = document()->size().height();
     on_documentHeightChanged(_lastDocumentHeight);
   }
-  computeSizeHint();
+  updateSizeHint();
 }
 
 void MultiLineEdit::on_documentHeightChanged(qreal) {