r16935 by jghali - merge trunk revisions up to r16917

scribus-commit scribus-commit at lists.scribus.net
Fri Oct 28 17:40:07 UTC 2011


Author: jghali
Date: Fri Oct 28 17:40:06 2011
New Revision: 16935

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=16935
Log:
merge trunk revisions up to r16917

Added:
    branches/ScribusOIF/doc/en/images/duotone-imp.png
      - copied unchanged from r16908, trunk/Scribus/doc/en/images/duotone-imp.png
    branches/ScribusOIF/doc/en/images/duotone-imp2.png
      - copied unchanged from r16908, trunk/Scribus/doc/en/images/duotone-imp2.png
    branches/ScribusOIF/doc/en/images/fileimport.png
      - copied unchanged from r16908, trunk/Scribus/doc/en/images/fileimport.png
    branches/ScribusOIF/doc/en/images/import-pdfimage.png
      - copied unchanged from r16908, trunk/Scribus/doc/en/images/import-pdfimage.png
    branches/ScribusOIF/doc/en/images/vector-advanced.png
      - copied unchanged from r16908, trunk/Scribus/doc/en/images/vector-advanced.png
    branches/ScribusOIF/doc/en/images/vector-clipart.png
      - copied unchanged from r16908, trunk/Scribus/doc/en/images/vector-clipart.png
    branches/ScribusOIF/doc/en/importbitmap1.html
      - copied unchanged from r16908, trunk/Scribus/doc/en/importbitmap1.html
    branches/ScribusOIF/resources/swatches/Scribus_Fedora.xml
      - copied unchanged from r16903, trunk/Scribus/resources/swatches/Scribus_Fedora.xml
    branches/ScribusOIF/resources/swatches/Scribus_LibreOffice.xml
      - copied unchanged from r16903, trunk/Scribus/resources/swatches/Scribus_LibreOffice.xml
    branches/ScribusOIF/resources/swatches/Scribus_OpenSUSE.xml
      - copied unchanged from r16903, trunk/Scribus/resources/swatches/Scribus_OpenSUSE.xml
    branches/ScribusOIF/resources/swatches/Scribus_Oxygen.xml
      - copied unchanged from r16903, trunk/Scribus/resources/swatches/Scribus_Oxygen.xml
    branches/ScribusOIF/resources/swatches/Scribus_Ubuntu_CMYK.xml
      - copied unchanged from r16903, trunk/Scribus/resources/swatches/Scribus_Ubuntu_CMYK.xml
    branches/ScribusOIF/resources/swatches/Scribus_Ubuntu_RGB.xml
      - copied unchanged from r16903, trunk/Scribus/resources/swatches/Scribus_Ubuntu_RGB.xml
Modified:
    branches/ScribusOIF/doc/en/about1.html
    branches/ScribusOIF/doc/en/color3.html
    branches/ScribusOIF/doc/en/doccopyright.html
    branches/ScribusOIF/doc/en/fileproblems.html
    branches/ScribusOIF/doc/en/importhints.html
    branches/ScribusOIF/doc/en/menu.xml
    branches/ScribusOIF/doc/en/psd.html
    branches/ScribusOIF/resources/translations/po/scribus.ja.ts
    branches/ScribusOIF/scribus/canvasmode_editmeshpatch.cpp
    branches/ScribusOIF/scribus/commonstrings.cpp
    branches/ScribusOIF/scribus/commonstrings.h
    branches/ScribusOIF/scribus/pageitem.cpp
    branches/ScribusOIF/scribus/pageitem_group.cpp
    branches/ScribusOIF/scribus/pageitem_symbol.cpp
    branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
    branches/ScribusOIF/scribus/plugins/import/ai/importai.cpp
    branches/ScribusOIF/scribus/scribus.cpp
    branches/ScribusOIF/scribus/scribusdoc.cpp
    branches/ScribusOIF/scribus/scstreamfilter_jpeg.cpp
    branches/ScribusOIF/scribus/third_party/cairo/CMakeLists.txt
    branches/ScribusOIF/scribus/third_party/pgf/PGFplatform.h
    branches/ScribusOIF/scribus/ui/outlinepalette.cpp
    branches/ScribusOIF/scribus/ui/outlinepalette.h
    branches/ScribusOIF/scribus/ui/propertywidget_textstyles.cpp

Modified: branches/ScribusOIF/doc/en/about1.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/doc/en/about1.html
==============================================================================
--- branches/ScribusOIF/doc/en/about1.html (original)
+++ branches/ScribusOIF/doc/en/about1.html Fri Oct 28 17:40:06 2011
@@ -26,9 +26,9 @@
 
 <p><b>Christoph Schäfer (christoph_s):</b> Bug reporter and tester for bleeding edge Scribus, Wiki editor and doc  translator/proofreader, one of the main authors of the Official Manual and the Scribus Online Help.</p>
 
-<p><b>Hermann Kraus (Herm):</b> Wrote the Render Frame plug-in for 1.4 and GraphicsMagick and UniConvertor integration in 1.5.</p>
+<p><b>Hermann Kraus (Herm):</b> Wrote the Render Frame plug-in for 1.4, GraphicsMagick and UniConvertor integration in 1.5.</p>
 
-<p><b>Jain Basil Aliyas (jainbasil)</b>: Wrote the XTG and IDML import filters, and worked on the next generation ofUntitled 1 the Scribus Scripter.</p>
+<p><b>Jain Basil Aliyas (jainbasil)</b>: Wrote the XTG and IDML import filters and works on the next generation of the Scribus Scripter.</p>
 
 <p><b>Paul Smedley (smedles):</b> Maintainer of the OS/2 port.</p>
 
@@ -45,9 +45,9 @@
 
 <p><b>Alistair Robinson:</b> Added some important fixes for font handling in early Scribus versions. Also wrote the clever hack for GIMP to create CMYK TIFFs.</p>
 
-<p><b>Maciej Hanski:</b> Polish translator and writer of the “PDF Forms” how-to. One of the primary contributors to the Scribus Wiki.</p>
+<p><b>Maciej Hanski:</b> Polish translator and one of the primary contributors to the Scribus Wiki.</p>
 
-<p><b>Yves Ceccone:</b> Original French translator, wrote many of the Python scripts included with Scribus, maintained a large number of docs for Scribus in French.</p>
+<p><b>Yves Ceccone:</b> Original French translator, wrote many of the Python sample scripts included with Scribus, maintained a large number of docs for Scribus in French.</p>
 
 <p><b>Craig Ringer:</b> Worked on the scripter, build system and tested early Windows and Mac OS X ports. Contributed fixes for Python and other enhancements; IT/DTP administrator for a newspaper. </p>
 
@@ -73,9 +73,9 @@
 
 <p><b>Louis Desjardins:</b> LGM organizer, testing, feedback. Translator of the original documentation to French.</p>
 
-<p><b>Frederic Dubuy:</b> Translator of the original documentation to French</p>
+<p><b>Frederic Dubuy:</b> Translator of the original documentation to French.</p>
 
-<p><b>François Lanctôt:</b> Translator of the original documentation to French</p>
+<p><b>François Lanctôt:</b> Translator of the original documentation to French.</p>
 
 <p><b>Eirik Øverby:</b> Continues to mainatin our servers.</p>
 
@@ -87,13 +87,13 @@
 
 <p><b>Michael Doubez</b></p>
 
-<p><b>Cezary Grabski:</b> Lots of fixes and improvements to the text system.</p>
+<p><b>Cezary Grabski:</b> Lots of fixes and improvements to the text system, as well as other useful enhancements.</p>
 
 <p><b>Marcus Holland-Moritz:</b> Performance improvents for documents with large images.</p>
 
 <p><b>Christian Töpp</b></p>
 
-<p><b>Andy Fitzsimon:</b> Creator of the Scribus splashscreen.</p>
+<p><b>Andy Fitzsimmon:</b> Creator of the Scribus splashscreen.</p>
 
 <p><b>Andreas Nilsson:</b> Tango Project icons.</p>
 

Modified: branches/ScribusOIF/doc/en/color3.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/doc/en/color3.html
==============================================================================
--- branches/ScribusOIF/doc/en/color3.html (original)
+++ branches/ScribusOIF/doc/en/color3.html Fri Oct 28 17:40:06 2011
@@ -6,7 +6,7 @@
 <body>
 <h2>Color Palettes in Scribus (1): Open Source Palettes</h2>
 <p>Note that all color palettes described here and in subsequent sections include three basic colors: 100% CMYK Black (C: 100, M: 100, Y: 100, K: 100), 100% CMYK White (C: 0, M: 0, Y: 0, K: 0), and the <a href="color1.html">Registration Color</a>. These will not be counted as separate colors in the tables.</p>
-<p>It is also important to note that no physical reference (color fan, color chips) exists for the colors in the palettes listed on this page, so that verification of color correctness is impossible.</p><br>
+<p>It is also important to note that no physical reference (color fan, color chips) exists for the colors in the palettes listed on this page, so that verification of color correctness is impossible. To ensure a maximum of color reliability, make sure that <a href="cms.html">color management</a> is set up correctly and activated, and that the right profiles have been selected.</p><br>
 <table border="1">
   <tbody>
     <tr valign=top>
@@ -25,42 +25,84 @@
     </tr>
     <tr valign=top>
       <td><b>Scribus Basic</b></td>
-      <td>A set of primary CMYK and RGB colors, as well as three variants of black, namely “Cool Black”, “Rich Black” and “Warm Black”. The latter consist of a mix of C, M, Y and K colors instead of just 100% K (K=Black) and the values are the result of intensive discussions between the Scribus Team and commercial printers. The “Rich Black” variants may not meet every printer's needs, but they can serve as a basis when it comes to printing a rich black.</td>
+      <td>A set of primary CMYK and RGB colors, as well as three variants of black, namely “Cool Black,” “Rich Black” and “Warm Black.” The latter consist of a mix of C, M, Y and K colors instead of just 100% K (K=Black) and the values are the result of intensive discussions between the Scribus Team and commercial printers. The “Rich Black” variants may not meet every printer’s needs, but they can serve as a basis when it comes to printing a rich black.</td>
       <td>9</td>
       <td>RGB and CMYK</td>
       <td>No</td>
     </tr>
+   <tr valign=top>
+      <td><b>Scribus Fedora</b></td>
+      <td>A set of named RGB colors that are mandatory for publications of the <a href="http://fedoraproject.org/wiki/Logo/UsageGuidelines">Fedora Linux distribution</a>. </td>
+      <td>50</td>
+      <td>RGB</td>
+      <td>No</td>
+    </tr>
     <tr valign=top>
       <td><b>Scribus Gnome</b></td>
-      <td>A set of named RGB colors, which are standard on recent Gnome Desktops. </td>
+      <td>A set of named RGB colors that are mandatory for <a href="http://developer.gnome.org/hig-book/3.0/design-color.html.en">Gnome</a> desktop applications. </td>
       <td>32</td>
+      <td>RGB</td>
+      <td>No</td>
+    </tr>
+   <tr valign=top>
+      <td><b>Scribus LibreOffice</b></td>
+      <td>A set of named RGB colors used for project “branding” by <a href="http://wiki.documentfoundation.org/Marketing/Branding#Colors">LibreOffice</a>. </td>
+      <td>30</td>
       <td>RGB</td>
       <td>No</td>
     </tr>
     <tr valign=top>
       <td><b>Scribus OpenOffice</b></td>
-      <td>A set of CMYK colors which are based on the “CMYK” palette found in OpenOffice.org.</td>
+      <td>A set of CMYK colors based on the “CMYK” palette found in <a href="http://en.openoffice.org">OpenOffice.org</a>.</td>
       <td>94</td>
+      <td>CMYK</td>
+      <td>No</td>
+    </tr>
+   <tr valign=top>
+      <td><b>Scribus OpenSUSE</b></td>
+      <td>A set of named RGB colors that are mandatory for publications of the <a href="http://en.opensuse.org/openSUSE:Artwork_guidelines#Colors">OpenSUSE Linux distribution</a>.</td>
+      <td>15</td>
+      <td>CMYK</td>
+      <td>No</td>
+    </tr>
+   <tr valign=top>
+      <td><b>Scribus Oxygen</b></td>
+      <td>A set of named RGB colors used in KDE 4’s <a href="http://techbase.kde.org/Projects/Oxygen/Style#Color_Usage">Oxygen</a> desktop theme.</td>
+      <td>126</td>
       <td>CMYK</td>
       <td>No</td>
     </tr>
     <tr valign=top>
       <td><b>Scribus Splash</b> </td>
-      <td>A set of the colours in the Scribus logo and the splashscreen. Its main purpose is to guarantee a consistent use of colors in Scribus-related publications.</td>
+      <td>The CMYK version of the colors used in the Scribus logo and the splashscreen. Its main purpose is to guarantee a consistent use of colors in Scribus-related publications.</td>
       <td>19</td>
       <td>CMYK</td>
       <td>No</td>
     </tr>
     <tr>
       <td><b>Scribus SVG</b></td>
-      <td>A set of RGB colors based on the named colors from the <a href="http://www.w3.org/TR/css3-color/#svg-color">SVG specification</a>.</td>
+      <td>A set of RGB colors based on the named colors defined in the <a href="http://www.w3.org/TR/css3-color/#svg-color">SVG specification</a>.</td>
       <td>149</td>
+      <td>RGB</td>
+      <td>No</td>
+    </tr>
+   <tr>
+      <td><b>Scribus Ubuntu (RGB)</b></td>
+      <td>A set of named RGB colors that are mandatory for publications of the <a href="http://design.canonical.com/the-toolkit/ubuntu-brand-guidelines/">Ubuntu Linux distribution</a>.</td>
+      <td>4</td>
+      <td>RGB</td>
+      <td>No</td>
+    </tr>
+   <tr>
+      <td><b>Scribus Ubuntu (CMYK)</b></td>
+      <td>A set of named CMYK colors that are mandatory for publications of the <a href="http://design.canonical.com/the-toolkit/ubuntu-brand-guidelines/">Ubuntu Linux distribution</a>.</td>
+      <td>4</td>
       <td>RGB</td>
       <td>No</td>
     </tr>
     <tr valign=top>
       <td><b>Scribus X11</b></td>
-      <td>A set of RGB colors based on the named colors from X-Window.</td>
+      <td>A set of RGB colors based on the named colors from <a href="http://www.xfree86.org/current/X.7.html#toc10">X-Window</a>.</td>
       <td>550</td>
       <td>RGB</td>
       <td>No</td>
@@ -74,14 +116,14 @@
     </tr>
 	<tr>
       <td><b>Scribus Xfig</b></td>
-      <td>A set of the RGB colors used by Xfig.</td>
+      <td>A set of the named RGB colors used by <a href="http://www.xfig.org/">Xfig</a>.</td>
       <td>32</td>
       <td>RGB</td>
       <td>No</td>
     </tr>
     <tr valign=top>
       <td><b>Tango</b></td>
-      <td>A set of the RGB colors used in the <a href="http://tango.freedesktop.org/Tango_Desktop_Project">Tango icon project</a> for Free desktops. Since Scribus uses the Tango icon set, this color set may also be interesting for Scribus-related projects.</td>
+      <td>A set of the RGB colors used in the <a href="http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines">Tango icon project</a> for Free desktops. Since Scribus uses the Tango icon set, this color set may also be interesting for Scribus-related projects.</td>
       <td>68</td>
       <td>RGB</td>
       <td>No</td>

Modified: branches/ScribusOIF/doc/en/doccopyright.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/doc/en/doccopyright.html
==============================================================================
--- branches/ScribusOIF/doc/en/doccopyright.html (original)
+++ branches/ScribusOIF/doc/en/doccopyright.html Fri Oct 28 17:40:06 2011
@@ -16,7 +16,7 @@
 
 <h3>I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS</h3>
 
-<p>This on-line help manual “Scribus Online Help” may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that the terms of this license are adhered to, and that this license or an incorporation of it by reference is displayed in the reproduction.
+<p>This online help manual “Scribus Online Help” may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that the terms of this license are adhered to, and that this license or an incorporation of it by reference is displayed in the reproduction.
 
 <p>Proper form for an incorporation by reference is as follows:
 
@@ -67,12 +67,12 @@
 <p>1) Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder. Other forms of distribution including CD-ROM, electronic, and magnetic media are permitted.</p>
 
 <ul>
-<li>Adobe, Adobe Reader, Adobe Acrobat, Adobe Illustrator, Adobe InDesign, Adobe PageMaker, and PostScript are trademarks of Adobe Corporation in the United States, other countries or both.</li>
+<li>Adobe, Adobe Reader, Adobe Acrobat, Adobe Illustrator, Adobe InDesign, Adobe PageMaker, and PostScript are trademarks of Adobe Corporation in the United States, other countries, or both.</li>
 <li>UNIX is a registered trademark of The Open Group in the United States, other countries, or both.</li>
-<li>Linux is a trademark of Linus Torvalds in the United States, other countries or both.</li>
-<li>Apple, Mac, Mac OS, Mac OS X, Macintosh and TrueType are trademarks of Apple Computer, Inc., registered in the U.S. and other countries.</li>
-<li>Microsoft, Windows, Windows NT, Windows 2000, Windows XP, Wndows Vista, Windows 7, Visual Studio, Microsoft Word, Microsoft PowerPoint, and OpenType are trademarks of Microsoft Corporation in the United States, other countries, or both.</li>
-<li>OS/2 is registered trademark of International Business Machines corporation in the United States, other countries or both.</li>
+<li>Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.</li>
+<li>Apple, Mac, Mac OS, Mac OS X, Macintosh, and TrueType are trademarks of Apple corporation, registered in the United States, other countries, or both.</li>
+<li>Microsoft, Windows, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Visual Studio, Microsoft Word, Microsoft PowerPoint, and OpenType are trademarks of Microsoft corporation in the United States, other countries, or both.</li>
+<li>OS/2 is registered trademark of International Business Machines corporation in the United States, other countries, or both.</li>
 <li>CorelDraw is a registered trademark of Corel corporation in the United States, other countries, or both.</li>
 <li>QuarkXPress is a registered trademark of Quark, Inc. in the United States, other countries, or both.</li>
 <li>Ghostscript is a registered trademark of Artifex, Inc. in the United States, other countries, or both.</li>

Modified: branches/ScribusOIF/doc/en/fileproblems.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/doc/en/fileproblems.html
==============================================================================
--- branches/ScribusOIF/doc/en/fileproblems.html (original)
+++ branches/ScribusOIF/doc/en/fileproblems.html Fri Oct 28 17:40:06 2011
@@ -1,13 +1,44 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Problems with Document Files</title>
+	<title>Problems with Opening Scribus Files</title>
 </head>
 <body>
-<h2>Problems with Document Files</h2>
+<h2>Problems with Opening Scribus Files</h2>
 
 <h3>Damaged Files</h3>
-<h3>Documents created with another version of Scribus</h3>
+
+<h4>Parsing Errors</h4>
+
+<h4>Other File Errors</h4>
+
+
+<h3>Documents Created with Another Version of Scribus</h3>
+
+<h4>Files Created with an Earlier Version of Scribus</h4>
+
+<h4>Files Created with a Later Version of Scribus</h4>
+
+<h3>Safety Measures</h3>
+
+<h4>Autosave</h4>
+
+<h4>Backup Files</h4>
+
+<h3>Other Potential Sources for Errors</h3>
+
+<h4>File Substitutions</h4>
+
+<h4>Missing Images</h4>
+
+<h4>Render Frames</h4>
+
+<h4>Settings/Preferences</h4>
+<!--<hr>
+See also:
+<ul>
+<li><a href="scribus-files.html">Scribus Files and File Formats</a></li>
+</ul>-->
 <br>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/importhints.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/doc/en/importhints.html
==============================================================================
--- branches/ScribusOIF/doc/en/importhints.html (original)
+++ branches/ScribusOIF/doc/en/importhints.html Fri Oct 28 17:40:06 2011
@@ -1,54 +1,21 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Notes on importing issues with Scribus</title>
+	<title>Importing Content into Scribus</title>
 </head>
 <body>
-<h2>Notes on importing issues with Scribus</h2>
-<p>Although Scribus imports most common DTP image formats like TIFF and EPS, over time one of the more difficult tasks in DTP is getting stuff from different resources into your layout. Unlike some other DTP programs where printing can be finicky, Scribus print and PDF export has always been very reliable, and with correctly prepared images and files, the output from Scribus will be of excellent quality.</p>
-<p>One key to this is using the right format for the right type of image. Whenever possible, import your images as vector (e.g. SVG, EPS or AI). Another key to successful layout is fonts. When you are working with high-end DTP tools like Scribus, font quality matters. In professional DTP, it matters <strong>a lot</strong>. Probably the number one reason PostScript output fails, whether to a printer or PDF export, is a dodgy or corrupted font.</p>
+<h2>Importing Content into Scribus</h2>
+<p>As you have <a href="about2.html">learned</a>, DTP is about assembling content in a visually pleasing manner. Thus, <b>importing content</b> is a major part of your workflow. This chapter is meant to assist you in getting external content into your document in the most efficient way, as well as helping you to avoid mistakes, either on your side or on the side of contributors.</p>
+<p>After creating a new document with no content in it, trying to use <i>File > Import</i> would probably result in disappointment – if you hadn’t already learned that in general, content can only be imported into a <a href="WwFrames.html">frame</a>, and the exception to the general rule is <a href="importhints2.html">vector drawings</a>:</p>
 
-<h3>TIFF, JPEG, GIF, PNG what is the difference?</h3>
+<table width="100%"><tr><td align="center"><img src="images/fileimport.png" alt="File Import" title="File Import"/></td></tr></table>
+<p>We will start with hints about the import of bitmap images, continue with vector drawings and finish with text import, although there are some overlaps between the categories.</p>
 
-<h3>If it looks good on screen it will look good on paper</h3>
-<p>This is, unfortunately, an error that may cost real money. One of the most common beginner mistakes is to assume a nice looking JPEG from a website will print nicely on paper. Most websites use JPEGs, GIFs or – still less commonly – PNGs. JPEGs, by their design, use lossy compression. In the process of compressing a JPEG, data is discarded and permanently lost. Moreover, there is a type of JPEG called progressive which is pure poison in a PostScript workflow. A progressive JPEG is the type that partially displays as it is downloading in a web browser. <strong>Avoid these at all costs.</strong> Scribus will not load, nor export progressive jpegs. Also remember that most web page graphics have a resolution of 72-96 DPI, which is far too low for a print workflow. Scribus can generate PDFs with 4000 dpi, but for most purposes 300 dpi is a reasonable resolution.</p>
-<p>Another issue with JPEG files is that every time you open and edit them in an image editing program you will lose image data. So if you need to edit a JPEG file, save it in another format, like TIFF, before you start applying any changes.</p>
-<p>Scribus supports a few other formats, but you should avoid them for serious print jobs. These are:</p>
-<ul>
-<li><b>GIF:</b> The GIF format has been created for the early days of the world wide web. It uses compression and only permits a limited number of 256 colors. While it's possible to load a GIF image into an image frame, the format really has no place in professional page layout. This can get really ugly when you try to import a so-called “Animated GIF”. These GIFs work like a flip-book and are comprised of several images that will be subsequently displayed by a <i>browser</i>. They have no place in professional printing.</li>
-<li><b>XPM:</b> This is an old bitmap format used for icons in the X Window System. Like GIF, it only supports up to 256 colors.</li>
-<li><b>BMP:</b> A bitmap format used by Windows and OS/2 for graphical user faces. Unlike GIF or XPM it can contain up to 32 bit per pixel and supports transparency. Due to its simplicity, the BMP format is wide-spread and can be read/written by most image editors. Unfortunately, the lack of a compression algorithm leads to comparatively huge file sizes, and BMP data may cause problems with commercial RIPs (Raster Image Processors).</li>
-<li><b>If you are preparing a PDF or PostScript file for commercial printing, convert any of these file types to a more reliable format, like TIFF or PNG.</b></li>
-</ul
-<p>For high-level PostScript printing there are three kinds of file formats that work well for images like photos and anything that is made up of pixels and have been time tested: TIFF, tif and Tiff.</p>
-<p>No matter which way you spell it, the Tagged Image File Format is the file format for bitmap images.</p>
-
-<h3>Why TIFF?</h3>
-<ol>
-	<li>It is a <i>lossless</i> format. The compression scheme does not reduce quality.</li>
-	<li>For your purpose of working with Scribus, the GIMP or Krita do a fine job of exporting or saving to TIFF.</li>
-	<li>It handles ICC profiles without problems. You can “tag” it with the LittleCMS utility <code>tifficc</code> or embed an ICC profile in many bitmap editors.</li>
-	<li>It supports CMYK colors better than almost any other bitmap format.</li>
-	<li>Every high-end DTP application can support them, including Scribus.</li>
-	<li>TIFF files, if they are prepared properly in an image editor are extremely reliable when printed commercially. Rarely do PostScript devices have problems with them.</li>
-</ol>
-
-<h3>Caveats</h3>
-<p>There are more than fifty different flavors of TIFF. Not every image editor saves them with the same fidelity to the standards. GIMP, through its use of libtiff, shared with Scribus, does a fine job of supporting TIFFs. One way to work with files from GIMP is to save the original file in the native GIMP XCF format and then, once edited to your satisfaction, export as a TIFF or, with screen shots meant for the web, PNG.</p>
-<p>The latter, PNG, is an exception to the aforementioned rule, especially for application screenshots. PNG has a lot of advanced features, like ICC color support and real alpha transparency, which are often not supported well by some applications (a certain leading browser comes to mind). PNG also compresses very well. The only time JPEG may be preferrable over PNG is for photos with high dynamic range, mostly for reasons of size on a web page. For creating PDFs with screenshots, PNG is superb and will print well, as long as you do not make any scaling adjustments which reduce the image size. So if you have a screenshot which is typically at 72-96dpi, but you need to shrink it, do so by scaling the image in the GIMP or within Scribus. <i>Whenever you are scaling screenshots, disable re-sampling in any image editor</i>. With screenshots you should never reduce the number of pixels or you will lose sharpness quickly.</p>
-
-<h3>If it looks bad on screen, it will print terribly</h3>
-<p>This not necessarily true. EPS (Encapsulated PostScript) files need not have a screen preview at all. EPS files are really a special subset of PostScript instructions. They sometimes look just plain awful on screen if they have a TIFF or PICT preview embedded or are just a simple gray box. EPS files have two important virtues: They deliver excellent results on both high-resolution printers and when creating PDFs. EPS files can be resolution independent and are the only file you can (sometimes) safely scale larger than 100% than its native size without degrading image sharpness.</p>
-<p>The major issue you might find with EPS files is that while a lot of applications can generate EPS files, not all do so with the same fidelity to high-quality printing, nor do all apps follow the EPS specs properly. One way to test an EPS for use with Scribus, is to open the EPS in <a href="toolbox6.html">GSview</a> and look in the message box, by pressing Shift M. This will show the output messages from Ghostscript. Ghostscript is correctly quite fussy about EPS files. So, if you are trying to import EPS files that do not work properly in Scribus and GSview/Ghostscript is spitting lots of error messages, try using a different application to generate them.</p>
-<p>One reason for the ubiquity of EPS files in DTP is the existence of another DTP application which historically had poor support for TIFF and other bitmap image files, but does have good support for EPS import. So, many DTP users habitually create EPS files from bitmap images from Photoshop or others. Unfortunately, this can have the side effect of receiving image files which may need adjustment, which is impossible without the original image file. EPS is also great for receiving vector artwork like maps, mixed with text. The caveat is that the fonts should be correctly embedded in the EPS
-to print properly from Scribus.</p>
-<p>When importing an EPS, Scribus generates a 72 dpi PNG preview of the EPS, so do not be concerned if it does not look sharp right away. Printing or exporting a PDF will generate the high resolution image in the file.</p>
-<p>If you're still skeptical about the difference between a vector and a bitmap image file, here is an example that you can see for yourself. Go to: <a href="http://www.isc.tamu.edu/~lewing/linux">http://www.isc.tamu.edu/~lewing/linux</a>, get the linked PostScript, which is an EPS version of Tux and then right click and download one of the GIFs. They are about the same in file size. Now create a new document in Scribus with 2 regular size pages. Place the GIF on one page and then the EPS file on another and export a PDF at 600+dpi. Now open the PDF in Adobe Reader. Zoom in 200–400 %. Now you see the difference ...</p>
-<p>Why the difference? Scribus creates and Acrobat Reader renders something called PostScript operators – another fancy name for using math in drawing curves on screen and when printed. A GIF or JPEG file is just a bunch of pixels, literally dots to create the image.</p>
-
-<h3>A vector format for the future</h3>
-<p>With the addition of SVG import users have one more excellent way of importing images and artwork. SVG is an abbreviation of “Scalable Vector Graphics”, an open specification, which is developed by the <a href="w3c.org">World Wide Web Consortium</a>. Scalable means that you can in theory enlarge the the graphic to the size of the side of a house and it would retain its sharpness. Vector is how it does it, vectors meaning the shapes are drawn by mathematical commands instead of pixels. The leading Open Source vector drawing program, Inkscape, uses SVG as its native file format, which is yet another reason for its importance to Scribus users.</p>
-<h3>Other vector formats</h3>
-<p>Over time, import filters for other vector formats have been added, and there are many more to follow. See <a href="importhints2.html">Importing Vector Drawings</a> for more details.
+<h3>Bitmap and Vector Images</h3>
+<p>One of the things you must be aware of when using Scribus is the difference between a bitmap image and a vector image. A bitmap image consists of a fixed number of colored dots (pixels). This means (among other things) that such an image has a certain resolution, i.e., a number of dots within a two-dimensional area (a square). As a consequence, the resolution of a bitmap image has a major influence on the quality of its reproduction in different media, because the bigger the display area is, the bigger the dots and the uglier the result. Thus, image resolution is one of the things you have to be aware of when you are creating files for commercial printing.</p>
+<p>Vector images, on the other hand, use mathematical (geometrical) formulas to describe the content in terms of lines and curves, which means that those images (henceforth referred to as “vector drawings” or simply “drawings”) can be enlarged almost endlessly without losing quality. It should be mentioned, though, that there are several methods to describe graphics geometrically, and not all are equal. As a general rule, <a href="importhints1.html">PostScript-based</a> drawings (EPS, AI) offer the most sophisticated vector model with superior quality even at building-sized displays. This is also true for <a href="fonts2.html">PostScript fonts</a>, including OpenType fonts. Slightly lower quality is provided by <a href="scribus-svg.html">SVG</a> drawings, and the difference between PostScript or SVG and formats like WMF, ODG or PICT is even larger. In many cases, however, these differences in quality are irrelevant, as they can only be perceived at very high magnification levels.</p>
+<table width="100%"><tr><td align="center"><img src="images/vector-clipart.png"></td></tr>
+<tr><td align="center"><img src="images/vector-advanced.png"></td></tr> <tr><td align="center"><i>Differences in quality between clipart formats (top: WMF and ODG) and more advanced <br> vector formats (bottom: SVG and EPS), viewed at zoom level 3000 % in Scribus</i></td></tr></table>
+<p>If you're still unsure about the difference between a vector and a bitmap image, there is an example that you can see for yourself. Go to: <a href="http://www.isc.tamu.edu/~lewing/linux">http://www.isc.tamu.edu/~lewing/linux</a>, get the linked PostScript file, which is an EPS version of Tux and then right-click and download one of the GIFs. They are about the same in file size. Now create a new document in Scribus with two pages. Place the GIF on one page and then the EPS file on another and export a PDF. Then open the PDF in Adobe Reader, zoom in 200–400 %. Now you should see the difference …</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/menu.xml
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/doc/en/menu.xml
==============================================================================
--- branches/ScribusOIF/doc/en/menu.xml (original)
+++ branches/ScribusOIF/doc/en/menu.xml Fri Oct 28 17:40:06 2011
@@ -52,6 +52,7 @@
 			<submenuitem text="Special Purpose Colors" file="color8.html" />
 		</submenuitem>
 		<submenuitem text="Importing" file="importhints.html">
