[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/lib/kotext
From: David Faure <faure () kde ! org>
Date: 2006-01-30 11:14:16
Message-ID: 1138619656.969039.31408.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 503777 by dfaure:
Don't delete the default style if we're not going to find any paragraph \
style.
Fixed logic with "overwriting previous style", once it happened, any style \
after that would still think it's "overwriting a previous style", so this \
probably broke "following style" in some cases.
M +16 -9 KoStyleCollection.cpp
M +4 -2 KoStyleCollection.h
--- trunk/koffice/lib/kotext/KoStyleCollection.cpp #503776:503777
@@ -40,17 +40,13 @@
{
}
-void KoStyleCollection::loadOasisStyles( KoOasisContext& context )
+int KoStyleCollection::loadOasisStyles( KoOasisContext& context )
{
QStringList followingStyles;
QValueVector<QDomElement> userStyles = \
context.oasisStyles().userStyles();
- uint nStyles = userStyles.count();
- if( nStyles ) { // we are going to import at least one style.
- KoParagStyle *s = defaultStyle();
- //kdDebug() << "loadOasisStyles looking for Standard, to delete \
it. Found " << s << endl;
- if(s) // delete the standard style.
- removeStyle(s);
- }
+ bool defaultStyleDeleted = false;
+ int stylesLoaded = 0;
+ const unsigned int nStyles = userStyles.count();
for (unsigned int item = 0; item < nStyles; item++) {
QDomElement styleElem = userStyles[item];
Q_ASSERT( !styleElem.isNull() );
@@ -58,20 +54,30 @@
if ( styleElem.attributeNS( KoXmlNS::style, "family", \
QString::null ) != "paragraph" ) continue;
+ if( !defaultStyleDeleted ) { // we are going to import at least \
one style. + KoParagStyle *s = defaultStyle();
+ //kdDebug() << "loadOasisStyles looking for Standard, to \
delete it. Found " << s << endl; + if(s) // delete the standard \
style. + removeStyle(s);
+ defaultStyleDeleted = true;
+ }
+
KoParagStyle *sty = new KoParagStyle( QString::null );
// Load the style
sty->loadStyle( styleElem, context );
// Style created, now let's try to add it
+ const int oldStyleCount = count();
sty = addStyle( sty );
// the real value of followingStyle is set below after loading all \
styles sty->setFollowingStyle( sty );
kdDebug() << " Loaded style " << sty->name() << endl;
- if(styleList().count() > followingStyles.count() )
+ if ( count() > oldStyleCount )
{
const QString following = styleElem.attributeNS( \
KoXmlNS::style, "next-style-name", QString::null ); \
followingStyles.append( following ); + ++stylesLoaded;
}
else
kdWarning() << "Found duplicate style declaration, overwriting \
former " << sty->name() << endl; @@ -95,6 +101,7 @@
// TODO the same thing for style inheritance (style:parent-style-name) \
and setParentStyle()
Q_ASSERT( defaultStyle() );
+ return stylesLoaded;
}
void KoStyleCollection::saveOasis( KoGenStyles& styles, int styleType, \
KoSavingContext& context ) const
--- trunk/koffice/lib/kotext/KoStyleCollection.h #503776:503777
@@ -88,9 +88,11 @@
/// Import a number of styles (e.g. loaded from another document)
void importStyles( const KoStyleCollection& styleList );
- void loadOasisStyles( KoOasisContext& context );
+ /// Loads the entire style collection, in the OASIS OpenDocument \
format + /// @return the number of new styles loaded
+ int loadOasisStyles( KoOasisContext& context );
- /// Save the entire style collection to OASIS
+ /// Save the entire style collection in the OASIS OpenDocument format
/// @p styleType is the STYLE_* value for this style.
void saveOasis( KoGenStyles& styles, int styleType, KoSavingContext& \
context ) const;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic