/** * Class constructor. * @param sText The text to display * @param pParent The parent widget */ MenuLabel(const QString& sText, QWidget* pParent) : QLabel(sText, pParent) { // Set the appropriate visual properties setFrameShape(MenuBarPanel); setAlignment(AlignHCenter | AlignVCenter); setIndent(0); }
DCursorTracker::DCursorTracker(const QString& txt, QWidget* const parent, Qt::Alignment align) : QLabel(txt, parent, Qt::ToolTip | Qt::BypassGraphicsProxyWidget), d(new Private) { setForegroundRole(QPalette::ToolTipText); setBackgroundRole(QPalette::ToolTipBase); setPalette(QToolTip::palette()); ensurePolished(); const int fwidth = 1 + style()->pixelMetric(QStyle::PM_ToolTipLabelFrameWidth, 0, this); setContentsMargins(fwidth, fwidth, fwidth, fwidth); setFrameStyle(QFrame::NoFrame); setAlignment(Qt::AlignLeft | Qt::AlignTop); setIndent(1); setWindowOpacity(style()->styleHint(QStyle::SH_ToolTipLabel_Opacity, 0, this) / 255.0); d->alignment = align; d->parent = parent; d->parent->setMouseTracking(true); d->parent->installEventFilter(this); d->autoHideTimer = new QTimer(this); d->autoHideTimer->setSingleShot(true); connect(d->autoHideTimer, SIGNAL(timeout()), this, SLOT(slotAutoHide())); }
/* Setup common to all constructors */ void QELabel::setup() { // Set up data // This control used a single data source setNumVariables(1); // Set up default properties setAllowDrop( false ); // Set the initial state setText( "----" ); setIndent( 6 ); isConnected = false; updateConnectionStyle( isConnected ); updateOption = UPDATE_TEXT; // Use standard context menu setupContextMenu(); // defaultStyleSheet = styleSheet(); // Use label signals // --Currently none-- // Set up a connection to recieve variable name property changes // The variable name property manager class only delivers an updated variable name after the user has stopped typing QObject::connect( &variableNamePropertyManager, SIGNAL( newVariableNameProperty( QString, QString, unsigned int ) ), this, SLOT( useNewVariableNameProperty( QString, QString, unsigned int) ) ); }
/*! \param parent Parent widget */ QwtLegendLabel::QwtLegendLabel( QWidget *parent ): QwtTextLabel( parent ) { d_data = new PrivateData; setMargin( Margin ); setIndent( Margin ); }
void KexiDBLabel::init() { KexiDataItemInterface::setHasFocusableWidget(false); d->frameColor = palette().color(foregroundRole()); setIndent(2); setAutoFillBackground(true); }
int QLabel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QFrame::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 12) qt_static_metacall(this, _c, _id, _a); _id -= 12; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< QString*>(_v) = text(); break; case 1: *reinterpret_cast< Qt::TextFormat*>(_v) = textFormat(); break; case 2: _a[0] = const_cast<void*>(reinterpret_cast<const void*>(pixmap())); break; case 3: *reinterpret_cast< bool*>(_v) = hasScaledContents(); break; case 4: *reinterpret_cast< Qt::Alignment*>(_v) = alignment(); break; case 5: *reinterpret_cast< bool*>(_v) = wordWrap(); break; case 6: *reinterpret_cast< int*>(_v) = margin(); break; case 7: *reinterpret_cast< int*>(_v) = indent(); break; case 8: *reinterpret_cast< bool*>(_v) = openExternalLinks(); break; case 9: *reinterpret_cast< Qt::TextInteractionFlags*>(_v) = textInteractionFlags(); break; case 10: *reinterpret_cast< bool*>(_v) = hasSelectedText(); break; case 11: *reinterpret_cast< QString*>(_v) = selectedText(); break; } _id -= 12; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setText(*reinterpret_cast< QString*>(_v)); break; case 1: setTextFormat(*reinterpret_cast< Qt::TextFormat*>(_v)); break; case 2: setPixmap(*reinterpret_cast< QPixmap*>(_v)); break; case 3: setScaledContents(*reinterpret_cast< bool*>(_v)); break; case 4: setAlignment(*reinterpret_cast< Qt::Alignment*>(_v)); break; case 5: setWordWrap(*reinterpret_cast< bool*>(_v)); break; case 6: setMargin(*reinterpret_cast< int*>(_v)); break; case 7: setIndent(*reinterpret_cast< int*>(_v)); break; case 8: setOpenExternalLinks(*reinterpret_cast< bool*>(_v)); break; case 9: setTextInteractionFlags(*reinterpret_cast< Qt::TextInteractionFlags*>(_v)); break; } _id -= 12; } else if (_c == QMetaObject::ResetProperty) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 12; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 12; } #endif // QT_NO_PROPERTIES return _id; }
TitleLabel::TitleLabel( const QString & text, QWidget * qwParent ) : QLabel( text, qwParent ) { setText( text ); setAlignment( Qt::AlignHCenter ); setMargin( 4 ); // setMinimumSize( size() ); setIndent(2); }
ToolTipLabel::ToolTipLabel( QWidget* parent ) : QLabel( parent, Qt::ToolTip ) { setMargin( 1 + style()->pixelMetric(QStyle::PM_ToolTipLabelFrameWidth, 0, this) ); setFrameStyle(QFrame::NoFrame); setAlignment(Qt::AlignLeft); setIndent(1); setPalette( QToolTip::palette() ); }
SizeTip::SizeTip( QWidget *parent, const char *name ) : QLabel( parent, name, WStyle_Customize | WX11BypassWM | WStyle_StaysOnTop | WStyle_NoBorder | WStyle_Tool ) { setMargin( 2 ); setIndent( 0 ); setFrameStyle( QFrame::Plain | QFrame::Box ); setPalette( QToolTip::palette() ); }
CardViewTip( QWidget *parent = 0, const char *name = 0 ) : QLabel( parent ) { setObjectName( name ); setAutoFillBackground( true ); setPalette( QToolTip::palette() ); setFrameStyle( Panel | Plain ); setMidLineWidth( 0 ); setIndent( 1 ); }
/*! Assign the icon \param icon Pixmap representing a plot item \sa icon(), QwtPlotItem::legendIcon() */ void QwtLegendLabel::setIcon( const QPixmap &icon ) { d_data->icon = icon; int indent = margin() + d_data->spacing; if ( icon.width() > 0 ) indent += icon.width() + d_data->spacing; setIndent( indent ); }
TextTip::TextTip(QWidget *parent) : QTipLabel(parent) { setForegroundRole(QPalette::ToolTipText); setBackgroundRole(QPalette::ToolTipBase); ensurePolished(); setMargin(1 + style()->pixelMetric(QStyle::PM_ToolTipLabelFrameWidth, 0, this)); setFrameStyle(QFrame::NoFrame); setAlignment(Qt::AlignLeft); setIndent(1); setWindowOpacity(style()->styleHint(QStyle::SH_ToolTipLabel_Opacity, 0, this) / 255.0); }
TempoLabel::TempoLabel(QWidget* parent) : QLabel(parent) { setFrameStyle(WinPanel | Sunken); setLineWidth(2); setMidLineWidth(3); _value = 1.0; setValue(0.0); setIndent(3); setMinimumSize(sizeHint()); }
GeometryTip::GeometryTip(const Xcb::GeometryHints* xSizeHints): QLabel(0) { setObjectName(QLatin1String("kwingeometry")); setMargin(1); setIndent(0); setLineWidth(1); setFrameStyle(QFrame::Raised | QFrame::StyledPanel); setAlignment(Qt::AlignCenter | Qt::AlignTop); setWindowFlags(Qt::X11BypassWindowManagerHint); sizeHints = xSizeHints; }
StatusMessageWidget::StatusMessageWidget(QWidget *parent) : QLabel(parent) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); setIndent(style()->pixelMetric(QStyle::PM_ButtonMargin)); MainWindow *window = MainWindow::findMainWindow(parent); if (window) { connect(window, SIGNAL(statusMessageChanged(QString)), this, SLOT(setMessage(QString))); } }
PitchLabel::PitchLabel(QWidget* parent) : QLabel(parent) { _pitchMode = true; _value = -1; setFrameStyle(WinPanel | Sunken); setLineWidth(2); setMidLineWidth(3); setValue(0); int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); setIndent(fw); }
SizeTip::SizeTip( QWidget *parent, const char *name ) : QLabel( parent, name, WStyle_Customize | WX11BypassWM | WStyle_StaysOnTop | WStyle_NoBorder | WStyle_Tool ) { setMargin( 10 ); setIndent( 5 ); setFrameStyle( QFrame::Plain | QFrame::Box ); //setPalette( QToolTip::palette() ); setPalette( QPalette(Qt::yellow, QColor(20,190,255))); QRect deskR = KGlobalSettings::desktopGeometry( QPoint( 0, 0 ) ); move(deskR.topLeft()); }
bool QLabel::qt_property( int id, int f, QVariant* v) { switch ( id - staticMetaObject()->propertyOffset() ) { case 0: switch( f ) { case 0: setText(v->asString()); break; case 1: *v = QVariant( this->text() ); break; case 3: case 4: case 5: break; default: return FALSE; } break; case 1: switch( f ) { case 0: setTextFormat((TextFormat&)v->asInt()); break; case 1: *v = QVariant( (int)this->textFormat() ); break; case 3: case 4: case 5: break; default: return FALSE; } break; case 2: switch( f ) { case 0: setPixmap(v->asPixmap()); break; case 1: if ( this->pixmap() ) *v = QVariant( *pixmap() ); break; case 3: case 4: case 5: break; default: return FALSE; } break; case 3: switch( f ) { case 0: setScaledContents(v->asBool()); break; case 1: *v = QVariant( this->hasScaledContents(), 0 ); break; case 3: case 4: case 5: break; default: return FALSE; } break; case 4: switch( f ) { case 0: setAlignment(v->asInt()); break; case 1: *v = QVariant( (int)this->alignment() ); break; case 3: case 4: case 5: break; default: return FALSE; } break; case 5: switch( f ) { case 0: setIndent(v->asInt()); break; case 1: *v = QVariant( this->indent() ); break; case 3: case 4: case 5: break; default: return FALSE; } break; case 6: switch( f ) { case 0: case 1: case 4: case 5: goto resolve; case 3: break; default: return FALSE; } break; default: return QFrame::qt_property( id, f, v ); } return TRUE; resolve: return QFrame::qt_property( staticMetaObject()->resolveProperty(id), f, v ); }
/*! \brief Change the spacing between icon and text \param spacing Spacing \sa spacing(), QwtTextLabel::margin() */ void QwtLegendLabel::setSpacing( int spacing ) { spacing = qMax( spacing, 0 ); if ( spacing != d_data->spacing ) { d_data->spacing = spacing; int indent = margin() + d_data->spacing; if ( d_data->icon.width() > 0 ) indent += d_data->icon.width() + d_data->spacing; setIndent( indent ); } }
TipLabel::TipLabel(const QString &text) : QLabel(NULL, "toolTipTip", WStyle_StaysOnTop | WStyle_Customize | WStyle_NoBorder | WStyle_Tool | WX11BypassWM ) { setMargin(1); setIndent(0); setAutoMask( FALSE ); setFrameStyle( QFrame::Plain | QFrame::Box ); setLineWidth( 1 ); polish(); setText(text); adjustSize(); setPalette(QToolTip::palette()); }
GeometryTip::GeometryTip(const XSizeHints *xSizeHints, bool save_under) : QLabel(NULL, "kwingeometry") { setMargin(1); setIndent(0); setLineWidth(1); setFrameStyle(QFrame::Raised | QFrame::StyledPanel); setAlignment(AlignCenter | AlignTop); sizeHints = xSizeHints; if(save_under) { XSetWindowAttributes attr; attr.save_under = True; // use saveunder if possible to avoid weird effects in transparent mode XChangeWindowAttributes(qt_xdisplay(), winId(), CWSaveUnder, &attr); } }
PredefinedTextWin::PredefinedTextWin(const QString& str) :QLabel(str, NULL, Qt::Tool | Qt::WindowStaysOnTopHint | Qt::CustomizeWindowHint) { resize(PTWIN_WIDTH, PTWIN_HEIGHT); QFont font; font.setPixelSize(18); setFont(font); setIndent(15); setFocusPolicy(Qt::NoFocus); if (QtWin::isCompositionEnabled()) { QtWin::extendFrameIntoClientArea(this); setContentsMargins(0, 0, 0, 0); } }
int QwtTextLabel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QFrame::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: setText((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< QwtText::TextFormat(*)>(_a[2]))); break; case 1: setText((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 2: setText((*reinterpret_cast< const QwtText(*)>(_a[1]))); break; case 3: clear(); break; default: ; } _id -= 4; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< int*>(_v) = indent(); break; case 1: *reinterpret_cast< int*>(_v) = margin(); break; } _id -= 2; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setIndent(*reinterpret_cast< int*>(_v)); break; case 1: setMargin(*reinterpret_cast< int*>(_v)); break; } _id -= 2; } else if (_c == QMetaObject::ResetProperty) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 2; } #endif // QT_NO_PROPERTIES return _id; }
HelpPopup::HelpPopup(QWidget* parent) : QLabel(parent) { setForegroundRole(QPalette::ToolTipText); setBackgroundRole(QPalette::ToolTipBase); setPalette(QToolTip::palette()); ensurePolished(); setMargin(1 + style()->pixelMetric(QStyle::PM_ToolTipLabelFrameWidth, 0, this)); setFrameStyle(QFrame::NoFrame); setAlignment(Qt::AlignLeft); setIndent(1); setWindowOpacity(style()->styleHint(QStyle::SH_ToolTipLabel_Opacity, 0, this) / 255.0); setMouseTracking(true); setWindowFlags(Qt::Popup); setAttribute(Qt::WA_DeleteOnClose); QShortcut* shortcut = new QShortcut(QKeySequence("Esc"), this); connect(shortcut, SIGNAL(activated()), this, SLOT(close())); }
Label::Label(string lText, int x_, int y_, int width_, int height_, const Font *font_, bool animation_, float animationSpeed_, int indent_, bool align_) { // Coords setX(x_); setY(y_); // Width / Height setWidth(width_); setHeight(height_); // Texts setText(lText); // Indent setIndent(indent_); // Animation setAnimation(animation_); // Invisible setAnimatonValue(0.0f); if(animation_) { // Speed setAnimationSpeed(animationSpeed_); } else { // Speed setAnimationSpeed(0.0f); } // Align setAlign(align_); // Font Id font = (Font*)font_; // Timer animationTimer = new Timer(animationSpeed_); }
int QwtTextLabel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QFrame::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 4) qt_static_metacall(this, _c, _id, _a); _id -= 4; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< int*>(_v) = indent(); break; case 1: *reinterpret_cast< int*>(_v) = margin(); break; } _id -= 2; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setIndent(*reinterpret_cast< int*>(_v)); break; case 1: setMargin(*reinterpret_cast< int*>(_v)); break; } _id -= 2; } else if (_c == QMetaObject::ResetProperty) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 2; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 2; } #endif // QT_NO_PROPERTIES return _id; }
/* Implementation *************************************************************/ CMultColorLED::CMultColorLED(QWidget * parent, const char * name, WFlags f) : QLabel(parent, name, f) { /* Define size of the bitmaps */ const int iXSize = 13; const int iYSize = 13; /* Create bitmaps */ BitmCubeGreen.resize(iXSize, iYSize); BitmCubeGreen.fill(QColor(0, 255, 0)); BitmCubeRed.resize(iXSize, iYSize); BitmCubeRed.fill(QColor(255, 0, 0)); BitmCubeGrey.resize(iXSize, iYSize); BitmCubeGrey.fill(QColor(192, 192, 192)); BitmCubeYellow.resize(iXSize, iYSize); BitmCubeYellow.fill(QColor(255, 255, 0)); /* Set modified style */ setFrameShape(QFrame::Panel); setFrameShadow(QFrame::Sunken); setIndent(0); /* Init color flags */ Reset(); /* Set init-bitmap */ setPixmap(BitmCubeGrey); eColorFlag = RL_GREY; /* Init update time */ iUpdateTime = DEFAULT_UPDATE_TIME; /* Connect timer events to the desired slots */ connect(&TimerRedLight, SIGNAL(timeout()), this, SLOT(OnTimerRedLight())); connect(&TimerGreenLight, SIGNAL(timeout()), this, SLOT(OnTimerGreenLight())); connect(&TimerYellowLight, SIGNAL(timeout()), this, SLOT(OnTimerYellowLight())); }
EnvelopeView::EnvelopeView(QWidget *parent, MessageView *messageView): QLabel(parent) { // we create a dummy header, pass it through the style and the use it's color roles so we // know what headers in general look like in the system QHeaderView helpingHeader(Qt::Horizontal); helpingHeader.ensurePolished(); setBackgroundRole(helpingHeader.backgroundRole()); setForegroundRole(helpingHeader.foregroundRole()); setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse); setIndent(5); setWordWrap(true); connect(this, SIGNAL(linkHovered(QString)), this, SLOT(onLinkHovered(QString))); QFontMetrics fm(font()); int iconSize = fm.boundingRect(QLatin1Char('M')).height(); contactKnownUrl = Gui::Util::resizedImageAsDataUrl(QLatin1String(":/icons/contact-known.png"), iconSize); contactUnknownUrl = Gui::Util::resizedImageAsDataUrl(QLatin1String(":/icons/contact-unknown.png"), iconSize); connect(this, SIGNAL(linkActivated(QString)), messageView, SLOT(headerLinkActivated(QString))); connect(this, SIGNAL(addressDetailsRequested(QString,QStringList&)), messageView, SIGNAL(addressDetailsRequested(QString,QStringList&))); }
void Buffer::loadConfiguration() { Configuration *config = Configuration::instance(); m_trackLineWidth = config->trackLineMarginWidth(); m_braceHighlight = config->braceHighlight(); setStyleQFont(STYLE_DEFAULT, config->font()); setViewWhitespace(config->viewWhitespace()); setViewIndentationGuides(config->viewIndentationGuides()); setCaretLineVisible(config->caretLineVisible()); setLongLineIndicator(config->longLineIndicator()); setViewEOL(config->viewEndOfLine()); setShowLineNumbers(config->showLineMargin()); setShowIconMargin(config->showIconMargin()); setShowFoldMargin(config->showFoldMargin()); setTabWidth(config->tabWidth()); setIndent(config->indentationWidth()); setUseTabs(config->useTabs()); setScrollWidth(config->scrollWidth()); setScrollWidthTracking(config->scrollWidthTracking()); setFoldSymbols(config->foldSymbols()); setFoldLines(config->foldLines()); setColorScheme(ColorScheme::getColorScheme(config->colorScheme())); }
void KoListLevelProperties::loadOdf(KoShapeLoadingContext& scontext, const KoXmlElement& style) { KoOdfLoadingContext &context = scontext.odfLoadingContext(); // The text:level attribute specifies the level of the number list // style. It can be used on all list-level styles. const int level = qMax(1, style.attributeNS(KoXmlNS::text, "level", QString()).toInt()); // The text:display-levels attribute specifies the number of // levels whose numbers are displayed at the current level. const QString displayLevel = style.attributeNS(KoXmlNS::text, "display-levels", QString()); if (style.localName() == "list-level-style-bullet") { // list with bullets //1.6: KoParagCounter::loadOasisListStyle QString bulletChar = style.isNull() ? QString() : style.attributeNS(KoXmlNS::text, "bullet-char", QString()); kDebug(32500) << "style.localName()=" << style.localName() << "level=" << level << "displayLevel=" << displayLevel << "bulletChar=" << bulletChar; if (bulletChar.isEmpty()) { // list without any visible bullets setStyle(KoListStyle::CustomCharItem); setBulletCharacter(QChar()); } else { // try to determinate the bullet we should use switch (bulletChar[0].unicode()) { case 0x2022: // bullet, a small disc -> circle //TODO use BulletSize to differ between small and large discs setStyle(KoListStyle::DiscItem); break; case 0x25CF: // black circle, large disc -> disc case 0xF0B7: // #113361 setStyle(KoListStyle::DiscItem); break; case 0xE00C: // losange => rhombus setStyle(KoListStyle::RhombusItem); break; case 0xE00A: // square. Not in OASIS (reserved Unicode area!), but used in both OOo and kotext. setStyle(KoListStyle::SquareItem); break; case 0x27A2: // two-colors right-pointing triangle setStyle(KoListStyle::RightArrowHeadItem); break; case 0x2794: // arrow to right setStyle(KoListStyle::RightArrowItem); break; case 0x2714: // checkmark setStyle(KoListStyle::HeavyCheckMarkItem); break; case 0x2d: // minus setStyle(KoListStyle::CustomCharItem); break; case 0x2717: // cross setStyle(KoListStyle::BallotXItem); break; default: QChar customBulletChar = bulletChar[0]; kDebug(32500) << "Unhandled bullet code 0x" << QString::number((uint)customBulletChar.unicode(), 16); kDebug(32500) << "Should use the style =>" << style.attributeNS(KoXmlNS::text, "style-name", QString()) << "<="; setStyle(KoListStyle::CustomCharItem); /* QString customBulletFont; // often StarSymbol when it comes from OO; doesn't matter, Qt finds it in another font if needed. if ( listStyleProperties.hasAttributeNS( KoXmlNS::style, "font-name" ) ) { customBulletFont = listStyleProperties.attributeNS( KoXmlNS::style, "font-name", QString::null ); kDebug(32500) <<"customBulletFont style:font-name =" << listStyleProperties.attributeNS( KoXmlNS::style,"font-name", QString::null ); } else if ( listStyleTextProperties.hasAttributeNS( KoXmlNS::fo, "font-family" ) ) { customBulletFont = listStyleTextProperties.attributeNS( KoXmlNS::fo, "font-family", QString::null ); kDebug(32500) <<"customBulletFont fo:font-family =" << listStyleTextProperties.attributeNS( KoXmlNS::fo,"font-family", QString::null ); } // ## TODO in fact we're supposed to read it from the style pointed to by text:style-name */ // setStyle(KoListStyle::BoxItem); //fallback break; } // switch setBulletCharacter(bulletChar[0]); } } else if (style.localName() == "list-level-style-number" || style.localName() == "outline-level-style") { // it's a numbered list KoOdfNumberDefinition numberDefinition; numberDefinition.loadOdf(style); switch(numberDefinition.formatSpecification()) { case KoOdfNumberDefinition::Empty: setStyle(KoListStyle::CustomCharItem); setBulletCharacter(QChar()); break; case KoOdfNumberDefinition::AlphabeticLowerCase: setStyle(KoListStyle::AlphaLowerItem); break; case KoOdfNumberDefinition::AlphabeticUpperCase: setStyle(KoListStyle::UpperAlphaItem); break; case KoOdfNumberDefinition::RomanLowerCase: setStyle(KoListStyle::RomanLowerItem); break; case KoOdfNumberDefinition::RomanUpperCase: setStyle(KoListStyle::UpperRomanItem); break; case KoOdfNumberDefinition::Numeric: default: setStyle(KoListStyle::DecimalItem); } if (!numberDefinition.prefix().isNull()) { setListItemPrefix(numberDefinition.prefix()); } if (!numberDefinition.suffix().isNull()) { setListItemSuffix(numberDefinition.suffix()); } const QString startValue = style.attributeNS(KoXmlNS::text, "start-value", QString("1")); setStartValue(startValue.toInt()); } else if (style.localName() == "list-level-style-image") { // list with image setStyle(KoListStyle::ImageItem); KoImageCollection *imageCollection = scontext.imageCollection(); const QString href = style.attribute("href"); if(imageCollection) { if (!href.isEmpty()) { KoStore *store = context.store(); setBulletImage(imageCollection->createImageData(href, store)); } else { // check if we have an office:binary data element containing the image data const KoXmlElement &binaryData(KoXml::namedItemNS(style, KoXmlNS::office, "binary-data")); if (!binaryData.isNull()) { QImage image; if (image.loadFromData(QByteArray::fromBase64(binaryData.text().toLatin1()))) { setBulletImage(imageCollection->createImageData(image)); } } } } } else { // if not defined, we have do nothing kDebug(32500) << "stylename else:" << style.localName() << "level=" << level << "displayLevel=" << displayLevel; setStyle(KoListStyle::DecimalItem); setListItemSuffix("."); } setLevel(level); if (!displayLevel.isEmpty()) setDisplayLevel(displayLevel.toInt()); KoXmlElement property; forEachElement(property, style) { if (property.namespaceURI() != KoXmlNS::style) continue; const QString localName = property.localName(); if (localName == "list-level-properties") { QString mode(property.attributeNS(KoXmlNS::text, "list-level-position-and-space-mode")); if (mode == "label-alignment") { KoXmlElement p; forEachElement(p, property) { if (p.namespaceURI() == KoXmlNS::style && p.localName() == "list-level-label-alignment") { // The <style:list-level-label-alignment> element and the fo:text-align attribute are used to define // the position and spacing of the list label and the list item. The values of the attributes for // text:space-before, text:min-label-width and text:min-label-distance are assumed to be 0. QString textAlign(p.attributeNS(KoXmlNS::fo, "text-align")); setAlignment(textAlign.isEmpty() ? Qt::AlignLeft : KoText::alignmentFromString(textAlign)); QString textindent(p.attributeNS(KoXmlNS::fo, "text-indent")); QString marginleft(p.attributeNS(KoXmlNS::fo, "margin-left")); qreal ti = textindent.isEmpty() ? 0 : KoUnit::parseValue(textindent); qreal ml = marginleft.isEmpty() ? 0 : KoUnit::parseValue(marginleft); setIndent(qMax(0.0, ti + ml)); setMinimumWidth(0); setMinimumDistance(0); //TODO support ODF 18.829 text:label-followed-by and 18.832 text:list-tab-stop-position } } } else { // default is mode == "label-width-and-position"