r15789 by jghali - merge trunk revisions up to r15787

scribus-commit scribus-commit at lists.scribus.net
Sun Nov 7 01:35:15 CET 2010


Author: jghali
Date: Sun Nov  7 00:35:15 2010
New Revision: 15789

URL: http://scribus.info/websvn/listing.php?repname=Scribus&sc=1&rev=15789
Log:
merge trunk revisions up to r15787

Added:
    branches/ScribusOIF/doc/en/WwFill.html
      - copied unchanged from r15787, trunk/Scribus/doc/en/WwFill.html
    branches/ScribusOIF/doc/en/images/gradient_adjuster.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/gradient_adjuster.png
    branches/ScribusOIF/doc/en/images/gradient_adjuster1.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/gradient_adjuster1.png
    branches/ScribusOIF/doc/en/images/gradient_adjuster_vector.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/gradient_adjuster_vector.png
    branches/ScribusOIF/doc/en/images/new1.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/new1.png
    branches/ScribusOIF/doc/en/images/new2.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/new2.png
    branches/ScribusOIF/doc/en/images/new3.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/new3.png
    branches/ScribusOIF/doc/en/images/new4.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/new4.png
    branches/ScribusOIF/doc/en/images/new5.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/new5.png
    branches/ScribusOIF/doc/en/images/new6.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/new6.png
    branches/ScribusOIF/doc/en/images/patterns1.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/patterns1.png
    branches/ScribusOIF/doc/en/images/patterns2.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/patterns2.png
    branches/ScribusOIF/doc/en/images/vectimp1.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/vectimp1.png
    branches/ScribusOIF/doc/en/images/vectimp2.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/vectimp2.png
    branches/ScribusOIF/doc/en/images/vectimp3.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/vectimp3.png
    branches/ScribusOIF/doc/en/images/vectimp4.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/vectimp4.png
    branches/ScribusOIF/doc/en/images/vectimp5.png
      - copied unchanged from r15787, trunk/Scribus/doc/en/images/vectimp5.png
Modified:
    branches/ScribusOIF/doc/en/cli.html
    branches/ScribusOIF/doc/en/images/layers1.png
    branches/ScribusOIF/doc/en/images/layers2.png
    branches/ScribusOIF/doc/en/importhints1.html
    branches/ScribusOIF/doc/en/importhints2.html
    branches/ScribusOIF/doc/en/index.html
    branches/ScribusOIF/doc/en/layers.html
    branches/ScribusOIF/doc/en/menu.xml
    branches/ScribusOIF/doc/en/readme.html
    branches/ScribusOIF/doc/en/scribus-svg.html
    branches/ScribusOIF/doc/en/translation_howto.html
    branches/ScribusOIF/scribus/colorsetmanager.cpp
    branches/ScribusOIF/scribus/langmgr.cpp
    branches/ScribusOIF/scribus/pageitem_desaxe.cpp
    branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
    branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp
    branches/ScribusOIF/scribus/plugins/import/ai/importai.cpp
    branches/ScribusOIF/scribus/plugins/import/cgm/importcgm.cpp
    branches/ScribusOIF/scribus/plugins/import/cvg/importcvg.cpp
    branches/ScribusOIF/scribus/plugins/import/drw/importdrw.cpp
    branches/ScribusOIF/scribus/plugins/import/oodraw/oodrawimp.cpp
    branches/ScribusOIF/scribus/plugins/import/pct/importpct.cpp
    branches/ScribusOIF/scribus/plugins/import/ps/importps.cpp
    branches/ScribusOIF/scribus/plugins/import/svg/svgplugin.cpp
    branches/ScribusOIF/scribus/plugins/import/wmf/wmfimport.cpp
    branches/ScribusOIF/scribus/plugins/import/wpg/importwpg.cpp
    branches/ScribusOIF/scribus/plugins/import/xar/importxar.cpp
    branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowser.ui
    branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowserplugin.cpp
    branches/ScribusOIF/scribus/sccolor.cpp
    branches/ScribusOIF/scribus/sccolor.h
    branches/ScribusOIF/scribus/scribus.cpp
    branches/ScribusOIF/scribus/ui/paintmanager.cpp
    branches/ScribusOIF/scribus/ui/swatchcombo.cpp
    branches/ScribusOIF/scribus/util.cpp
    branches/ScribusOIF/scribus/util.h
    branches/ScribusOIF/scribus/util_color.cpp

Modified: branches/ScribusOIF/doc/en/cli.html
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/cli.html
==============================================================================
--- branches/ScribusOIF/doc/en/cli.html (original)
+++ branches/ScribusOIF/doc/en/cli.html Sun Nov  7 00:35:15 2010
@@ -13,7 +13,7 @@
 Overrides the system locale and runs Scribus in language xx. The language is specified with the same POSIX language codes that are used in the LANG and LC_ALL environment variables. For example, English can be selected with 'en' (generic English), 'en_GB' (British English), 'en_US' (American english), etc. Similarly, German can be selected with 'de' or 'de_DE'.</li>
 <li><code>-la, --langs-available</code><br>
 Print a list of languages for which user interface translations are available. To use that language run Scribus as 'scribus -l xx' where xx is the short language code.</li>
-<li><code>-v, --version</code>
+<li><code>-v, --version</code><br>
 Prints the Scribus version number and exits.</li>
 <li><code>-f, --file</code><br>
 Open the specified file. It's possible to simply pass the file name as an unqualified argument instead of using this, though if the name begins with a - you will need to use --, eg 'scribus -- -myfile.sla'.</li>

Modified: branches/ScribusOIF/doc/en/images/layers1.png
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/images/layers1.png
==============================================================================
Binary files - no diff available.

Modified: branches/ScribusOIF/doc/en/images/layers2.png
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/images/layers2.png
==============================================================================
Binary files - no diff available.

Modified: branches/ScribusOIF/doc/en/importhints1.html
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/importhints1.html
==============================================================================
--- branches/ScribusOIF/doc/en/importhints1.html (original)
+++ branches/ScribusOIF/doc/en/importhints1.html Sun Nov  7 00:35:15 2010
@@ -1,10 +1,25 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Notes on Importing EPS/PS into Scribus</title>
+	<title>Importing EPS</title>
 </head>
 <body>
-<h2>Notes on Importing EPS/PS into Scribus</h2>
+<h2>Importing EPS</h2>
+<h3>What is EPS?</h3>
+
+<h3>Why EPS?</h3>
+
+<h3>EPS Import</h3>
+
+<h4>EPS Previews</h4>
+
+<h4>Importing into an image frame</h4>
+
+<h4>Importing as a vector drawing</h4>
+
+<h4>Caveats</h4>
+
+<h3>Special EPS files</h3>
 
 <p>To better your chances of successfully importing EPS/PS files it helps to have three ingredients:</p>
  <ul>

Modified: branches/ScribusOIF/doc/en/importhints2.html
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/importhints2.html
==============================================================================
--- branches/ScribusOIF/doc/en/importhints2.html (original)
+++ branches/ScribusOIF/doc/en/importhints2.html Sun Nov  7 00:35:15 2010
@@ -1,33 +1,66 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Advanced Importing Tricks with Scribus</title>
+	<title>Importing Vector Drawings</title>
 </head>
 <body>
-<h2>Advanced Importing Tricks with Scribus</h2>
-<p>As I said in the previous page, one of the more difficult tasks in DTP is getting stuff <em>into</em> your layout. Below are some hints I developed while working with the new SVG importer. Among the reasons I like SVG import is: Scribus can edit it and it can be color managed very easily. It is compact and the resultant PDFs are also small. Imported SVGs print superbly.</p>
-<p>Background: I had agreed to give a presentation to a local tech group made up of mostly MS based web developers. My topic was PDF and the web. My aim was to show where PDF files could be integrated into web content. I had decided I wanted to show off Scribus and the power of open source web development tools to these folks via a &#034;presentation&#034; PDF.</p>
-<p>A couple of problems came up immediately:</p>
-<ol>
-	<li>It was going to be done via a nice sharp presentation screen, so quality mattered.</li>
-	<li>I had lots of different files which needed to get integrated into the presentation.</li>
-</ol>
-<p>Issue - Getting the Scribus logo into SVG. I wanted to have the Scribus, as well as the group's logo in SVG, so I could scale it up big - like 6+ feet (2 meters). Here is how I did it:</p>
+<h2>Importing Vector Drawings</h2>
+<h3>Supported formats</h3>
+<p>Here&rsquo;s a short description of the vector formats currently supported by Scribus:</p>
+<ul>
+<li><b>AI (Adobe Illustrator)</b>: The native format of Illustrator, or, more precisely, formats. Older versions of AI are basically EPS files that contain some additional features only used by Illustrator. As of Illustrator 9, AI is based on PDF, and, like its predecessor, adds some Illustrator-only information. AI import is still experimental but works very well in most cases. One of the major advantages of the AI import filter (and the EPS filter as well) is that Scribus will load spot colors in AI and EPS files correctly. If PDF-based AI files are opened directly (via <i>File > Open</i>), Scribus will also import AI/PDF layers.</li>
+<li><b>EPS (Encapsulated PostScript)</b>: Probably the most wide-spread graphics format in pre-press and a subset of the PostScript standard. See the section about <a href="importhints1.html">EPS import</a> for more information.</li>
+<li><b>PS (PostScript)</b>: A page description language created by Adobe Systems and the foundation of almost all modern print workflows. The PDF format is also derived from PostScript. Since PostScript files can contain more than one page, import may not deliver the expected result.</li>
+<li><b>FIG (Xfig)</b>: This is the native format of the UNIX drawing veteran Xfig. While rarely used by designers, it&rsquo;s ubiquitous in scientific environments like universities for technical drawings or diagrams. The format is well-documented, and import into Scribus works flawlessly.</li>
+<li><b>Scalable Vector Graphics (SVG)</b>: An open and widely used standard for two-dimensional vector graphics. See the section about <a href="scribus-svg.html">SVG import</a> for more information.</li>
+<li><b>SXD (OpenOffice.org Draw 1) and ODG (OpenDocument Graphics)</b>: These are the vector file formats used by OpenOffice.org and other Open Source Office Suites. Since &ldquo;Office Drawing&rdquo; is quite different from working with a typical vector drawing program, the formats use a lot of features, like automatic connectors, that aren&rsquo;t well-suited for a print workflow. As a result, import will only work with limited success. See <a href="importhints3.html">Scribus and OpenOffice.org/OpenDocument</a> for possible workarounds.</li>
+<li><b>WMF (Windows Metafile)</b>: A vector format used by many Office Suites and also the Windows clipboard. While WMF files are usually rejected by creative professionals, most collections of &ldquo;Office Clipart&rdquo; use this format. The WMF filter has been added to enable users to import these simple vector drawings.</li>
+<li><b>PICT (Macintosh Picture)</b>: The graphics file format used by Mac OS, similar to WMF on Windows. It can contain bitmap or vector data.</li>
+<li><b>CVG (Calamus Vector Graphic)</b>: A simple vector format used by the DTP veteran Calamus. It only supports grayscale colors.</li>
+<li><b>SHAPE (Dia Shapes) and SML (Kivio Shape)</b>: Basic vector shapes used by the diagram programs Dia and Kivio. Grayscale/RGB only.</li>
+</ul>
+<h3>How it works</h3>
+<p>Importing vector drawings into Scribus is rather different if compared to most other DTP programs, and it&rsquo;s also an exception to the &ldquo;frame paradigm&rdquo; used for almost everything else in Scribus.</p>
+<p>When you import a vector drawing via <i>File > Import > Get Vector File</i>, the vector data of the original file will be converted into native Scribus vector objects. The major advantage of this approach is that imported vector graphics remain fully editable in Scribus, which is useful even if you don&rsquo;t intend to use Scribus as a vector editor. For example, the conformance to published specifications like EPS or SVG can vary enormously between programs or different versions of the same program. Importing files as native vector objects allows for easy and quick corrections like closing paths etc. It also enables Scribus to easily change or modify the colors of imported vector graphics (see below).</p>
+<p>The Scribus approach to vector import comes at a cost, though, and you need to consider carefully whether you are willing to pay this price or rather export your drawing as a bitmap image and import it into an <a href="WwImages.html">image frame</a>. First, as you will notice when you try to load a complex vector file, importing can take very long, as Scribus may have to create hundreds or even thousands of Scribus vector objects. Moreover, the creation of that amount of objects also results in an Undo/Redo event for each object. You can speed up import a little bit by disabling Undo/Redo before you import a complex drawing. Likewise, scaling or moving a complex drawing means changing the properties of all objects within this drawing, and if you don&rsquo;t have enough memory on your computer, Scribus may even crash.</p>
+<p>A similar problem may be the number of colors in your <a href="color1.html">color list</a>. Since Scribus imports the colors of all objects in a drawing (see below), you may end up with a seemingly endless list of colors. Again, you need to decide whether you need the advantages of this approach.</p>
+<p>Finally, every drawing that consists of more than one vector object (i.e., almost every drawing) is imported as a <i>group</i> of objects, and text flow around groups doesn&rsquo;t work. This means you have to draw a separate <a href="WwShapes.html">shape</a> around the drawing to let text flow around it.</p>
+<h3>Editing imported vector drawings</h3>
+<p>Working with the built-in vector tools is described in <a href="EditingShapes.html">Editing Shapes</a>. But as you will notice after importing a vector drawing, the tools are not availabe immediately, the reason being the import of a drawing as a <i>group</i> of vector objects. Thus, you need to <i>ungroup</i> the graphic first. This can be achieved via the &ldquo;Ungroup&rdquo; command in the &ldquo;Item&rdquo; menu, the Context Menu of the drawing or by using the shortcut Ctrl+Shift+G:</p><br>
+<table width="100%"><tr><td align="center"><img src="images/vectimp1.png" title="The &ldquo;Ungroup&rdquo; command" alt="The &ldquo;Ungroup&rdquo; command" /></td></tr></table><br>
+<p>The more complex an imported drawing, the more likely the necessity to apply &ldquo;Ungroup&rdquo; several times, as the drawing will probably consist of many sub-groups.</p>
+<p>The drawback of this approach is that it decomposes the whole drawing, even if you only want to edit a small part of it. If you later want to move or resize the whole graphic, you have to regroup all parts again. Fortunately, Scribus comes with a powerful tool that comes to the rescue in this situation, namely the Document Outline (<i>Windows > Outline</i>). This dialog lists all elements in a Scribus document, sorted per page. Here you can select single parts of the imported group, and if you&rsquo;re lucky, the creator of the drawing assigned meaningful names to the respective elements, although not all programs and file formats provide this feature. Scribus will jump to each selected element and indicate the selection by showing the frame border of the item in red:</p>
+<table width="100%"><tr><td align="center"><img src="images/vectimp2.png" title="Using the Document Outline to select items in grouped objects" alt="Using the Document Outline to select items in grouped objects" /></td></tr></table><br>
+<p>You can now use the Context Menu in the Document Outline to detach the selected item from the rest of the group by using the &ldquo;Ungroup&rdquo; command. As described above, you may have to use the command several times, depending on how deeply nested the groups in the drawing are. At the end of the process, you can see the item as a separate entry in the Document Outline:</p><br>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/vectimp4.png" title="The item &ldquo;path13122&rdquo; has been detached from the group &ldquo;svg1061&rdquo;, an imported SVG file." alt="The item &ldquo;path13122&rdquo; has been detached from the group &ldquo;svg1061&rdquo;, an imported SVG file." /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>The item &ldquo;path13122&rdquo; has been detached from the group &ldquo;svg1061&rdquo;, an imported SVG file."</i></div></td>
+    </tr>
+  </tbody>
+</table>
 
-<p>Franz had the original logo as an EPS, thankfully. However, part of the logo in the EPS was a bitmap. The secret weapon was <code>pstoedit</code>, a command line tool which can converts bitmaps EPS and PS files into all kinds of different vector formats. When installed correctly, you can use this as kind of a plug-in to GSview.</p>
-<p>Open Scribus EPS logo file in GSview. Go Edit > Convert to Vector and this dialog pops up:</p>
+<h3>Solid colors in imported vector drawings</h3>
+<p>A consequence of the way Scribus imports vector files is that all colors in a drawing will be added the list of available colors. Depending on the complexity of a drawing and the number of imported files, the list can become quite long, and depending on the source format and the used color spaces, the color names may not be very meaningful:</p>
+<table width="100%"><tr><td align="center"><img src="images/vectimp3.png" title="Imported colors from a vector drawing (SVG)" alt="Imported colors from a vector drawing (SVG)" /></td></tr></table><br>
+<p>This may initially be confusing to some users, but there are ways to make life easier for you. First of all, Scribus does not duplicate colors, i.e., if an imported drawing uses a color whose color values match those of an already existing color, the imported color will be &ldquo;mapped&rdquo; to the list of colors. This works even with spot colors. Second, Scribus supports <a href="color1.html">named colors</a>, so if a vector program and the file format can save color names, those will be imported:</p><br>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/vectimp5.png" title="Xfig uses a name for every color, and Scribus will import the named colors." alt="Xfig uses a name for every color, and Scribus will import the named colors." /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>Xfig uses a name for every color, and Scribus will import the named colors.</i></div></td>
+    </tr>
+  </tbody>
+</table>
+<br>
+<p>If you delete an imported drawing, its colors won&rsquo;t disappear from the color list automatically, as it&rsquo;s difficult to determine whether they have been &ldquo;mapped&rdquo; or are being used by other objects. This is not a problem, because after deleting the drawing, you can open the color manager (<i>Edit > Colors</i>) and click &ldquo;Remove Unused&rdquo;, which will remove all colors that aren&rsquo;t used by any item in your document.</p>
+<p>An example for the usefulness of the color import is the &ldquo;Replace Colors&rdquo; feature. Imagine you are working with a vector logo that is supposed to appear in different colors in different documents. By using &ldquo;Replace Colors&rdquo;, you can work with one single source file. Import the logo into your document and replace one or more logo colors just as your specific document requires. And speaking of logos: These are often required to use a spot color. If you created or edited the logo in a program that doesn&rsquo;t support spot colors, you can load the graphic into Scribus and use &ldquo;Replace Colors&rdquo; to replace a CMYK or RGB color with a spot color:</p><br>
+<table width="100%"><tr><td align="center"><img src="images/new5.png" title="Replacing colors" alt="Replacing colors"/></td></tr></table><br>
 
-<table width="100%"><tr><td align="center"><img src="images/pstoedit1.png" alt="pstoedit"/></td></tr></table><br />
-
-<p>Looking down the long list of export file formats, which is impressive, I found Sketch, which can export SVG. So I selected that and checked <strong>Text to polygons</strong>. Why? SVG text handling is tricky and not completely finished in Sketch or Sodipodi. Then, GSview blinked a blank screen and then I had a .sk or Sketch file. I opened this in Sketch and all looked well, so export SVG from Sketch then import Scribus. Perfect. No, not yet. Some of the elements did not export quite as expected and would not appear in the SVG. (At this point the SVG importer was a week old, so I chalked it up to bugs or missing features, but later I found this was <strong>not</strong> the case. Scribus does fine job importing <em>well-formed</em> SVG.)</p>
-<p> So, on a hunch I opened up the same SVG in Sodipodi and re-saved. Then re-import, better but not perfect. Then in Sodipodi, I realized there is an option to <strong>Save as Plain SVG</strong>. OK, we are almost home. I could clearly see the elements in the group, but a few were blank. So, in Scribus, I un-grouped all the elements in the imported SVG and selected the blank ones. Interestingly, I found in the drawing editor palette, some of the paths were not yet closed. Click on the close path and voila, the colors appeared. A few minutes of clicking and closing paths and I had the Scribus logo in Scribus, as SVG. Mission accomplished.</p>
-
-<p>I used the same trick to import tables in a PDF into Scribus. One of the Scribus users on the list was trying to use Scribus in place of InDesign. In testing, one of the issues was the lack of table support in Scribus and InDesign does have good support for tables. So, again pstoedit, Sketch and Sodipodi came to the rescue.</p>
-<p>I got the InDesign file, which could have been reproduced in Scribus, but just a very time consuming job. So, from InDesign, exported a PDF 1.3, nice and simple. Then open the PDF in GSview. Use the pstoedit plug-in to again convert it into a Sketch file. Open Sketch and the file is perfect on screen. Export SVG. Open in Scribus, we're almost there. Reopen the SVG in Sodipodi, re-save as plain SVG. Import into Scribus. Results: a perfect mirror of the original PDF.</p>
-<p>Caveats: This will work best with EPS or PDF files which have text, or vector elements like curves or lines. Forget files which have photographs or complex gradients. But for converting logos, tables and even in some cases stylized text, this is a novel, but useful way to get artwork into Scribus, which can then be not only edited, but you can be sure it will reproduce perfectly in PDF or any kind of printing.</p>
-
-<p><strong><em>Lessons:</em></strong> First, <strong>pstoedit</strong> is a really remarkable tool which is made much easier to use via GSview. The conversion quality, just with the defaults was amazing. The curves in the Scribus EPS matched the SVG perfectly - colors too. Second, re-saving a complex image format in an application which is different from the one which created it sometimes has an effect of "cleaning up" a file. The opposite can also be true in my experience. Third, do not be afraid to experiment a bit, especially with SVG. SVG is wonderful file format with many capabilities. However, it is relatively new and no application open source or commercial has perfected its import or export. Moreover, no one vector editor can support the entire SVG spec.</p>
-
-<p>So, now you know why SVG is my new favorite file format.</p>
 </body>
-</html>
+</html>

Modified: branches/ScribusOIF/doc/en/index.html
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/index.html
==============================================================================
--- branches/ScribusOIF/doc/en/index.html (original)
+++ branches/ScribusOIF/doc/en/index.html Sun Nov  7 00:35:15 2010
@@ -2,12 +2,15 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 <title>Scribus &ndash; Open Source Desktop Publishing</title>
+</head>
 <table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#2780b9" >
 	<tr>
 		<td align="left"><img src="images/docheader1.png" width="222" height="87"></td>
 		<td align="right"><img src="images/docheader2.png" width="318" height="87"></td>
 	</tr>
 </table>
+
+<body>
 <h2>Scribus &ndash; Open Source Desktop Publishing</h2>
 
 <!--marker for image gallery-->
@@ -19,5 +22,7 @@
 <p>Underneath a user-friendly interface, Scribus supports professional publishing features, such as CMYK colors, spot color support, ICC color management and versatile PDF creation.</p>
 
 <p>Scribus has many unexpected touches, such as powerful vector drawing tools, support for a huge number of file types via import/export filters, emulation of color blindness or the rendering of markup languages like LaTeX or Lilypond inside Scribus. The Scribus file format is XML-based and open. Unlike proprietary binary file formats, even damaged documents can be recovered with a simple text editor &ndash; sometimes a challenging problem with other page layout programs. Scribus has been translated into more than 25 languages, and more are coming in the future.</p>
+</body>
+</html>
 
 

Modified: branches/ScribusOIF/doc/en/layers.html
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/layers.html
==============================================================================
--- branches/ScribusOIF/doc/en/layers.html (original)
+++ branches/ScribusOIF/doc/en/layers.html Sun Nov  7 00:35:15 2010
@@ -1,58 +1,61 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Layers and Blending Modes</title>
+	<title>Working with Layers</title>
 </head>
 <body>
-<h3>Layers Basics</h3>
-<p>Layers are a very easy to use and can solve some challenges with certain types of documents or working with text, artwork or images without affecting other objects. </p>
-<ul><li>You can use layers for both managing different versions of a document with the same layout, perhaps one with multiple languages. With layers you can put each language on a separate layer and disable viewing and printing sequentially for each language.</li>
-<li>Layers can also help you with importing complex items or grouped items and you wish to not disturb existing content.</li>
-<li>Layers can be used for masking items or purposely stacking objects so that both can be seen.</li>
-<li>Layers are also supported in PDF 1.5+. At the moment, only Adobe Reader 7.0+ supports viewing content in layers within a PDF. Scribus can export PDF 1.5 files with layers and Adobe Reader reads the layer content correctly.</li>
+<h3>Working with Layers</h3>
+<p>You may know the concept of layers from drawing or image editing software. Layers can be used for many different purposes, for example for separating printable and non-printable items like grids, to create multiple-language versions of a document in a single file or simply to ease editing certain objects without affecting others.</p>
+<p>By default, a new document has only one layer, with the default name &ldquo;Background&rdquo;. Newly added objects will each be at their own Level on this layer, so you may have many <i>levels</i> on one <i>layer</i>. For many documents, only one layer will be necessary, but sometimes it may be desirable to work with more than one layer.</p>
+<p>To add a new layer, open the Layers dialog under <i>Windows > Layers</i> or press F6:</p>
+
+<table width="100%"><tr><td align="center"><img src="images/layers1.png" title="The Layers Dialog" alt="The Layers Dialog" /></td></tr></table><br />
+<p>At first glance, the dialog looks simple, but it&rsquo;s very powerful. At the top you can set a blend mode and layer opacity. These will be discussed elsewhere.</p>
+<p>At the bottom of the dialog we have the basic layer management tools available, from left to right:
+<ul>
+<li>Adding a new layer</li>
+<li>Removing a selected layer</li>
+<li>Duplicating a selected layer, including its content</li>
+<li>Moving a selected layer one level up</li>
+<li>Moving a selected layer one level down</li>
 </ul>
-<table width="100%"><tr><td align="center"><img src="images/layers1.png" title="Basic Layers Dialog" alt="Basic Layers Dialog" /></td></tr></table><br />
-<p></p>
-<h3>Transparent Layer Blending Modes in Scribus</h3>
-<p><strong>Note: This feature is only available when Scribus is compiled with Cairo 1.2+</strong></p>
+</p>
+<p>The major part of the dialog is occupied by the layer list, including various layer options. These are, from left to right:
+<ul>
+<li><b>Color of the layer indicator</b>: Each layer has a unique color that helps identifying objects on that layer. You can enable the color indicators for objects via <i>View > Show Layer Indicators</i>. To change this color, simply click on the color for the respective layer in the dialog. This will bring up a color selector, where you can either choose another color or create a new one.</li>
+<li><b>Layer visibility</b>: Here you can set a layer to visible or invisible. Visibility has no impact on printing, so be careful when you use this feature, as it can easily happen that invisible content will appear in your print or an exported PDF, simply because you forgot to disable printing as well.</li>
+<li><b>Layer printability</b>: This option corresponds to the previous, and you&rsquo;re advised to be equally cautious, since a visible layer may be set to not to print or export to PDF.</li>
+<li><b>Layer locking</b>: This option lets you lock all objects on layer, i.e. prevent them from being edited.</li>
+<li><b>Text flow for layer objects</b>: If enabled, this option will force text in frames on lower layers to flow around objects on the selected layer.</li>
+<li><b>Outline mode for layer objects</b>: This option comes in handily if you want to speed up the performance of Scribus, as all objects on a layer are only displayed in a &ldquo;wireframe&rdquo; mode. This is especially useful when a layer contains complex vector graphics.</li>
+<li><b>Layer name</b>: Every layer has a unique name, which is shown here. To change the name of a layer, double-click into the &ldquo;Name&rdquo; field and insert a new one.</li>
+</ul>
+</p>
+<h4>Switching between layers</h4>
+<p>There are two options to switch between layers. The first is to select a layer in the layer dialog, but it is a bit tedious to open a separate dialog each time you want to do nothing more than continue your work on another layer. Fortunately, the Status Bar at the bottom of the Scribus windows has a layer selector. It lists all layers in a document by name and also displays a layer&rsquo;s color.</p>
+<h4>Moving objects between layers</h4>
+<p>If you want to move an object from one layer to another, you can use &ldquo;Send to Layer&rdquo; from the Context Menu or the same command from the <i>Item</i> menu in the menu bar. The command is also available in the Context Menu of objects in the Document Outline.</p>
+<h4>Hints for working with layers</h4>
+<p>
+<ul>
+<li>Layers always exist for the whole document, not per page.</li>
+<li>To select all items on a layer, use <i>Edit > Advanced Select All</i> from the Menu Bar.</li>
+<li>If you’re deleting a layer with objects on it, you will be asked if the objects on it should be removed as well. If you negate, all objects on the deleted layer will be moved to the background layer.</li>
+<li>Scribus document layers must not be confused with layers in PSD files. Both are completely independent.</li>
+<li>Scribus supports layers in Adobe Illustrator (AI) files, but only if an AI file is being <i>opened</i> (<i>File > Open</i>). If you <i>import</i> a layered AI file (<i>File > Import > Get Vector File</i>), all AI layers will be merged into one.</li>
+<li>Layers are also supported in PDF version 1.5 and later, but so far, only Adobe Reader 7 and later versions can display layered PDFs correctly. Scribus can export PDF 1.5 files with layers, but you have to check the option &ldquo;Include Layers&rdquo; in the &ldquo;General&rdquo; tab of the PDF export dialog. Adobe Reader will then read the layer content correctly:</li><br>
+</ul>
+</p>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/layers2.png" title="The Layers Dialog" alt="The Layers Dialog" /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>Layers and their settings in Adobe Reader (right) and Scribus (left)</i></div></td>
+    </tr>
+  </tbody>
+</table>
 
-<p>Scribus has a very powerful and versatile way of handling layers in a document via the way that not only layers can be made transparent and their opacity changed, but the so called <strong>blend modes</strong> can be selected to control the way transparency is rendered. Objects can be similarly controled individually. Blend modes are a way for you to control how the pixels of the layers are combined. When a given layer is selected the blend mode chosen affects how that layer's pixels are combined with only those layers <em>below</em> the selected layer. The layers remain separately editable and only are combined in the display and at print/export time. Note also, except when printing to certain printers on Windows, this type of transparency will not be supported well, if it at all. Exporting PDF version 1.4 (Acrobat 5.0) or higher will support these modes properly.</p>
-<p>Similarly, these blend modes can be used with individual objects or groups, separately from the layers options via the properties palette. In addtion, when importing certain PSD (Photoshop native files), there is an addtional blend mode Scribus supports called <strong>Dissolve</strong> which adds random pixels from the selected layer on  top the layers below, resulting in specks of color. You can use the opacity percentage spinbox to regulate the level of speckles.</p> 
-
-<table width="100%"><tr><td align="center"><img src="images/layers2.png" title="Transparency Blend Spaces - note the addtional opacity and blend mode options." alt="Transparency Blend Spaces - note the addtional opacity and blend mode options." /></td></tr></table><br />
-<p></p>
-<h4>Available Blend Modes in Scribus:</h4>
-<ul>
-<li><strong>Normal</strong> - Pixels of the selected layer are combined with pixels on the layers below. The single difference is opacity. </li>
-<li><strong>Darken</strong> - Pixels in the chosen layer which are darker than the layer's below are are applied to the image. Lighter pixels are masked or invisible. </li>
-<li><strong>Lighten</strong> - Pixels in the selected layer that are lighter than underlying layer's pixels will be applied to the image. Darker pixels will be invisible.</li>
-<li><strong>Multiply</strong> - combines the colors of the selected layer with the colors of the underlying layers to produce darker colors. Colors which are multiplied with black will be black. Colors multiplied with white results in no color changes.</li>
-<li><strong>Hue</strong> - applies the hue of the selected layer to the layers below. </li>
-
-<li><strong>Saturation</strong> - applies the saturation of the selected layer to the layers below.</li>
-
-<li><strong>Color</strong> - applies both the hue and saturation of the selected layer to the underlying layers, but the luminance is not affected.</li>
-
-<li><strong>Luminosity</strong> - applies the luminance values of the selected layer to the luminance of the underlying layers, but the color is not affected.</li>
-
-<li><strong>Screen</strong> - Multiplies the inverse of the selected layer colors and with the colors of the layers below. This gives a color that is the same or lighter than the layer colors below.</li>
-
-<p>This is for the PSD importer only</p>
-<li><strong>Dissolve</strong> - Adds random pixels from the selected layer on  top the layers below, resulting in specks of color. You can use the opacity percentage spinbox to regulate the level of speckles.</li>
-
-
-<li><strong>Overlay</strong> - combines features of the Screen and Multiply modes. Shows patterns or colors of the selected layer while preserving shadows and highlights of the underlying layer.</li>
-
-<li><strong>Hard Light</strong> - also combines features of the Screen and Multiply modes. Used to show highlights and shadows.</li>
-
-<li><strong>Soft Light</strong> - combines features of the Dodge and Burn modes. Produces soft shadows and highlights.</li>
-
-<li><strong>Difference</strong> - subtracts the selected layer color from the underlying layer, depending on which is lighter.</li>
-
-<li><strong>Dodge</strong> - the lightness values of the colors in the selected layer modify the underlying colors, by making them lighter. Black produces no effect.</li>
-<li><strong>Burn</strong> - the lightness values of the colors in the selected layer modify the underlying layers, by making them darker.</li>
-
-<li><strong>Exclusion</strong> - similar to Difference but softer. </li>
-</ul>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/menu.xml
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/menu.xml
==============================================================================
--- branches/ScribusOIF/doc/en/menu.xml (original)
+++ branches/ScribusOIF/doc/en/menu.xml Sun Nov  7 00:35:15 2010
@@ -45,20 +45,21 @@
 			<submenuitem file="WwImages.html" text="Working with Images" />
 			<submenuitem file="WwRenderframes.html" text="Working with Render Frames" />
 			<submenuitem file="WwShapes.html" text="Working with Shapes" />
+			<submenuitem file="EditingShapes.html" text="Editing Shapes" />
 			<submenuitem file="WwLines.html" text="Working with Lines and Line Styles" />
-			<submenuitem file="EditingShapes.html" text="Editing Shapes" />
-			<submenuitem text="Master Pages" file="pagetemplate1.html" />
+			<submenuitem file="WwFill.html" text="Working with Fill: Colors, Gradients and Patterns" />
+			<submenuitem text="Working with Layers" file="layers.html" />
+			<submenuitem text="Working with Master Pages" file="pagetemplate1.html" />
 			<submenuitem text="Page Numbering" file="pagenumber.html" />
 			<submenuitem text="Short Words Plug-in" file="short-words.html" />
 			<submenuitem text="Editing Colors" file="color1.html" />
-			<submenuitem text="Layers" file="layers.html" />
 		</submenuitem>
 		<submenuitem text="Importing" file="importhints.html">
+			<submenuitem text="Importing Vector Drawings" file="importhints2.html"/>
 			<submenuitem text="Importing EPS" file="importhints1.html"/>
-			<submenuitem text="Importing (Advanced)" file="importhints2.html"/>
-			<submenuitem file="importhints3.html" text="OpenOffice.org Docs" />
-			<submenuitem file="importhints4.html" text="HTML Importing" />
-			<submenuitem file="scribus-svg.html" text="Importing SVGs" />
+			<submenuitem file="scribus-svg.html" text="Importing SVG" />
+			<submenuitem file="importhints3.html" text="Importing OpenOffice.org and ODF Files" />
+			<submenuitem file="importhints4.html" text="Importing HTML" />
 			<submenuitem file="psd.html" text="Importing PSD" />
 		</submenuitem>
 			<submenuitem text="Exporting to PDF" file="pdfexport1.html">

Modified: branches/ScribusOIF/doc/en/readme.html
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/readme.html
==============================================================================
--- branches/ScribusOIF/doc/en/readme.html (original)
+++ branches/ScribusOIF/doc/en/readme.html Sun Nov  7 00:35:15 2010
@@ -1,60 +1,214 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Scribus Version 1.3.5 Readme</title>
+	<title>What&rsquo;s New in Scribus 1.3.9?</title>
 </head>
 <body>
-<h2>Scribus Version 1.3.5 Readme</h2>
-<h4>What's New ?</h4>
-<p>The Scribus 1.3.5 is the fifth development release of the next generation for Scribus. This release is the first based on Qt4 and on first use some GUI elements have changed along with new features made possible with Qt. </p>
-<h4>The file format has changed and is NOT backwardly compatible. You have been warned. We have specifically disabled the ability to open 1.3.4+ files in the stable 1.3.3.x versions. Our plans for a new file format should be settled in the 1.3.6 -1.3.7 development period.</h4>
+<h2>What&rsquo;s New in Scribus 1.3.9?</h2>
+<p>This is a cursory overview over the changes in Scribus compared to to the latest stable version 1.3.3.14.</p>
+
+<p><b><i>Note that the file format has changed and is not backwardly compatible. We have specifically disabled the ability to open files created with 1.3.4 or later in the stable 1.3.3.x versions. Also note that 1.3.9 is still a devlopment version and not considered stable yet.</i></b></p>
+<h3>General</h3>
 <ol>
-<li>Windows users are <strong>strongly encouraged</strong> to install the latest  <a href="http://ghostscript.com">Ghostscript</a> <strong>before</strong> installing Scribus. This greatly simplifies setting up EPS importing. Ghostscript is a mature PostScript interpreter and is essential for EPS import and print preview in Scribus.</li>
-<li>Because of the new enhanced menu/keyboard shortcuts code, 1.2.x  keyboard short cuts are not migrated and will be recreated once on the first launch 1.3.x. There are vastly more keyboard shortcuts and they can be exported to use on other machines if customized.</li>
-<li>On initial launch, 1.3.5 will offer to inherit preferences from any existing prior version, but store them separately, so you can run 1.3.3.x in parallel with 1.3.5. </li>
-<li>You <strong>can</strong> install both versions in parallel and run them at the same time. The only caveat is to install them using different prefix/ directories e.g 1.3.3.x in /usr/local and 1.3.5 in /opt or $home/bin. You can use the <code>-DCMAKE_INSTALL_PREFIX:PATH=</code> argument to configure to set where Scribus should be installed.</li>
-<li>Many of the new or revised GUI functions have extensive tool tips. To enable tool tips, make sure <strong>Help &#062; Tooltips </strong>is checked. </li>
+<li>On initial launch, 1.3.9 will offer to inherit the configuration data from any existing prior version, but it will store them separately, so you can run 1.3.3.x in parallel with 1.3.9. </li>
+<li>You <b>can</b> install both versions in parallel and run them at the same time. The only caveat is to install them using different installation directories, e.g 1.3.3.x in /usr/local and 1.3.9 in /opt or $home/bin on Linux/UNIX. If you&rsquo;re building Scribus from source, you can use the <code>-DCMAKE_INSTALL_PREFIX:PATH=</code> argument to configure where Scribus should be installed. On other platforms you can determine the location during the installation process.</li>
 </ol>
-<h4>New In Scribus 1.3.5</h4>
-<ul>
-<li>Porting to Qt4 should provide vastly better performance under OSX. Scribus 1.3.5 will run on OSX 10.3.9+  </li>
-<li>Much more extensive support for CMYK images, including clipping paths in TIFF and JPEG files, as well as extensive support for native Photoshop &#174; PSD files. 16 bit CMYK TIFF and PSD support will follow soon. Use of CMYK images is recommended with color management properly setup and active for best on screen appearance. CMYK-JPEG is also supported. </li>
-<<!--li>There is a new imposition tool which allows you to create booklets. This enables for example printing 2 pages of A5 on A4 paper.</li>-->
-<li>The other new major addtion is the new latex import capabilties. This is explained in detail in the online help.</li>
-
-
-</ul>
-<p>For detailed changes please see the ChangeLog and the Roadmap on <a href="http://wiki.scribus.net/">http://wiki.scribus.net/</a>.</p>
-<p>To use Scribus in your native language be sure that the environment variable LC_ALL, LC_MESSAGES, LANG, Qt locale, OR the command line option of -l/--lang &#060;lang&#062; is set correctly. This also can be changed in the preferences and takes effect immediately.</p>
-
-<p>The EPS/PS import features in 1.3.x uses advanced features of Ghostscript. We recommend ALL users update to the newest version of Ghostscript available for your distribution. There are detailed hints on docs.scribus.net for installing GS 8.x in parallel to the GS installed by your distribution.</p>
-	
-<p>Activating Color Management <strong>requires</strong> installation of CMYK and RGB ICC profiles. Grey scale icc profiles in images are not supported in this release. Scribus comes with 2 icc profiles only to ensure color management works immediately. These profiles are not sufficient to provide correctly working color management. Please see the included help files and <a href="http://docs.scribus.net">http://docs.scribus.net</a> for details.</p>
-<!--<p>If you have a 64-bit version of Qt, sometimes ./configure will not detect the 64-bit version headers. Try : <pre>./configure --enable-libsuffix=64</pre> to test for 64-bit versions of libraries.</p>-->
-<h4>Other notes/known issues at the time of release:</h4>
-	
-<p>There is a bug in font outline handling for some fonts in the freetype libraries. It's being worked on upstream. Don't file a bug report. Instead change the font used if you need the outlines. This is not a Scribus bug. Some testing has shown that this bug is not present in freetype 2.1.10+, but we counsel caution trying to upgrade freetype2. Upgrading freetype2 on some distributions can be quite difficult.</p>
-
-
-<h4>Font Issues</h4>
-<p>There are extensive notes and detailed on documentation on fonts and trouble shooting of font issues in the help documentation and online at http://docs.scribus.net.  Please read these carefully before filing bugs.</p>
-<p>There are issues with the PostScript naming conventions with the Computer Modern Type 1 fonts, depending on distribution.  In some cases, not all fonts from the same family are visible in Scribus. We are working on a more complete solution for the next release. 
-</p>
-	
-<h4>For Debian Users:	</h4>
-<p>If Scribus does not start while complaining about the absence of PostScript fonts please install either xfonts-scalable or gsfonts-x11.	They are in the "Recommends" and will be installed by all sensible apt front-ends.
-</p>	
-<h4>For Suse 10.x/11.x Users:</h4>
-<ul>
-<li>There are both 32 and 64 bit packages in OpenSuse Build server. Within the same repo are several programs which are useful with Scribus including GSview and other graphics utilities.</li>
-<li>Should you compile your own from source, to enable direct CUPS support which we recommend, make sure both cups-devel and openssl-devel are installed. Suse enables ssl support in CUPS. See the BUILDING file.</li></ul>
-<p>There is a separate file, PACKAGING for detailed hints and notes on building packages for Scribus.</p>
-<p> More hints and other information are on the <a href="http://www.scribus.net">http://www.scribus.net</a> and <a href="http://docs.scribus.net">http://docs.scribus.net</a> sites. Full compile, install and FAQs are available there.</p>
-	
-<p>There is a lively on-line community, both on IRC @ #scribus on irc.freenode.net and the mailing list. Mailing list info can be found at: http://lists.scribus.net/mailman/listinfo/scribus</p>
-<p>For the Scribus Team,</p>
-<p>Peter Linnell<br />
-in April 2009 <br />
-</p>
+<h3>New in Scribus 1.3.9</h3>
+
+<h4>Qt4 Port</h4>
+<p>One of the major endeavours on the way from 1.3.3.x to 1.4 was the porting to the Qt4 toolkit. Among others, it enabled a vastly better performance under Mac OS&nbsp;X, as well as the creation of native DMGs for OS&nbsp;X. Scribus 1.3.9 DMGs will run on OS&nbsp;X 10.5+.</p>
+
+<h4>Object Handling</h4>
+<ul>
+<li>Significant enhancments to Multiple Duplicate.</li>
+<li>Transform tools as known from Illustrator.</li>
+<li>New options to align and distribute objects.</li>
+<li>Advanced multiple object selection.</li>
+</ul>
+
+<h4>Text and Typography</h4>
+<h5><b>Typography:</b></h5>
+<ul>
+<li>Optical Margins.</li>
+<li>Glyph Extension</li>
+<li>Variable First Line Offset for text frames.</li>
+<li>Character Styles.</li>
+<li>New Style Manager that allows for style hierarchies, cloned styles and style inheritance.</li>
+<li>A new glyph selector that allows for the creation of glyph sets that can be shared between users.</li>
+<li>Major improvements to the hyphenator.</li>
+</ul>
+<br>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/new1.png" title="Optical Margins" alt="Optical Margins" /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>Optical Margins</i></div></td>
+    </tr>
+  </tbody>
+</table>
+<br>
+<h5><b>Text</b></h5>
+<ul>
+<li>Basic spellchecking via aspell (not available for Windows).</li>
+<li>New text variable: Number of pages.</li>
+</ul>
+
+<h4>Vector Tools</h4>
+
+<ul>
+<li>New default shapes.</li>
+<li>New Path Tools, like Boolean path operations, lens effects or mesh distortion.</li>
+<li>More options for text on path.</li>
+</ul>
+<br>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/new2.png" title="Boolean path operations" alt="Boolean path operations" /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>Boolean path operations</i></div></td>
+    </tr>
+  </tbody>
+</table>
+<br>
+
+<h4>Lines</h4>
+<ul>
+<li>New line styles.</li>
+<li>Line style editor.</li>
+</ul>
+
+
+<h4>Solid Colors, Gradients and Patterns</h4>
+<ul>
+<li>Major improvements to the Color Wheel (support for multiple color models).</li>
+<li>Option to replace solid colors throughout the whole document.</li>
+<li>Support for external color palette formats (EPS, AI, PS, SOC, GPL).</li>
+<li>Locking of standardized color palettes.</li>
+<li>Many new color palettes, among them the national standard color sets of Australia, Japan, the United Kingdom and the United States, as well as Resene&#0174; color collections.</li>
+<li>New gradient types.</li>
+<li>Support for pattern fills: All graphics formats supported by Scribus can be used as patterns.</li>
+<li>Emulation of color blindness for all colors in a document.</li>
+</ul>
+<br>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/new5.png" title="Replacing solid colors" alt="Replacing solid colors" /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>Replacing solid colors</i></div></td>
+    </tr>
+  </tbody>
+</table>
+<br>
+
+<h4>Transparency</h4>
+<ul>
+<li>Blending modes as known from Photoshop or GIMP are now available for all objects in a Scribus document and can also be applied to layers.</li>
+</ul>
+
+<h4>Render Frames</h4>
+<ul>
+<li>One of the major new features is the introduction of Render Frames, a special frame type that allows for rendering the output of programs like LaTeX, Lilypond or POV-Ray inside Scribus.</li></ul>
+<br>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/new3.png" title="Render Frame Editor" alt="Render Frame Editor" /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>Render Frame Editor</i></div></td>
+    </tr>
+  </tbody>
+</table>
+<br>
+
+<h4>Import Filters</h4>
+<ul>
+<li>A considerable amount of work has been spent on new import filters for vector formats, most notably Adobe Illustrator (AI). Scribus can now import both EPS and PDF based AI files. Other filters are: Windows Metafile (WMF), Xfig (FIG), Calamus Vector Graphics (CVG), Macintosh PICT (PICT), Kivio Stencils (SML) and Dia Shapes (SHAPE).</li></ul>
+
+<br>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/new4.png" title="Adobe Illustrator import" alt="Adobe Illustrator import" /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>Adobe Illustrator import</i></div></td>
+    </tr>
+  </tbody>
+</table>
+<br>
+
+<h4>Image Handling</h4>
+<ul>
+<li>New non-destructive image effects.</li>
+<li>Better handling of PSD-specific features, like clipping paths and layers.</li>
+<li>Major improvements to the image manager.</li>
+</ul>
+<br>
+<table width="100%">
+  <tbody>
+    <tr>
+      <td align="center"><img src="images/new6.png" title="The new image manager" alt="The new image manager" /></td>
+    </tr>
+    <tr>
+      <td><div align="center"><i>The new image manager</i></div></td>
+    </tr>
+  </tbody>
+</table>
+<br>
+
+<h4>Layers</h4>
+<ul>
+<li>Scribus layers can now be exported as PDF layers (PDF 1.5 only).</li>
+<li>Duplicate Layers feature.</li>
+<li>Wireframe mode for layers to speed up performance.</li>
+<li>Enforceable text flow around objects on a lower layer.</li>
+</ul>
+
+<h4>Pre-press</h4>
+<ul>
+<li>Enhancements to the Print Preview, like indication of ink coverage.</li>
+<li>Improvements to the Preflight Verifier.</li>
+<li>New pre-press features, like bleed and printing marks.</li>
+<li>Optional conversion of spot colors to process colors.</li>
+</ul>
+
+<h4>PDF Export</h4>
+<ul>
+<li>Support for PDF 1.5 features, e.g. slide effects for PDF presentations or PDF layers.</li>
+<li>Optional embedding of EPS and PDF files in PDF documents.</li>
+<li>Better font subsetting.</li>
+</ul>
+
+<h4>Usabilty</h4>
+<p>Much work has been spent on major and minor usability improvements throughout the whole program, e.g.:</p>
+<ul>
+<li>A search feature for the Document Outline.</li>
+<li>Many more viewing options, including a document preview without guides and frame borders.</li>
+<li>One-click activation of color management.</li>
+<li>Context menu for the document canvas with options to insert vector graphics directly or to activate viewing options</li>
+<li>Many more options to automate and speed up the insertion of frames (e.g. Insert Frame dialog, &ldquo;Sticky Tools&rdquo; option).</li>
+<li>Enhancements to the Scrapbook.</li>
+</ul>
+
+<h4>Templates</h4>
+<ul>
+<li>Many templates, donated by artists, have been added.</li>
+<li>We have finally begun to translate the template categories and template descriptions into other languages.</li>
+</ul>
+
+<h4>Help System</h4>
+<ul>
+<li>The content of the Online Help system has almost doubled since the relase of the latest stable version 1.3.3.14. Moreover, major parts of the existing documentation have been updated or completely rewritten to reflect the feature set of Scribus 1.3.9+.</li>
+<li>Many new tooltips have been added, and existing ones have been expanded.</li>
+<li>Online help resources are now accessible from the <i>Help</i> menu.</li>
+</ul>
+
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/scribus-svg.html
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/scribus-svg.html
==============================================================================
--- branches/ScribusOIF/doc/en/scribus-svg.html (original)
+++ branches/ScribusOIF/doc/en/scribus-svg.html Sun Nov  7 00:35:15 2010
@@ -1,57 +1,31 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Scribus SVG Import/Export</title>
+	<title>Importing SVG</title>
 </head>
 <body>
-<h2>Scribus SVG Import/Export</h2>
-<p>Scribus includes SVG import/export plug-ins, which enables you to export Scribus pages or objects as SVG. The import plug-in allows you to import SVG drawings and documents from illustration programs like Inkscape, Skencil and Adobe Illustrator.</p>
-<p>These plug-ins have the capability to import and export SVG 1.0/1.1 standards 2D graphics primitives and text, which can then be displayed in web browsers with SVG capability, within SVG viewers or further edited with SVG capable vector editors, like Skencil, Inkscape or Adobe Illustrator.
-</p>
-<h4>Exporting using the Plug-in:</h4>
-<p>Export the whole page is simply have the page you want to be exported open, and use <strong>File > Export > Export Page as SVG..</strong></p>
-<h4>Importing using the Plug-in:</h4>
-<p>Go <strong>File..>Import SVG Image</strong> When you import an SVG image or drawing, it will appear like an object from the Scrapbook. Drag the cursor where you want to place the SVG image. </p>
+<h2>Importing SVG</h2>
+<h3>What is SVG?</h3>
+<p><a href="http://www.w3.org/Graphics/SVG/">SVG (Scalable Vector Graphics)</a> is an open standard, or, since version 1.1, a family of open standars for two-dimensional vector graphics. It is based on XML and maintained by the <a href="www.w3c.org">World Wide Web Consortium (W3C)</a>. Since the orginal (primary) purpose of SVG was usage for static and dynamic vector graphics for the web, only a subset of the specification(s) is relevant for use in Scribus. The huge success of SVG resulted in considerations to expand its scope to a universal 2D vector format, and &ldquo;universal&rdquo; includes support for professional printing, which is all the more interesting for Scribus. The broadened scope of the standard, however, made it necessary to define subsets of SVG, called &ldquo;profiles&rdquo;. As of version 1.1, two profiles have been defined, SVG Tiny for devices like mobile phones and SVG Basic for devices like PDAs. The W3C Working Draft for SVG 1.2 also includes a profile called <a href="http://www.w3.org/TR/SVGPrint/">SVG::Print</a>, which provides the features required by professional printers. The SVG 1.2 draft also included support for other color spaces than sRGB, like CMYK or even spot colors. However, 1.2 will probably be skipped in favor of SVG 2.0, which may take some time to develop.</p>
 
-<h4>SVG Importing Hints:</h4>
-<p>Scribus can handle most of the SVG features which can be created in Inkscape and Sketch, two well known vector drawing programs for Linux. The biggest issue I have observed is sometimes the paths when interpreted do not show up as closed. So parts of the SVG file look empty upon import. The simple fix is to ungroup the elements and then select the empty looking objects, then double click to bring up the editing palette for drawing objects and click on the close path button. Typically, then the invisible object will appear.</p>
-<p>I <strong>strongly recommend against</strong> creating special text effects in SVG, unless a: It cannot be done in Scribus and Scribus has very versatile text effect tools. b: The text effects are converted to outlines before importation. Why ? Scribus uses a PostScript model for handling fonts and text, where SVG uses a model much like html. In the case where you need to create them in another program, converting the text to outlines will be far more satisfactory.</p>
+<h3>Why SVG?</h3>
+<p>The major advantage of SVG is its openness and the availabilty of the full specification with no strings attached. As a result, SVGs have become ubiquitous in many areas like cartography or geo services. Most vector graphics available via Wikimedia are also SVG files.</p>
+<p>Another advantage of SVG is its XML base. In other words, SVG files, like Scribus SLA files, consist of plain text, which can be easily read by other programs or even human beings.</p>
+<p>SVG is also more or less well-supported by many vector drawing programs, including Adobe Illustrator or CorelDraw. The leading Open Source vector drawing program <a href="www.inkscape.org">Inkscape</a> is even primarily designed as an SVG editor.</p>
+<p>Unlike many other graphics formats, SVG supports color management by referencing an ICC profile in its XML code.</p>
 
-<h3>Scribus - SVG Q and A</h3>
-<h4>What is an SVG?</h4>
-<p>SVG (Scalable Vector Graphics) is a W3C recommended standard for vector graphics like line drawings, maps and logos. </p>
-<h4>Why add SVG Export to Scribus?</h4>
-<p>Increasingly, Scribus has more sophisticated drawing tools, which are both familiar and easy to use. End users might like to use Scribus created objects in other applications like web design. Many other applications can import SVG and export an SVG object into other file formats. This also makes it easy for your print and web objects to be created from the same source.</p>
-<h4>What features can I export with the plug-in?</h4>
-<p>Basic 2D graphics and text. Text on a path works sometimes with other applications, sometimes not. Adobe Illustrator and Inkscape (increasingly) both do a good job of importing Scribus SVG. Almost all features in a Scribus doc can be exported as SVG. Images within a page are converted to PNG. The Amaya Web browser will also display Scribus SVG. More and more browsers have native SVG rendering built in.</p>
-<h4>What features are not supported</h4>
-<p>The current version of the SVG-Import Plug-in has the following limitations:</p>
-<ol>
-	<li>Text isn't supported fully yet.</li>
-	<li>Not all gradient styles are fully supported.</li>
-	<li>No support for masking and clipping</li>
-	<li>Embedded SVG-Images aren't supported.</li>
-	<li>The SVG should be well formed, with all tags and structures should be correct. Corrupted SVGs could crash the plug-in.</li>
-	<li>Animations, multi-media and "extensions" or proprietary tags within SVG, which can only be viewed with certain viewers.</li>
-</ol>
-
-<h4>Why SVG?</h4>
-<p>SVG as a file format has many advantages:</p>
+<h3>Importing SVG</h3>
+<p>As with other vector formats, SVG files can either be opened directly via <i>File > Open</i> or imported into an existing Scribus document via <i>File > Import > Get Vector File</i>.</p>
+<p>Scribus will often display a warning, which tells you that not all SVG features in the file are supported by Scribus. In most cases you need not worry about the warning, as many SVG features are irrelevant for import into Scribus. For example, the SVG specification allows for the inclusion of metadata. Since an SVG file will be converted into native Scribus vector curves, this information will be discarded, but it nevertheless triggers the warning. More serious issues may arise if an SVG files uses so-called &ldquo;proprietary&rdquo; tags, i.e., features that are missing in the SVG specification, but were deemed necessary by the creator of the program that writes the SVG. Based on experience, though, almost all SVGs will be imported at a reasonably good quality.</p>
+<h4>Caveats</h4>
+<p>Although Scribus supports most of the relevant features of the SVG 1.0 and 1.1 specifications, there are a few limitations, some of which are the result of SVG itself, while others are based on Scribus internals.</p>
 <ul>
-	<li>Easy to implement. The SVG file format is based on XML and has many similarities to Scribus' native file format.</li>
-	<li>SVG is a scalable vector graphics, so graphics do not become pixellated when zoomed.</li>
-	<li>They are in XML format, text based and quick to load - much smaller than bitmap images. A typical SVG file is under 10k.</li>
-	<li>SVG is an open XML-based standard from the W3 consortium</li>
-	<li>It is platform neutral</li>
-	<li>Can be scripted for user interaction and control. Also has support for ICC color spaces so color display accurately, even within a browser.</li>
-	<li>SVG can also be color managed and supports a well defined way to specify ICC profiles.</li>
+<li><b>Dimensions</b>: As you may have noticed when you tried to import an SVG file, the imported drawing often has huge dimensions. This is a result of SVG&rsquo;s original purpose as a graphics markup language (in contrast to a page description language like PostScript or PDF). Just like the creator of a web page doesn&rsquo;t know anything about the screen size or the browser that renders the page, the authors of the SVG specification considered the dimensions of an SVG drawing as a result of &ldquo;negotiations&rdquo; between a server that provides the graphic and a client (a web browser, a mobile phone), who is supposed to tell the server what the required dimensions are. In plain English: The dimensions of the drawing are whatever a client says they are. For a page layout program like Scribus, this information is useless, and as a result, the SVG importer is trying a &ldquo;best guess&rdquo; when it comes to the dimensions of an SVG drawing. This may or may not work to everyone&rsquo;s satisfaction, but you can easily re-scale an imported SVG by using the the <i>X, Y, Z</i> tab of the Properties Palette.</li>
+<li><b>Layers</b>: The SVG specification doesn&rsquo;t support layers per se. Inkscape and Illustrator use groups with special attributes to function as layers, but these aren&rsquo;t recognized by Scribus yet. Thus, SVG files are always opened/imported as single-layer graphics.</li>
+<li><b>Fonts</b>: In contrast to formats like PostScript, EPS or AI, SVG files cannot embed any font format that&rsquo;s required in commercial printing, i.e., Type 1, TrueType and OpenType. Instead, an SVG file includes references to a used font. SVGs can, however, embed fonts that use the SVG format themselves &ndash; those fonts are most commonly referred to as &ldquo;SVG fonts&rdquo; &ndash;, but the SVG import filter of Scribus doesn&rsquo;t recognize them, and they play no role in professional printing. As a result, text will probably not import or at least not correctly. If you have any control over the creation of the SVG file, you should insist on converting all text to outlines before importing a file into Scribus. In case you need to edit the text, it&rsquo;s easier to add it in Scribus and use the built-in typographic tools.</li>
+<li><b>Filters/Effects</b>: The SVG specification defines a set of so-called &ldquo;Filter Effects&rdquo; for SVG drawings, but they aren&rsquo;t supported by Scribus yet. If you use one ore more of these filters in a drawing, you might consider exporting your SVG as a high-resolution bitmap, which will preserve the effects.</li>
+<li><b>Solid colors</b>: The SVG 1.0 and 1.1 specifications define solid colors exclusively in the RGBA color space (RGB + transparency). Thus, most SVGs &ldquo;in the wild&rdquo; contain only RGB colors. The SVG 1.2 Working Draft also allows CMYK and spot colors, and some applications, like Inkscape or Illustrator, already create files that contain those colors. Scribus uses the SVG <code>icc-color</code> tag to detect CMYK colors, but it imports those colors &ldquo;as is&rdquo;, without taking into account a referenced color profile. Spot colors in SVG files are not supported, as the SVG specification requires the use of named color profiles.</li>
+<li><b>Color management</b>: While the SVG specification supports the use of ICC color profiles, but just like fonts, profiles can&rsquo;t be embedded. The Scribus SVG import filter will ignore referenced color profiles and assume that RGB colors use the sRGB color space instead.</li>
 </ul>
-
-<h4>What about browser support?</h4>
-<p>Firefox 1.5+, Konqueror 3.4.0+, Opera and Safari support SVG natively.</p>
-<h4>Where can I learn more?</h4>
-<p><a href="http://www.svgx.org/">SVG Foundation</a> has a wealth of links and news.</p><p>Other links are listed in the <a href="http://www.scribus.net/index.php?name=Web_Links&req=viewlink&cid=7">Links page</a></p>
-<h4>A Scribus page displayed in a browser:</strong></h4>
-<table width="100%"><tr><td align="center"><img src="images/svg1.png" title="Scribus Page Exported as SVG in Browser" alt="Scribus Page Exported as SVG in Browser" /></td></tr></table>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/translation_howto.html
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/doc/en/translation_howto.html
==============================================================================
--- branches/ScribusOIF/doc/en/translation_howto.html (original)
+++ branches/ScribusOIF/doc/en/translation_howto.html Sun Nov  7 00:35:15 2010
@@ -6,23 +6,22 @@
 <body>
 <h2>How to create or update a translation of Scribus</h2>
 
-<p>Scribus is available in over 20 languages thanks to the many willing souls out there who have spent the time translating. This is no small task, but to be honest, not a very difficult one technically. This page outlines the requirements and procedures for creating or updating such a translation.</p>
+<p>Scribus is available in over 20 languages, thanks to the many willing souls out there who have spent the time translating. This is no small task, but at least technically not a very difficult one. This page outlines the requirements and procedures for creating or updating such a translation.</p>
 
-<p>Please note, there are many willing contributors to the Scribus project and there may already be a translation in progress for the language you wish to help for. It would be worthwhile asking on the mailing list to see if someone has started. This is also a courtesy matter. At this point we don't really have any &#034;official&#034; translators but perhaps you can work together, or take over an old translation if the previous translator no longer has the time to keep it up-to-date. So, here we go...</p>
+<p>Please note that there are many willing contributors to the Scribus project, and there may already be a translation in progress for the language you wish to help for. It would be worthwhile asking on the mailing list to see if someone has started. This is also a courtesy matter. At this point we don&rsquo;t really have any &ldquo;official&rdquo; translators but perhaps you can work together, or take over an old translation if the previous translator no longer has the time to keep it up-to-date. So, here we go&nbsp;...</p>
+<h3>Part One: Translating the TS files</h3>
 
-<h3>Requirements</h3>
+<h4>Requirements</h4>
 <ul>
-<li>The Scribus source from SVN. Please see the <a href="install.html">Installation</a> section for details on how to checkout SVN if you aren't up with that yet. Its not too hard so don't be dismayed. By working with the SVN source, you know you will be working with the latest Scribus source and therefore will get the most up-to-date set of files to translate.</li>
-<li>KBabel or Qt Linguist. Both of these are available in their respective development packages. The choice of which one to use is more a user preference, the result is the same.</li>
-<li>You will need to make sure you have the <strong><code>lupdate</code></strong> and <strong><code>lrelease</code></strong> programs which are a part of Qt, or perhaps a part of a Qt development package, depending on your distribution.</li>
-<li>If you use create .mo for .po files you need the <strong><code>msg2qm</code></strong> program to convert them to .qm files.</li>
-<li>For Scribus 1.3.5+, you must use Qt4's translation tools only. Do NOT use Qt3 utilities!</li>
+<li>The Scribus source from SVN. Please see the <a href="install1.html">Installation</a> section for details on how to checkout SVN if you aren&rsquo;t up with that yet. Its not too hard so don&rsquo;t be dismayed. By working with the SVN source, you know you will be working with the latest Scribus source and therefore will get the most up-to-date set of files to translate.</li>
+<li><a href="http://i18n.kde.org/tools/">Lokalize</a> or Qt4 Linguist (do <b>not</b> use Qt3 linguist!). Both of these are available in their respective development packages. The choice of which one to use is more a user preference, the result will be the same. For those who are new to this kind of work, Qt4 Linguist may be the tool of choice, as it offers a very simple, yet efficient user interface. Moreover, it's availabe for all platforms that are supported by Scribus (Linux/UNIX, Mac OS&nbsp;X, Windows 2000+, OS/4 Warp4 and eComStation).</li>
+<li>You will need to make sure you have the <code>lupdate</code> program installed, which is a part of Qt4, or perhaps a part of the Qt4 development package, depending on your distribution.</li>
 </ul>
 
-<h3>Procedure for creating or updating a translation file</h3>
+<h4>Procedure for creating or updating a translation file</h4>
 <ol>
-<li>Check out SVN as per instructions on this page.</li>
-<li>Move into the <code>Scribus</code> directory.</li>
+<li>Check out <a href="install1.html">SVN</a>.</li>
+<li>Move into the <code>~/Scribus</code> directory.</li>
 <li>Run <code>qmake -project</code>.</li>
 <li>Edit the <code>Scribus.pro</code> file to have the language listed at the bottom that you wish to translate for. For example,
 <blockquote><table width="100%" border="1" bgcolor="#eeeeee"><tr><td border="0">
@@ -30,16 +29,58 @@
 </td></tr></table></blockquote>
 Of course, replace the <code>en_GB</code> in this example with the language code you are working with.</li>
 <li>Run <code>lupdate Scribus.pro</code>.</li>
-<li>Start KBabel or Qt Linguist and load the <code>resources/translations/po/scribus.en_GB.ts</code> file.</li>
+<li>Start your translation program and load the <code>resources/translations/po/scribus.en_GB.ts</code> file.</li>
 <li>Perform the translations.</li>
-<li>Save the <code>.ts</code> file.</li>
-<li>Run <code>lrelease resources/translations/po/scribus.en_GB.ts -qm scribus/qm/scribus.en_GB.qm</code>. this can be simplified by just running <code>lrelease resources/translations/po/scribus.en_GB.ts</code> and the qm will be created for you in the <code>resources/translations/po</code> directory. The previous command allows a <code>make &#038;&#038; make install</code> with the translations in their correct places.</li>
-<li>Copy the <code>.qm</code> file to the <code>/usr/local/lib/scribus</code> directory (or appropriate Scribus installation directory on your PC).</li>
-<li>Run Scribus with the language code from the command line like: <code>scribus -lang en_GB</code>.</li>
-<li>Once you are happy with this, please open your web browser to the <a href="http://bugs.scribus.net">Scribus Bugs Website</a> and submit a new bug with Title of &#034;British English Translation Update&#034; and Category of &#034;Translation&#034; and upload the new <code>.ts</code> AND <code>.qm</code> into the bug system. If you can, please make a <code>tar.bz2</code> file of the two to save some space on the bugs site.</li>
-<li>If you need to update translations for the render frames editor, you also need to update xml files located in <code>resources/editorconfig</code> and attach updated files to your translation update request.</li>
-<li>That's it! When the next SVN release is made, your new translation will be added by the team.</li>
+<li>Save the <code>.ts</code> file and copy it into the source directory that contains the translation files (e.g. <code>~/Scribus/resources/translations</code>).</li>
+<li>If you want to test your translation before submitting it to the Scribus developers, delete the file CMakeCache.txt in your build directory (provided you have built Scribus from source before), rerun cmake as you did before, but now add the parameter <code>-DWANT_GUI_LANG="xx_XX</code>, where xx_XX is the language code for your translation, e.g. en_GB (British English) or pt_BR (Brazilian Portuguese).</li>
+<li>If you only specified your translation as a parameter, this will the only UI language available. If you have built Scribus with more than one language, select your translation in <i>File &gt; Preferences</i>.</li>
 </ol>
-<p>So that's it really! Enjoy Scribus in your favourite language!</p>
+<h3>Part Two: Translating other parts of Scribus</h3>
+<p>Unfortunately or fortunately, depending on your point of view, not all parts of the Scribus user interface can be translated via ts files. In two cases you need to edit XML files to translate Scribus, namely for Templates and the Render Frame editor.</p>
+<h4>Translating Templates</h4>
+<p>To translate Template categories, names and decriptions, you need the file <code>template.xml</code> from the directory <code> ~/Scribus/resources/templates</code>. Save this file under a name that helps Scribus identify the language you are translating to, e.g. <code>template.it.xml</code> for Italian.</p>
+<p>The content of the XML file is (hopefully) self-explanatory. There is an entry for each template. A complete entry looks like this:
+<pre>
+&lt;template category=&quot;<span style="color: red;">Newsletters</span>&quot;&gt;
+	&lt;name&gt;<span style="color: red;">TextBased</span>&lt;/name&gt;
+	&lt;file&gt;textbased/textbased.sla.gz&lt;/file&gt;
+	&lt;tnail&gt;textbased/textbasedtn.png&lt;/tnail&gt;
+	&lt;img&gt;textbased/textbased.png&lt;/img&gt;
+	&lt;psize&gt;A4&lt;/psize&gt;
+	&lt;color&gt;<span style="color: red;">color</span>&lt;/color&gt;
+	&lt;descr&gt;<span style="color: red;">A decent newsletter/magazine originaly created for one non-profit organization. Unrealized unfortunately.</span>&lt;/descr&gt;
+	&lt;usage&gt;<span style="color: red;">Right click on text replace what's inside with your own. Or whatever you want to... ;)</span>&lt;/usage&gt;
+	&lt;scribus_version&gt;1.2RC1cvs&lt;/scribus_version&gt;
+	&lt;date&gt;2004-07-10&lt;/date&gt;
+	&lt;author&gt;Petr Van&amp;#283;k&lt;/author&gt;
+	&lt;email&gt;petr at yarpen.cz&lt;/email&gt;
+&lt;/template&gt;
+</pre>
+Fortunately, you need not (actually <b>must</b> not) translate everything in here. What needs a translation is only the strings that are in red in the example above.</p>
+<h4>Translating the Render Frame Editor</h4>
+<p>As described in <a href="renderframes.html">Working with Render Frames</a>, this kind of frame is freely configurable. Not only can you add configuration files for new programs, but you can also add translations to existing ones. In contrast to Templates, you don&rsquo;t have to create new XML files for your translations. Instead, you need to edit the existing ones. The configuration files for Render Frames are located in <code>~Scribus/resources/editorconfig</code>. There is a file for each program, e.g. <code>100_latex.xml</code> for LaTeX, <code>300_lilypond.xml</code> for Lilypond etc.</p>
+<p>To make life easier for translators, the developer of the Render Frame plugin has placed an indicator for translatable text strings in the files, namely <code>i18n</code>, which is an acronym for &ldquo;internationalization&rdquo;:</p>
+<pre>
+&lt;title&gt;&lt;i18n&gt;
+	&lt;en&gt;Ranges&lt;/en&gt;
+	&lt;cs&gt;Rozsahy&lt;/cs&gt;
+	&lt;de&gt;Bereiche&lt;/de&gt;
+	&lt;fr&gt;Rangées&lt;/fr&gt;
+	&lt;pl&gt;Zakresy&lt;/pl&gt;
+	&lt;ru&gt;&amp;#1044;&amp;#1080;&amp;#1072;&amp;#1087;&amp;#1072;&amp;#1079;&amp;#1086;&amp;#1085;&amp;#1099;&lt;/ru&gt;
+	&lt;hu&gt;Tartomány&lt;/hu&gt;
+&lt;/i18n&gt;&lt;/title&gt;
+</pre>
+<p>If you want to add a, say, Dutch translation, simply add a string like this to the list above: <code>&lt;nl&gt;Bereik&lt;/nl&gt;</code>. Of course you should only submit a translated configuration file that&rsquo;s complete to the development team!</p>
+
+<h3>Submitting your translation</h3>
+<ul>
+<li>Once you are happy with the result of your hard work, please open your web browser, head to the <a href="http://bugs.scribus.net">Scribus Bugtracker</a> and submit a new bug with the title of your translation update under the &ldquo;Translation&rdquo; category.</p>
+<li><i><b>Please note that as of Scribus 1.3.9 it is no longer necessary to upload qm files, as these will be generated at build time. Also note that the translation of the Templates and Render Frame files is optional.</b></i></p></li>
+<li>If you want to be credited (and we prefer to give credit where credit is due!), please add your name and your email address to the bug report.</li>
+<li>That&rsquo;s it! When the next SVN release is made, your new translation will be added by the team. Usually, new translations are being added SVN within one or two days.</li>
+</ul>
+<h3>Translating the Online Help</h3>
+<p>Before you start translating the Online Help, you should be aware of the fact that this a huge task, and this doesn&rsquo;t just refer to the skills or the time required to successfully complete the work. The documentation will be updated on a regular basis, which is why you should contact the team before you are wasting your time on translating files that are in the process of being rewritten or replaced. Also note that some basic HTML knowledge will help a lot, since all help files are written in HTML. Again, you are advised to contact the development team to learn about the rather strict HTML coding conventions for Scribus help files.</p>
 </body>
 </html>

Modified: branches/ScribusOIF/scribus/colorsetmanager.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/colorsetmanager.cpp
==============================================================================
--- branches/ScribusOIF/scribus/colorsetmanager.cpp (original)
+++ branches/ScribusOIF/scribus/colorsetmanager.cpp Sun Nov  7 00:35:15 2010
@@ -139,7 +139,7 @@
 void ColorSetManager::searchDir(QString path, QMap<QString, QString> &pList, QTreeWidgetItem* parent)
 {
 	QStringList exts;
-	exts << "aco" << "ai" << "eps" << "gpl" << "skp" << "sla" << "soc" << "xar" << "xml";
+	exts << "acb" << "aco" << "ai" << "eps" << "gpl" << "skp" << "sla" << "soc" << "xar" << "xml";
 	QDir dirs(path, "*", QDir::Name,  QDir::Dirs | QDir::NoDotAndDotDot | QDir::Files | QDir::NoSymLinks);
 	dirs.setSorting(QDir::Name | QDir::DirsFirst);
 	if ((dirs.exists()) && (dirs.count() != 0))

Modified: branches/ScribusOIF/scribus/langmgr.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/langmgr.cpp
==============================================================================
--- branches/ScribusOIF/scribus/langmgr.cpp (original)
+++ branches/ScribusOIF/scribus/langmgr.cpp Sun Nov  7 00:35:15 2010
@@ -508,7 +508,7 @@
 {
 	if(langIsAbbreviated)
 		return hyphLangList.value(lang);
-	return hyphLangList.value(getAbbrevFromLang(lang, false));
+	return hyphLangList.value(getAbbrevFromLang(lang, false, false));
 }
 
 const QStringList LanguageManager::hyphLangs()

Modified: branches/ScribusOIF/scribus/pageitem_desaxe.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/pageitem_desaxe.cpp
==============================================================================
--- branches/ScribusOIF/scribus/pageitem_desaxe.cpp (original)
+++ branches/ScribusOIF/scribus/pageitem_desaxe.cpp Sun Nov  7 00:35:15 2010
@@ -129,6 +129,7 @@
 	result.insert("image-x-position", toXMLString(item->imageXOffset()));
 	result.insert("image-y-position", toXMLString(item->imageYOffset()));
 	result.insert("image-rotation", toXMLString(item->imageRotation()));
+	result.insert("image-clip", toXMLString(item->pixm.imgInfo.usedPath));
 	if (item->OverrideCompressionMethod)
 	{
 		result.insert("COMPRESSIONMETHODOVER", toXMLString(item->OverrideCompressionMethod));
@@ -914,12 +915,28 @@
 
 class LoadPicture_body : public Action_body
 {
+	void begin (const Xml_string& tagName, Xml_attr attr)
+	{
+		clipPath = attr["image-clip"];
+	}
 	void end (const Xml_string& /*tagname*/)
 	{
 		PageItem* item = this->dig->top<PageItem>();
 		if (item->itemType() == PageItem::ImageFrame)
 			item->loadImage(item->externalFile(), true);
-	}
+		if (item->pixm.imgInfo.PDSpathData.contains(clipPath))
+		{
+			item->imageClip = item->pixm.imgInfo.PDSpathData[clipPath].copy();
+			item->pixm.imgInfo.usedPath = clipPath;
+			QTransform cl;
+			cl.translate(item->imageXOffset()*item->imageXScale(), item->imageYOffset()*item->imageYScale());
+			cl.scale(item->imageXScale(), item->imageYScale());
+			item->imageClip.map(cl);
+			item->loadImage(item->externalFile(), true);
+		}
+	}
+private:
+	QString clipPath;
 };
 
 class LoadPicture : public MakeAction<LoadPicture_body>
@@ -1004,6 +1021,26 @@
 };
 
 struct  LatexParams : public MakeAction<LatexParams_body> 
+{};
+
+class LatexParamsExtra_body : public Action_body
+{
+	void begin (const Xml_string& tagName, Xml_attr attr)
+	{
+		if (tagName=="property")
+		{
+			if (this->dig->top<PageItem>()->realItemType() == PageItem::LatexFrame)
+			{
+				PageItem_LatexFrame* obj = dynamic_cast<PageItem_LatexFrame *> (this->dig->top<PageItem>());
+				QString name  = attr["name"];
+				QString value = attr["value"];
+				obj->editorProperties[name] = value;
+			}
+		}
+	}
+};
+
+class LatexParamsExtra : public MakeAction<LatexParamsExtra_body>
 {};
 
 
@@ -1182,6 +1219,10 @@
 	ruleset.addRule(itemPrefix, SetAttribute<PageItem,QString>( & PageItem::setFileIconRollover, "icon-rollover-file" ));
 	ruleset.addRule("latex-source", LatexSource());
 	ruleset.addRule(itemPrefix, LatexParams());
+	LatexParamsExtra laExtra;
+	Xml_string latexPrefixMG(Digester::concat(itemPrefix, "latex-source"));
+	ruleset.addRule(latexPrefixMG, laExtra);
+	ruleset.addRule(Digester::concat(latexPrefixMG, "property"), laExtra);
 #ifdef HAVE_OSG
 	ruleset.addRule(itemPrefix, OSGParams());
 	OSGViews osgViewset;

Modified: branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp Sun Nov  7 00:35:15 2010
@@ -3009,7 +3009,7 @@
 			break;
 		if (reader.isCharacters())
 			formula += reader.text().toString();
-		if (reader.isStartDocument() && reader.name() == "PROPERTY")
+		if (reader.isStartElement() && reader.name() == "PROPERTY")
 		{
 			ScXmlStreamAttributes tAtt = reader.scAttributes();
 			QString name  = tAtt.valueAsString("name");

Modified: branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp Sun Nov  7 00:35:15 2010
@@ -1886,12 +1886,12 @@
 	docu.writeAttribute("TransBlend", item->fillBlendmode());
 	docu.writeAttribute("TransBlendS", item->lineBlendmode());
 	docu.writeAttribute("isTableItem", static_cast<int>(item->isTableItem));
-	docu.writeAttribute("TopLine", static_cast<int>(item->TopLine));
-	docu.writeAttribute("LeftLine", static_cast<int>(item->LeftLine));
-	docu.writeAttribute("RightLine", static_cast<int>(item->RightLine));
-	docu.writeAttribute("BottomLine", static_cast<int>(item->BottomLine));
 	if (item->isTableItem)
 	{
+		docu.writeAttribute("TopLine", static_cast<int>(item->TopLine));
+		docu.writeAttribute("LeftLine", static_cast<int>(item->LeftLine));
+		docu.writeAttribute("RightLine", static_cast<int>(item->RightLine));
+		docu.writeAttribute("BottomLine", static_cast<int>(item->BottomLine));
 		if (item->TopLink != 0)
 			docu.writeAttribute("TopLINK", item->TopLink->ItemNr);
 		else
@@ -1947,8 +1947,11 @@
 	docu.writeAttribute("GROUPS", glp);
 	if ( ! item->itemText.defaultStyle().charStyle().isInhLanguage())
 		docu.writeAttribute("LANGUAGE", item->itemText.defaultStyle().charStyle().language());
-	docu.writeAttribute("startArrowIndex", item->startArrowIndex());
-	docu.writeAttribute("endArrowIndex", item->endArrowIndex());
-	docu.writeAttribute("startArrowScale", item->startArrowScale());
-	docu.writeAttribute("endArrowScale", item->endArrowScale());
-}
+	if (item->asLine() || item->asPolyLine())
+	{
+		docu.writeAttribute("startArrowIndex", item->startArrowIndex());
+		docu.writeAttribute("endArrowIndex", item->endArrowIndex());
+		docu.writeAttribute("startArrowScale", item->startArrowScale());
+		docu.writeAttribute("endArrowScale", item->endArrowScale());
+	}
+}

Modified: branches/ScribusOIF/scribus/plugins/import/ai/importai.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/ai/importai.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/ai/importai.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/ai/importai.cpp Sun Nov  7 00:35:15 2010
@@ -958,8 +958,8 @@
 					FarNam = QString::fromUtf8(farN.constData());
 					cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * yc), qRound(255 * k));
 					cc.setSpotColor(true);
-					if ((!CustColors.contains(FarNam)) && (!FarNam.isEmpty()))
-						CustColors.insert(FarNam, cc);
+					if (!FarNam.isEmpty())
+						CustColors.tryAddColor(FarNam, cc);
 					while (!ts.atEnd())
 					{
 						quint64 oldPos = ts.device()->pos();
@@ -989,8 +989,8 @@
 						FarNam = QString::fromUtf8(farN.constData());
 						cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * yc), qRound(255 * k));
 						cc.setSpotColor(true);
-						if ((!CustColors.contains(FarNam)) && (!FarNam.isEmpty()))
-							CustColors.insert(FarNam, cc);
+						if (!FarNam.isEmpty())
+							CustColors.tryAddColor(FarNam, cc);
 					}
 				}
 			}
@@ -1022,8 +1022,8 @@
 					}
 					FarNam = QString::fromUtf8(farN.constData());
 					cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * yc));
-					if ((!CustColors.contains(FarNam)) && (!FarNam.isEmpty()))
-						CustColors.insert(FarNam, cc);
+					if (!FarNam.isEmpty())
+						CustColors.tryAddColor(FarNam, cc);
 					while (!ts.atEnd())
 					{
 						quint64 oldPos = ts.device()->pos();
@@ -1052,8 +1052,8 @@
 						}
 						FarNam = QString::fromUtf8(farN.constData());
 						cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * yc));
-						if ((!CustColors.contains(FarNam)) && (!FarNam.isEmpty()))
-							CustColors.insert(FarNam, cc);
+						if (!FarNam.isEmpty())
+							CustColors.tryAddColor(FarNam, cc);
 					}
 				}
 			}
@@ -1108,8 +1108,7 @@
 							}
 							cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * yc), qRound(255 * k));
 							cc.setSpotColor(true);
-							if (!CustColors.contains(FarNam))
-								CustColors.insert(FarNam, cc);
+							CustColors.tryAddColor(FarNam, cc);
 						}
 					}
 				}
@@ -1153,9 +1152,7 @@
 		return ret;
 	double c, m, y, k;
 	ScColor tmp;
-	ColorList::Iterator it;
 	ScTextStream Code(&data, QIODevice::ReadOnly);
-	bool found = false;
 	Code >> c;
 	Code >> m;
 	Code >> y;
@@ -1164,30 +1161,14 @@
 	int Mc = qRound(m * 255);
 	int Yc = qRound(y * 255);
 	int Kc = qRound(k * 255);
-	int hC, hM, hY, hK;
 	tmp.setColor(Cc, Mc, Yc, Kc);
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelCMYK)
-		{
-			it.value().getCMYK(&hC, &hM, &hY, &hK);
-			if ((Cc == hC) && (Mc == hM) && (Yc == hY) && (Kc == hK))
-			{
-				ret = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		QString namPrefix = "FromAI";
-		m_Doc->PageColors.insert(namPrefix+tmp.name(), tmp);
-		importedColors.append(namPrefix+tmp.name());
-		ret = namPrefix+tmp.name();
-	}
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString namPrefix = "FromAI";
+	QString fNam = m_Doc->PageColors.tryAddColor(namPrefix+tmp.name(), tmp);
+	if (fNam == namPrefix+tmp.name())
+		importedColors.append(fNam);
+	ret = fNam;
 	return ret;
 }
 
@@ -1200,33 +1181,16 @@
 	ScColor tmp;
 	ColorList::Iterator it;
 	ScTextStream Code(&data, QIODevice::ReadOnly);
-	bool found = false;
 	Code >> k;
 	int Kc = 255 - qRound(k * 255);
-	int hC, hM, hY, hK;
 	tmp.setColor(0, 0, 0, Kc);
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelCMYK)
-		{
-			it.value().getCMYK(&hC, &hM, &hY, &hK);
-			if ((hC == 0) && (hM == 0) && (hY == 0) && (Kc == hK))
-			{
-				ret = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		QString namPrefix = "FromAI";
-		m_Doc->PageColors.insert(namPrefix+tmp.name(), tmp);
-		importedColors.append(namPrefix+tmp.name());
-		ret = namPrefix+tmp.name();
-	}
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString namPrefix = "FromAI";
+	QString fNam = m_Doc->PageColors.tryAddColor(namPrefix+tmp.name(), tmp);
+	if (fNam == namPrefix+tmp.name())
+		importedColors.append(fNam);
+	ret = fNam;
 	return ret;
 }
 
@@ -1237,39 +1201,21 @@
 		return ret;
 	double r, g, b;
 	ScColor tmp;
-	ColorList::Iterator it;
 	ScTextStream Code(&data, QIODevice::ReadOnly);
-	bool found = false;
 	Code >> r;
 	Code >> g;
 	Code >> b;
 	int Rc = qRound(r * 255);
 	int Gc = qRound(g * 255);
 	int Bc = qRound(b * 255);
-	int hR, hG, hB;
 	tmp.setColorRGB(Rc, Gc, Bc);
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelRGB)
-		{
-			it.value().getRGB(&hR, &hG, &hB);
-			if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-			{
-				ret = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		QString namPrefix = "FromAI";
-		m_Doc->PageColors.insert(namPrefix+tmp.name(), tmp);
-		importedColors.append(namPrefix+tmp.name());
-		ret = namPrefix+tmp.name();
-	}
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString namPrefix = "FromAI";
+	QString fNam = m_Doc->PageColors.tryAddColor(namPrefix+tmp.name(), tmp);
+	if (fNam == namPrefix+tmp.name())
+		importedColors.append(fNam);
+	ret = fNam;
 	return ret;
 }
 
@@ -1280,9 +1226,7 @@
 		return ret;
 	double c, m, y, k, sh;
 	ScColor tmp;
-	ColorList::Iterator it;
 	ScTextStream Code(&data, QIODevice::ReadOnly);
-	bool found = false;
 	Code >> c;
 	Code >> m;
 	Code >> y;
@@ -1300,29 +1244,13 @@
 	int Mc = qRound(m * 255);
 	int Yc = qRound(y * 255);
 	int Kc = qRound(k * 255);
-	int hC, hM, hY, hK;
 	tmp.setColor(Cc, Mc, Yc, Kc);
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelCMYK)
-		{
-			it.value().getCMYK(&hC, &hM, &hY, &hK);
-			if ((Cc == hC) && (Mc == hM) && (Yc == hY) && (Kc == hK))
-			{
-				ret = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setSpotColor(true);
-		tmp.setRegistrationColor(false);
-		m_Doc->PageColors.insert(FarNam, tmp);
+	tmp.setSpotColor(true);
+	tmp.setRegistrationColor(false);
+	QString fNam = m_Doc->PageColors.tryAddColor(FarNam, tmp);
+	if (fNam == FarNam)
 		importedColors.append(FarNam);
-		ret = FarNam;
-	}
+	ret = fNam;
 	return ret;
 }
 
@@ -1333,9 +1261,7 @@
 		return ret;
 	double c, m, y, k, sh, r, g, b;
 	ScColor tmp;
-	ColorList::Iterator it;
 	ScTextStream Code(&data, QIODevice::ReadOnly);
-	bool found = false;
 	if (type == "1")
 	{
 		Code >> r;
@@ -1344,21 +1270,7 @@
 		int Rc = qRound(r * 255);
 		int Gc = qRound(g * 255);
 		int Bc = qRound(b * 255);
-		int hR, hG, hB;
 		tmp.setColorRGB(Rc, Gc, Bc);
-		for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-		{
-			if (it.value().getColorModel() == colorModelRGB)
-			{
-				it.value().getRGB(&hR, &hG, &hB);
-				if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-				{
-					ret = it.key();
-					found = true;
-					break;
-				}
-			}
-		}
 	}
 	else
 	{
@@ -1370,21 +1282,7 @@
 		int Mc = qRound(m * 255);
 		int Yc = qRound(y * 255);
 		int Kc = qRound(k * 255);
-		int hC, hM, hY, hK;
 		tmp.setColor(Cc, Mc, Yc, Kc);
-		for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-		{
-			if (it.value().getColorModel() == colorModelCMYK)
-			{
-				it.value().getCMYK(&hC, &hM, &hY, &hK);
-				if ((Cc == hC) && (Mc == hM) && (Yc == hY) && (Kc == hK))
-				{
-					ret = it.key();
-					found = true;
-					break;
-				}
-			}
-		}
 	}
 	QString tmpS = data;
 	int an = data.indexOf("(");
@@ -1395,15 +1293,13 @@
 	ScTextStream Val(&FarSha, QIODevice::ReadOnly);
 	Val >> sh;
 	shade = (1.0 - sh) * 100.0;
-	if (!found)
-	{
-		if (type == "0")
-			tmp.setSpotColor(true);
-		tmp.setRegistrationColor(false);
-		m_Doc->PageColors.insert(FarNam, tmp);
+	if (type == "0")
+		tmp.setSpotColor(true);
+	tmp.setRegistrationColor(false);
+	QString fNam = m_Doc->PageColors.tryAddColor(FarNam, tmp);
+	if (fNam == FarNam)
 		importedColors.append(FarNam);
-		ret = FarNam;
-	}
+	ret = fNam;
 	return ret;
 }
 

Modified: branches/ScribusOIF/scribus/plugins/import/cgm/importcgm.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/cgm/importcgm.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/cgm/importcgm.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/cgm/importcgm.cpp Sun Nov  7 00:35:15 2010
@@ -2566,61 +2566,9 @@
 
 QString CgmPlug::handleColor(ScColor &color, QString proposedName)
 {
-	QString tmpName = CommonStrings::None;
-	int hR, hG, hB, hK;
-	int pR, pG, pB, pC, pM, pY, pK;
-	bool found = false;
-	ColorList::Iterator it;
-	if (color.getColorModel() == colorModelRGB)
-		color.getRGB(&pR, &pG, &pB);
-	else
-		color.getCMYK(&pC, &pM, &pY, &pK);
-	if ((!proposedName.isEmpty()) && ((proposedName == "White") || (proposedName == "Black") || (m_Doc->PageColors.contains(proposedName))))
-		tmpName = proposedName;
-	else
-	{
-		if (color.getColorModel() == colorModelRGB)
-		{
-			for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-			{
-				if (it.value().getColorModel() == colorModelRGB)
-				{
-					it.value().getRGB(&hR, &hG, &hB);
-					if ((pR == hR) && (pG == hG) && (pB == hB))
-					{
-						tmpName = it.key();
-						found = true;
-						break;
-					}
-				}
-			}
-			if (!found)
-			{
-				m_Doc->PageColors.insert(proposedName, color);
-				importedColors.append(proposedName);
-				tmpName = proposedName;
-			}
-		}
-		else
-		{
-			for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-			{
-				it.value().getCMYK(&hR, &hG, &hB, &hK);
-				if ((pC == hR) && (pM == hG) && (pY == hB) && (pK == hK))
-				{
-					tmpName = it.key();
-					found = true;
-					break;
-				}
-			}
-			if (!found)
-			{
-				m_Doc->PageColors.insert(proposedName, color);
-				importedColors.append(proposedName);
-				tmpName = proposedName;
-			}
-		}
-	}
+	QString tmpName = m_Doc->PageColors.tryAddColor(proposedName, color);
+	if (tmpName == proposedName)
+		importedColors.append(tmpName);
 	return tmpName;
 }
 

