- QTextOption opt = _layout.textOption();
- opt.setWrapMode(_wrapMode);
- opt.setAlignment(_alignment);
- _layout.setTextOption(opt);
+ setMouseTracking(true);
+
+ QTextOption opt = _layout.textOption();
+ opt.setWrapMode(_wrapMode);
+ opt.setAlignment(_alignment);
+ _layout.setTextOption(opt);
+}
+
+
+void StyledLabel::setCustomFont(const QFont &font)
+{
+ setFont(font);
+ _layout.setFont(font);
+ setText(_layout.text());
+}
+
+
+void StyledLabel::setWrapMode(QTextOption::WrapMode mode)
+{
+ if (_wrapMode == mode)
+ return;
+
+ _wrapMode = mode;
+ QTextOption opt = _layout.textOption();
+ opt.setWrapMode(mode);
+ _layout.setTextOption(opt);
+
+ layout();
+}
+
+
+void StyledLabel::setAlignment(Qt::Alignment alignment)
+{
+ if (_alignment == alignment)
+ return;
+
+ _alignment = alignment;
+ QTextOption opt = _layout.textOption();
+ opt.setAlignment(alignment);
+ _layout.setTextOption(opt);
+
+ layout();
+}
+
+
+void StyledLabel::setResizeMode(ResizeMode mode)
+{
+ if (_resizeMode == mode)
+ return;
+
+ _resizeMode = mode;
+ if (mode == DynamicResize)
+ setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+ else
+ setWrapMode(QTextOption::NoWrap);
+}
+
+
+void StyledLabel::resizeEvent(QResizeEvent *event)
+{
+ QFrame::resizeEvent(event);
+
+ layout();
+}
+
+
+QSize StyledLabel::sizeHint() const
+{
+ return _sizeHint;