+			<submenuitem text="Importing Bitmap Files" file="importbitmap1.html" />
 			<submenuitem text="Importing Photoshop Files" file="psd.html" />
 			<submenuitem text="Importing Vector Drawings" file="importhints2.html"/>
 			<submenuitem text="Importing EPS" file="importhints1.html"/>

Modified: branches/ScribusOIF/doc/en/psd.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/doc/en/psd.html
==============================================================================
--- branches/ScribusOIF/doc/en/psd.html (original)
+++ branches/ScribusOIF/doc/en/psd.html Fri Oct 28 17:40:06 2011
@@ -7,21 +7,21 @@
 <h2>Working with Photoshop® Files</h2>
 
 <h3>Overview</h3>
-<p>Adobe Photoshop is one of the world's best known software applications and widely used in professional graphics, both in print and for web work. While there are some great open source graphics applications like GIMP or Krita, sometimes Photoshop is still the only application which can be used in certain cases – especially in the pre-press world.</p>
+<p>Adobe Photoshop is one of the world’s best known software applications and widely used in professional graphics, both in print and for web graphics. While there are some great open source graphics applications like GIMP or Krita, sometimes Photoshop is still the only application that can be used in certain cases – especially in the pre-press world.</p>
 
-<p>One of the sources of its power is the native PSD file format. A PSD file can not only hold image data, but is more of a large container which can include metadata, camera info, text, vector artwork and more. Most other programs only handle a small subset of its capabilities. </p>
+<p>One of the sources of its power is the native PSD file format. A PSD file can not only hold image data, but is more of a large container which can include metadata, camera info, text, vector artwork, and more. Most other programs and formats only handle a small subset of its capabilities. </p>
 <h3>PSD Import</h3>
 <p>Scribus does have its own native capabilities to import PSD files from version 6 and earlier – the latest version of the PSD format which is publicly documented. The Scribus Team has also been able to worm some features out of files created with later PS versions, so most PSD files can at least be loaded into Scribus, but they may have file format features which are not supported.</p>
 <p>In general, PSD support is quite extensive, including:</p>
 <ul>
 <li>The ability to manipulate and adjust layer settings.</li>
 <li>The option to enable and use masking along with the paths embedded in the file.</li>
-<li>In almost all cases, provided they are not defective, ICC color profiles which are embedded into a PSD are detected and used when color management is enabled.</li>
-<li>Scribus generally will import 8-bit Greyscale, RGB and CMYK PSD files without issue.</li>
+<li>In almost all cases, provided they are not defective, ICC color profiles that are embedded into a PSD are detected and used when color management is enabled.</li>
+<li>Scribus generally will import 8-bit Grayscale, RGB and CMYK PSD files without issue.</li>
 <li>Alpha transparency is supported.</li>
 <li>Scribus will import PSD files with normal layers and will display the individual layers in the <i>Extended Image Properties</i> dialog, which is avialable from the Context Menu.</li> 
 <li>Clipping paths in PSD files will be recognized and can be used for text flow.</li>
-<li>Blending modes which are in the image file can be used to affect the way the image displays and prints. It's also possible to modify blending or to apply other modes between PSD layers. This won't affect the original file.</li>
+<li>Blending modes which are in the image file can be used to affect the way the image displays and prints. It’ also possible to modify blending or to apply other modes between PSD layers. This won’t affect the original file.</li>
 <li>In almost all cases Scribus will automatically detect the file encoding, whether it is ASCII, Binary or Binary with JPEG.</li>
 <!--<li>Scribus will handle both PSD and TIFF files, no matter what byte order is used – PPC Mac/SPARC or PC. If Scribus is run from the command line, you may see harmless error messages about tags in wrong order. Ignore them. </li>-->
 </ul>
@@ -32,9 +32,14 @@
 </ul>
 <h3>Specialties</h3>
 <ul>
-<li>DCS (Desktop Color Separations) 1.x/2.0 files are a special flavor of EPS saved in Photoshop and are imported natively – much like a PSD file – and complete with ICC profile support. Image quality should be close to or equivalent to the native PSD file. Vector masks are also detected and can be used to control the display within <i>Extended Image Properties</i>. DCS files can also be saved from Quark XPress®, but this flavor will be imported using Ghostscript as a filter for the time being. This is partly because the way Quark X-Press® exports them does not conform to the DCS specifications properly.</li>
-<li>Scribus can detect Duotones, Tritones and Quadtones in PSD and Photoshop EPS files and import them. The difference between both formats is that you need to import the spot colors from the EPS separately via <i>Edit > Colors > Import</i>. If you import a PSD file, you can directly manipulate each of the spot colors within it via the <i>Image Effects</i> dialog, which is available from the Context Menu. In most cases, Scribus will detect the image as Duo, Tri or Quadtone and automatically import the colors from the PSD file.</li></ul><br>
-<table width="100%"><tr><td align="center"><img src="images/imageeffects.png" title="Spot colors imported from a Tritone image" alt="Spot colors imported from a Tritone image" /></td></tr></table><br>
+<li>DCS (Desktop Color Separations) 1.x/2.0 files are a special flavor of EPS saved in Photoshop and are imported natively – much like a PSD file – and complete with ICC profile support. Image quality should be close to or equivalent to the native PSD file. Vector masks are also detected and can be used to control the display within <i>Extended Image Properties</i>. DCS files can also be saved from QuarkXPress®, but this flavor will be imported using Ghostscript as a filter for the time being. This is partly because the way QuarkXPress® exports them does not conform to the DCS specifications properly.</li>
+<li>Scribus can detect Duotones, Tritones and Quadtones in PSD and Photoshop EPS files and import them. The difference between both formats is that you need to import the spot colors from the EPS separately via <i>Edit > Colors > Import</i>. If you import a PSD file, you can directly manipulate each of the spot colors within it via the <i>Image Effects</i> dialog, which is available from the Context Menu. In most cases, Scribus will detect the image as Duo-, Tri- or Quadtone and automatically import the colors from the PSD file.</li></ul><br>
+<table width="100%">
+<tr><td align="center"><img src="images/duotone-imp.png" /></td></tr>
+<tr><td align="center"><img src="images/duotone-imp2.png" /></td></tr>
+<tr><td><i><div align="center">Duotone import: Scribus will indicate the Duotone “color space” in the import dialog (top) and load used spot colors into the color list (bottom right). <br>In the Image Effects dialog, the “Duotone” effect will be activated automatically (bottom left).</div></i></td></tr>
+</table>
+<br>
 <h3>Recommendations</h3>
 <ul>
 <li>If you do have the original PSD file of an image, by all means use it.</li>

Modified: branches/ScribusOIF/resources/translations/po/scribus.ja.ts
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/resources/translations/po/scribus.ja.ts
==============================================================================
--- branches/ScribusOIF/resources/translations/po/scribus.ja.ts (original)
+++ branches/ScribusOIF/resources/translations/po/scribus.ja.ts Fri Oct 28 17:40:06 2011
@@ -629,7 +629,7 @@
     <message>
         <location filename="../../../scribus/actionmanager.cpp" line="1385"/>
         <source>Embed Image</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">画像を埋め込む</translation>
     </message>
     <message>
         <location filename="../../../scribus/actionmanager.cpp" line="1386"/>
@@ -889,7 +889,7 @@
     <message>
         <location filename="../../../scribus/actionmanager.cpp" line="1460"/>
         <source>Symbols</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">シンボル</translation>
     </message>
     <message>
         <location filename="../../../scribus/actionmanager.cpp" line="1461"/>
@@ -5335,7 +5335,7 @@
     <message>
         <location filename="../../../scribus/commonstrings.cpp" line="279"/>
         <source>Symbol</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">シンボル</translation>
     </message>
     <message>
         <location filename="../../../scribus/commonstrings.cpp" line="291"/>
@@ -13264,7 +13264,7 @@
     <message>
         <location filename="../../../scribus/pageitem_osgframe.cpp" line="158"/>
         <source>3D Model</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">3Dモデル</translation>
     </message>
     <message>
         <location filename="../../../scribus/pageitem_osgframe.cpp" line="160"/>
@@ -13405,27 +13405,27 @@
     <message>
         <location filename="../../../scribus/ui/pageselector.cpp" line="267"/>
         <source>Go to the first page</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">最初のページへ移動</translation>
     </message>
     <message>
         <location filename="../../../scribus/ui/pageselector.cpp" line="268"/>
         <source>Go to the previous page</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">前のページへ移動</translation>
     </message>
     <message>
         <location filename="../../../scribus/ui/pageselector.cpp" line="269"/>
         <source>Go to the next page</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">次のページへ移動</translation>
     </message>
     <message>
         <location filename="../../../scribus/ui/pageselector.cpp" line="270"/>
         <source>Go to the last page</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">最後のページへ移動</translation>
     </message>
     <message>
         <location filename="../../../scribus/ui/pageselector.cpp" line="271"/>
         <source>Select the current page</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">現在のページを選択</translation>
     </message>
     <message>
         <location filename="../../../scribus/ui/pageselector.cpp" line="272"/>
@@ -13599,7 +13599,7 @@
     <message>
         <location filename="../../../scribus/ui/paintmanager.cpp" line="315"/>
         <source>Sort by Color</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">色でソート</translation>
     </message>
     <message>
         <location filename="../../../scribus/ui/paintmanager.cpp" line="316"/>
@@ -13625,7 +13625,7 @@
         <location filename="../../../scribus/ui/paintmanager.cpp" line="382"/>
         <location filename="../../../scribus/ui/paintmanager.cpp" line="393"/>
         <source>Load File</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">ファイルの読み込み</translation>
     </message>
     <message>
         <location filename="../../../scribus/ui/paintmanager.cpp" line="383"/>
@@ -13677,7 +13677,7 @@
     <message>
         <location filename="../../../scribus/ui/paintmanager.cpp" line="873"/>
         <source>Do you really want to clear all your patterns?</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">すべてのパターンをクリアしますか?</translation>
     </message>
     <message>
         <location filename="../../../scribus/ui/paintmanager.cpp" line="1000"/>