Modified: branches/ScribusOIF/scribus/plugins/import/cvg/importcvg.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/cvg/importcvg.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/cvg/importcvg.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/cvg/importcvg.cpp Sun Nov  7 00:35:15 2010
@@ -585,76 +585,36 @@
 void CvgPlug::parseColor(quint32 dataF, quint32 dataS, bool color, quint16 flag)
 {
 	ScColor tmp;
-	ColorList::Iterator it;
 	CurrColorFill = CommonStrings::None;
 	CurrFillShade = 100.0;
 	CurrColorStroke = CommonStrings::None;
 	CurrStrokeShade = 100.0;
 	QColor c;
-	int Rc, Gc, Bc, hR, hG, hB;
 	if (color)
 	{
-		bool found = false;
 		if ((flag == 0x0080) || (flag == 0x0200))
 		{
 			c.setRgb(dataF);
-			Rc = c.red();
-			Gc = c.green();
-			Bc = c.blue();
-			for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-			{
-				if (it.value().getColorModel() == colorModelRGB)
-				{
-					it.value().getRGB(&hR, &hG, &hB);
-					if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-					{
-						CurrColorFill = it.key();
-						found = true;
-						break;
-					}
-				}
-			}
-			if (!found)
-			{
-				tmp.fromQColor(c);
-				tmp.setSpotColor(false);
-				tmp.setRegistrationColor(false);
-				QString newColorName = "FromCVG"+c.name();
-				m_Doc->PageColors.insert(newColorName, tmp);
-				importedColors.append(newColorName);
-				CurrColorFill = newColorName;
-			}
+			tmp.fromQColor(c);
+			tmp.setSpotColor(false);
+			tmp.setRegistrationColor(false);
+			QString newColorName = "FromCVG"+c.name();
+			QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp);
+			if (fNam == newColorName)
+				importedColors.append(fNam);
+			CurrColorFill = fNam;
 		}
 		if ((flag == 0x0080) || (flag == 0x0100))
 		{
-			found = false;
 			c.setRgb(dataS);
-			Rc = c.red();
-			Gc = c.green();
-			Bc = c.blue();
-			for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-			{
-				if (it.value().getColorModel() == colorModelRGB)
-				{
-					it.value().getRGB(&hR, &hG, &hB);
-					if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-					{
-						CurrColorStroke = it.key();
-						found = true;
-						break;
-					}
-				}
-			}
-			if (!found)
-			{
-				tmp.fromQColor(c);
-				tmp.setSpotColor(false);
-				tmp.setRegistrationColor(false);
-				QString newColorName = "FromCVG"+c.name();
-				m_Doc->PageColors.insert(newColorName, tmp);
-				importedColors.append(newColorName);
-				CurrColorStroke = newColorName;
-			}
+			tmp.fromQColor(c);
+			tmp.setSpotColor(false);
+			tmp.setRegistrationColor(false);
+			QString newColorName = "FromCVG"+c.name();
+			QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp);
+			if (fNam == newColorName)
+				importedColors.append(fNam);
+			CurrColorStroke = fNam;
 		}
 	}
 	else

Modified: branches/ScribusOIF/scribus/plugins/import/drw/importdrw.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/drw/importdrw.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/drw/importdrw.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/drw/importdrw.cpp Sun Nov  7 00:35:15 2010
@@ -2045,61 +2045,9 @@
 
 QString DrwPlug::handleColor(ScColor &color, QString proposedName)
 {
-	QString tmpName = CommonStrings::None;
-	int hR, hG, hB, hK;
-	int pR, pG, pB, pC, pM, pY, pK;
-	bool found = false;
-	ColorList::Iterator it;
-	if (color.getColorModel() == colorModelRGB)
-		color.getRGB(&pR, &pG, &pB);
-	else
-		color.getCMYK(&pC, &pM, &pY, &pK);
-	if ((!proposedName.isEmpty()) && ((proposedName == "White") || (proposedName == "Black") || (m_Doc->PageColors.contains(proposedName))))
-		tmpName = proposedName;
-	else
-	{
-		if (color.getColorModel() == colorModelRGB)
-		{
-			for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-			{
-				if (it.value().getColorModel() == colorModelRGB)
-				{
-					it.value().getRGB(&hR, &hG, &hB);
-					if ((pR == hR) && (pG == hG) && (pB == hB))
-					{
-						tmpName = it.key();
-						found = true;
-						break;
-					}
-				}
-			}
-			if (!found)
-			{
-				m_Doc->PageColors.insert(proposedName, color);
-				importedColors.append(proposedName);
-				tmpName = proposedName;
-			}
-		}
-		else
-		{
-			for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-			{
-				it.value().getCMYK(&hR, &hG, &hB, &hK);
-				if ((pC == hR) && (pM == hG) && (pY == hB) && (pK == hK))
-				{
-					tmpName = it.key();
-					found = true;
-					break;
-				}
-			}
-			if (!found)
-			{
-				m_Doc->PageColors.insert(proposedName, color);
-				importedColors.append(proposedName);
-				tmpName = proposedName;
-			}
-		}
-	}
+	QString tmpName = m_Doc->PageColors.tryAddColor(proposedName, color);
+	if (tmpName == proposedName)
+		importedColors.append(tmpName);
 	return tmpName;
 }
 

Modified: branches/ScribusOIF/scribus/plugins/import/oodraw/oodrawimp.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/oodraw/oodrawimp.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/oodraw/oodrawimp.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/oodraw/oodrawimp.cpp Sun Nov  7 00:35:15 2010
@@ -1612,33 +1612,14 @@
 		else
 			c = parseColorN( rgbColor );
 	}
-	ColorList::Iterator it;
-	bool found = false;
-	int r, g, b;
-	QColor tmpR;
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelRGB)
-		{
-			it.value().getRGB(&r, &g, &b);
-			tmpR.setRgb(r, g, b);
-			if (c == tmpR)
-			{
-				ret = it.key();
-				found = true;
-			}
-		}
-	}
-	if (!found)
-	{
-		ScColor tmp;
-		tmp.fromQColor(c);
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		m_Doc->PageColors.insert("FromOODraw"+c.name(), tmp);
-		importedColors.append("FromOODraw"+c.name());
-		ret = "FromOODraw"+c.name();
-	}
+	ScColor tmp;
+	tmp.fromQColor(c);
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString fNam = m_Doc->PageColors.tryAddColor("FromOODraw"+c.name(), tmp);
+	if (fNam == "FromOODraw"+c.name())
+		importedColors.append(fNam);
+	ret = fNam;
 	return ret;
 }
 

Modified: branches/ScribusOIF/scribus/plugins/import/pct/importpct.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/pct/importpct.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/pct/importpct.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/pct/importpct.cpp Sun Nov  7 00:35:15 2010
@@ -1106,7 +1106,6 @@
 	handleLineModeEnd();
 	QString tmpName = CommonStrings::None;
 	ScColor tmp;
-	ColorList::Iterator it;
 	quint16 Rc, Gc, Bc;
 	quint32 colVal;
 	ts >> colVal;
@@ -1163,30 +1162,15 @@
 	redC = qRound((Rc / 65535.0) * 255.0);
 	greenC = qRound((Gc / 65535.0) * 255.0);
 	blueC = qRound((Bc / 65535.0) * 255.0);
-	bool found = false;
 	QColor c = QColor(redC, greenC, blueC);
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelRGB)
-		{
-			it.value().getRGB(&hR, &hG, &hB);
-			if ((redC == hR) && (greenC == hG) && (blueC == hB))
-			{
-				tmpName = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setColorRGB(redC, greenC, blueC);
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		tmpName = "FromPict"+c.name();
-		m_Doc->PageColors.insert(tmpName, tmp);
+	tmp.setColorRGB(redC, greenC, blueC);
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	tmpName = "FromPict"+c.name();
+	QString fNam = m_Doc->PageColors.tryAddColor(tmpName, tmp);
+	if (fNam == tmpName)
 		importedColors.append(tmpName);
-	}
+	tmpName = fNam;
 	if (back)
 	{
 		CurrColorFill = tmpName;
@@ -1211,30 +1195,15 @@
 	redC = qRound((Rc / 65535.0) * 255.0);
 	greenC = qRound((Gc / 65535.0) * 255.0);
 	blueC = qRound((Bc / 65535.0) * 255.0);
-	bool found = false;
 	QColor c = QColor(redC, greenC, blueC);
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelRGB)
-		{
-			it.value().getRGB(&hR, &hG, &hB);
-			if ((redC == hR) && (greenC == hG) && (blueC == hB))
-			{
-				tmpName = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setColorRGB(redC, greenC, blueC);
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		tmpName = "FromPict"+c.name();
-		m_Doc->PageColors.insert(tmpName, tmp);
+	tmp.setColorRGB(redC, greenC, blueC);
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	tmpName = "FromPict"+c.name();
+	QString fNam = m_Doc->PageColors.tryAddColor(tmpName, tmp);
+	if (fNam == tmpName)
 		importedColors.append(tmpName);
-	}
+	tmpName = fNam;
 	if (back)
 	{
 		CurrColorFill = tmpName;

Modified: branches/ScribusOIF/scribus/plugins/import/ps/importps.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/ps/importps.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/ps/importps.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/ps/importps.cpp Sun Nov  7 00:35:15 2010
@@ -1024,9 +1024,7 @@
 		return ret;
 	double c, m, y, k, r, g, b;
 	ScColor tmp;
-	ColorList::Iterator it;
 	ScTextStream Code(&vals, QIODevice::ReadOnly);
-	bool found = false;
 	if (model == colorModelRGB)
 	{
 		Code >> r;
@@ -1040,21 +1038,7 @@
 		int Rc = qRound(r * 255);
 		int Gc = qRound(g * 255);
 		int Bc = qRound(b * 255);
-		int hR, hG, hB;
 		tmp.setColorRGB(Rc, Gc, Bc);
-		for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-		{
-			if (it.value().getColorModel() == colorModelRGB)
-			{
-				it.value().getRGB(&hR, &hG, &hB);
-				if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-				{
-					ret = it.key();
-					found = true;
-					break;
-				}
-			}
-		}
 	}
 	else
 	{
@@ -1063,40 +1047,18 @@
 		Code >> y;
 		Code >> k;
 		Code >> Opacity;
-/*		int Cc = static_cast<int>(c * 255 + 0.5);
-		int Mc = static_cast<int>(m * 255 + 0.5);
-		int Yc = static_cast<int>(y * 255 + 0.5);
-		int Kc = static_cast<int>(k * 255 + 0.5); */
 		int Cc = qRound(c * 255);
 		int Mc = qRound(m * 255);
 		int Yc = qRound(y * 255);
 		int Kc = qRound(k * 255);
-		int hC, hM, hY, hK;
 		tmp.setColor(Cc, Mc, Yc, Kc);
-		for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-		{
-			if (it.value().getColorModel() == colorModelCMYK)
-			{
-				it.value().getCMYK(&hC, &hM, &hY, &hK);
-				if ((Cc == hC) && (Mc == hM) && (Yc == hY) && (Kc == hK))
-				{
-					ret = it.key();
-					found = true;
-					break;
-				}
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		QString namPrefix = "FromEPS";
-		if (!eps)
-			namPrefix = "FromPS";
-		m_Doc->PageColors.insert(namPrefix+tmp.name(), tmp);
-//		importedColors.append(namPrefix+tmp.name());
-		ret = namPrefix+tmp.name();
-	}
+	}
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString namPrefix = "FromEPS";
+	if (!eps)
+		namPrefix = "FromPS";
+	QString fNam = m_Doc->PageColors.tryAddColor(namPrefix+tmp.name(), tmp);
+	ret = fNam;
 	return ret;
 }

Modified: branches/ScribusOIF/scribus/plugins/import/svg/svgplugin.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/svg/svgplugin.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/svg/svgplugin.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/svg/svgplugin.cpp Sun Nov  7 00:35:15 2010
@@ -2231,35 +2231,15 @@
 		else
 			c = parseColorN( rgbColor );
 	}
-	ColorList::Iterator it;
-	bool found = false;
-	int r, g, b;
-	QColor tmpR;
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelRGB)
-		{
-			it.value().getRGB(&r, &g, &b);
-			tmpR.setRgb(r, g, b);
-			if (c == tmpR)
-			{
-				ret = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		ScColor tmp;
-		tmp.fromQColor(c);
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		QString newColorName = "FromSVG"+c.name();
-		m_Doc->PageColors.insert(newColorName, tmp);
+	ScColor tmp;
+	tmp.fromQColor(c);
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString newColorName = "FromSVG"+c.name();
+	QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp);
+	if (fNam == newColorName)
 		importedColors.append(newColorName);
-		ret = newColorName;
-	}
+	ret = fNam;
 	return ret;
 }
 
@@ -2267,7 +2247,7 @@
 {
 	QColor color, tmpR;
 	QString ret;
-	bool iccColorFound = false, found = false;
+	bool iccColorFound = false;
 	int iccColorIndex  = s.indexOf("icc-color");
 	if (iccColorIndex < 0)
 		return ret;
@@ -2311,34 +2291,15 @@
 	}
 	if (iccColorFound == false)
 		return ret;
-	int  c, m, y, k;
-	ColorList::Iterator it;
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		colorModel colorMod = it.value().getColorModel();
-		if (colorMod == colorModelCMYK)
-		{
-			it.value().getCMYK(&c, &m, &y, &k);
-			tmpR.setCmyk(c, m, y, k);
-			if (color == tmpR)
-			{
-				ret = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		ScColor tmp;
-		tmp.fromQColor(color);
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		QString newColorName = "FromSVG"+tmp.name();
-		m_Doc->PageColors.insert(newColorName, tmp);
+	ScColor tmp;
+	tmp.fromQColor(color);
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString newColorName = "FromSVG"+tmp.name();
+	QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp);
+	if (fNam == newColorName)
 		importedColors.append(newColorName);
-		ret = newColorName;
-	}
+	ret = fNam;
 	return ret;
 }
 

Modified: branches/ScribusOIF/scribus/plugins/import/wmf/wmfimport.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/wmf/wmfimport.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/wmf/wmfimport.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/wmf/wmfimport.cpp Sun Nov  7 00:35:15 2010
@@ -172,36 +172,15 @@
 
 QString WMFImport::importColor(const QColor& color)
 {
-	bool found = false;
-	int r, g, b;
-	QColor  tmpColor;
-	QString retColorName;
-	ColorList::Iterator it;
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelRGB)
-		{
-			it.value().getRGB(&r, &g, &b);
-			tmpColor.setRgb(r, g, b);
-			if (color == tmpColor)
-			{
-				retColorName = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		ScColor tmp;
-		tmp.fromQColor(color);
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		m_Doc->PageColors.insert("FromWMF"+color.name(), tmp);
-		importedColors.append("FromWMF"+color.name());
-		retColorName = "FromWMF"+color.name();
-	}
-	return retColorName;
+	ScColor tmp;
+	tmp.fromQColor(color);
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString pNam = "FromWMF"+color.name();
+	QString fNam = m_Doc->PageColors.tryAddColor(pNam, tmp);
+	if (fNam == pNam)
+		importedColors.append(pNam);
+	return fNam;
 }
 
 QColor WMFImport::colorFromParam( short* params )

Modified: branches/ScribusOIF/scribus/plugins/import/wpg/importwpg.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/wpg/importwpg.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/wpg/importwpg.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/wpg/importwpg.cpp Sun Nov  7 00:35:15 2010
@@ -115,34 +115,18 @@
 	ColorList::Iterator it;
 	CurrColorStroke = "Black";
 	CurrStrokeShade = 100.0;
-	int Rc, Gc, Bc, hR, hG, hB;
-	bool found = false;
+	int Rc, Gc, Bc;
 	Rc = pen.foreColor.red;
 	Gc = pen.foreColor.green;
 	Bc = pen.foreColor.blue;
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelRGB)
-		{
-			it.value().getRGB(&hR, &hG, &hB);
-			if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-			{
-				CurrColorStroke = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setColorRGB(Rc, Gc, Bc);
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		QString newColorName = "FromWPG"+tmp.name();
-		m_Doc->PageColors.insert(newColorName, tmp);
+	tmp.setColorRGB(Rc, Gc, Bc);
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	QString newColorName = "FromWPG"+tmp.name();
+	QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp);
+	if (fNam == newColorName)
 		importedColors.append(newColorName);
-		CurrColorStroke = newColorName;
-	}
+	CurrColorStroke = fNam;
 	CurrStrokeTrans = pen.foreColor.alpha / 255.0;
 	if(!pen.solid)
 	{
@@ -191,36 +175,20 @@
 	ColorList::Iterator it;
 	CurrColorFill = "Black";
 	CurrFillShade = 100.0;
-	int Rc, Gc, Bc, hR, hG, hB;
+	int Rc, Gc, Bc;
 	if(brush.style == libwpg::WPGBrush::Solid)
 	{
-		bool found = false;
 		Rc = brush.foreColor.red;
 		Gc = brush.foreColor.green;
 		Bc = brush.foreColor.blue;
-		for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-		{
-			if (it.value().getColorModel() == colorModelRGB)
-			{
-				it.value().getRGB(&hR, &hG, &hB);
-				if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-				{
-					CurrColorFill = it.key();
-					found = true;
-					break;
-				}
-			}
-		}
-		if (!found)
-		{
-			tmp.setColorRGB(Rc, Gc, Bc);
-			tmp.setSpotColor(false);
-			tmp.setRegistrationColor(false);
-			QString newColorName = "FromWPG"+tmp.name();
-			m_Doc->PageColors.insert(newColorName, tmp);
+		tmp.setColorRGB(Rc, Gc, Bc);
+		tmp.setSpotColor(false);
+		tmp.setRegistrationColor(false);
+		QString newColorName = "FromWPG"+tmp.name();
+		QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp);
+		if (fNam == newColorName)
 			importedColors.append(newColorName);
-			CurrColorFill = newColorName;
-		}
+		CurrColorFill = fNam;
 		CurrFillTrans = brush.foreColor.alpha / 255.0;
 	}
 	else if (brush.style == libwpg::WPGBrush::Gradient)
@@ -232,33 +200,17 @@
 		for(unsigned c = 0; c < brush.gradient.count(); c++)
 		{
 			QString currStopColor = CommonStrings::None;
-			bool found = false;
 			Rc = brush.gradient.stopColor(c).red;
 			Gc = brush.gradient.stopColor(c).green;
 			Bc = brush.gradient.stopColor(c).blue;
-			for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-			{
-				if (it.value().getColorModel() == colorModelRGB)
-				{
-					it.value().getRGB(&hR, &hG, &hB);
-					if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-					{
-						currStopColor = it.key();
-						found = true;
-						break;
-					}
-				}
-			}
-			if (!found)
-			{
-				tmp.setColorRGB(Rc, Gc, Bc);
-				tmp.setSpotColor(false);
-				tmp.setRegistrationColor(false);
-				QString newColorName = "FromWPG"+tmp.name();
-				m_Doc->PageColors.insert(newColorName, tmp);
+			tmp.setColorRGB(Rc, Gc, Bc);
+			tmp.setSpotColor(false);
+			tmp.setRegistrationColor(false);
+			QString newColorName = "FromWPG"+tmp.name();
+			QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp);
+			if (fNam == newColorName)
 				importedColors.append(newColorName);
-				currStopColor = newColorName;
-			}
+			currStopColor = fNam;
 			const ScColor& gradC = m_Doc->PageColors[currStopColor];
 			double pos = qBound(0.0, fabs(brush.gradient.stopOffset(c)), 1.0);
 			currentGradient.addStop( ScColorEngine::getRGBColor(gradC, m_Doc), pos, 0.5, 1.0, currStopColor, 100 );

Modified: branches/ScribusOIF/scribus/plugins/import/xar/importxar.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/import/xar/importxar.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/import/xar/importxar.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/import/xar/importxar.cpp Sun Nov  7 00:35:15 2010
@@ -3280,7 +3280,6 @@
 	quint16 charC = 0;
 	quint32 EntryIndex, component1, component2, component3, component4;
 	qint32 colorRef;
-	int hR, hG, hB;
 	ts >> Rc >> Gc >> Bc >> colorModel >> colorType;
 	ts >> EntryIndex;
 	ts >> colorRef;
@@ -3333,7 +3332,6 @@
 	double c4 = decodeColorComponent(component4);
 //	qDebug() << "Record" << recordCounter << "Complex Color" << XarName << colM << colT << colorRef;
 //	qDebug() << "\t\tComponents" << c1 << c2 << c3 << c4;
-	bool found = false;
 	if ((!XarName.isEmpty()) && ((XarName == "White") || (XarName == "Black") || (m_Doc->PageColors.contains(XarName))))
 		tmpName = XarName;
 	else
@@ -3347,81 +3345,22 @@
 				int Mc = qRound(c2 * 255);
 				int Yc = qRound(c3 * 255);
 				int Kc = qRound(c4 * 255);
-				int hC, hM, hY, hK;
 				tmp.setColor(Cc, Mc, Yc, Kc);
-				for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-				{
-					if (it.value().getColorModel() == colorModelCMYK)
-					{
-						it.value().getCMYK(&hC, &hM, &hY, &hK);
-						if ((Cc == hC) && (Mc == hM) && (Yc == hY) && (Kc == hK))
-						{
-							tmpName = it.key();
-							found = true;
-							break;
-						}
-					}
-				}
-				if (!found)
-				{
-					if (colorType == 1)
-						tmp.setSpotColor(true);
-					else
-						tmp.setSpotColor(false);
-					tmp.setRegistrationColor(false);
-					if (XarName.isEmpty())
-						tmpName = "FromXara"+c.name();
-					else
-						tmpName = XarName;
-					m_Doc->PageColors.insert(tmpName, tmp);
+				if (colorType == 1)
+					tmp.setSpotColor(true);
+				else
+					tmp.setSpotColor(false);
+				tmp.setRegistrationColor(false);
+				if (XarName.isEmpty())
+					tmpName = "FromXara"+c.name();
+				else
+					tmpName = XarName;
+				QString fNam = m_Doc->PageColors.tryAddColor(tmpName, tmp);
+				if (fNam == tmpName)
 					importedColors.append(tmpName);
-				}
+				tmpName = fNam;
 			}
 			else
-			{
-				for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-				{
-					if (it.value().getColorModel() == colorModelRGB)
-					{
-						it.value().getRGB(&hR, &hG, &hB);
-						if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-						{
-							tmpName = it.key();
-							found = true;
-							break;
-						}
-					}
-				}
-				if (!found)
-				{
-					tmp.setColorRGB(Rc, Gc, Bc);
-					tmp.setSpotColor(false);
-					tmp.setRegistrationColor(false);
-					if (XarName.isEmpty())
-						tmpName = "FromXara"+c.name();
-					else
-						tmpName = XarName;
-					m_Doc->PageColors.insert(tmpName, tmp);
-					importedColors.append(tmpName);
-				}
-			}
-		}
-		else
-		{
-			for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-			{
-				if (it.value().getColorModel() == colorModelRGB)
-				{
-					it.value().getRGB(&hR, &hG, &hB);
-					if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-					{
-						tmpName = it.key();
-						found = true;
-						break;
-					}
-				}
-			}
-			if (!found)
 			{
 				tmp.setColorRGB(Rc, Gc, Bc);
 				tmp.setSpotColor(false);
@@ -3430,9 +3369,25 @@
 					tmpName = "FromXara"+c.name();
 				else
 					tmpName = XarName;
-				m_Doc->PageColors.insert(tmpName, tmp);
+				QString fNam = m_Doc->PageColors.tryAddColor(tmpName, tmp);
+				if (fNam == tmpName)
+					importedColors.append(tmpName);
+				tmpName = fNam;
+			}
+		}
+		else
+		{
+			tmp.setColorRGB(Rc, Gc, Bc);
+			tmp.setSpotColor(false);
+			tmp.setRegistrationColor(false);
+			if (XarName.isEmpty())
+				tmpName = "FromXara"+c.name();
+			else
+				tmpName = XarName;
+			QString fNam = m_Doc->PageColors.tryAddColor(tmpName, tmp);
+			if (fNam == tmpName)
 				importedColors.append(tmpName);
-			}
+			tmpName = fNam;
 		}
 	}
 	XarColor color;
