From koffice-devel Fri Oct 29 19:20:30 2010 From: "Carlos Licea" Date: Fri, 29 Oct 2010 19:20:30 +0000 To: koffice-devel Subject: Re: Review Request: Addition of classes for the centralization of Message-Id: <20101029192030.2980.53042 () vidsolbach ! de> X-MARC-Message: https://marc.info/?l=koffice-devel&m=128838007227683 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--===============0881472511==" --===============0881472511== Content-Type: multipart/alternative; boundary="===============3452981616137522953==" --===============3452981616137522953== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable > On 2010-10-29 08:21:01, Johannes Simon wrote: > > Generally I like the idea of having a central class to save an ODF tabl= e. KChart would need one, too, btw, it is currently done in ChartShape.cpp,= which is obviously the wrong place. I have two remarks regarding your appr= oach: > > = > > 1) Why not also make it load a table? It is, after all, a very related = task. > > 2) Interesting for the chart shape would be an interface (or adapter) t= o use your classes to purely save/load an existing QAbstractTableModel. Not= e that there's no style information attached to its internal table. Maybe i= nstead it would also be possible to use QAbstractTableModel as the handler = for actual data, and have an API around it to add styles to rows, columns a= nd cells. 1) I think that the main porpuse of the ODF library we try to provide at KO= ffice is for writing ODFs rather than load them. This could be added in the= future, though. 2) Do note that you don't have to add a style, if you don't it'll write a m= ere table to the file. A KoAbstractTableModelWriter could be developed for = your use case. That way the responsibilities are also very well separated. - Carlos ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://svn.reviewboard.kde.org/r/5726/#review8421 ----------------------------------------------------------- On 2010-10-29 03:09:40, Carlos Licea wrote: > = > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://svn.reviewboard.kde.org/r/5726/ > ----------------------------------------------------------- > = > (Updated 2010-10-29 03:09:40) > = > = > Review request for KOffice and Casper Boemann. > = > = > Summary > ------- > = > Warning: Mildly-Long description ahead. > = > >Rationale > Currently we need to save a table in at less 3 different parts: > * The TableShape (TODO as of now) > * The PPTX filter > * The DOCX filter > (We could include The KSpread table but I don't know if KSpread would lik= e to outsource the saving of its file format.) > = > So far we have had different implementations, everyone with slightly diff= erent behavior and different quirks and bugs. For this reason I've decided = to create a "centralized" way to save a table. > Originally I started this work in the MSOOXML filters, then moved it to a= new library but then I realized that the best place was libs/odf. > = > >Work done > The patch introduces several classes that map to the ODF concepts. So far= I'm mildly satisfied with the results, I think the API promises but it's s= till a long way from complete. > = > >Remarks > >> General > There are a few remarks I'd like to point out: > * Give a through review to the API, I want it to be as stable as possible= so that I can continue building on it. > * There's going to be a naming clash between KWord's KoTableStyle and the= one proposed here. I propose renaming KWord's as this class is more generi= c, plus it is meant to be be a public API for our ODF library. A namespace = could also be added (Ko)ODF. > * I added a KoStyle class. As I said, I intended this to be a new library= before realizing that it should go to the ODF library. I did, however left= it as it allows less look-ups of the name in the KoGenStyles. > * Somebody might ask why I added a KoTableProperties, I didn't want to cl= utter the KoTable API with so many properties when its behavior is much mor= e important. > * I still haven't added the export macro to the classes as it's on anothe= r one of my branches. > * Tests are coming. > * Documentation is also coming, I have some of it in a branch but I haven= 't heavily invested in it as I still consider this a work in progress. > * Adaptation in the MsooXml filters is also comming, not released again b= ecause of unstable API. > = > >>Implementation specific > * KoTable is the owner of all the KoCell's, KoRow's and KoColumn's. There= 's no way to create one of those outside the Table. > * KoCellValue maps to office:value and its linked attributes. > * KoCellChild on the other hand represents all the different children of = a Cell in the table:table-cell. I intend it to be expanded over time to cov= er many more children so that they also can be created using a nice API. > = > = > Diffs > ----- > = > branches/work/koffice-essen/libs/odf/CMakeLists.txt 1186909 = > branches/work/koffice-essen/libs/odf/KoCell.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoCell.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoCellChild.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoCellChild.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoCellStyle.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoCellStyle.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoCellValue.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoCellValue.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoColumn.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoColumn.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoColumnStyle.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoDummyCellValue.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoDummyCellValue.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoRawCellChild.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoRawCellChild.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoRow.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoRow.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoRowStyle.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoStyle.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoStyle.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoTable.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoTable.cpp PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoTableProperties.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoTableStyle.h PRE-CREATION = > branches/work/koffice-essen/libs/odf/KoTableTemplate.h PRE-CREATION = > = > Diff: http://svn.reviewboard.kde.org/r/5726/diff > = > = > Testing > ------- > = > As I said tests are coming too. > = > = > Thanks, > = > Carlos > = > --===============3452981616137522953== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable
This is an automatically generated e-mail. To reply, visit: http://svn.reviewb= oard.kde.org/r/5726/

On October 29th, 2010, 8:21 a.m., Johannes = Simon wrote:

Generally=
 I like the idea of having a central class to save an ODF table. KChart wou=
ld need one, too, btw, it is currently done in ChartShape.cpp, which is obv=
iously the wrong place. I have two remarks regarding your approach:

1) Why not also make it load a table? It is, after all, a very related task.
2) Interesting for the chart shape would be an interface (or adapter) to us=
e your classes to purely save/load an existing QAbstractTableModel. Note th=
at there's no style information attached to its internal table. Maybe i=
nstead it would also be possible to use QAbstractTableModel as the handler =
for actual data, and have an API around it to add styles to rows, columns a=
nd cells.
1) I think =
that the main porpuse of the ODF library we try to provide at KOffice is fo=
r writing ODFs rather than load them. This could be added in the future, th=
ough.
2) Do note that you don't have to add a style, if you don't it'=
ll write a mere table to the file. A KoAbstractTableModelWriter could be de=
veloped for your use case. That way the responsibilities are also very well=
 separated.

- Carlos


On October 29th, 2010, 3:09 a.m., Carlos Licea wrote:

Review request for KOffice and Casper Boemann.
By Carlos Licea.

Updated 2010-10-29 03:09:40

Descripti= on

Warning: Mildly-Long description ahead.

>Rationale
Currently we need to save a table in at less 3 different parts:
* The TableShape (TODO as of now)
* The PPTX filter
* The DOCX filter
(We could include The KSpread table but I don't know if KSpread would l=
ike to outsource the saving of its file format.)

So far we have had different implementations, everyone with slightly differ=
ent behavior and different quirks and bugs. For this reason I've decide=
d to create a "centralized" way to save a table.
Originally I started this work in the MSOOXML filters, then moved it to a n=
ew library but then I realized that the best place was libs/odf.

>Work done
The patch introduces several classes that map to the ODF concepts. So far I=
'm mildly satisfied with the results, I think the API promises but it&#=
39;s still a long way from complete.

>Remarks
>> General
There are a few remarks I'd like to point out:
* Give a through review to the API, I want it to be as stable as possible s=
o that I can continue building on it.
* There's going to be a naming clash between KWord's KoTableStyle a=
nd the one proposed here. I propose renaming KWord's as this class is m=
ore generic, plus it is meant to be be a public API for our ODF library. A =
namespace could also be added (Ko)ODF.
* I added a KoStyle class. As I said, I intended this to be a new library b=
efore realizing that it should go to the ODF library. I did, however left i=
t as it allows less look-ups of the name in the KoGenStyles.
* Somebody might ask why I added a KoTableProperties, I didn't want to =
clutter the KoTable API with so many properties when its behavior is much m=
ore important.
* I still haven't added the export macro to the classes as it's on =
another one of my branches.
* Tests are coming.
* Documentation is also coming, I have some of it in a branch but I haven&#=
39;t heavily invested in it as I still consider this a work in progress.
* Adaptation in the MsooXml filters is also comming, not released again bec=
ause of unstable API.

>>Implementation specific
* KoTable is the owner of all the KoCell's, KoRow's and KoColumn=
9;s. There's no way to create one of those outside the Table.
* KoCellValue maps to office:value and its linked attributes.
* KoCellChild on the other hand represents all the different children of a =
Cell in the table:table-cell. I intend it to be expanded over time to cover=
 many more children so that they also can be created using a nice API.

Testing <= /h1>
As I said tests are coming too.

Diffs=

  • branches/work/koffice-essen/libs/odf/CMakeLists.txt (1186909)
  • branches/work/koffice-essen/libs/odf/KoCell.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoCell.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoCellChild.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoCellChild.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoCellStyle.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoCellStyle.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoCellValue.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoCellValue.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoColumn.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoColumn.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoColumnStyle.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoDummyCellValue.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoDummyCellValue.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoRawCellChild.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoRawCellChild.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoRow.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoRow.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoRowStyle.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoStyle.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoStyle.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoTable.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoTable.cpp (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoTableProperties.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoTableStyle.h (PRE-CREATION)
  • branches/work/koffice-essen/libs/odf/KoTableTemplate.h (PRE-CREATION)

View Diff

--===============3452981616137522953==-- --===============0881472511== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ koffice-devel mailing list koffice-devel@kde.org https://mail.kde.org/mailman/listinfo/koffice-devel --===============0881472511==--