@@ -14385,7 +14385,7 @@
     <message>
         <location filename="../../../scribus/plugins/scripter/python/permitdlg.ui" line="13"/>
         <source>Confirm to run unsafe script</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">安å
¨ã§ãªã„スクリプトの実行に同意する</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/scripter/python/permitdlg.ui" line="29"/>
@@ -14425,7 +14425,7 @@
     <message>
         <location filename="../../../scribus/plugins/scripter/python/permitdlg.ui" line="105"/>
         <source>&Allow</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">許可</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/scripter/python/permitdlg.ui" line="112"/>
@@ -14913,22 +14913,22 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="138"/>
         <source>Create new category</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">新規カテゴリの生成</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="160"/>
         <source>New collection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">新規コレクション</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="182"/>
         <source>Delete selected collection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">選択されたコレクションの削除</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="204"/>
         <source>Edit selected collection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">選択されたコレクションの編集</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="239"/>
@@ -14938,7 +14938,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="261"/>
         <source>Remove selected images from current collection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">現在のコレクションから選択されたイメージw削除する</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="283"/>
@@ -14948,12 +14948,12 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="318"/>
         <source>Import collection/collectionset</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">コレクション/コレクションセットのインポート</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="340"/>
         <source>Export collection/collectionset</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">コレクション/コレクションセットのエクスポート</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="360"/>
@@ -14978,12 +14978,12 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="540"/>
         <source>Sort by Date</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">日付でソート</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="545"/>
         <source>Sort by Size</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">サイズでソート</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="550"/>
@@ -15008,7 +15008,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="446"/>
         <source>Go to Page</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">ページへ行く</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="669"/>
@@ -15033,7 +15033,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="706"/>
         <source>Add to Collection</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">コレクションに追加</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="726"/>
@@ -15125,7 +15125,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="991"/>
         <source>Layers:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">レイヤ:</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1005"/>
@@ -15145,7 +15145,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1051"/>
         <source>Filters:</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">フィルタ:</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1070"/>
@@ -15175,7 +15175,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1164"/>
         <source><< Add</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"><< 追加</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1172"/>
@@ -15216,27 +15216,27 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1241"/>
         <source>Newer than</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">より新しい</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1246"/>
         <source>Older than</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">より古い</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1265"/>
         <source>Smaller than</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">より小さい</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1270"/>
         <source>Bigger than</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">より大きい</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1278"/>
         <source> KB</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished"> KB</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1314"/>
@@ -15246,7 +15246,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1334"/>
         <source>Apply Filters</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">フィルタの適用</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1347"/>
@@ -15256,7 +15256,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1355"/>
         <source>Insert Image</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">イメージの挿å
¥</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1367"/>
@@ -15266,7 +15266,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1379"/>
         <source>Page(s):</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">ページ:</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1398"/>
@@ -15340,12 +15340,12 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1596"/>
         <source>0 Page(s)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">0 ページ</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1609"/>
         <source>0 Frame(s)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">0 フレーム</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1622"/>
@@ -15370,7 +15370,7 @@
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1679"/>
         <source>Add New Tag</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">新しいタグの追加</translation>
     </message>
     <message>
         <location filename="../../../scribus/plugins/picbrowser/picturebrowser.ui" line="1686"/>

Modified: branches/ScribusOIF/scribus/canvasmode_editmeshpatch.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/canvasmode_editmeshpatch.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_editmeshpatch.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_editmeshpatch.cpp Fri Oct 28 17:40:06 2011
@@ -632,41 +632,64 @@
 					m_canvas->displayXYHUD(m->globalPos(), npf.x(), npf.y());
 					if (m_view->editStrokeGradient == 9)
 					{
+						FPoint mp, mp_orig;
+						double xx, yy;
 						if (m_patchPoint == useTL)
 						{
-							FPoint mp = currItem->meshGradientPatches[currItem->selectedMeshPointX].TL.gridPoint - npx;
-							double xx = mp.x();
-							double yy = mp.y();
+							mp_orig = currItem->meshGradientPatches[currItem->selectedMeshPointX].TL.gridPoint;
+							mp = mp_orig - npx;
+							xx = mp.x();
+							yy = mp.y();
 							if (currItem->snapToPatchGrid)
 								snapToOtherPatch(xx, yy);
 							currItem->meshGradientPatches[currItem->selectedMeshPointX].TL.moveAbs(xx, yy);
 						}
 						if (m_patchPoint == useTR)
 						{
-							FPoint mp = currItem->meshGradientPatches[currItem->selectedMeshPointX].TR.gridPoint - npx;
-							double xx = mp.x();
-							double yy = mp.y();
+							mp_orig = currItem->meshGradientPatches[currItem->selectedMeshPointX].TR.gridPoint;
+							mp = mp_orig - npx;
+							xx = mp.x();
+							yy = mp.y();
 							if (currItem->snapToPatchGrid)
 								snapToOtherPatch(xx, yy);
 							currItem->meshGradientPatches[currItem->selectedMeshPointX].TR.moveAbs(xx, yy);
 						}
 						if (m_patchPoint == useBR)
 						{
-							FPoint mp = currItem->meshGradientPatches[currItem->selectedMeshPointX].BR.gridPoint - npx;
-							double xx = mp.x();
-							double yy = mp.y();
+							mp_orig = currItem->meshGradientPatches[currItem->selectedMeshPointX].BR.gridPoint;
+							mp = mp_orig - npx;
+							xx = mp.x();
+							yy = mp.y();
 							if (currItem->snapToPatchGrid)
 								snapToOtherPatch(xx, yy);
 							currItem->meshGradientPatches[currItem->selectedMeshPointX].BR.moveAbs(xx, yy);
 						}
 						if (m_patchPoint == useBL)
 						{
-							FPoint mp = currItem->meshGradientPatches[currItem->selectedMeshPointX].BL.gridPoint - npx;
-							double xx = mp.x();
-							double yy = mp.y();
+							mp_orig = currItem->meshGradientPatches[currItem->selectedMeshPointX].BL.gridPoint;
+							mp = mp_orig - npx;
+							xx = mp.x();
+							yy = mp.y();
 							if (currItem->snapToPatchGrid)
 								snapToOtherPatch(xx, yy);
 							currItem->meshGradientPatches[currItem->selectedMeshPointX].BL.moveAbs(xx, yy);
+						}
+						if (m->modifiers() & Qt::ShiftModifier)
+						{
+							for (int col = 0; col < currItem->meshGradientPatches.count(); col++)
+							{
+								if (col != currItem->selectedMeshPointX)
+								{
+									if (currItem->meshGradientPatches[col].TL.gridPoint == mp_orig)
+										currItem->meshGradientPatches[col].TL.moveAbs(xx, yy);
+									if (currItem->meshGradientPatches[col].TR.gridPoint == mp_orig)
+										currItem->meshGradientPatches[col].TR.moveAbs(xx, yy);
+									if (currItem->meshGradientPatches[col].BR.gridPoint == mp_orig)
+										currItem->meshGradientPatches[col].BR.moveAbs(xx, yy);
+									if (currItem->meshGradientPatches[col].BL.gridPoint == mp_orig)
+										currItem->meshGradientPatches[col].BL.moveAbs(xx, yy);
+								}
+							}
 						}
 					}
 				}

Modified: branches/ScribusOIF/scribus/commonstrings.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/commonstrings.cpp
==============================================================================
--- branches/ScribusOIF/scribus/commonstrings.cpp (original)
+++ branches/ScribusOIF/scribus/commonstrings.cpp Fri Oct 28 17:40:06 2011
@@ -46,16 +46,21 @@
 QString CommonStrings::customPageSize = "";
 QString CommonStrings::trCustomPageSize = "";
 
-QString CommonStrings::itemType_TextFrame  = "";
-QString CommonStrings::itemType_ImageFrame = "";
-QString CommonStrings::itemType_Line       = "";
-QString CommonStrings::itemType_Polygon    = "";
-QString CommonStrings::itemType_Polyline   = "";
-QString CommonStrings::itemType_PathText   = "";
-QString CommonStrings::itemType_LatexFrame = "";
-QString CommonStrings::itemType_OSGFrame   = "";
-QString CommonStrings::itemType_Symbol     = "";
-QString CommonStrings::itemType_Multiple   = "";
+QString CommonStrings::itemType_TextFrame		= "";
+QString CommonStrings::itemType_ImageFrame		= "";
+QString CommonStrings::itemType_Line			= "";
+QString CommonStrings::itemType_Polygon			= "";
+QString CommonStrings::itemType_Polyline		= "";
+QString CommonStrings::itemType_PathText		= "";
+QString CommonStrings::itemType_LatexFrame		= "";
+QString CommonStrings::itemType_OSGFrame		= "";
+QString CommonStrings::itemType_Symbol			= "";
+QString CommonStrings::itemType_Group			= "";
+QString CommonStrings::itemType_RegularPolygon	= "";
+QString CommonStrings::itemType_Arc				= "";
+QString CommonStrings::itemType_Spiral			= "";
+QString CommonStrings::itemType_Table			= "";
+QString CommonStrings::itemType_Multiple		= "";
 
 QString CommonStrings::itemSubType_PDF_PushButton;
 QString CommonStrings::itemSubType_PDF_TextField;
@@ -272,16 +277,21 @@
 	CommonStrings::trYesKey   = tr("&Yes");
 	CommonStrings::trNoKey    = tr("&No");
 
-	CommonStrings::itemType_TextFrame  = tr("Text Frame");
-	CommonStrings::itemType_ImageFrame = tr("Image Frame");
-	CommonStrings::itemType_Line       = tr("Line");
-	CommonStrings::itemType_Polygon    = tr("Polygon");
-	CommonStrings::itemType_Polyline   = tr("Polyline");
-	CommonStrings::itemType_PathText   = tr("Text on a Path");
-	CommonStrings::itemType_LatexFrame = tr("Render Frame");
-	CommonStrings::itemType_OSGFrame   = tr("PDF 3D Annotation");
-	CommonStrings::itemType_Symbol     = tr("Symbol");
-	CommonStrings::itemType_Multiple   = tr("Multiple", "Multiple frame types");
+	CommonStrings::itemType_TextFrame		= tr("Text Frame");
+	CommonStrings::itemType_ImageFrame		= tr("Image Frame");
+	CommonStrings::itemType_Line			= tr("Line");
+	CommonStrings::itemType_Polygon			= tr("Polygon");
+	CommonStrings::itemType_Polyline		= tr("Polyline");
+	CommonStrings::itemType_PathText		= tr("Text on a Path");
+	CommonStrings::itemType_LatexFrame		= tr("Render Frame");
+	CommonStrings::itemType_OSGFrame		= tr("PDF 3D Annotation");
+	CommonStrings::itemType_Symbol			= tr("Symbol");
+	CommonStrings::itemType_Group			= tr("Group");
+	CommonStrings::itemType_RegularPolygon	= tr("Regular Polygon");
+	CommonStrings::itemType_Arc				= tr("Arc");
+	CommonStrings::itemType_Spiral			= tr("Spiral");
+	CommonStrings::itemType_Table			= tr("Table");
+	CommonStrings::itemType_Multiple		= tr("Multiple", "Multiple frame types");
 	CommonStrings::itemSubType_PDF_PushButton     = tr("PDF Push Button");
 	CommonStrings::itemSubType_PDF_TextField      = tr("PDF Text Field");
 	CommonStrings::itemSubType_PDF_CheckBox       = tr("PDF Check Box");

Modified: branches/ScribusOIF/scribus/commonstrings.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/commonstrings.h
==============================================================================
--- branches/ScribusOIF/scribus/commonstrings.h (original)
+++ branches/ScribusOIF/scribus/commonstrings.h Fri Oct 28 17:40:06 2011
@@ -116,6 +116,11 @@
 	static QString itemType_LatexFrame;
 	static QString itemType_OSGFrame;
 	static QString itemType_Symbol;
+	static QString itemType_Group;
+	static QString itemType_RegularPolygon;
+	static QString itemType_Arc;
+	static QString itemType_Spiral;
+	static QString itemType_Table;
 	static QString itemType_Multiple;
 
 	static QString itemSubType_PDF_PushButton;

Modified: branches/ScribusOIF/scribus/pageitem.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/pageitem.cpp
==============================================================================
--- branches/ScribusOIF/scribus/pageitem.cpp (original)
+++ branches/ScribusOIF/scribus/pageitem.cpp Fri Oct 28 17:40:06 2011
@@ -1419,7 +1419,7 @@
 	DrawObj_Pre(p);
 	if (m_Doc->layerOutline(LayerID))
 	{
-		if ((itemType()==TextFrame || itemType()==ImageFrame || itemType()==PathText || itemType()==Line || itemType()==PolyLine))
+		if ((itemType()==TextFrame || itemType()==ImageFrame || itemType()==PathText || itemType()==Line || itemType()==PolyLine || itemType()==Group || itemType()==Symbol))
 			DrawObj_Item(p, cullingArea);
 	}
 	else
@@ -1613,47 +1613,47 @@
 void PageItem::DrawObj_Post(ScPainter *p)
 {
 	bool doStroke=true;
-	if (!isGroup())
-	{
-		if (m_Doc->layerOutline(LayerID))
-		{
-			if (itemType()!=Line)
+	if (m_Doc->layerOutline(LayerID))
+	{
+		if (itemType()!=Line)
+		{
+			p->setPen(m_Doc->layerMarker(LayerID), 1, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
+			p->setFillMode(ScPainter::None);
+			p->setBrushOpacity(1.0);
+			p->setPenOpacity(1.0);
+			if (itemType()==PolyLine)
+				p->setupPolygon(&PoLine, false);
+			else if (itemType() == PathText)
 			{
-				p->setPen(m_Doc->layerMarker(LayerID), 1, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
-				p->setFillMode(ScPainter::None);
-				p->setBrushOpacity(1.0);
-				p->setPenOpacity(1.0);
-				if (itemType()==PolyLine)
+				if (PoShow)
 					p->setupPolygon(&PoLine, false);
-				else if (itemType() == PathText)
+				else
+					doStroke = false;
+			}
+			else
+				p->setupPolygon(&PoLine);
+			if (doStroke)
+				p->strokePath();
+			if (itemType()==ImageFrame)
+			{
+				if (imageClip.size() != 0)
 				{
-					if (PoShow)
-						p->setupPolygon(&PoLine, false);
-					else
-						doStroke = false;
+					p->setupPolygon(&imageClip);
+					p->strokePath();
 				}
-				else
-					p->setupPolygon(&PoLine);
-				if (doStroke)
-					p->strokePath();
-				if (itemType()==ImageFrame)
-				{
-					if (imageClip.size() != 0)
-					{
-						p->setupPolygon(&imageClip);
-						p->strokePath();
-					}
-				}
-			}
-		}
-		else
-		{
-	#if (CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 9, 4))
+			}
+		}
+	}
+	else
+	{
+		if (!isGroup())
+		{
+#if (CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 9, 4))
 			if (fillBlendmode() != 0)
 				p->endLayer();
-	#else
+#else
 			p->setBlendModeFill(0);
-	#endif
+#endif
 			p->setMaskMode(0);
 			// TODO: Investigate whether itemType()==Table should really be here. I got artifacts without it so keeping it here for now. /estan
 			if (itemType()==PathText || itemType()==PolyLine || itemType()==Spiral || itemType()==Line || itemType()==Symbol || itemType()==Group || itemType()==Table)

Modified: branches/ScribusOIF/scribus/pageitem_group.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/pageitem_group.cpp
==============================================================================
--- branches/ScribusOIF/scribus/pageitem_group.cpp (original)
+++ branches/ScribusOIF/scribus/pageitem_group.cpp Fri Oct 28 17:40:06 2011
@@ -211,6 +211,15 @@
 			}
 			p->endLayer();
 			p->restore();
+			if (m_Doc->layerOutline(LayerID))
+			{
+				p->setPen(m_Doc->layerMarker(LayerID), 1, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
+				p->setFillMode(ScPainter::None);
+				p->setBrushOpacity(1.0);
+				p->setPenOpacity(1.0);
+				p->setupPolygon(&PoLine);
+				p->strokePath();
+			}
 			if (m_Doc->guidesPrefs().framesShown)
 			{
 				for (int em = 0; em < groupItemList.count(); ++em)

Modified: branches/ScribusOIF/scribus/pageitem_symbol.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/pageitem_symbol.cpp
==============================================================================
--- branches/ScribusOIF/scribus/pageitem_symbol.cpp (original)
+++ branches/ScribusOIF/scribus/pageitem_symbol.cpp Fri Oct 28 17:40:06 2011
@@ -154,6 +154,15 @@
 			}
 			p->endLayer();
 			p->restore();
+			if (m_Doc->layerOutline(LayerID))
+			{
+				p->setPen(m_Doc->layerMarker(LayerID), 1, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
+				p->setFillMode(ScPainter::None);
+				p->setBrushOpacity(1.0);
+				p->setPenOpacity(1.0);
+				p->setupPolygon(&PoLine);
+				p->strokePath();
+			}
 		}
 		else
 		{

Modified: branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&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 Fri Oct 28 17:40:06 2011
@@ -1872,7 +1872,11 @@
 	color.setSpotColor( attrs.valueAsBool("Spot", false) );
 	color.setRegistrationColor( attrs.valueAsBool("Register", false) );
 	QString name = attrs.valueAsString("NAME", color.name());
-	colors.tryAddColor(name, color);
+	// #10323 : break loading of doc which contain colors with different names
+	// and same definition
+	// colors.tryAddColor(name, color);
+	if (name.length() > 0 && !colors.contains(name))
+		colors.insert(name, color);
 	return true;
 }
 

Modified: branches/ScribusOIF/scribus/plugins/import/ai/importai.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&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 Fri Oct 28 17:40:06 2011
@@ -1679,11 +1679,14 @@
 		}
 		else if (command == "*U")
 		{
-			WasU = false;
-			ite = m_Doc->Items->at(m_Doc->Items->count()-1);
-			FPoint wh = getMaxClipF(&ite->PoLine);
-			ite->setWidthHeight(wh.x(),wh.y());
-			m_Doc->AdjustItemSize(ite);
+			if (m_Doc->Items->count() > 0)
+			{
+				WasU = false;
+				ite = m_Doc->Items->at(m_Doc->Items->count()-1);
+				FPoint wh = getMaxClipF(&ite->PoLine);
+				ite->setWidthHeight(wh.x(),wh.y());
+				m_Doc->AdjustItemSize(ite);
+			}
 		}
 		else if ((command == "u") || (command == "q"))
 		{

Modified: branches/ScribusOIF/scribus/scribus.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/scribus.cpp
==============================================================================
--- branches/ScribusOIF/scribus/scribus.cpp (original)
+++ branches/ScribusOIF/scribus/scribus.cpp Fri Oct 28 17:40:06 2011
@@ -99,6 +99,7 @@
 #include "gtgettext.h"
 #include "hyphenator.h"
 #include "langmgr.h"
+#include "pageitem_group.h"
 #include "pageitem_imageframe.h"
 #include "pageitem_latexframe.h"
 #include "pageitem_table.h"
@@ -2155,7 +2156,7 @@
 		{
 			PageItem *currItem = doc->Items->at(i);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -2748,7 +2749,7 @@
 		scrActions["toolsCopyProperties"]->setEnabled(false);
 		//CB 061005 moved to cpalette choosegrad
 		//propertiesPalette->Cpal->gradientQCombo->setCurrentItem(0);
-		outlinePalette->slotShowSelect(doc->currentPageNumber(), -1);
+		outlinePalette->slotShowSelect(doc->currentPageNumber(), NULL);
 		propertiesPalette->setGradientEditMode(false);
 		break;
 	case PageItem::ImageFrame: //Image Frame
@@ -3175,7 +3176,7 @@
 	if (SelectedType != -1)
 	{
 		//propertiesPalette->setCurrentItem(currItem);
-		outlinePalette->slotShowSelect(currItem->OwnPage, currItem->ItemNr);
+		outlinePalette->slotShowSelect(currItem->OwnPage, currItem);
 		actionManager->connectNewSelectionActions(view, doc);
 // 		propertiesPalette->handleSelectionChanged();
 	}
@@ -5877,7 +5878,7 @@
 		{
 			PageItem *currItem = doc->Items->at(a);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)

Modified: branches/ScribusOIF/scribus/scribusdoc.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/scribusdoc.cpp
==============================================================================
--- branches/ScribusOIF/scribus/scribusdoc.cpp (original)
+++ branches/ScribusOIF/scribus/scribusdoc.cpp Fri Oct 28 17:40:06 2011
@@ -538,7 +538,7 @@
 	{
 		PageItem *currItem = DocItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -558,7 +558,7 @@
 	{
 		PageItem *currItem = MasterItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -578,7 +578,7 @@
 	{
 		PageItem *currItem = FrameItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -602,7 +602,7 @@
 		{
 			PageItem *currItem = pa.items.at(o);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -672,7 +672,7 @@
 		PageItem* embedded = items.at(em);
 		ret.append(embedded);
 		if (embedded->isGroup())
-			ret += embedded->getItemList();
+			ret += embedded->asGroupFrame()->getItemList();
 	}
 	return ret;
 }
@@ -2917,7 +2917,7 @@
 	{
 		PageItem* currItem = MasterItems.at(i);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -2933,7 +2933,7 @@
 	{
 		PageItem* currItem = DocItems.at(i);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -3169,7 +3169,7 @@
 	{
 		PageItem* currItem = MasterItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -3194,7 +3194,7 @@
 	{
 		PageItem* currItem = DocItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -3219,7 +3219,7 @@
 	{
 		PageItem* currItem = FrameItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -3246,7 +3246,7 @@
 		{
 			PageItem* currItem = it.value().items.at(c);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -3397,7 +3397,7 @@
 	{
 		PageItem* currItem = MasterItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -3419,7 +3419,7 @@
 	{
 		PageItem* currItem = DocItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -3439,7 +3439,7 @@
 	{
 		PageItem* currItem = FrameItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -3461,7 +3461,7 @@
 		{
 			PageItem* currItem = it.value().items.at(c);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -3544,7 +3544,7 @@
 					break;
 			}
 			if (it->isGroup())
-				allItems = it->getItemList();
+				allItems = it->asGroupFrame()->getItemList();
 			else
 				allItems.append(it);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -3620,7 +3620,7 @@
 					break;
 			}
 			if (it->isGroup())
-				allItems = it->getItemList();
+				allItems = it->asGroupFrame()->getItemList();
 			else
 				allItems.append(it);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -3639,7 +3639,7 @@
 		{
 			it = pa.items.at(o);
 			if (it->isGroup())
-				allItems = it->getItemList();
+				allItems = it->asGroupFrame()->getItemList();
 			else
 				allItems.append(it);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -3850,7 +3850,7 @@
 			else if(lc == 2)
 				it = FrameItems.at(d);
 			if (it->isGroup())
-				allItems = it->getItemList();
+				allItems = it->asGroupFrame()->getItemList();
 			else
 				allItems.append(it);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -5028,7 +5028,7 @@
 {
 	if (!currItem->isGroup())
 		return;
-	QList<PageItem*> Objects = currItem->getItemList();
+	QList<PageItem*> Objects = currItem->asGroupFrame()->getItemList();
 	int Off_Page = -1;
 	int On_Page = 999999;
 	uint objectCount = Objects.count();
@@ -5046,6 +5046,7 @@
 	{
 		Objects.at(a)->OwnPage = final;
 	}
+	currItem->OwnPage = OnPage(currItem);
 }
 
 void  ScribusDoc::fixItemPageOwner()
@@ -6151,7 +6152,7 @@
 	{
 		PageItem *ite = DocItems.at(c);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -6175,7 +6176,7 @@
 	{
 		PageItem *ite = MasterItems.at(c);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -6199,7 +6200,7 @@
 	{
 		PageItem *ite = FrameItems.at(c);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -6227,7 +6228,7 @@
 		{
 			PageItem *ite = pa.items.at(o);
 			if (ite->isGroup())
-				allItems = ite->getItemList();
+				allItems = ite->asGroupFrame()->getItemList();
 			else
 				allItems.append(ite);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -6273,7 +6274,7 @@
 		{
 			it = items->at(i);
 			if (it->isGroup())
-				allItems = it->getItemList();
+				allItems = it->asGroupFrame()->getItemList();
 			else
 				allItems.append(it);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -8177,7 +8178,7 @@
 	{
 		PageItem *currItem = DocItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8199,7 +8200,7 @@
 	{
 		PageItem *currItem = MasterItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8221,7 +8222,7 @@
 	{
 		PageItem *currItem = FrameItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8247,7 +8248,7 @@
 		{
 			PageItem *currItem = pa.items.at(o);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -8283,7 +8284,7 @@
 	{
 		PageItem *currItem = DocItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8316,7 +8317,7 @@
 	{
 		PageItem *currItem = MasterItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8349,7 +8350,7 @@
 	{
 		PageItem *currItem = FrameItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8386,7 +8387,7 @@
 		{
 			PageItem *currItem = pa.items.at(o);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -8437,7 +8438,7 @@
 	{
 		PageItem *currItem = DocItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8452,7 +8453,7 @@
 	{
 		PageItem *currItem = MasterItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8467,7 +8468,7 @@
 	{
 		PageItem *currItem = FrameItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8486,7 +8487,7 @@
 		{
 			PageItem *currItem = pa.items.at(o);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -8503,7 +8504,7 @@
 	{
 		PageItem *currItem = DocItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8534,7 +8535,7 @@
 	{
 		PageItem *currItem = MasterItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8565,7 +8566,7 @@
 	{
 		PageItem *currItem = FrameItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8599,7 +8600,7 @@
 		{
 			PageItem *currItem = pa.items.at(o);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -8643,7 +8644,7 @@
 	{
 		PageItem *currItem = DocItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8662,7 +8663,7 @@
 	{
 		PageItem *currItem = MasterItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8681,7 +8682,7 @@
 	{
 		PageItem *currItem = FrameItems.at(a);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -8704,7 +8705,7 @@
 		{
 			PageItem *currItem = pa.items.at(o);
 			if (currItem->isGroup())
-				allItems = currItem->getItemList();
+				allItems = currItem->asGroupFrame()->getItemList();
 			else
 				allItems.append(currItem);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -9395,7 +9396,7 @@
 	{
 		PageItem *currItem = DocItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -9417,7 +9418,7 @@
 	{
 		PageItem *currItem = MasterItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -9439,7 +9440,7 @@
 	{
 		PageItem *currItem = FrameItems.at(c);
 		if (currItem->isGroup())
-			allItems = currItem->getItemList();
+			allItems = currItem->asGroupFrame()->getItemList();
 		else
 			allItems.append(currItem);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -11507,7 +11508,7 @@
 	{
 		PageItem *ite = DocItems.at(c);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -11521,7 +11522,7 @@
 	{
 		PageItem *ite = MasterItems.at(c);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -11541,7 +11542,7 @@
 	{
 		PageItem *ite = DocItems.at(c);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -11558,7 +11559,7 @@
 		{
 			PageItem *ite = MasterItems.at(c);
 			if (ite->isGroup())
-				allItems = ite->getItemList();
+				allItems = ite->asGroupFrame()->getItemList();
 			else
 				allItems.append(ite);
 			for (int ii = 0; ii < allItems.count(); ii++)
@@ -11580,7 +11581,7 @@
 	{
 		PageItem *ite = DocItems.at(c);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -11595,7 +11596,7 @@
 	{
 		PageItem *ite = MasterItems.at(c);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)
@@ -13083,7 +13084,7 @@
 	ss->set("GROUP", "group");
 	ss->set("itemcount", selectedItemCount + 1);
 	ss->set(QString("item%1").arg(0), groupItem->uniqueNr);
-	for (uint a = 0; a < groupItem->groupItemList.count(); ++a)
+	for (int a = 0; a < groupItem->groupItemList.count(); ++a)
 	{
 		currItem = groupItem->groupItemList.at(a);
 		ss->set(QString("item%1").arg(a + 1), currItem->uniqueNr);
@@ -14045,7 +14046,7 @@
 	{
 		PageItem* ite = DocItems.at(i);
 		if (ite->isGroup())
-			allItems = ite->getItemList();
+			allItems = ite->asGroupFrame()->getItemList();
 		else
 			allItems.append(ite);
 		for (int ii = 0; ii < allItems.count(); ii++)

Modified: branches/ScribusOIF/scribus/scstreamfilter_jpeg.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/scstreamfilter_jpeg.cpp
==============================================================================
--- branches/ScribusOIF/scribus/scstreamfilter_jpeg.cpp (original)
+++ branches/ScribusOIF/scribus/scstreamfilter_jpeg.cpp Fri Oct 28 17:40:06 2011
@@ -120,7 +120,7 @@
 
 ScJpegEncodeFilter::ScJpegEncodeFilter(QDataStream* stream, unsigned int imgWidth, unsigned int imgHeight, 
 		            ScJpegEncodeFilter::Color color) : ScStreamFilter(stream), m_width(imgWidth), m_height(imgHeight),
-					m_color(color), m_quality(75)
+					m_quality(75), m_color(color)
 {
 	m_filterData = NULL;
 	m_openedFilter = false;

Modified: branches/ScribusOIF/scribus/third_party/cairo/CMakeLists.txt
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/third_party/cairo/CMakeLists.txt
==============================================================================
--- branches/ScribusOIF/scribus/third_party/cairo/CMakeLists.txt (original)
+++ branches/ScribusOIF/scribus/third_party/cairo/CMakeLists.txt Fri Oct 28 17:40:06 2011
@@ -106,3 +106,4 @@
   COMPILE_FLAGS -DCOMPILE_SCRIBUS_MAIN_APP
   )
 
+TARGET_LINK_LIBRARIES(${SCRIBUS_CAIRO_LIB} ${PIXMAN_LIBRARIES})

Modified: branches/ScribusOIF/scribus/third_party/pgf/PGFplatform.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/third_party/pgf/PGFplatform.h
==============================================================================
--- branches/ScribusOIF/scribus/third_party/pgf/PGFplatform.h (original)
+++ branches/ScribusOIF/scribus/third_party/pgf/PGFplatform.h Fri Oct 28 17:40:06 2011
@@ -339,9 +339,9 @@
 
 
 //-------------------------------------------------------------------------------
-// NetBSD
-//-------------------------------------------------------------------------------
-#ifdef __NetBSD__
+// *BSD
+//-------------------------------------------------------------------------------
+#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
 #ifndef __POSIX__
 #define __POSIX__
 #endif
@@ -354,7 +354,7 @@
 #define lseek64 lseek
 #endif
 
-#endif // __NetBSD__
+#endif // __NetBSD__ or __OpenBSD__ or __FreeBSD__
 
 
 //-------------------------------------------------------------------------------

Modified: branches/ScribusOIF/scribus/ui/outlinepalette.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/ui/outlinepalette.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/outlinepalette.cpp (original)
+++ branches/ScribusOIF/scribus/ui/outlinepalette.cpp Fri Oct 28 17:40:06 2011
@@ -5,6 +5,7 @@
 for which a new license (GPL+exception) is in place.
 */
 
+#include <QBuffer>
 #include <QEvent>
 #include <QHeaderView>
 #include <QHelpEvent>
@@ -18,7 +19,9 @@
 #include <QToolTip>
 #include <QVariant>
 #include <QWidgetAction>
+#include <QSignalMapper>
 #include <QShortcut>
+#include <QDebug>
 
 #include "actionmanager.h"
 #include "canvasmode.h"
@@ -29,7 +32,9 @@
 #include "scpage.h"
 #include "scribus.h"
 #include "selection.h"
+#include "layers.h"
 #include "undomanager.h"
+#include "units.h"
 #include "util.h"
 #include "util_color.h"
 #include "util_formats.h"
@@ -40,18 +45,23 @@
 {
 	PageObject = NULL;
 	PageItemObject = NULL;
+	DocObject = NULL;
 	type = -1;
+	LayerID = -1;
 }
 
 OutlineTreeItem::OutlineTreeItem(QTreeWidget* parent, OutlineTreeItem* after) : QTreeWidgetItem(parent, after)
 {
 	PageObject = NULL;
 	PageItemObject = NULL;
+	DocObject = NULL;
 	type = -1;
+	LayerID = -1;
 }
 
 OutlineWidget::OutlineWidget(QWidget* parent) : QTreeWidget(parent)
 {
+	setDragDropMode(QAbstractItemView::InternalMove);
 }
 
 void OutlineWidget::selectItems(QList<QTreeWidgetItem*> items)
@@ -66,6 +76,147 @@
 		}
 	}
 	selectionModel()->select(itemSelection, QItemSelectionModel::Select);
+}
+
+void OutlineWidget::dropEvent(QDropEvent *e)
+{
+	bool haveLayers = false;
+	QModelIndex id;
+	QTreeWidgetItem* it = NULL;
+	QList<QModelIndex> idxs = selectedIndexes();
+	if (!idxs.isEmpty())
+		id = idxs.at(0);
+	if (id.isValid())
+		it = itemFromIndex(id);
+	QTreeWidgetItem *oldParent = it->parent();
+	QTreeWidgetItem *oldPageParent = NULL;
+	OutlineTreeItem *itemP = (OutlineTreeItem*)oldParent;
+	if (itemP->type == 5)		// old Parent is a Layer
+	{
+		oldPageParent = it->parent()->parent();
+		haveLayers = true;
+	}
+	else
+		oldPageParent = it->parent();
+	QTreeWidget::dropEvent(e);
+	if (it != NULL)
+	{
+		OutlineTreeItem *item = (OutlineTreeItem*)it;
+		if (item != NULL)
+		{
+			OutlineTreeItem *itemPl = (OutlineTreeItem*)it->parent();
+			OutlineTreeItem *itemPar = (OutlineTreeItem*)oldPageParent;
+			OutlineTreeItem *itemPg;
+			if (itemPl->type == 5)
+			{
+				itemPg = (OutlineTreeItem*)it->parent()->parent();
+			}
+			else
+			{
+				itemPg = (OutlineTreeItem*)it->parent();
+				if (haveLayers)
+				{
+					itemPl = (OutlineTreeItem*)itemBelow(itemPg);
+					itemPg->removeChild(it);
+					itemPl->addChild(it);
+				}
+			}
+			if (itemPl->childCount() > 1)
+			{
+				if (itemAbove(it) != NULL)		// do we have a pageitem above us
+				{
+					OutlineTreeItem *itemAb = (OutlineTreeItem*)itemAbove(it);
+					if ((itemAb->type == 1) || (itemAb->type == 3) || (itemAb->type == 4))
+					{
+						item->DocObject->Items->takeAt(item->DocObject->Items->indexOf(item->PageItemObject));
+						int d = item->DocObject->Items->indexOf(itemAb->PageItemObject);
+						item->DocObject->Items->insert(d, item->PageItemObject);
+						if (itemPl->type == 5)
+							item->PageItemObject->setLayer(itemPl->LayerID);
+						double xx = item->PageItemObject->xPos() - itemPar->PageObject->xOffset() + itemPg->PageObject->xOffset();
+						double yy = item->PageItemObject->yPos() - itemPar->PageObject->yOffset() + itemPg->PageObject->yOffset();
+						item->PageItemObject->setXYPos(xx, yy);
+						item->DocObject->setModified(true);
+						item->PageItemObject->setRedrawBounding();
+						item->DocObject->scMW()->showLayer();
+						item->DocObject->scMW()->closeActiveWindowMasterPageEditor();
+						if (item->PageItemObject->isGroup())
+						{
+							item->DocObject->GroupOnPage(item->PageItemObject);
+							item->DocObject->scMW()->selectItemsFromOutlines(item->PageItemObject, false);
+						}
+						else
+						{
+							item->PageItemObject->OwnPage = item->DocObject->OnPage(item->PageItemObject);
+							item->DocObject->scMW()->selectItemsFromOutlines(item->PageItemObject, true);
+						}
+						item->DocObject->renumberItemsInListOrder();
+						QList<QTreeWidgetItem*> selList;
+						selList.append(it);
+						selectItems(selList);
+					}
+					else if (itemBelow(it) != NULL)
+					{
+						OutlineTreeItem *itemBe = (OutlineTreeItem*)itemBelow(it);
+						if ((itemBe->type == 1) || (itemBe->type == 3) || (itemBe->type == 4))
+						{
+							item->DocObject->Items->takeAt(item->DocObject->Items->indexOf(item->PageItemObject));
+							int d = item->DocObject->Items->indexOf(itemBe->PageItemObject);
+							item->DocObject->Items->insert(d+1, item->PageItemObject);
+							if (itemPl->type == 5)
+								item->PageItemObject->setLayer(itemPl->LayerID);
+							double xx = item->PageItemObject->xPos() - itemPar->PageObject->xOffset() + itemPg->PageObject->xOffset();
+							double yy = item->PageItemObject->yPos() - itemPar->PageObject->yOffset() + itemPg->PageObject->yOffset();
+							item->PageItemObject->setXYPos(xx, yy);
+							item->PageItemObject->setRedrawBounding();
+							item->DocObject->setModified(true);
+							item->DocObject->scMW()->showLayer();
+							item->DocObject->scMW()->closeActiveWindowMasterPageEditor();
+							if (item->PageItemObject->isGroup())
+							{
+								item->DocObject->GroupOnPage(item->PageItemObject);
+								item->DocObject->scMW()->selectItemsFromOutlines(item->PageItemObject, false);
+							}
+							else
+							{
+								item->PageItemObject->OwnPage = item->DocObject->OnPage(item->PageItemObject);
+								item->DocObject->scMW()->selectItemsFromOutlines(item->PageItemObject, true);
+							}
+							item->DocObject->renumberItemsInListOrder();
+							QList<QTreeWidgetItem*> selList;
+							selList.append(it);
+							selectItems(selList);
+						}
+					}
+				}
+			}
+			else
+			{
+				if (itemPl->type == 5)
+					item->PageItemObject->setLayer(itemPl->LayerID);
+				double xx = item->PageItemObject->xPos() - itemPar->PageObject->xOffset() + itemPg->PageObject->xOffset();
+				double yy = item->PageItemObject->yPos() - itemPar->PageObject->yOffset() + itemPg->PageObject->yOffset();
+				item->PageItemObject->setXYPos(xx, yy);
+				item->PageItemObject->setRedrawBounding();
+				item->DocObject->setModified(true);
+				item->DocObject->scMW()->showLayer();
+				item->DocObject->scMW()->closeActiveWindowMasterPageEditor();
+				if (item->PageItemObject->isGroup())
+				{
+					item->DocObject->GroupOnPage(item->PageItemObject);
+					item->DocObject->scMW()->selectItemsFromOutlines(item->PageItemObject, false);
+				}
+				else
+				{
+					item->PageItemObject->OwnPage = item->DocObject->OnPage(item->PageItemObject);
+					item->DocObject->scMW()->selectItemsFromOutlines(item->PageItemObject, true);
+				}
+				QList<QTreeWidgetItem*> selList;
+				selList.append(it);
+				selectItems(selList);
+			}
+		}
+	}
 }
 
 bool OutlineWidget::viewportEvent(QEvent *event)
@@ -80,74 +231,127 @@
  			if (item != NULL)
  			{
  				QString tipText("");
- 				if ((item->type == 1) || (item->type == 3) || (item->type == 4))
+				if (item->type == 5)
+				{
+					tipText += "<b>" + tr("Layer is:") + "</b><br><br>";
+					if (item->DocObject->activeLayer() == item->LayerID)
+						tipText += tr("active") + "<br>";
+					if (item->DocObject->layerVisible(item->LayerID))
+						tipText += tr("visible") + "<br>";
+					else
+						tipText += tr("invisible") + "<br>";
+					if (item->DocObject->layerPrintable(item->LayerID))
+						tipText += tr("printing");
+					else
+						tipText += tr("non printing");
+					if (item->DocObject->layerLocked(item->LayerID))
+						tipText += "<br>" + tr("locked");
+				}
+				else if ((item->type == 1) || (item->type == 3) || (item->type == 4))
  				{
- 					PageItem *pgItem = item->PageItemObject;
+					PageItem *pgItem = item->PageItemObject;
+					QPainter p;
+					QImage pm = QImage(80, 80, QImage::Format_ARGB32_Premultiplied);
+					QBrush b(QColor(205,205,205), loadIcon("testfill.png"));
+					p.begin(&pm);
+					p.fillRect(QRectF(0, 0, 80, 80), b);
+					QImage thumb = pgItem->DrawObj_toImage(80);
+					p.drawImage((80 - thumb.width()) / 2, (80 - thumb.height()) / 2, thumb);
+					p.end();
+					QBuffer buffer;
+					buffer.open(QIODevice::WriteOnly);
+					pm.save(&buffer, "PNG");
+					QByteArray ba = buffer.buffer().toBase64();
+					buffer.close();
+					tipText = "<p align=\"center\"><img src=\"data:image/png;base64," + QString(ba) + "\"></p><p>";
  					switch (pgItem->itemType())
  					{
  						case PageItem::ImageFrame:
  							if (pgItem->asLatexFrame())
-								tipText = CommonStrings::itemType_LatexFrame;
+								tipText += CommonStrings::itemType_LatexFrame;
 #ifdef HAVE_OSG
  							else if (pgItem->asOSGFrame())
-								tipText = CommonStrings::itemType_OSGFrame;
+								tipText += CommonStrings::itemType_OSGFrame;
 #endif
  							else
-								tipText = CommonStrings::itemType_ImageFrame;
+								tipText += CommonStrings::itemType_ImageFrame;
  							break;
  						case PageItem::TextFrame:
  							switch (pgItem->annotation().Type())
  							{
  								case 2:
-									tipText = CommonStrings::itemSubType_PDF_PushButton;
+									tipText += CommonStrings::itemSubType_PDF_PushButton;
  									break;
  								case 3:
-									tipText = CommonStrings::itemSubType_PDF_TextField;
+									tipText += CommonStrings::itemSubType_PDF_TextField;
  									break;
  								case 4:
-									tipText = CommonStrings::itemSubType_PDF_CheckBox;
+									tipText += CommonStrings::itemSubType_PDF_CheckBox;
  									break;
  								case 5:
-									tipText = CommonStrings::itemSubType_PDF_ComboBox;
+									tipText += CommonStrings::itemSubType_PDF_ComboBox;
  									break;
  								case 6:
-									tipText = CommonStrings::itemSubType_PDF_ListBox;
+									tipText += CommonStrings::itemSubType_PDF_ListBox;
  									break;
  								case 10:
-									tipText = CommonStrings::itemSubType_PDF_TextAnnotation;
+									tipText += CommonStrings::itemSubType_PDF_TextAnnotation;
  									break;
  								case 11:
-									tipText = CommonStrings::itemSubType_PDF_LinkAnnotation;
+									tipText += CommonStrings::itemSubType_PDF_LinkAnnotation;
  									break;
  								default:
-									tipText = CommonStrings::itemType_TextFrame;
+									tipText += CommonStrings::itemType_TextFrame;
  									break;
  							}
  							break;
  						case PageItem::Line:
-							tipText = CommonStrings::itemType_Line;
+							tipText += CommonStrings::itemType_Line;
  							break;
  						case PageItem::Arc:
+							tipText += CommonStrings::itemType_Arc;
+							break;
  						case PageItem::Polygon:
+							tipText += CommonStrings::itemType_Polygon;
+							break;
 						case PageItem::RegularPolygon:
-							tipText = CommonStrings::itemType_Polygon;
+							tipText += CommonStrings::itemType_RegularPolygon;
  							break;
  						case PageItem::PolyLine:
+							tipText += CommonStrings::itemType_Polyline;
+							break;
 						case PageItem::Spiral:
-							tipText = CommonStrings::itemType_Polyline;
+							tipText += CommonStrings::itemType_Spiral;
  							break;
  						case PageItem::PathText:
-							tipText = CommonStrings::itemType_PathText;
+							tipText += CommonStrings::itemType_PathText;
  							break;
  						case PageItem::Symbol:
-							tipText = CommonStrings::itemType_Symbol;
+							tipText += CommonStrings::itemType_Symbol;
  							break;
+						case PageItem::Group:
+							tipText += CommonStrings::itemType_Group;
+							break;
+						case PageItem::Table:
+							tipText += CommonStrings::itemType_Table;
+							break;
  						default:
  							break;
- 					}
-					QToolTip::showText(helpEvent->globalPos(), tipText, this);
-					return true;
-				}
+					}
+					tipText +="<br>" + tr("X-Pos:") + " ";
+					if (pgItem->OwnPage != -1)
+						tipText += value2String(pgItem->xPos() - item->PageObject->xOffset(), item->DocObject->unitIndex(), true, true);
+					else
+						tipText += value2String(pgItem->xPos(), item->DocObject->unitIndex(), true, true);
+					tipText +="<br>" + tr("Y-Pos:") + " ";
+					if (pgItem->OwnPage != -1)
+						tipText += value2String(pgItem->yPos() - item->PageObject->yOffset(), item->DocObject->unitIndex(), true, true);
+					else
+						tipText += value2String(pgItem->yPos(), item->DocObject->unitIndex(), true, true);
+					tipText += "</p>";
+				}
+				QToolTip::showText(helpEvent->globalPos(), tipText, this);
+				return true;
 			}
 		}
 	}
@@ -196,6 +400,7 @@
 	textIcon = loadIcon("22/insert-text-frame.png");
 	polylineIcon = loadIcon("22/draw-path.png");
 	polygonIcon = loadIcon("22/draw-polygon.png");
+	tableIcon = loadIcon("22/insert-table.png");
 	groupIcon = loadIcon("u_group.png");
 	buttonIcon = loadIcon("22/insert-button.png");
 	textFieldIcon = loadIcon("22/text-field.png");
@@ -273,7 +478,76 @@
 				createContextMenu(currItem, point.x(), point.y());
 			}
 		}
-	}
+		else if (item->type == 5)
+		{
+			QMenu *pmenu = new QMenu();
+			QAction *actVis;
+			QAction *actPrint;
+			QAction *actLock;
+			if (item->DocObject->activeLayer() != item->LayerID)
+			{
+				QAction *actActive;
+				QSignalMapper *signalMapper = new QSignalMapper(this);
+				actActive = pmenu->addAction( tr("Active"));
+				actActive->setCheckable(true);
+				actActive->setChecked(false);
+				signalMapper->setMapping(actActive, item->LayerID);
+				connect(actActive, SIGNAL(triggered()), signalMapper, SLOT(map()));
+				connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(setActiveLayer(int)));
+			}
+			QSignalMapper *signalMapper2 = new QSignalMapper(this);
+			actVis = pmenu->addAction( tr("Visible"));
+			actVis->setCheckable(true);
+			actVis->setChecked(item->DocObject->layerVisible(item->LayerID));
+			signalMapper2->setMapping(actVis, item->LayerID);
+			connect(actVis, SIGNAL(triggered()), signalMapper2, SLOT(map()));
+			connect(signalMapper2, SIGNAL(mapped(int)), this, SLOT(setLayerVisible(int)));
+
+			QSignalMapper *signalMapper3 = new QSignalMapper(this);
+			actPrint = pmenu->addAction( tr("Printing"));
+			actPrint->setCheckable(true);
+			actPrint->setChecked(item->DocObject->layerPrintable(item->LayerID));
+			signalMapper3->setMapping(actPrint, item->LayerID);
+			connect(actPrint, SIGNAL(triggered()), signalMapper3, SLOT(map()));
+			connect(signalMapper3, SIGNAL(mapped(int)), this, SLOT(setLayerPrintable(int)));
+
+			QSignalMapper *signalMapper4 = new QSignalMapper(this);
+			actLock = pmenu->addAction( tr("Locked"));
+			actLock->setCheckable(true);
+			actLock->setChecked(item->DocObject->layerLocked(item->LayerID));
+			signalMapper4->setMapping(actLock, item->LayerID);
+			connect(actLock, SIGNAL(triggered()), signalMapper4, SLOT(map()));
+			connect(signalMapper4, SIGNAL(mapped(int)), this, SLOT(setLayerLocked(int)));
+			qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor));
+			pmenu->exec(QCursor::pos());
+			delete pmenu;
+		}
+	}
+}
+
+void OutlinePalette::setActiveLayer(int layerID)
+{
+	currDoc->setActiveLayer(layerID);
+	currDoc->scMW()->changeLayer(currDoc->activeLayer());
+}
+
+void OutlinePalette::setLayerVisible(int layerID)
+{
+	currDoc->setLayerVisible(layerID, !currDoc->layerVisible(layerID));
+	currDoc->scMW()->showLayer();
+	currDoc->scMW()->layerPalette->rebuildList();
+}
+
+void OutlinePalette::setLayerLocked(int layerID)
+{
+	currDoc->setLayerLocked(layerID, !currDoc->layerLocked(layerID));
+	currDoc->scMW()->layerPalette->rebuildList();
+}
+
+void OutlinePalette::setLayerPrintable(int layerID)
+{
+	currDoc->setLayerPrintable(layerID, !currDoc->layerPrintable(layerID));
+	currDoc->scMW()->layerPalette->rebuildList();
 }
 
 void OutlinePalette::slotRenameItem()
@@ -340,13 +614,13 @@
 	connect(reportDisplay, SIGNAL(itemChanged(QTreeWidgetItem*, int)), this, SLOT(slotDoRename(QTreeWidgetItem*, int)));
 }
 
-QTreeWidgetItem* OutlinePalette::getListItem(int SNr, int Nr)
+QTreeWidgetItem* OutlinePalette::getListItem(int SNr, PageItem *Nr)
 {
 	OutlineTreeItem *item = 0;
 	QTreeWidgetItem *retVal = 0;
 	if (currDoc->masterPageMode())
 	{
-		if (Nr == -1)
+		if (Nr == NULL)
 		{
 			QTreeWidgetItemIterator it( reportDisplay );
 			while ( (*it) )
@@ -366,7 +640,7 @@
 			while ( (*it) )
 			{
 				item = (OutlineTreeItem*)(*it);
-				if ((item->type == 1) && (static_cast<int>(item->PageItemObject->ItemNr) == Nr))
+				if ((item->type == 1) && (item->PageItemObject == Nr))
 				{
 					retVal = (*it);
 					break;
@@ -377,7 +651,7 @@
 	}
 	else
 	{
-		if (Nr == -1)
+		if (Nr == NULL)
 		{
 			QTreeWidgetItemIterator it( reportDisplay );
 			while ( (*it) )
@@ -397,7 +671,7 @@
 			while ( (*it) )
 			{
 				item = (OutlineTreeItem*)(*it);
-				if (((item->type == 3) || (item->type == 4)) && (static_cast<int>(item->PageItemObject->ItemNr) == Nr))
+				if (((item->type == 3) || (item->type == 4)) && (item->PageItemObject == Nr))
 				{
 					retVal = (*it);
 					break;
@@ -409,7 +683,7 @@
 	return retVal;
 }
 
-void OutlinePalette::slotShowSelect(uint SNr, int Nr)
+void OutlinePalette::slotShowSelect(uint SNr, PageItem *Nr)
 {
 	if (!m_MainWindow || m_MainWindow->scriptIsRunning())
 		return;
@@ -428,7 +702,7 @@
 		for (uint a = 0; a < docSelectionCount; a++)
 		{
 			PageItem *item = currDoc->m_Selection->itemAt(a);
-			QTreeWidgetItem *retVal = getListItem(item->OwnPage, item->ItemNr);
+			QTreeWidgetItem *retVal = getListItem(item->OwnPage, item);
 			if (retVal != 0)
 				itemSelection.append(retVal);
 		}
@@ -507,6 +781,9 @@
 	case PageItem::Symbol:
 		item->setIcon( 0, polygonIcon );
 		break;
+	case PageItem::Table:
+		item->setIcon( 0, tableIcon );
+		break;
 	default:
 		break;
 	}
@@ -592,6 +869,7 @@
 				case 0:
 				case 1:
 				case 2:
+				case 5:
 					ite->setSelected(false);
 					break;
 				case 3:
@@ -602,6 +880,8 @@
 						m_MainWindow->closeActiveWindowMasterPageEditor();
 						currDoc->view()->SelectItemNr(pgItem->ItemNr, false, false);
 					}
+					break;
+				default:
 					break;
 			}
 		}
@@ -677,6 +957,7 @@
 	rootObject = item;
 	item->setText( 0, currDoc->DocName.section( '/', -1 ) );
 	item->type = -2;
+	item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
 	OutlineTreeItem * pagep = 0;
 	freeObjects = 0;
 	PageItem* pgItem;
@@ -686,6 +967,7 @@
 		OutlineTreeItem *page = new OutlineTreeItem( item, pagep );
 		page->PageObject = currDoc->Pages->at(0);
 		page->type = 2;
+		page->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled);
 		pagep = page;
 		for (int b = 0; b < currDoc->Items->count(); ++b)
 		{
@@ -694,20 +976,24 @@
 			{
 				OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
 				object->PageItemObject = pgItem;
+				object->PageObject = currDoc->DocPages.at(0);
+				object->DocObject = currDoc;
 				object->type = 3;
 				object->setText(0, pgItem->itemName());
 				setItemIcon(object, pgItem);
-				object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+				object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled);
 			}
 			else
 			{
 				OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
 				object->PageItemObject = pgItem;
+				object->PageObject = currDoc->DocPages.at(0);
+				object->DocObject = currDoc;
 				object->type = 3;
 				object->setText(0, pgItem->itemName());
 				object->setIcon( 0, groupIcon );
-				object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
-				parseSubGroup(object, &pgItem->groupItemList, 3);
+				object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled);
+				parseSubGroup(object, &pgItem->groupItemList, 3, currDoc->Pages->at(0));
 			}
 		}
 		page->setText(0, currDoc->getEditedSymbol());
@@ -719,6 +1005,7 @@
 			OutlineTreeItem *page = new OutlineTreeItem( item, pagep );
 			page->PageObject = currDoc->MasterPages.at(a);
 			page->type = 0;
+			page->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
 			QString pageNam = currDoc->MasterPages.at(a)->pageName();
 			pagep = page;
 			for (int b = 0; b < currDoc->MasterItems.count(); ++b)
@@ -730,6 +1017,8 @@
 					{
 						OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
 						object->PageItemObject = pgItem;
+						object->PageObject = currDoc->MasterPages.at(a);
+						object->DocObject = currDoc;
 						object->type = 1;
 						object->setText(0, pgItem->itemName());
 						setItemIcon(object, pgItem);
@@ -739,58 +1028,116 @@
 					{
 						OutlineTreeItem * object = new OutlineTreeItem( page, 0 );
 						object->PageItemObject = pgItem;
+						object->PageObject = currDoc->MasterPages.at(a);
+						object->DocObject = currDoc;
 						object->type = 1;
 						object->setText(0, pgItem->itemName());
 						object->setIcon( 0, groupIcon );
 						object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
-						parseSubGroup(object, &pgItem->groupItemList, 1);
+						parseSubGroup(object, &pgItem->groupItemList, 1, currDoc->MasterPages.at(a));
 					}
 				}
 			}
 			page->setText(0, currDoc->MasterPages.at(a)->pageName());
 		}
+		bool hasfreeItems = false;
 		for (int a = 0; a < static_cast<int>(currDoc->DocPages.count()); ++a)
 		{
 			OutlineTreeItem *page = new OutlineTreeItem( item, pagep );
 			page->PageObject = currDoc->DocPages.at(a);
 			page->type = 2;
+			page->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled);
 			pagep = page;
-			for (int b = 0; b < currDoc->DocItems.count(); ++b)
-			{
-				pgItem = currDoc->DocItems.at(b);
-				if (pgItem->OwnPage == a)
-				{
-					if (!pgItem->isGroup())
+			int layerCount = currDoc->layerCount();
+			if (layerCount > 1)
+			{
+				QList<PageItem*> pgItems;
+				for (int b = 0; b < currDoc->DocItems.count(); ++b)
+				{
+					pgItem = currDoc->DocItems.at(b);
+					if (pgItem->OwnPage == -1)
+						hasfreeItems = true;
+					if (pgItem->OwnPage == a)
+						pgItems.append(pgItem);
+				}
+				ScLayer layer;
+				layer.ID = 0;
+				for (int layerLevel = 0; layerLevel < layerCount; ++layerLevel)
+				{
+					currDoc->Layers.levelToLayer(layer, layerLevel);
+					OutlineTreeItem *ObjLayer = new OutlineTreeItem( page, 0 );
+					ObjLayer->type = 5;
+					ObjLayer->LayerID = layer.ID;
+					ObjLayer->DocObject = currDoc;
+					ObjLayer->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled);
+					ObjLayer->setText(0, tr("Layer: \"") + layer.Name + "\"");
+					for (int it = 0; it < pgItems.count(); ++it)
 					{
-						OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
-						object->PageItemObject = pgItem;
-						object->type = 3;
-						object->setText(0, pgItem->itemName());
-						setItemIcon(object, pgItem);
-						object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+						pgItem = pgItems.at(it);
+						if (pgItem->LayerID != layer.ID)
+							continue;
+						if (!pgItem->isGroup())
+						{
+							OutlineTreeItem *object = new OutlineTreeItem( ObjLayer, 0 );
+							object->PageItemObject = pgItem;
+							object->PageObject = currDoc->DocPages.at(a);
+							object->DocObject = currDoc;
+							object->type = 3;
+							object->setText(0, pgItem->itemName());
+							setItemIcon(object, pgItem);
+							object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled);
+						}
+						else
+						{
+							OutlineTreeItem *object = new OutlineTreeItem( ObjLayer, 0 );
+							object->PageItemObject = pgItem;
+							object->PageObject = currDoc->DocPages.at(a);
+							object->DocObject = currDoc;
+							object->type = 3;
+							object->setText(0, pgItem->itemName());
+							object->setIcon( 0, groupIcon );
+							object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled);
+							parseSubGroup(object, &pgItem->groupItemList, 3, currDoc->DocPages.at(a));
+						}
 					}
-					else
+				}
+			}
+			else
+			{
+				for (int b = 0; b < currDoc->DocItems.count(); ++b)
+				{
+					pgItem = currDoc->DocItems.at(b);
+					if (pgItem->OwnPage == -1)
+						hasfreeItems = true;
+					if (pgItem->OwnPage == a)
 					{
-						OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
-						object->PageItemObject = pgItem;
-						object->type = 3;
-						object->setText(0, pgItem->itemName());
-						object->setIcon( 0, groupIcon );
-						object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
-						parseSubGroup(object, &pgItem->groupItemList, 3);
+						if (!pgItem->isGroup())
+						{
+							OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
+							object->PageItemObject = pgItem;
+							object->PageObject = currDoc->DocPages.at(a);
+							object->DocObject = currDoc;
+							object->type = 3;
+							object->setText(0, pgItem->itemName());
+							setItemIcon(object, pgItem);
+							object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled);
+						}
+						else
+						{
+							OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
+							object->PageItemObject = pgItem;
+							object->PageObject = currDoc->DocPages.at(a);
+							object->DocObject = currDoc;
+							object->type = 3;
+							object->setText(0, pgItem->itemName());
+							object->setIcon( 0, groupIcon );
+							object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled);
+							parseSubGroup(object, &pgItem->groupItemList, 3, currDoc->DocPages.at(a));
+						}
 					}
 				}
 			}
 			page->setText(0, tr("Page ")+tmp.setNum(a+1));
-		}
-		bool hasfreeItems = false;
-		for (int b = 0; b < currDoc->DocItems.count(); ++b)
-		{
-			if (currDoc->DocItems.at(b)->OwnPage == -1)
-			{
-				hasfreeItems = true;
-				break;
-			}
 		}
 		if (hasfreeItems)
 		{
@@ -798,29 +1145,89 @@
 			pagep = page;
 			freeObjects = page;
 			page->type = -3;
-			for (int b = 0; b < currDoc->DocItems.count(); ++b)
-			{
-				pgItem = currDoc->DocItems.at(b);
-				if (pgItem->OwnPage == -1)
-				{
-					if (!pgItem->isGroup())
+			page->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+			int layerCount = currDoc->layerCount();
+			if (layerCount > 1)
+			{
+				QList<PageItem*> pgItems;
+				for (int b = 0; b < currDoc->DocItems.count(); ++b)
+				{
+					pgItem = currDoc->DocItems.at(b);
+					if (pgItem->OwnPage == -1)
+						pgItems.append(pgItem);
+				}
+				ScLayer layer;
+				layer.ID = 0;
+				for (int layerLevel = 0; layerLevel < layerCount; ++layerLevel)
+				{
+					currDoc->Layers.levelToLayer(layer, layerLevel);
+					OutlineTreeItem *ObjLayer = new OutlineTreeItem( page, 0 );
+					ObjLayer->type = 5;
+					ObjLayer->LayerID = layer.ID;
+					ObjLayer->DocObject = currDoc;
+					ObjLayer->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+					ObjLayer->setText(0, tr("Layer: \"") + layer.Name + "\"");
+					for (int it = 0; it < pgItems.count(); ++it)
 					{
-						OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
-						object->PageItemObject = pgItem;
-						object->type = 4;
-						object->setText(0, pgItem->itemName());
-						setItemIcon(object, pgItem);
-						object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+						pgItem = pgItems.at(it);
+						if (pgItem->LayerID != layer.ID)
+							continue;
+						if (!pgItem->isGroup())
+						{
+							OutlineTreeItem *object = new OutlineTreeItem( ObjLayer, 0 );
+							object->PageItemObject = pgItem;
+							object->PageObject = NULL;
+							object->DocObject = currDoc;
+							object->type = 4;
+							object->setText(0, pgItem->itemName());
+							setItemIcon(object, pgItem);
+							object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+						}
+						else
+						{
+							OutlineTreeItem *object = new OutlineTreeItem( ObjLayer, 0 );
+							object->PageItemObject = pgItem;
+							object->PageObject = NULL;
+							object->DocObject = currDoc;
+							object->type = 4;
+							object->setText(0, pgItem->itemName());
+							object->setIcon( 0, groupIcon );
+							object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+							parseSubGroup(object, &pgItem->groupItemList, 4, NULL);
+						}
 					}
-					else
+				}
+			}
+			else
+			{
+				for (int b = 0; b < currDoc->DocItems.count(); ++b)
+				{
+					pgItem = currDoc->DocItems.at(b);
+					if (pgItem->OwnPage == -1)
 					{
-						OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
-						object->PageItemObject = pgItem;
-						object->type = 4;
-						object->setText(0, pgItem->itemName());
-						object->setIcon( 0, groupIcon );
-						object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
-						parseSubGroup(object, &pgItem->groupItemList, 4);
+						if (!pgItem->isGroup())
+						{
+							OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
+							object->PageItemObject = pgItem;
+							object->PageObject = NULL;
+							object->DocObject = currDoc;
+							object->type = 4;
+							object->setText(0, pgItem->itemName());
+							setItemIcon(object, pgItem);
+							object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+						}
+						else
+						{
+							OutlineTreeItem *object = new OutlineTreeItem( page, 0 );
+							object->PageItemObject = pgItem;
+							object->PageObject = NULL;
+							object->DocObject = currDoc;
+							object->type = 4;
+							object->setText(0, pgItem->itemName());
+							object->setIcon( 0, groupIcon );
+							object->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+							parseSubGroup(object, &pgItem->groupItemList, 4, NULL);
+						}
 					}
 				}
 			}
@@ -829,9 +1236,10 @@
 	}
 	if (storeVals)
 		reopenTree();
+	reportDisplay->invisibleRootItem()->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
 	setUpdatesEnabled(true);
 	if (currDoc->m_Selection->count() > 0)
-		slotShowSelect(0, -1);
+		slotShowSelect(0, NULL);
 	filterTree();
 	repaint();
 	connect(reportDisplay, SIGNAL(itemSelectionChanged()), this, SLOT(slotMultiSelect()));
@@ -867,7 +1275,7 @@
 		filterTree( filterEdit->text() );
 }
 
-void OutlinePalette::parseSubGroup(OutlineTreeItem* object, QList<PageItem*> *subGroupList, int itemType)
+void OutlinePalette::parseSubGroup(OutlineTreeItem* object, QList<PageItem*> *subGroupList, int itemType, ScPage *a)
 {
 	PageItem *pgItem;
 	for (int b = 0; b < subGroupList->count(); ++b)
@@ -877,6 +1285,8 @@
 		{
 			OutlineTreeItem *grp = new OutlineTreeItem( object, 0 );
 			grp->PageItemObject = pgItem;
+			grp->PageObject = a;
+			grp->DocObject = currDoc;
 			grp->type = itemType;
 			grp->setText(0, pgItem->itemName());
 			setItemIcon(grp, pgItem);
@@ -886,11 +1296,13 @@
 		{
 			OutlineTreeItem *grp = new OutlineTreeItem( object, 0 );
 			grp->PageItemObject = pgItem;
+			grp->PageObject = a;
+			grp->DocObject = currDoc;
 			grp->type = itemType;
 			grp->setText(0, pgItem->itemName());
 			grp->setIcon( 0, groupIcon );
 			grp->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
-			parseSubGroup(grp, &pgItem->groupItemList, itemType);
+			parseSubGroup(grp, &pgItem->groupItemList, itemType, a);
 		}
 	}
 }

Modified: branches/ScribusOIF/scribus/ui/outlinepalette.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/ui/outlinepalette.h
==============================================================================
--- branches/ScribusOIF/scribus/ui/outlinepalette.h (original)
+++ branches/ScribusOIF/scribus/ui/outlinepalette.h Fri Oct 28 17:40:06 2011
@@ -32,6 +32,8 @@
 	~OutlineTreeItem() {};
 	PageItem *PageItemObject;
 	ScPage *PageObject;
+	ScribusDoc *DocObject;
+	int LayerID;
 	int type;
 };
 
@@ -44,6 +46,7 @@
 	void selectItems(QList<QTreeWidgetItem*> items);
 
 protected:
+	void dropEvent(QDropEvent *e);
 	bool viewportEvent(QEvent *event);
 };
 
@@ -61,18 +64,22 @@
 	void setDoc(ScribusDoc *);
 	void unsetDoc();
 	void reopenTree();
-	QTreeWidgetItem* getListItem(int SNr, int Nr);
+	QTreeWidgetItem* getListItem(int SNr, PageItem *Nr);
 	void setItemIcon(QTreeWidgetItem *item, PageItem *pgItem);
-	void parseSubGroup(OutlineTreeItem* object, QList<PageItem*> *subGroupList, int itemType);
+	void parseSubGroup(OutlineTreeItem* object, QList<PageItem*> *subGroupList, int itemType, ScPage *a);
 	void buildReopenVals();
 
 public slots:
 	void BuildTree(bool storeVals = true);
 	void filterTree(const QString& keyword);
 	void languageChange();
-	void slotShowSelect(uint SNr, int Nr);
+	void slotShowSelect(uint SNr, PageItem *Nr);
 	void setPaletteShown(bool);
 	void slotRightClick(QPoint point);
+	void setActiveLayer(int layerID);
+	void setLayerVisible(int layerID);
+	void setLayerLocked(int layerID);
+	void setLayerPrintable(int layerID);
 
 signals:
 	void ToggleAllPalettes();
@@ -104,6 +111,7 @@
 	QPixmap polygonIcon;
 	QPixmap polylineIcon;
 	QPixmap groupIcon;
+	QPixmap tableIcon;
 	QPixmap buttonIcon;
 	QPixmap textFieldIcon;
 	QPixmap checkBoxIcon;

Modified: branches/ScribusOIF/scribus/ui/propertywidget_textstyles.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16935&path=/branches/ScribusOIF/scribus/ui/propertywidget_textstyles.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/propertywidget_textstyles.cpp (original)
+++ branches/ScribusOIF/scribus/ui/propertywidget_textstyles.cpp Fri Oct 28 17:40:06 2011
@@ -85,8 +85,8 @@
 
 void PropertyWidget_TextStyles::connectSignals()
 {
-	connect(charStyleClear, SIGNAL(clicked()), this, SLOT(doClearCStyle()), Qt::UniqueConnection);
-	connect(paraStyleClear, SIGNAL(clicked()), this, SLOT(doClearPStyle()), Qt::UniqueConnection);
+	connect(charStyleClear, SIGNAL(clicked()), this, SLOT(doClearCharStyle()), Qt::UniqueConnection);
+	connect(paraStyleClear, SIGNAL(clicked()), this, SLOT(doClearParStyle()), Qt::UniqueConnection);
 
 	connect(paraStyleCombo, SIGNAL(newStyle(const QString&)), m_ScMW, SLOT(setNewParStyle(const QString&)), Qt::UniqueConnection);
 	connect(charStyleCombo, SIGNAL(newStyle(const QString&)), m_ScMW, SLOT(setNewCharStyle(const QString&)), Qt::UniqueConnection);
@@ -94,8 +94,8 @@
 
 void PropertyWidget_TextStyles::disconnectSignals()
 {
-	disconnect(charStyleClear, SIGNAL(clicked()), this, SLOT(doClearCStyle()));
-	disconnect(paraStyleClear, SIGNAL(clicked()), this, SLOT(doClearPStyle()));
+	disconnect(charStyleClear, SIGNAL(clicked()), this, SLOT(doClearCharStyle()));
+	disconnect(paraStyleClear, SIGNAL(clicked()), this, SLOT(doClearParStyle()));
 
 	disconnect(paraStyleCombo, SIGNAL(newStyle(const QString&)), m_ScMW, SLOT(setNewParStyle(const QString&)));
 	disconnect(charStyleCombo, SIGNAL(newStyle(const QString&)), m_ScMW, SLOT(setNewCharStyle(const QString&)));




More information about the scribus-commit mailing list