@@ -3451,34 +3406,17 @@
 {
 	QString tmpName = CommonStrings::None;
 	ScColor tmp;
-	ColorList::Iterator it;
 	quint8 Rc, Gc, Bc;
-	int hR, hG, hB;
 	ts >> Rc >> Gc >> Bc;
-	bool found = false;
 	QColor c = QColor(Rc, Gc, Bc);
-	for (it = m_Doc->PageColors.begin(); it != m_Doc->PageColors.end(); ++it)
-	{
-		if (it.value().getColorModel() == colorModelRGB)
-		{
-			it.value().getRGB(&hR, &hG, &hB);
-			if ((Rc == hR) && (Gc == hG) && (Bc == hB))
-			{
-				tmpName = it.key();
-				found = true;
-				break;
-			}
-		}
-	}
-	if (!found)
-	{
-		tmp.setColorRGB(Rc, Gc, Bc);
-		tmp.setSpotColor(false);
-		tmp.setRegistrationColor(false);
-		tmpName = "FromXara"+c.name();
-		m_Doc->PageColors.insert(tmpName, tmp);
+	tmp.setColorRGB(Rc, Gc, Bc);
+	tmp.setSpotColor(false);
+	tmp.setRegistrationColor(false);
+	tmpName = "FromXara"+c.name();
+	QString fNam = m_Doc->PageColors.tryAddColor(tmpName, tmp);
+	if (fNam == tmpName)
 		importedColors.append(tmpName);
-	}
+	tmpName = fNam;
 	XarColor color;
 	color.colorType = 0;
 	color.colorModel = 2;

Modified: branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowser.ui
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowser.ui
==============================================================================
--- branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowser.ui (original)
+++ branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowser.ui Sun Nov  7 00:35:15 2010
@@ -1,224 +1,219 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>PictureBrowser</class>
- <widget class="QDialog" name="PictureBrowser" >
-  <property name="geometry" >
+ <widget class="QDialog" name="PictureBrowser">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>901</width>
-    <height>530</height>
+    <width>967</width>
+    <height>482</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Scribus Picture Browser</string>
   </property>
-  <layout class="QGridLayout" >
-   <property name="margin" >
+  <layout class="QGridLayout">
+   <property name="margin">
     <number>3</number>
    </property>
-   <property name="spacing" >
+   <property name="spacing">
     <number>2</number>
    </property>
-   <item row="0" column="0" >
-    <widget class="QSplitter" name="splitter_2" >
-     <property name="orientation" >
+   <item row="0" column="0">
+    <widget class="QSplitter" name="splitter_2">
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <widget class="QWidget" native="1" name="widget_3" >
-      <layout class="QGridLayout" >
-       <property name="margin" >
+     <widget class="QWidget" name="widget_3" native="true">
+      <layout class="QGridLayout">
+       <property name="margin">
         <number>0</number>
        </property>
-       <item row="0" column="0" >
-        <widget class="QSplitter" name="splitter" >
-         <property name="orientation" >
+       <item row="0" column="0">
+        <widget class="QSplitter" name="splitter">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
-         <widget class="QWidget" native="1" name="widget" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+         <widget class="QWidget" name="widget" native="true">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
             <horstretch>1</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <layout class="QVBoxLayout" >
-           <property name="spacing" >
+          <layout class="QVBoxLayout">
+           <property name="spacing">
             <number>3</number>
            </property>
-           <property name="margin" >
+           <property name="margin">
             <number>2</number>
            </property>
            <item>
-            <widget class="QComboBox" name="navigationBox" >
-             <item>
-              <property name="text" >
+            <widget class="QComboBox" name="navigationBox">
+             <item>
+              <property name="text">
                <string>Folder Browser</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Collection Browser</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Document Browser</string>
               </property>
              </item>
             </widget>
            </item>
            <item>
-            <widget class="QStackedWidget" name="navigationStack" >
-             <property name="currentIndex" >
-              <number>0</number>
-             </property>
-             <widget class="QWidget" name="folderpage" >
-              <layout class="QVBoxLayout" >
-               <property name="spacing" >
+            <widget class="QStackedWidget" name="navigationStack">
+             <property name="currentIndex">
+              <number>2</number>
+             </property>
+             <widget class="QWidget" name="folderpage">
+              <layout class="QVBoxLayout">
+               <property name="spacing">
                 <number>0</number>
                </property>
-               <property name="margin" >
+               <property name="margin">
                 <number>0</number>
                </property>
                <item>
-                <widget class="QCheckBox" name="subdirsCheckbox" >
-                 <property name="text" >
+                <widget class="QCheckBox" name="subdirsCheckbox">
+                 <property name="text">
                   <string>Include Subdirectories</string>
                  </property>
                 </widget>
                </item>
                <item>
-                <widget class="QTreeView" name="folderView" />
+                <widget class="QTreeView" name="folderView"/>
                </item>
               </layout>
              </widget>
-             <widget class="QWidget" name="collectionspage" >
-              <layout class="QVBoxLayout" >
-               <property name="spacing" >
+             <widget class="QWidget" name="collectionspage">
+              <layout class="QVBoxLayout">
+               <property name="spacing">
                 <number>3</number>
                </property>
-               <property name="margin" >
+               <property name="margin">
                 <number>0</number>
                </property>
                <item>
-                <widget class="QStackedWidget" name="collectionsStackedwidget" >
-                 <property name="sizePolicy" >
-                  <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+                <widget class="QStackedWidget" name="collectionsStackedwidget">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                    <horstretch>0</horstretch>
                    <verstretch>0</verstretch>
                   </sizepolicy>
                  </property>
-                 <property name="minimumSize" >
+                 <property name="minimumSize">
                   <size>
                    <width>0</width>
                    <height>0</height>
                   </size>
                  </property>
-                 <property name="currentIndex" >
+                 <property name="currentIndex">
                   <number>0</number>
                  </property>
-                 <widget class="QWidget" name="page_5" >
-                  <layout class="QHBoxLayout" >
-                   <property name="spacing" >
-                    <number>3</number>
-                   </property>
-                   <property name="margin" >
-                    <number>0</number>
-                   </property>
+                 <widget class="QWidget" name="page_5">
+                  <layout class="QHBoxLayout" name="horizontalLayout_2">
                    <item>
-                    <widget class="QPushButton" name="collectionsNewCategoryButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsNewCategoryButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>Create new category</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsNewButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsNewButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>New collection</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsDeleteButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsDeleteButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>Delete selected collection</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsRenameButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsRenameButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>Edit selected collection</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
                     <spacer>
-                     <property name="orientation" >
+                     <property name="orientation">
                       <enum>Qt::Horizontal</enum>
                      </property>
-                     <property name="sizeHint" stdset="0" >
+                     <property name="sizeHint" stdset="0">
                       <size>
                        <width>40</width>
                        <height>20</height>
@@ -227,77 +222,77 @@
                     </spacer>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsAddImagesButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsAddImagesButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>Add selected images to collection(s)</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsRemoveImagesButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsRemoveImagesButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>Remove selected images from current collection</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsTagImagesButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsTagImagesButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>Tag selected images</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
                     <spacer>
-                     <property name="orientation" >
+                     <property name="orientation">
                       <enum>Qt::Horizontal</enum>
                      </property>
-                     <property name="sizeHint" stdset="0" >
+                     <property name="sizeHint" stdset="0">
                       <size>
                        <width>40</width>
                        <height>20</height>
@@ -306,100 +301,100 @@
                     </spacer>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsImportButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsImportButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>Import collection/collectionset</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsExportButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="toolTip" >
+                    <widget class="QPushButton" name="collectionsExportButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="toolTip">
                       <string>Export collection/collectionset</string>
                      </property>
-                     <property name="text" >
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                   </layout>
                  </widget>
-                 <widget class="QWidget" name="page_6" >
-                  <layout class="QHBoxLayout" >
-                   <property name="spacing" >
+                 <widget class="QWidget" name="page_6">
+                  <layout class="QHBoxLayout">
+                   <property name="spacing">
                     <number>3</number>
                    </property>
-                   <property name="margin" >
+                   <property name="margin">
                     <number>0</number>
                    </property>
                    <item>
-                    <widget class="QLabel" name="label_8" >
-                     <property name="text" >
+                    <widget class="QLabel" name="label_8">
+                     <property name="text">
                       <string>add selected images to collections</string>
                      </property>
                     </widget>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsAddImagesOkButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="text" >
+                    <widget class="QPushButton" name="collectionsAddImagesOkButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
                    </item>
                    <item>
-                    <widget class="QPushButton" name="collectionsAddImagesCancelButton" >
-                     <property name="minimumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="maximumSize" >
-                      <size>
-                       <width>23</width>
-                       <height>23</height>
-                      </size>
-                     </property>
-                     <property name="text" >
+                    <widget class="QPushButton" name="collectionsAddImagesCancelButton">
+                     <property name="minimumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="maximumSize">
+                      <size>
+                       <width>23</width>
+                       <height>23</height>
+                      </size>
+                     </property>
+                     <property name="text">
                       <string/>
                      </property>
                     </widget>
@@ -409,55 +404,55 @@
                 </widget>
                </item>
                <item>
-                <widget class="QTreeWidget" name="collectionsWidget" >
-                 <property name="columnCount" >
+                <widget class="QTreeWidget" name="collectionsWidget">
+                 <property name="columnCount">
                   <number>0</number>
                  </property>
                 </widget>
                </item>
               </layout>
              </widget>
-             <widget class="QWidget" name="documentpage" >
-              <layout class="QVBoxLayout" >
-               <property name="spacing" >
+             <widget class="QWidget" name="documentpage">
+              <layout class="QVBoxLayout">
+               <property name="spacing">
                 <number>3</number>
                </property>
-               <property name="margin" >
+               <property name="margin">
                 <number>0</number>
                </property>
                <item>
-                <layout class="QHBoxLayout" >
+                <layout class="QHBoxLayout">
                  <item>
-                  <widget class="QPushButton" name="gotoPageButton" >
-                   <property name="sizePolicy" >
-                    <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+                  <widget class="QPushButton" name="gotoPageButton">
+                   <property name="sizePolicy">
+                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                      <horstretch>0</horstretch>
                      <verstretch>0</verstretch>
                     </sizepolicy>
                    </property>
-                   <property name="minimumSize" >
+                   <property name="minimumSize">
                     <size>
                      <width>0</width>
                      <height>23</height>
                     </size>
                    </property>
-                   <property name="maximumSize" >
+                   <property name="maximumSize">
                     <size>
                      <width>16777215</width>
                      <height>23</height>
                     </size>
                    </property>
-                   <property name="text" >
-                    <string>go to page</string>
+                   <property name="text">
+                    <string>Go to Page</string>
                    </property>
                   </widget>
                  </item>
                  <item>
                   <spacer>
-                   <property name="orientation" >
+                   <property name="orientation">
                     <enum>Qt::Horizontal</enum>
                    </property>
-                   <property name="sizeHint" stdset="0" >
+                   <property name="sizeHint" stdset="0">
                     <size>
                      <width>40</width>
                      <height>20</height>
@@ -468,8 +463,8 @@
                 </layout>
                </item>
                <item>
-                <widget class="QTreeWidget" name="documentWidget" >
-                 <property name="columnCount" >
+                <widget class="QTreeWidget" name="documentWidget">
+                 <property name="columnCount">
                   <number>0</number>
                  </property>
                 </widget>
@@ -479,16 +474,16 @@
             </widget>
            </item>
            <item>
-            <layout class="QHBoxLayout" >
-             <item>
-              <widget class="QPushButton" name="moreButton" >
-               <property name="enabled" >
+            <layout class="QHBoxLayout">
+             <item>
+              <widget class="QPushButton" name="moreButton">
+               <property name="enabled">
                 <bool>true</bool>
                </property>
-               <property name="text" >
+               <property name="text">
                 <string>More</string>
                </property>
-               <property name="iconSize" >
+               <property name="iconSize">
                 <size>
                  <width>15</width>
                  <height>15</height>
@@ -498,10 +493,10 @@
              </item>
              <item>
               <spacer>
-               <property name="orientation" >
+               <property name="orientation">
                 <enum>Qt::Horizontal</enum>
                </property>
-               <property name="sizeHint" stdset="0" >
+               <property name="sizeHint" stdset="0">
                 <size>
                  <width>40</width>
                  <height>20</height>
@@ -510,8 +505,8 @@
               </spacer>
              </item>
              <item>
-              <widget class="QCheckBox" name="alwaysOnTopCheckbox" >
-               <property name="text" >
+              <widget class="QCheckBox" name="alwaysOnTopCheckbox">
+               <property name="text">
                 <string>Always on Top</string>
                </property>
               </widget>
@@ -520,73 +515,64 @@
            </item>
           </layout>
          </widget>
-         <widget class="QWidget" native="1" name="widget_2" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+         <widget class="QWidget" name="widget_2" native="true">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
             <horstretch>3</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <layout class="QVBoxLayout" >
-           <property name="spacing" >
-            <number>3</number>
-           </property>
-           <property name="margin" >
-            <number>2</number>
-           </property>
+          <layout class="QVBoxLayout" name="verticalLayout">
            <item>
-            <layout class="QHBoxLayout" >
-             <property name="spacing" >
-              <number>3</number>
-             </property>
-             <item>
-              <widget class="QComboBox" name="sortCombobox" >
-               <property name="currentIndex" >
+            <layout class="QHBoxLayout" name="horizontalLayout">
+             <item>
+              <widget class="QComboBox" name="sortCombobox">
+               <property name="currentIndex">
                 <number>0</number>
                </property>
                <item>
-                <property name="text" >
+                <property name="text">
                  <string>Sort by Name</string>
                 </property>
                </item>
                <item>
-                <property name="text" >
+                <property name="text">
                  <string>Sort by Date</string>
                 </property>
                </item>
                <item>
-                <property name="text" >
+                <property name="text">
                  <string>Sort by Size</string>
                 </property>
                </item>
                <item>
-                <property name="text" >
+                <property name="text">
                  <string>Sort by Type</string>
                 </property>
                </item>
               </widget>
              </item>
              <item>
-              <widget class="QPushButton" name="sortOrderButton" >
-               <property name="minimumSize" >
+              <widget class="QPushButton" name="sortOrderButton">
+               <property name="minimumSize">
                 <size>
                  <width>23</width>
                  <height>23</height>
                 </size>
                </property>
-               <property name="maximumSize" >
+               <property name="maximumSize">
                 <size>
                  <width>23</width>
                  <height>23</height>
                 </size>
                </property>
-               <property name="toolTip" >
+               <property name="toolTip">
                 <string>Change sortorder</string>
                </property>
-               <property name="text" >
+               <property name="text">
                 <string/>
                </property>
-               <property name="iconSize" >
+               <property name="iconSize">
                 <size>
                  <width>15</width>
                  <height>15</height>
@@ -596,10 +582,10 @@
              </item>
              <item>
               <spacer>
-               <property name="orientation" >
+               <property name="orientation">
                 <enum>Qt::Horizontal</enum>
                </property>
-               <property name="sizeHint" stdset="0" >
+               <property name="sizeHint" stdset="0">
                 <size>
                  <width>40</width>
                  <height>20</height>
@@ -608,26 +594,26 @@
               </spacer>
              </item>
              <item>
-              <widget class="QPushButton" name="zoomPlusButton" >
-               <property name="minimumSize" >
+              <widget class="QPushButton" name="zoomPlusButton">
+               <property name="minimumSize">
                 <size>
                  <width>23</width>
                  <height>23</height>
                 </size>
                </property>
-               <property name="maximumSize" >
+               <property name="maximumSize">
                 <size>
                  <width>23</width>
                  <height>23</height>
                 </size>
                </property>
-               <property name="toolTip" >
+               <property name="toolTip">
                 <string>Zoom in</string>
                </property>
-               <property name="text" >
+               <property name="text">
                 <string/>
                </property>
-               <property name="iconSize" >
+               <property name="iconSize">
                 <size>
                  <width>20</width>
                  <height>20</height>
@@ -636,26 +622,26 @@
               </widget>
              </item>
              <item>
-              <widget class="QPushButton" name="zoomMinusButton" >
-               <property name="minimumSize" >
+              <widget class="QPushButton" name="zoomMinusButton">
+               <property name="minimumSize">
                 <size>
                  <width>23</width>
                  <height>23</height>
                 </size>
                </property>
-               <property name="maximumSize" >
+               <property name="maximumSize">
                 <size>
                  <width>23</width>
                  <height>23</height>
                 </size>
                </property>
-               <property name="toolTip" >
+               <property name="toolTip">
                 <string>Zoom out</string>
                </property>
-               <property name="text" >
+               <property name="text">
                 <string/>
                </property>
-               <property name="iconSize" >
+               <property name="iconSize">
                 <size>
                  <width>20</width>
                  <height>20</height>
@@ -665,10 +651,10 @@
              </item>
              <item>
               <spacer>
-               <property name="orientation" >
+               <property name="orientation">
                 <enum>Qt::Horizontal</enum>
                </property>
-               <property name="sizeHint" stdset="0" >
+               <property name="sizeHint" stdset="0">
                 <size>
                  <width>40</width>
                  <height>20</height>
@@ -677,14 +663,14 @@
               </spacer>
              </item>
              <item>
-              <widget class="QComboBox" name="previewModeCombobox" >
-               <item>
-                <property name="text" >
-                 <string>Preview Images only</string>
+              <widget class="QComboBox" name="previewModeCombobox">
+               <item>
+                <property name="text">
+                 <string>Preview Images Only</string>
                 </property>
                </item>
                <item>
-                <property name="text" >
+                <property name="text">
                  <string>Preview with Information</string>
                 </property>
                </item>
@@ -692,10 +678,10 @@
              </item>
              <item>
               <spacer>
-               <property name="orientation" >
+               <property name="orientation">
                 <enum>Qt::Horizontal</enum>
                </property>
-               <property name="sizeHint" stdset="0" >
+               <property name="sizeHint" stdset="0">
                 <size>
                  <width>40</width>
                  <height>20</height>
@@ -704,48 +690,48 @@
               </spacer>
              </item>
              <item>
-              <widget class="QComboBox" name="actionsCombobox" >
-               <item>
-                <property name="text" >
+              <widget class="QComboBox" name="actionsCombobox">
+               <item>
+                <property name="text">
                  <string>Quick Insert</string>
                 </property>
                </item>
                <item>
-                <property name="text" >
+                <property name="text">
                  <string>Custom Insert</string>
                 </property>
                </item>
                <item>
-                <property name="text" >
+                <property name="text">
                  <string>Add to Collection</string>
                 </property>
                </item>
               </widget>
              </item>
              <item>
-              <widget class="QPushButton" name="actionsGoButton" >
-               <property name="minimumSize" >
+              <widget class="QPushButton" name="actionsGoButton">
+               <property name="minimumSize">
                 <size>
                  <width>23</width>
                  <height>23</height>
                 </size>
                </property>
-               <property name="maximumSize" >
+               <property name="maximumSize">
                 <size>
                  <width>23</width>
                  <height>23</height>
                 </size>
                </property>
-               <property name="toolTip" >
+               <property name="toolTip">
                 <string>Go</string>
                </property>
-               <property name="layoutDirection" >
+               <property name="layoutDirection">
                 <enum>Qt::LeftToRight</enum>
                </property>
-               <property name="text" >
+               <property name="text">
                 <string/>
                </property>
-               <property name="iconSize" >
+               <property name="iconSize">
                 <size>
                  <width>20</width>
                  <height>20</height>
@@ -756,33 +742,33 @@
             </layout>
            </item>
            <item>
-            <widget class="PictView" name="imageViewArea" >
-             <property name="dragEnabled" >
+            <widget class="PictView" name="imageViewArea">
+             <property name="dragEnabled">
               <bool>true</bool>
              </property>
-             <property name="dragDropMode" >
+             <property name="dragDropMode">
               <enum>QAbstractItemView::DragOnly</enum>
              </property>
-             <property name="selectionMode" >
+             <property name="selectionMode">
               <enum>QAbstractItemView::SingleSelection</enum>
              </property>
             </widget>
            </item>
            <item>
-            <layout class="QHBoxLayout" >
-             <item>
-              <widget class="QLabel" name="statusLabel" >
-               <property name="text" >
+            <layout class="QHBoxLayout">
+             <item>
+              <widget class="QLabel" name="statusLabel">
+               <property name="text">
                 <string>0 Image(s) Displayed, 0 Image(s) Filtered</string>
                </property>
               </widget>
              </item>
              <item>
               <spacer>
-               <property name="orientation" >
+               <property name="orientation">
                 <enum>Qt::Horizontal</enum>
                </property>
-               <property name="sizeHint" stdset="0" >
+               <property name="sizeHint" stdset="0">
                 <size>
                  <width>40</width>
                  <height>20</height>
@@ -791,28 +777,28 @@
               </spacer>
              </item>
              <item>
-              <widget class="QCheckBox" name="saveSettingsCheckbox" >
-               <property name="text" >
+              <widget class="QCheckBox" name="saveSettingsCheckbox">
+               <property name="text">
                 <string>Autosave Settings</string>
                </property>
-               <property name="checked" >
+               <property name="checked">
                 <bool>false</bool>
                </property>
-               <property name="tristate" >
+               <property name="tristate">
                 <bool>false</bool>
                </property>
               </widget>
              </item>
              <item>
-              <widget class="QPushButton" name="resetSettingsButton" >
-               <property name="text" >
+              <widget class="QPushButton" name="resetSettingsButton">
+               <property name="text">
                 <string>Reset Settings</string>
                </property>
               </widget>
              </item>
              <item>
-              <widget class="QPushButton" name="closeButton" >
-               <property name="text" >
+              <widget class="QPushButton" name="closeButton">
+               <property name="text">
                 <string>Close</string>
                </property>
               </widget>
@@ -825,91 +811,91 @@
        </item>
       </layout>
      </widget>
-     <widget class="QTabWidget" name="tabWidget" >
-      <property name="sizePolicy" >
-       <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+     <widget class="QTabWidget" name="tabWidget">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
         <horstretch>0</horstretch>
         <verstretch>0</verstretch>
        </sizepolicy>
       </property>
-      <property name="minimumSize" >
+      <property name="minimumSize">
        <size>
         <width>866</width>
         <height>191</height>
        </size>
       </property>
-      <property name="currentIndex" >
-       <number>0</number>
+      <property name="currentIndex">
+       <number>2</number>
       </property>
-      <widget class="QWidget" name="tab" >
-       <attribute name="title" >
+      <widget class="QWidget" name="tab">
+       <attribute name="title">
         <string>Information</string>
        </attribute>
-       <layout class="QGridLayout" >
-        <item row="0" column="0" >
-         <widget class="QGroupBox" name="groupBox_2" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="QGroupBox" name="groupBox_2">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>File</string>
           </property>
-          <layout class="QGridLayout" >
-           <item row="0" column="0" >
-            <widget class="QLabel" name="label_10" >
-             <property name="text" >
+          <layout class="QGridLayout">
+           <item row="0" column="0">
+            <widget class="QLabel" name="label_10">
+             <property name="text">
               <string>Name:</string>
              </property>
             </widget>
            </item>
-           <item row="0" column="1" >
-            <widget class="QLabel" name="informationFilenameLabel" >
-             <property name="text" >
+           <item row="0" column="1">
+            <widget class="QLabel" name="informationFilenameLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="1" column="0" >
-            <widget class="QLabel" name="label_11" >
-             <property name="text" >
+           <item row="1" column="0">
+            <widget class="QLabel" name="label_11">
+             <property name="text">
               <string>Path:</string>
              </property>
             </widget>
            </item>
-           <item row="1" column="1" >
-            <widget class="QLabel" name="informationFilepathLabel" >
-             <property name="text" >
+           <item row="1" column="1">
+            <widget class="QLabel" name="informationFilepathLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="2" column="0" >
-            <widget class="QLabel" name="label_22" >
-             <property name="text" >
+           <item row="2" column="0">
+            <widget class="QLabel" name="label_22">
+             <property name="text">
               <string>Size:</string>
              </property>
             </widget>
            </item>
-           <item row="2" column="1" >
-            <widget class="QLabel" name="informationFilesizeLabel" >
-             <property name="text" >
+           <item row="2" column="1">
+            <widget class="QLabel" name="informationFilesizeLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="3" column="0" >
-            <widget class="QLabel" name="label_23" >
-             <property name="text" >
+           <item row="3" column="0">
+            <widget class="QLabel" name="label_23">
+             <property name="text">
               <string>Date:</string>
              </property>
             </widget>
            </item>
-           <item row="3" column="1" >
-            <widget class="QLabel" name="informationFiledateLabel" >
-             <property name="text" >
+           <item row="3" column="1">
+            <widget class="QLabel" name="informationFiledateLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
@@ -917,126 +903,126 @@
           </layout>
          </widget>
         </item>
-        <item row="0" column="1" >
-         <widget class="QGroupBox" name="groupBox" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+        <item>
+         <widget class="QGroupBox" name="groupBox">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>Image</string>
           </property>
-          <layout class="QGridLayout" >
-           <item row="0" column="0" >
-            <widget class="QLabel" name="label_12" >
-             <property name="text" >
+          <layout class="QGridLayout">
+           <item row="0" column="0">
+            <widget class="QLabel" name="label_12">
+             <property name="text">
               <string>Format:</string>
              </property>
             </widget>
            </item>
-           <item row="0" column="1" >
-            <widget class="QLabel" name="informationFormatLabel" >
-             <property name="text" >
+           <item row="0" column="1">
+            <widget class="QLabel" name="informationFormatLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="0" column="2" >
-            <widget class="QLabel" name="label_3" >
-             <property name="text" >
+           <item row="0" column="2">
+            <widget class="QLabel" name="label_3">
+             <property name="text">
               <string>Width:</string>
              </property>
             </widget>
            </item>
-           <item row="0" column="3" >
-            <widget class="QLabel" name="informationWidthLabel" >
-             <property name="text" >
+           <item row="0" column="3">
+            <widget class="QLabel" name="informationWidthLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="1" column="0" >
-            <widget class="QLabel" name="label_13" >
-             <property name="text" >
+           <item row="1" column="0">
+            <widget class="QLabel" name="label_13">
+             <property name="text">
               <string>Colorspace:</string>
              </property>
             </widget>
            </item>
-           <item row="1" column="1" >
-            <widget class="QLabel" name="informationColorspaceLabel" >
-             <property name="text" >
+           <item row="1" column="1">
+            <widget class="QLabel" name="informationColorspaceLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="1" column="2" >
-            <widget class="QLabel" name="label_4" >
-             <property name="text" >
+           <item row="1" column="2">
+            <widget class="QLabel" name="label_4">
+             <property name="text">
               <string>Height:</string>
              </property>
             </widget>
            </item>
-           <item row="1" column="3" >
-            <widget class="QLabel" name="informationHeightLabel" >
-             <property name="text" >
+           <item row="1" column="3">
+            <widget class="QLabel" name="informationHeightLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="2" column="0" >
-            <widget class="QLabel" name="label_14" >
-             <property name="text" >
+           <item row="2" column="0">
+            <widget class="QLabel" name="label_14">
+             <property name="text">
               <string>DPI:</string>
              </property>
             </widget>
            </item>
-           <item row="2" column="1" >
-            <widget class="QLabel" name="informationDpiLabel" >
-             <property name="text" >
+           <item row="2" column="1">
+            <widget class="QLabel" name="informationDpiLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="2" column="2" >
-            <widget class="QLabel" name="label_5" >
-             <property name="text" >
+           <item row="2" column="2">
+            <widget class="QLabel" name="label_5">
+             <property name="text">
               <string>Layers:</string>
              </property>
             </widget>
            </item>
-           <item row="2" column="3" >
-            <widget class="QLabel" name="informationLayersLabel" >
-             <property name="text" >
+           <item row="2" column="3">
+            <widget class="QLabel" name="informationLayersLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="3" column="0" >
-            <widget class="QLabel" name="label_9" >
-             <property name="text" >
+           <item row="3" column="0">
+            <widget class="QLabel" name="label_9">
+             <property name="text">
               <string>Embedded Profile:</string>
              </property>
             </widget>
            </item>
-           <item row="3" column="1" >
-            <widget class="QLabel" name="informationEmbeddedLabel" >
-             <property name="text" >
+           <item row="3" column="1">
+            <widget class="QLabel" name="informationEmbeddedLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
            </item>
-           <item row="3" column="2" >
-            <widget class="QLabel" name="label_15" >
-             <property name="text" >
+           <item row="3" column="2">
+            <widget class="QLabel" name="label_15">
+             <property name="text">
               <string>Profile Name:</string>
              </property>
             </widget>
            </item>
-           <item row="3" column="3" >
-            <widget class="QLabel" name="informationProfilenameLabel" >
-             <property name="text" >
+           <item row="3" column="3">
+            <widget class="QLabel" name="informationProfilenameLabel">
+             <property name="text">
               <string/>
              </property>
             </widget>
@@ -1046,106 +1032,106 @@
         </item>
        </layout>
       </widget>
-      <widget class="QWidget" name="tab_3" >
-       <attribute name="title" >
+      <widget class="QWidget" name="tab_3">
+       <attribute name="title">
         <string>Filter / Search</string>
        </attribute>
-       <layout class="QGridLayout" >
-        <item rowspan="3" row="0" column="0" >
-         <layout class="QVBoxLayout" >
+       <layout class="QGridLayout">
+        <item row="0" column="0" rowspan="3">
+         <layout class="QVBoxLayout">
           <item>
-           <widget class="QLabel" name="label_6" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+           <widget class="QLabel" name="label_6">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
             </property>
-            <property name="text" >
+            <property name="text">
              <string>Filters:</string>
             </property>
            </widget>
           </item>
           <item>
-           <widget class="QListWidget" name="filterFiltersListwidget" />
+           <widget class="QListWidget" name="filterFiltersListwidget"/>
           </item>
          </layout>
         </item>
-        <item row="0" column="1" >
-         <widget class="QComboBox" name="filterTargetCombobox" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+        <item row="0" column="1">
+         <widget class="QComboBox" name="filterTargetCombobox">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
           <item>
-           <property name="text" >
+           <property name="text">
             <string>Filter Displayed Images</string>
            </property>
           </item>
           <item>
-           <property name="text" >
+           <property name="text">
             <string>Search Images</string>
            </property>
           </item>
           <item>
-           <property name="text" >
+           <property name="text">
             <string>Filter Collections</string>
            </property>
           </item>
          </widget>
         </item>
-        <item row="0" column="2" >
-         <widget class="QStackedWidget" name="filterTargetStackedWidget" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+        <item row="0" column="2">
+         <widget class="QStackedWidget" name="filterTargetStackedWidget">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="currentIndex" >
+          <property name="currentIndex">
            <number>0</number>
           </property>
-          <widget class="QWidget" name="page_10" />
-          <widget class="QWidget" name="page_8" >
-           <layout class="QHBoxLayout" >
-            <property name="margin" >
+          <widget class="QWidget" name="page_10"/>
+          <widget class="QWidget" name="page_8">
+           <layout class="QHBoxLayout">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="QLineEdit" name="filterSearchLineedit" >
-              <property name="enabled" >
+             <widget class="QLineEdit" name="filterSearchLineedit">
+              <property name="enabled">
                <bool>true</bool>
               </property>
              </widget>
             </item>
             <item>
-             <widget class="QPushButton" name="filterSearchDirButton" >
-              <property name="enabled" >
+             <widget class="QPushButton" name="filterSearchDirButton">
+              <property name="enabled">
                <bool>true</bool>
               </property>
-              <property name="sizePolicy" >
-               <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
               </property>
-              <property name="text" >
+              <property name="text">
                <string>...</string>
               </property>
              </widget>
             </item>
            </layout>
           </widget>
-          <widget class="QWidget" name="page_9" >
-           <layout class="QHBoxLayout" >
-            <property name="margin" >
+          <widget class="QWidget" name="page_9">
+           <layout class="QHBoxLayout">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
-             <widget class="multiCombobox" name="filterCollectionsCombobox" >
-              <property name="enabled" >
+             <widget class="multiCombobox" name="filterCollectionsCombobox">
+              <property name="enabled">
                <bool>true</bool>
               </property>
              </widget>
@@ -1154,177 +1140,177 @@
           </widget>
          </widget>
         </item>
-        <item rowspan="2" row="1" column="1" colspan="2" >
-         <widget class="QGroupBox" name="groupBox_3" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+        <item row="1" column="1" rowspan="2" colspan="2">
+         <widget class="QGroupBox" name="groupBox_3">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>Criteria</string>
           </property>
-          <layout class="QGridLayout" >
-           <item row="0" column="0" >
-            <widget class="QPushButton" name="filterAddCriterionButton" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <layout class="QGridLayout">
+           <item row="0" column="0">
+            <widget class="QPushButton" name="filterAddCriterionButton">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="text" >
+             <property name="text">
               <string>&lt;&lt; Add</string>
              </property>
             </widget>
            </item>
-           <item row="0" column="1" >
-            <widget class="QComboBox" name="filterCriteriaCombobox" >
-             <item>
-              <property name="text" >
+           <item row="0" column="1">
+            <widget class="QComboBox" name="filterCriteriaCombobox">
+             <item>
+              <property name="text">
                <string>Name (Wildcards Allowed)</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Date</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Size</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Type</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Tag</string>
               </property>
              </item>
             </widget>
            </item>
-           <item row="1" column="0" colspan="2" >
-            <widget class="QStackedWidget" name="filterStackedwidget" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+           <item row="1" column="0" colspan="2">
+            <widget class="QStackedWidget" name="filterStackedwidget">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="currentIndex" >
+             <property name="currentIndex">
               <number>0</number>
              </property>
-             <widget class="QWidget" name="page" >
-              <layout class="QHBoxLayout" >
-               <property name="margin" >
+             <widget class="QWidget" name="page">
+              <layout class="QHBoxLayout">
+               <property name="margin">
                 <number>0</number>
                </property>
                <item>
-                <widget class="QComboBox" name="filterNameCombobox" >
+                <widget class="QComboBox" name="filterNameCombobox">
                  <item>
-                  <property name="text" >
+                  <property name="text">
                    <string>Contains</string>
                   </property>
                  </item>
                  <item>
-                  <property name="text" >
+                  <property name="text">
                    <string>Doesn't Contain</string>
                   </property>
                  </item>
                 </widget>
                </item>
                <item>
-                <widget class="QLineEdit" name="filterNameLineedit" />
+                <widget class="QLineEdit" name="filterNameLineedit"/>
                </item>
               </layout>
              </widget>
-             <widget class="QWidget" name="page_2" >
-              <layout class="QHBoxLayout" >
-               <property name="margin" >
+             <widget class="QWidget" name="page_2">
+              <layout class="QHBoxLayout">
+               <property name="margin">
                 <number>0</number>
                </property>
                <item>
-                <widget class="QComboBox" name="filterDateCombobox" >
+                <widget class="QComboBox" name="filterDateCombobox">
                  <item>
-                  <property name="text" >
+                  <property name="text">
                    <string>Newer than</string>
                   </property>
                  </item>
                  <item>
-                  <property name="text" >
+                  <property name="text">
                    <string>Older than</string>
                   </property>
                  </item>
                 </widget>
                </item>
                <item>
-                <widget class="QDateTimeEdit" name="filterDateDatetimeedit" />
+                <widget class="QDateTimeEdit" name="filterDateDatetimeedit"/>
                </item>
               </layout>
              </widget>
-             <widget class="QWidget" name="page_3" >
-              <layout class="QHBoxLayout" >
-               <property name="margin" >
+             <widget class="QWidget" name="page_3">
+              <layout class="QHBoxLayout">
+               <property name="margin">
                 <number>0</number>
                </property>
                <item>
-                <widget class="QComboBox" name="filterSizeCombobox" >
+                <widget class="QComboBox" name="filterSizeCombobox">
                  <item>
-                  <property name="text" >
+                  <property name="text">
                    <string>Smaller than</string>
                   </property>
                  </item>
                  <item>
-                  <property name="text" >
+                  <property name="text">
                    <string>Bigger than</string>
                   </property>
                  </item>
                 </widget>
                </item>
                <item>
-                <widget class="QSpinBox" name="filterSizeSpinbox" >
-                 <property name="suffix" >
+                <widget class="QSpinBox" name="filterSizeSpinbox">
+                 <property name="suffix">
                   <string> KB</string>
                  </property>
-                 <property name="minimum" >
+                 <property name="minimum">
                   <number>1</number>
                  </property>
-                 <property name="maximum" >
+                 <property name="maximum">
                   <number>60000</number>
                  </property>
-                 <property name="value" >
+                 <property name="value">
                   <number>1000</number>
                  </property>
                 </widget>
                </item>
               </layout>
              </widget>
-             <widget class="QWidget" name="page_4" >
-              <layout class="QHBoxLayout" >
-               <property name="margin" >
+             <widget class="QWidget" name="page_4">
+              <layout class="QHBoxLayout">
+               <property name="margin">
                 <number>0</number>
                </property>
                <item>
-                <widget class="multiCombobox" name="filterTypeCombobox" />
+                <widget class="multiCombobox" name="filterTypeCombobox"/>
                </item>
               </layout>
              </widget>
-             <widget class="QWidget" name="page_7" >
-              <layout class="QHBoxLayout" >
-               <item>
-                <widget class="multiCombobox" name="filterTagsCombobox" />
-               </item>
-               <item>
-                <widget class="QLineEdit" name="filterTagLineedit" />
-               </item>
-               <item>
-                <widget class="QPushButton" name="filterAddTagButton" >
-                 <property name="text" >
+             <widget class="QWidget" name="page_7">
+              <layout class="QHBoxLayout">
+               <item>
+                <widget class="multiCombobox" name="filterTagsCombobox"/>
+               </item>
+               <item>
+                <widget class="QLineEdit" name="filterTagLineedit"/>
+               </item>
+               <item>
+                <widget class="QPushButton" name="filterAddTagButton">
+                 <property name="text">
                   <string>add</string>
                  </property>
                 </widget>
@@ -1336,164 +1322,164 @@
           </layout>
          </widget>
         </item>
-        <item row="1" column="3" >
-         <widget class="QPushButton" name="filterFilterButton" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+        <item row="1" column="3">
+         <widget class="QPushButton" name="filterFilterButton">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="text" >
+          <property name="text">
            <string>Apply Filters</string>
           </property>
          </widget>
         </item>
-        <item row="2" column="3" >
-         <widget class="QPushButton" name="filterClearButton" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+        <item row="2" column="3">
+         <widget class="QPushButton" name="filterClearButton">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="text" >
+          <property name="text">
            <string>Clear Filters</string>
           </property>
          </widget>
         </item>
        </layout>
       </widget>
-      <widget class="QWidget" name="tab_4" >
-       <attribute name="title" >
+      <widget class="QWidget" name="tab_4">
+       <attribute name="title">
         <string>Insert Image</string>
        </attribute>
-       <layout class="QGridLayout" >
-        <item row="1" column="0" >
-         <widget class="QGroupBox" name="groupBox_5" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+       <layout class="QGridLayout">
+        <item row="1" column="0">
+         <widget class="QGroupBox" name="groupBox_5">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>Image Placement</string>
           </property>
-          <layout class="QGridLayout" >
-           <item row="0" column="0" >
-            <widget class="QLabel" name="label" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+          <layout class="QGridLayout">
+           <item row="0" column="0">
+            <widget class="QLabel" name="label">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="text" >
-              <string>Page(s)</string>
-             </property>
-             <property name="buddy" >
+             <property name="text">
+              <string>Page(s):</string>
+             </property>
+             <property name="buddy">
               <cstring>insertPagesCombobox</cstring>
              </property>
             </widget>
            </item>
-           <item row="1" column="0" >
-            <widget class="multiCombobox" name="insertPagesCombobox" />
-           </item>
-           <item row="2" column="0" >
-            <widget class="QLabel" name="label_2" >
-             <property name="sizePolicy" >
-              <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+           <item row="1" column="0">
+            <widget class="multiCombobox" name="insertPagesCombobox"/>
+           </item>
+           <item row="2" column="0">
+            <widget class="QLabel" name="label_2">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                <horstretch>0</horstretch>
                <verstretch>0</verstretch>
               </sizepolicy>
              </property>
-             <property name="text" >
-              <string>Image Frame(s)</string>
-             </property>
-             <property name="buddy" >
+             <property name="text">
+              <string>Image Frame(s):</string>
+             </property>
+             <property name="buddy">
               <cstring>insertFramesCombobox</cstring>
              </property>
             </widget>
            </item>
-           <item row="3" column="0" >
-            <widget class="multiCombobox" name="insertFramesCombobox" />
+           <item row="3" column="0">
+            <widget class="multiCombobox" name="insertFramesCombobox"/>
            </item>
           </layout>
          </widget>
         </item>
-        <item row="1" column="1" >
-         <widget class="QGroupBox" name="groupBox_6" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+        <item row="1" column="1">
+         <widget class="QGroupBox" name="groupBox_6">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>Position of New Frame(s)</string>
           </property>
-          <layout class="QGridLayout" >
-           <item row="0" column="0" colspan="4" >
-            <widget class="QComboBox" name="insertPositionCombobox" >
-             <item>
-              <property name="text" >
+          <layout class="QGridLayout">
+           <item row="0" column="0" colspan="4">
+            <widget class="QComboBox" name="insertPositionCombobox">
+             <item>
+              <property name="text">
                <string>Top Left of Margins</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Top Left of Page</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Top Left of Bleed</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Custom Position</string>
               </property>
              </item>
             </widget>
            </item>
-           <item row="1" column="0" >
-            <widget class="QLabel" name="insertPositionXLabel" >
-             <property name="enabled" >
+           <item row="1" column="0">
+            <widget class="QLabel" name="insertPositionXLabel">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="text" >
+             <property name="text">
               <string>X:</string>
              </property>
             </widget>
            </item>
-           <item row="1" column="1" >
-            <widget class="QSpinBox" name="insertPositionXSpinbox" >
-             <property name="enabled" >
+           <item row="1" column="1">
+            <widget class="QSpinBox" name="insertPositionXSpinbox">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="maximum" >
+             <property name="maximum">
               <number>9999</number>
              </property>
             </widget>
            </item>
-           <item row="1" column="2" >
-            <widget class="QLabel" name="insertPositionYLabel" >
-             <property name="enabled" >
+           <item row="1" column="2">
+            <widget class="QLabel" name="insertPositionYLabel">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="text" >
+             <property name="text">
               <string>Y:</string>
              </property>
             </widget>
            </item>
-           <item row="1" column="3" >
-            <widget class="QSpinBox" name="insertPositionYSpinbox" >
-             <property name="enabled" >
+           <item row="1" column="3">
+            <widget class="QSpinBox" name="insertPositionYSpinbox">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="maximum" >
+             <property name="maximum">
               <number>9999</number>
              </property>
             </widget>
@@ -1501,78 +1487,78 @@
           </layout>
          </widget>
         </item>
-        <item row="1" column="2" >
-         <widget class="QGroupBox" name="groupBox_7" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+        <item row="1" column="2">
+         <widget class="QGroupBox" name="groupBox_7">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>Size</string>
           </property>
-          <layout class="QGridLayout" >
-           <item row="0" column="0" colspan="5" >
-            <widget class="QComboBox" name="insertSizeCombobox" >
-             <item>
-              <property name="text" >
+          <layout class="QGridLayout">
+           <item row="0" column="0" colspan="5">
+            <widget class="QComboBox" name="insertSizeCombobox">
+             <item>
+              <property name="text">
                <string>Same as Page Margins</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Same as Page</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Same as Bleed</string>
               </property>
              </item>
              <item>
-              <property name="text" >
+              <property name="text">
                <string>Custom Size</string>
               </property>
              </item>
             </widget>
            </item>
-           <item row="2" column="0" >
-            <widget class="QLabel" name="insertWidthLabel" >
-             <property name="enabled" >
+           <item row="2" column="0">
+            <widget class="QLabel" name="insertWidthLabel">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="text" >
+             <property name="text">
               <string>Width:</string>
              </property>
             </widget>
            </item>
-           <item row="2" column="1" >
-            <widget class="QSpinBox" name="insertWidthSpinbox" >
-             <property name="enabled" >
+           <item row="2" column="1">
+            <widget class="QSpinBox" name="insertWidthSpinbox">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="maximum" >
+             <property name="maximum">
               <number>60000</number>
              </property>
             </widget>
            </item>
-           <item row="2" column="2" colspan="2" >
-            <widget class="QLabel" name="insertHeightLabel" >
-             <property name="enabled" >
+           <item row="2" column="2" colspan="2">
+            <widget class="QLabel" name="insertHeightLabel">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="text" >
+             <property name="text">
               <string>Height:</string>
              </property>
             </widget>
            </item>
-           <item row="2" column="4" >
-            <widget class="QSpinBox" name="insertHeightSpinbox" >
-             <property name="enabled" >
+           <item row="2" column="4">
+            <widget class="QSpinBox" name="insertHeightSpinbox">
+             <property name="enabled">
               <bool>false</bool>
              </property>
-             <property name="maximum" >
+             <property name="maximum">
               <number>60000</number>
              </property>
             </widget>
@@ -1580,59 +1566,59 @@
           </layout>
          </widget>
         </item>
-        <item row="1" column="3" >
-         <layout class="QVBoxLayout" >
+        <item row="1" column="3">
+         <layout class="QVBoxLayout">
           <item>
-           <widget class="QLabel" name="label_25" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+           <widget class="QLabel" name="label_25">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
             </property>
-            <property name="text" >
+            <property name="text">
              <string>Insert Image into</string>
             </property>
-            <property name="wordWrap" >
+            <property name="wordWrap">
              <bool>true</bool>
             </property>
            </widget>
           </item>
           <item>
-           <widget class="QLabel" name="label_26" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+           <widget class="QLabel" name="label_26">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
             </property>
-            <property name="text" >
+            <property name="text">
              <string>0 Page(s)</string>
             </property>
            </widget>
           </item>
           <item>
-           <widget class="QLabel" name="label_27" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+           <widget class="QLabel" name="label_27">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
             </property>
-            <property name="text" >
+            <property name="text">
              <string>0 Frame(s)</string>
             </property>
            </widget>
           </item>
           <item>
-           <widget class="QPushButton" name="insertImageButton" >
-            <property name="sizePolicy" >
-             <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+           <widget class="QPushButton" name="insertImageButton">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
             </property>
-            <property name="text" >
+            <property name="text">
              <string>Insert</string>
             </property>
            </widget>
@@ -1641,24 +1627,24 @@
         </item>
        </layout>
       </widget>
-      <widget class="QWidget" name="tab_5" >
-       <attribute name="title" >
+      <widget class="QWidget" name="tab_5">
+       <attribute name="title">
         <string>Tag Image(s)</string>
        </attribute>
-       <layout class="QGridLayout" >
-        <item row="0" column="0" >
-         <widget class="QLabel" name="label_7" >
-          <property name="text" >
+       <layout class="QGridLayout">
+        <item row="0" column="0">
+         <widget class="QLabel" name="label_7">
+          <property name="text">
            <string>Selected Images:</string>
           </property>
          </widget>
         </item>
-        <item row="0" column="2" >
+        <item row="0" column="2">
          <spacer>
-          <property name="orientation" >
+          <property name="orientation">
            <enum>Qt::Horizontal</enum>
           </property>
-          <property name="sizeHint" stdset="0" >
+          <property name="sizeHint" stdset="0">
            <size>
             <width>40</width>
             <height>20</height>
@@ -1666,37 +1652,37 @@
           </property>
          </spacer>
         </item>
-        <item row="1" column="0" >
-         <widget class="QListWidget" name="collectionsSelectedImagesListwidget" />
+        <item row="1" column="0">
+         <widget class="QListWidget" name="collectionsSelectedImagesListwidget"/>
         </item>
-        <item row="1" column="1" >
-         <widget class="QGroupBox" name="groupBox_9" >
-          <property name="sizePolicy" >
-           <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+        <item row="1" column="1">
+         <widget class="QGroupBox" name="groupBox_9">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
-          <property name="title" >
+          <property name="title">
            <string>Tag Selected Image(s)</string>
           </property>
-          <layout class="QGridLayout" >
-           <item row="0" column="0" colspan="2" >
-            <widget class="multiCombobox" name="collectionsTagImagesCombobox" />
-           </item>
-           <item row="1" column="0" >
-            <widget class="QLineEdit" name="collectionsAddNewTagLineedit" />
-           </item>
-           <item row="1" column="1" >
-            <widget class="QPushButton" name="collectionsAddNewTagButton" >
-             <property name="text" >
+          <layout class="QGridLayout">
+           <item row="0" column="0" colspan="2">
+            <widget class="multiCombobox" name="collectionsTagImagesCombobox"/>
+           </item>
+           <item row="1" column="0">
+            <widget class="QLineEdit" name="collectionsAddNewTagLineedit"/>
+           </item>
+           <item row="1" column="1">
+            <widget class="QPushButton" name="collectionsAddNewTagButton">
+             <property name="text">
               <string>Add New Tag</string>
              </property>
             </widget>
            </item>
-           <item row="2" column="0" >
-            <widget class="QPushButton" name="collectionsSetTagsButton" >
-             <property name="text" >
+           <item row="2" column="0">
+            <widget class="QPushButton" name="collectionsSetTagsButton">
+             <property name="text">
               <string>Set Tags</string>
              </property>
             </widget>

Modified: branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowserplugin.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowserplugin.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowserplugin.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/picbrowser/picturebrowserplugin.cpp Sun Nov  7 00:35:15 2010
@@ -31,7 +31,7 @@
 	// Action name
 	m_actionInfo.name = "Picture Browser";
 	// Action text for menu, including &accel
-	m_actionInfo.text = tr ( "&Picture Browser" );
+	m_actionInfo.text = tr ( "&Picture Browser..." );
 	// Menu
 	m_actionInfo.menu = "Extras";
 	// If needed, what item to add the menu item after

Modified: branches/ScribusOIF/scribus/sccolor.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/sccolor.cpp
==============================================================================
--- branches/ScribusOIF/scribus/sccolor.cpp (original)
+++ branches/ScribusOIF/scribus/sccolor.cpp Sun Nov  7 00:35:15 2010
@@ -381,3 +381,24 @@
 	if (addWhite)
 		insert("White", ScColor(0, 0, 0, 0));
 }
+
+QString ColorList::tryAddColor(QString name, ScColor col)
+{
+	if (contains(name))
+		return name;
+	bool found = false;
+	QString ret = name;
+	ColorList::Iterator it;
+	for (it = begin(); it != end(); ++it)
+	{
+		if (it.value() == col)
+		{
+			ret = it.key();
+			found = true;
+			break;
+		}
+	}
+	if (!found)
+		insert(name, col);
+	return ret;
+}

Modified: branches/ScribusOIF/scribus/sccolor.h
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/sccolor.h
==============================================================================
--- branches/ScribusOIF/scribus/sccolor.h (original)
+++ branches/ScribusOIF/scribus/sccolor.h Sun Nov  7 00:35:15 2010
@@ -166,6 +166,9 @@
 
 	/** \brief Ensure availability of black and white colors. */
 	void ensureBlackAndWhite(void);
+
+	/** \brief Try to add ScColor col to the list, if col already exists either by name or by value the existing color name is returned. */
+	QString tryAddColor(QString name, ScColor col);
 };
 
 #endif

Modified: branches/ScribusOIF/scribus/scribus.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/scribus.cpp
==============================================================================
--- branches/ScribusOIF/scribus/scribus.cpp (original)
+++ branches/ScribusOIF/scribus/scribus.cpp Sun Nov  7 00:35:15 2010
@@ -9179,8 +9179,11 @@
 			{
 				std::cout << "Saving: " << doc->DocName.toStdString() << ".emergency" << std::endl;
 				doc->autoSaveTimer->stop();
-				FileLoader fl(doc->DocName+".emergency");
-				fl.SaveFile(doc->DocName+".emergency", doc, 0);
+				QString emName = doc->DocName+".emergency";
+				if (doc->DocName.right(2) == "gz")
+					emName += ".gz";
+				FileLoader fl(emName);
+				fl.SaveFile(emName, doc, 0);
 			}
 			view->close();
 			uint numPages=doc->Pages->count();

Modified: branches/ScribusOIF/scribus/ui/paintmanager.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/ui/paintmanager.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/paintmanager.cpp (original)
+++ branches/ScribusOIF/scribus/ui/paintmanager.cpp Sun Nov  7 00:35:15 2010
@@ -87,8 +87,8 @@
 	csm.findUserPalettes(userSwatches);
 	customColSet = csm.userPaletteNames();
 	userSwatches->setExpanded(true);
-	QFileInfo fi(docColSet);
-	LoadColSet->setCurrentComboItem(fi.baseName());
+//	QFileInfo fi(docColSet);
+	LoadColSet->setCurrentComboItem(docColSet);
 	if (m_doc != 0)
 	{
 		label->setText( tr("Merge Color Set"));
@@ -811,7 +811,7 @@
 			QString wdir = dirs->get("colors", ".");
 			QString docexts("*.sla *.sla.gz *.scd *.scd.gz");
 			QString aiepsext(FormatsManager::instance()->extensionListForFormat(FormatsManager::EPS|FormatsManager::PS|FormatsManager::AI, 0));
-			QString ooexts(" *.aco *.skp *.soc *.gpl *.xar *.xml");
+			QString ooexts(" *.acb *.aco *.skp *.soc *.gpl *.xar *.xml");
 			QString filter = tr("All Supported Formats (%1);;Documents (%2);;Other Files (%3);;All Files (*)").arg(docexts+" "+aiepsext+ooexts).arg(docexts).arg(aiepsext+ooexts);
 			CustomFDialog dia(this, wdir, tr("Import Colors"), filter, fdHidePreviewCheckBox);
 			if (dia.exec() == QDialog::Accepted)
@@ -1239,7 +1239,7 @@
 			QTreeWidgetItem *item = LoadColSet->addSubItem(name, userSwatches);
 			item->setData(0, Qt::UserRole, fi.absolutePath());
 			disconnect(LoadColSet, SIGNAL(activated(QTreeWidgetItem*)), this, SLOT(loadDefaults(QTreeWidgetItem*)));
-			LoadColSet->setCurrentComboItem(name);
+			LoadColSet->setCurrentComboItem(fi.absolutePath() + "/" + name);
 			connect(LoadColSet, SIGNAL(activated(QTreeWidgetItem*)), this, SLOT(loadDefaults(QTreeWidgetItem*)));
 		}
 	}
@@ -1247,8 +1247,12 @@
 
 QString PaintManagerDialog::getColorSetName()
 {
+	QString NameK;
 	QTreeWidgetItem* item = LoadColSet->currentItem();
-	QString NameK = item->data(0, Qt::UserRole).toString() + "/" + item->text(0);
+	if (item->text(0) == "Scribus Small")
+		NameK = "Scribus Small";
+	else
+		NameK = item->data(0, Qt::UserRole).toString() + "/" + item->text(0);
 	return NameK;
 }
 

Modified: branches/ScribusOIF/scribus/ui/swatchcombo.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/ui/swatchcombo.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/swatchcombo.cpp (original)
+++ branches/ScribusOIF/scribus/ui/swatchcombo.cpp Sun Nov  7 00:35:15 2010
@@ -82,20 +82,33 @@
 void SwatchCombo::setCurrentComboItem(QString text)
 {
 	QFontMetrics fm(font());
-	QString elText = fm.elidedText(text, Qt::ElideMiddle, width());
-	setText(elText);
 	setToolTip(text);
-	QList<QTreeWidgetItem*> lg = dataTree->findItems(text, Qt::MatchExactly | Qt::MatchRecursive);
-	if (lg.count() > 0)
+	QList<QTreeWidgetItem*> lg;
+	if (text == "Scribus Small")
 	{
-		for (int a = 0; a < lg.count(); a++)
+		QString elText = fm.elidedText(text, Qt::ElideMiddle, width());
+		setText(elText);
+		lg = dataTree->findItems(text, Qt::MatchExactly | Qt::MatchRecursive);
+		dataTree->setCurrentItem(lg[0]);
+		return;
+	}
+	else
+	{
+		QFileInfo fo(text);
+		QString txt = fo.baseName();
+		QString elText = fm.elidedText(txt, Qt::ElideMiddle, width());
+		setText(elText);
+		QString dText = fo.absolutePath();
+		lg = dataTree->findItems(txt, Qt::MatchExactly | Qt::MatchRecursive);
+		if (lg.count() > 0)
 		{
-			QString pText = lg[a]->data(0, Qt::UserRole).toString();
-			QFileInfo fi(pText);
-			if (fi.baseName() == lg[a]->text(0))
+			for (int a = 0; a < lg.count(); a++)
 			{
-				dataTree->setCurrentItem(lg[0]);
-				break;
+				if (dText == lg[a]->data(0, Qt::UserRole).toString())
+				{
+					dataTree->setCurrentItem(lg[0]);
+					break;
+				}
 			}
 		}
 	}

Modified: branches/ScribusOIF/scribus/util.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/util.cpp
==============================================================================
--- branches/ScribusOIF/scribus/util.cpp (original)
+++ branches/ScribusOIF/scribus/util.cpp Sun Nov  7 00:35:15 2010
@@ -777,6 +777,21 @@
 	if (ind > -1)
 		box->setCurrentIndex(ind);
 	box->blockSignals(false);
+}
+
+QString readAdobeUniCodeString(QDataStream &s)
+{
+	QString ret = "";
+	quint32 len;
+	s >> len;
+	for (quint32 a = 0; a < len; a++)
+	{
+		quint16 ch;
+		s >> ch;
+		if (ch != 0)
+			ret.append(QChar(ch));
+	}
+	return ret;
 }
 
 QString getDashString(int dashtype, double linewidth)

Modified: branches/ScribusOIF/scribus/util.h
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/util.h
==============================================================================
--- branches/ScribusOIF/scribus/util.h (original)
+++ branches/ScribusOIF/scribus/util.h Sun Nov  7 00:35:15 2010
@@ -140,6 +140,8 @@
 QString SCRIBUS_API readLinefromDataStream(QDataStream &s);
 void SCRIBUS_API setCurrentComboItem(QComboBox *box, QString text);
 
+QString SCRIBUS_API readAdobeUniCodeString(QDataStream &s);
+
 QString SCRIBUS_API getDashString(int dashtype, double linewidth);
 void    SCRIBUS_API getDashArray(int dashtype, double linewidth, QVector<double> &m_array);
 void    SCRIBUS_API getDashArray(int dashtype, double linewidth, QVector<float> &m_array);

Modified: branches/ScribusOIF/scribus/util_color.cpp
URL: http://scribus.info/websvn/diff.php?repname=Scribus&rev=15789&path=/branches/ScribusOIF/scribus/util_color.cpp
==============================================================================
--- branches/ScribusOIF/scribus/util_color.cpp (original)
+++ branches/ScribusOIF/scribus/util_color.cpp Sun Nov  7 00:35:15 2010
@@ -634,8 +634,8 @@
 							FarNam = FarNam.simplified();
 							cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * y), qRound(255 * k));
 							cc.setSpotColor(true);
-							if ((!EditColors.contains(FarNam)) && (!FarNam.isEmpty()))
-								EditColors.insert(FarNam, cc);
+							if (!FarNam.isEmpty())
+								EditColors.tryAddColor(FarNam, cc);
 							while (!ts.atEnd())
 							{
 								quint64 oldPos = ts.device()->pos();
@@ -655,8 +655,8 @@
 								FarNam = FarNam.simplified();
 								cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * y), qRound(255 * k));
 								cc.setSpotColor(true);
-								if ((!EditColors.contains(FarNam)) && (!FarNam.isEmpty()))
-									EditColors.insert(FarNam, cc);
+								if (!FarNam.isEmpty())
+									EditColors.tryAddColor(FarNam, cc);
 							}
 						}
 					}
@@ -678,8 +678,8 @@
 							FarNam = FarNam.remove(FarNam.length()-1,1);
 							FarNam = FarNam.simplified();
 							cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * y));
-							if ((!EditColors.contains(FarNam)) && (!FarNam.isEmpty()))
-								EditColors.insert(FarNam, cc);
+							if (!FarNam.isEmpty())
+								EditColors.tryAddColor(FarNam, cc);
 							while (!ts.atEnd())
 							{
 								quint64 oldPos = ts.device()->pos();
@@ -698,8 +698,8 @@
 								FarNam = FarNam.remove(FarNam.length()-1,1);
 								FarNam = FarNam.simplified();
 								cc = ScColor(qRound(255 * c), qRound(255 * m), qRound(255 * y));
-								if ((!EditColors.contains(FarNam)) && (!FarNam.isEmpty()))
-									EditColors.insert(FarNam, cc);
+								if (!FarNam.isEmpty())
+									EditColors.tryAddColor(FarNam, cc);
 							}
 						}
 					}
@@ -727,8 +727,157 @@
 						ColorList::Iterator it;
 						for (it = LColors.begin(); it != LColors.end(); ++it)
 						{
-							if (!EditColors.contains(it.key()))
-								EditColors.insert(it.key(), it.value());
+							EditColors.tryAddColor(it.key(), it.value());
+						}
+					}
+				}
+			}
+			else if (ext == "acb")			// Adobe color book format
+			{
+				QFile fiC(fileName);
+				if (fiC.open(QIODevice::ReadOnly))
+				{
+					ScColor lf = ScColor();
+					quint16 vers = 0;
+					quint32 signature;
+					QDataStream ts(&fiC);
+					ts.setByteOrder(QDataStream::BigEndian);
+					ts >> signature;
+					ts >> vers;
+					if ((signature == 0x38424342) && (vers == 1))
+					{
+						quint16 vendor, numcolors, colType;
+						ts >> vendor;
+						QString title		= readAdobeUniCodeString(ts);
+						QString prefix		= readAdobeUniCodeString(ts);
+						QString postfix		= readAdobeUniCodeString(ts);
+						QString description	= readAdobeUniCodeString(ts);
+						ts >> numcolors;
+						ts.skipRawData(4);
+						ts >> colType;
+						for (quint16 cc = 0; cc < numcolors; cc++)
+						{
+							QString name = readAdobeUniCodeString(ts);
+							if (vendor == 3000)
+								name.prepend("ANPA");
+							else if (vendor == 3001)
+								name.prepend("Focoltone");
+							else if (vendor == 3002)
+								name.prepend("PantoneCoated");
+							else if (vendor == 3003)
+								name.prepend("PantoneProcess");
+							else if (vendor == 3004)
+								name.prepend("PantoneProSlim");
+							else if (vendor == 3005)
+								name.prepend("PantoneUncoated");
+							else if (vendor == 3006)
+								name.prepend("Toyo");
+							else if (vendor == 3007)
+								name.prepend("Trumatch");
+							else if (vendor == 3008)
+								name.prepend("HKSE");
+							else if (vendor == 3009)
+								name.prepend("HKSK");
+							else if (vendor == 3010)
+								name.prepend("HKSN");
+							else if (vendor == 3011)
+								name.prepend("HKSZ");
+							else if (vendor == 3012)
+								name.prepend("DIC");
+							else if (vendor == 3020)
+								name.prepend("PantonePastelCoated");
+							else if (vendor == 3021)
+								name.prepend("PantonePastelUncoated");
+							else if (vendor == 3022)
+								name.prepend("PantoneMetallic");
+							ts.skipRawData(6);
+							quint8 componentR, componentG, componentB, componentK;
+							ts >> componentR >> componentG >> componentB;
+							if (colType == 2)
+								ts >> componentK;
+							if (!name.isEmpty())
+							{
+								bool validColor = false;
+								if (colType == 0)			// RBG
+								{
+									lf.setColorRGB(componentR, componentG, componentB);
+									validColor = true;
+								}
+								else if (colType == 2)		// CMYK
+								{
+									lf.setColor(255 - componentR, 255 - componentG, 255 - componentB, 255 - componentK);
+									validColor = true;
+								}
+								if (validColor)
+								{
+									lf.setSpotColor(false);
+									lf.setRegistrationColor(false);
+									EditColors.tryAddColor(name, lf);
+								}
+							}
+						}
+						fiC.close();
+					}
+					else					// try AutoCAD XML format
+					{
+						fiC.close();
+						QByteArray docBytes("");
+						loadRawText(fileName, docBytes);
+						QString docText("");
+						docText = QString::fromUtf8(docBytes);
+						QDomDocument docu("scridoc");
+						if (!docu.setContent(docText))
+							return false;
+						QDomElement elem = docu.documentElement();
+						QDomNode PAGE = elem.firstChild();
+						while(!PAGE.isNull())
+						{
+							QDomElement pg = PAGE.toElement();
+							if (pg.tagName() == "colorPage")
+							{
+								QDomNode colNode = pg.firstChild();
+								while(!colNode.isNull())
+								{
+									QDomElement cg = colNode.toElement();
+									if (cg.tagName() == "colorEntry")
+									{
+										QString colorName = "";
+										int r, g, b;
+										QDomNode colEntry = cg.firstChild();
+										while(!colEntry.isNull())
+										{
+											QDomElement cc = colEntry.toElement();
+											if (cc.tagName() == "colorName")
+												colorName = cc.text();
+											else if (cc.tagName() == "RGB8")
+											{
+												QDomNode colVal = cc.firstChild();
+												while(!colVal.isNull())
+												{
+													QDomElement cv = colVal.toElement();
+													if (cv.tagName() == "red")
+														r = cv.text().toInt();
+													else if (cv.tagName() == "green")
+														g = cv.text().toInt();
+													else if (cv.tagName() == "blue")
+														b = cv.text().toInt();
+													colVal = colVal.nextSibling();
+												}
+											}
+											colEntry = colEntry.nextSibling();
+										}
+										if (!colorName.isEmpty())
+										{
+											lf.setColorRGB(r, g, b);
+											lf.setSpotColor(false);
+											lf.setRegistrationColor(false);
+											EditColors.tryAddColor(colorName, lf);
+										}
+									}
+									colNode = colNode.nextSibling();
+								}
+							}
+							PAGE = PAGE.nextSibling();
 						}
 					}
 				}
@@ -756,17 +905,8 @@
 							{
 								quint16 colType;
 								quint16 componentR, componentG, componentB, componentK;
-								quint32 nameLength;
-								QString name = "";
 								ts >> colType >> componentR >> componentG >> componentB >> componentK;
-								ts >> nameLength;
-								for (quint32 a = 0; a < nameLength; a++)
-								{
-									quint16 ch;
-									ts >> ch;
-									if (ch != 0)
-										name.append(QChar(ch));
-								}
+								QString name = readAdobeUniCodeString(ts);
 								if (!name.isEmpty())
 								{
 									bool validColor = false;
@@ -799,8 +939,7 @@
 									{
 										lf.setSpotColor(false);
 										lf.setRegistrationColor(false);
-										if (!EditColors.contains(name))
-											EditColors.insert(name, lf);
+										EditColors.tryAddColor(name, lf);
 									}
 								}
 							}
@@ -848,8 +987,7 @@
 									lf.setColor(qRound(255 * c), qRound(255 * m), qRound(255 * y), qRound(255 * k));
 									lf.setSpotColor(false);
 									lf.setRegistrationColor(false);
-									if (!EditColors.contains(Cname))
-										EditColors.insert(Cname, lf);
+									EditColors.tryAddColor(Cname, lf);
 								}
 							}
 							else
@@ -864,8 +1002,7 @@
 									lf.setColorRGB(qRound(255 * r), qRound(255 * g), qRound(255 * b));
 									lf.setSpotColor(false);
 									lf.setRegistrationColor(false);
-									if (!EditColors.contains(Cname))
-										EditColors.insert(Cname, lf);
+									EditColors.tryAddColor(Cname, lf);
 								}
 							}
 						}
@@ -918,8 +1055,7 @@
 									lf.setRegistrationColor(static_cast<bool>(pg.attribute("Register").toInt()));
 								else
 									lf.setRegistrationColor(false);
-								if (!EditColors.contains(pg.attribute("NAME")))
-									EditColors.insert(pg.attribute("NAME"), lf);
+								EditColors.tryAddColor(pg.attribute("NAME"), lf);
 							}
 							else if (pg.tagName() == "Gradient")
 							{
@@ -964,8 +1100,8 @@
 								lf.setSpotColor(false);
 								lf.setRegistrationColor(false);
 								QString nam = pg.attribute("draw:name");
-								if ((!EditColors.contains(nam)) && (!nam.isEmpty()))
-									EditColors.insert(nam, lf);
+								if (!nam.isEmpty())
+									EditColors.tryAddColor(nam, lf);
 							}
 							else if (dTag == "VivaColors")
 							{
@@ -993,8 +1129,8 @@
 									lf.setColor(qRound(2.55 * cVal), qRound(2.55 * mVal), qRound(2.55 * yVal), qRound(2.55 * kVal));
 									lf.setSpotColor(false);
 									lf.setRegistrationColor(false);
-									if ((!EditColors.contains(nam)) && (!nam.isEmpty()))
-										EditColors.insert(nam, lf);
+									if (!nam.isEmpty())
+										EditColors.tryAddColor(nam, lf);
 								}
 								else if (pg.attribute("type") == "rgb")
 								{
@@ -1013,8 +1149,8 @@
 									lf.setColorRGB(cVal, mVal, yVal);
 									lf.setSpotColor(false);
 									lf.setRegistrationColor(false);
-									if ((!EditColors.contains(nam)) && (!nam.isEmpty()))
-										EditColors.insert(nam, lf);
+									if (!nam.isEmpty())
+										EditColors.tryAddColor(nam, lf);
 								}
 							}
 							PAGE=PAGE.nextSibling();
@@ -1061,8 +1197,7 @@
 									Cname = paletteName + QString("#%1%2%3%4").arg(Rval,2,16).arg(Gval,2,16).arg(Bval,2,16).arg(Kval,2,16).toUpper();
 								Cname.replace(" ","0");
 							}
-							if (!EditColors.contains(Cname))
-								EditColors.insert(Cname, tmp);
+							EditColors.tryAddColor(Cname, tmp);
 						}
 					}
 					fiC.close();




More information about the scribus-commit mailing list