[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/kspread
From: Laurent Montel <montel () kde ! org>
Date: 2004-04-30 22:02:06
Message-ID: 20040430220206.BE0E59A74 () office ! kde ! org
[Download RAW message or body]
CVS commit by mlaurent:
Save area name
M +22 -0 kspread_doc.cc 1.288
M +2 -0 kspread_doc.h 1.142
M +36 -0 kspread_util.cc 1.67
M +4 -0 kspread_util.h 1.36
--- koffice/kspread/kspread_doc.cc #1.287:1.288
@@ -587,4 +587,5 @@ bool KSpreadDoc::saveOasis( KoStore* sto
xmlWriter.startElement( "office:body" );
d->workbook->saveOasis( xmlWriter );
+ saveOasisAreaName( xmlWriter );
xmlWriter.endElement();
xmlWriter.endElement(); // root element
@@ -1863,4 +1864,25 @@ void KSpreadDoc::loadOasisCellValidation
}
+bool KSpreadDoc::saveOasisAreaName( KoXmlWriter & xmlWriter )
+{
+ if ( listArea().count()>0 )
+ {
+ xmlWriter.startElement( "table:named-expressions" );
+ QValueList<Reference>::Iterator it;
+ for ( it = d->refs.begin(); it != d->refs.end(); ++it )
+ {
+ xmlWriter.startElement( "table:named-range" );
+
+ xmlWriter.addAttribute( "table:name", ( *it ).ref_name );
+ xmlWriter.addAttribute( "table:base-cell-address", convertRefToBase( ( \
*it ).table_name, ( *it ).rect ) ); + xmlWriter.addAttribute( \
"table:cell-range-address", convertRefToRange( ( *it ).table_name, ( *it ).rect ) ); \
+ + xmlWriter.endElement();
+ }
+ xmlWriter.endElement();
+ }
+ return true;
+}
+
void KSpreadDoc::loadOasisAreaName( const QDomElement& body )
{
--- koffice/kspread/kspread_doc.h #1.141:1.142
@@ -443,4 +443,6 @@ public:
virtual bool loadChildren( KoStore* _store );
QDomElement saveAreaName( QDomDocument& doc ) ;
+ bool saveOasisAreaName( KoXmlWriter & xmlWriter );
+
void loadAreaName( const QDomElement& element );
void loadOasisAreaName( const QDomElement& element );
--- koffice/kspread/kspread_util.cc #1.66:1.67
@@ -1042,2 +1042,38 @@ int util_penCompare( QPen const & pen1,
}
+
+QString convertRefToBase( const QString & table, const QRect & rect )
+{
+ QPoint bottomRight( rect.bottomRight() );
+
+ QString s( "$" );
+ s += table;
+ s += ".$";
+ s += KSpreadCell::columnName( bottomRight.x() );
+ s += '$';
+ s += QString::number( bottomRight.y() );
+
+ return s;
+}
+
+QString convertRefToRange( const QString & table, const QRect & rect )
+{
+ QPoint topLeft( rect.topLeft() );
+ QPoint bottomRight( rect.bottomRight() );
+
+ if ( topLeft == bottomRight )
+ return convertRefToBase( table, rect );
+
+ QString s( "$" );
+ s += table;
+ s += ".$";
+ s += /*util_encodeColumnLabelText*/KSpreadCell::columnName( topLeft.x() );
+ s += '$';
+ s += QString::number( topLeft.y() );
+ s += ":.$";
+ s += /*util_encodeColumnLabelText*/KSpreadCell::columnName( bottomRight.x() );
+ s += '$';
+ s += QString::number( bottomRight.y() );
+
+ return s;
+}
--- koffice/kspread/kspread_util.h #1.35:1.36
@@ -187,3 +187,7 @@ QPen util_toPen( QDomElement & el
int util_penCompare( QPen const & pen1, QPen const & pen2 );
+QString convertRefToRange( const QString & table, const QRect & rect );
+QString convertRefToBase( const QString & table, const QRect & rect );
+
+
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic